mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04:00
Use a POD for the format body. This allows us to more easily build and copy the formats. Remove obsolete code to make video and audio formats. Use SpaVideo/AudioInfo to keep track of formats. Make functions to parse the format into the structures. Update plugins
62 lines
852 B
C
62 lines
852 B
C
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
#include <sched.h>
|
|
#include <errno.h>
|
|
#include <sys/ioctl.h>
|
|
#include <sys/mman.h>
|
|
#include <poll.h>
|
|
|
|
#define CLEAR(x) memset(&(x), 0, sizeof(x))
|
|
|
|
static int
|
|
spa_xv_open (SpaXvSink *this)
|
|
{
|
|
SpaXvState *state = &this->state;
|
|
|
|
if (state->opened)
|
|
return 0;
|
|
|
|
state->opened = true;
|
|
|
|
return 0;
|
|
}
|
|
|
|
static int
|
|
spa_xv_set_format (SpaXvSink *this, SpaVideoInfo *info, bool try_only)
|
|
{
|
|
if (spa_xv_open (this) < 0)
|
|
return -1;
|
|
|
|
return 0;
|
|
}
|
|
|
|
static int
|
|
spa_xv_close (SpaXvSink *this)
|
|
{
|
|
SpaXvState *state = &this->state;
|
|
|
|
if (!state->opened)
|
|
return 0;
|
|
|
|
state->opened = false;
|
|
|
|
return 0;
|
|
}
|
|
|
|
static int
|
|
spa_xv_start (SpaXvSink *this)
|
|
{
|
|
if (spa_xv_open (this) < 0)
|
|
return -1;
|
|
|
|
return 0;
|
|
}
|
|
|
|
static int
|
|
spa_xv_stop (SpaXvSink *this)
|
|
{
|
|
spa_xv_close (this);
|
|
|
|
return 0;
|
|
}
|