reorganize some struct members to remove holes

This commit is contained in:
Wim Taymans 2019-02-08 12:01:50 +01:00
parent 658c1da52f
commit f45e0b8966
27 changed files with 533 additions and 539 deletions

View file

@ -37,12 +37,12 @@ struct spa_buffer_alloc_info {
#define SPA_BUFFER_ALLOC_FLAG_INLINE_ALL 0b111
#define SPA_BUFFER_ALLOC_FLAG_NO_DATA (1<<3) /**< don't set data pointers */
uint32_t flags;
uint32_t max_align; /**< max of all alignments */
uint32_t n_metas;
struct spa_meta *metas;
uint32_t n_datas;
struct spa_meta *metas;
struct spa_data *datas;
uint32_t *data_aligns;
uint32_t max_align; /**< max of all alignments */
size_t skel_size; /**< size of the struct spa_buffer and inlined meta/chunk/data */
size_t meta_size; /**< size of the meta if not inlined */
size_t chunk_size; /**< size of the chunk if not inlined */

View file

@ -45,11 +45,11 @@ extern "C" {
#define SPA_TYPE_INFO_DATA_FD_BASE SPA_TYPE_INFO_DATA_Fd ":"
static const struct spa_type_info spa_type_data_type[] = {
{ SPA_DATA_Invalid, SPA_TYPE_INFO_DATA_BASE "Invalid", SPA_TYPE_Int, NULL },
{ SPA_DATA_MemPtr, SPA_TYPE_INFO_DATA_BASE "MemPtr", SPA_TYPE_Int, NULL },
{ SPA_DATA_MemFd, SPA_TYPE_INFO_DATA_FD_BASE "MemFd", SPA_TYPE_Int, NULL },
{ SPA_DATA_DmaBuf, SPA_TYPE_INFO_DATA_FD_BASE "DmaBuf", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_DATA_Invalid, SPA_TYPE_Int, SPA_TYPE_INFO_DATA_BASE "Invalid", NULL },
{ SPA_DATA_MemPtr, SPA_TYPE_Int, SPA_TYPE_INFO_DATA_BASE "MemPtr", NULL },
{ SPA_DATA_MemFd, SPA_TYPE_Int, SPA_TYPE_INFO_DATA_FD_BASE "MemFd", NULL },
{ SPA_DATA_DmaBuf, SPA_TYPE_Int, SPA_TYPE_INFO_DATA_FD_BASE "DmaBuf", NULL },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_Meta SPA_TYPE_INFO_POINTER_BASE "Meta"
@ -62,13 +62,13 @@ static const struct spa_type_info spa_type_data_type[] = {
#define SPA_TYPE_INFO_META_REGION_ARRAY_BASE SPA_TYPE_INFO_META_RegionArray ":"
static const struct spa_type_info spa_type_meta_type[] = {
{ SPA_META_Invalid, SPA_TYPE_INFO_META_BASE "Invalid", SPA_TYPE_Pointer, NULL },
{ SPA_META_Header, SPA_TYPE_INFO_META_BASE "Header", SPA_TYPE_Pointer, NULL },
{ SPA_META_VideoCrop, SPA_TYPE_INFO_META_REGION_BASE "VideoCrop", SPA_TYPE_Pointer, NULL },
{ SPA_META_VideoDamage, SPA_TYPE_INFO_META_REGION_ARRAY_BASE "VideoDamage", SPA_TYPE_Pointer, NULL },
{ SPA_META_Bitmap, SPA_TYPE_INFO_META_BASE "Bitmap", SPA_TYPE_Pointer, NULL },
{ SPA_META_Cursor, SPA_TYPE_INFO_META_BASE "Cursor", SPA_TYPE_Pointer, NULL },
{ 0, NULL, 0, NULL },
{ SPA_META_Invalid, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_BASE "Invalid", NULL },
{ SPA_META_Header, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_BASE "Header", NULL },
{ SPA_META_VideoCrop, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_REGION_BASE "VideoCrop", NULL },
{ SPA_META_VideoDamage, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_REGION_ARRAY_BASE "VideoDamage", NULL },
{ SPA_META_Bitmap, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_BASE "Bitmap", NULL },
{ SPA_META_Cursor, SPA_TYPE_Pointer, SPA_TYPE_INFO_META_BASE "Cursor", NULL },
{ 0, 0, NULL, NULL },
};
#ifdef __cplusplus

View file

@ -38,10 +38,10 @@ extern "C" {
#define SPA_TYPE_INFO_CONTROL_BASE SPA_TYPE_INFO_Control ":"
static const struct spa_type_info spa_type_control[] = {
{ SPA_CONTROL_Invalid, SPA_TYPE_INFO_CONTROL_BASE "Invalid", SPA_TYPE_Int, NULL },
{ SPA_CONTROL_Properties, SPA_TYPE_INFO_CONTROL_BASE "Properties", SPA_TYPE_Int, NULL },
{ SPA_CONTROL_Midi, SPA_TYPE_INFO_CONTROL_BASE "Midi", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_CONTROL_Invalid, SPA_TYPE_Int, SPA_TYPE_INFO_CONTROL_BASE "Invalid", NULL },
{ SPA_CONTROL_Properties, SPA_TYPE_Int, SPA_TYPE_INFO_CONTROL_BASE "Properties", NULL },
{ SPA_CONTROL_Midi, SPA_TYPE_Int, SPA_TYPE_INFO_CONTROL_BASE "Midi", NULL },
{ 0, 0, NULL, NULL },
};
#ifdef __cplusplus

View file

@ -36,51 +36,51 @@ extern "C" {
#define SPA_TYPE_INFO_MONITOR_EVENT_BASE SPA_TYPE_INFO_MonitorEvent ":"
static const struct spa_type_info spa_type_monitor_event_id[] = {
{ SPA_MONITOR_EVENT_Added, SPA_TYPE_INFO_MONITOR_EVENT_BASE "Added", SPA_TYPE_Int, NULL },
{ SPA_MONITOR_EVENT_Removed, SPA_TYPE_INFO_MONITOR_EVENT_BASE "Removed", SPA_TYPE_Int, NULL },
{ SPA_MONITOR_EVENT_Changed, SPA_TYPE_INFO_MONITOR_EVENT_BASE "Changed", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_MONITOR_EVENT_Added, SPA_TYPE_Int, SPA_TYPE_INFO_MONITOR_EVENT_BASE "Added", NULL },
{ SPA_MONITOR_EVENT_Removed, SPA_TYPE_Int, SPA_TYPE_INFO_MONITOR_EVENT_BASE "Removed", NULL },
{ SPA_MONITOR_EVENT_Changed, SPA_TYPE_Int, SPA_TYPE_INFO_MONITOR_EVENT_BASE "Changed", NULL },
{ 0, 0, NULL, NULL },
};
static const struct spa_type_info spa_type_monitor_event[] = {
{ 0, SPA_TYPE_INFO_MONITOR_EVENT_BASE, SPA_TYPE_Id, spa_type_monitor_event_id },
{ 0, NULL, 0, NULL },
{ 0, SPA_TYPE_Id, SPA_TYPE_INFO_MONITOR_EVENT_BASE, spa_type_monitor_event_id },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_MonitorItemFlags SPA_TYPE_INFO_FLAGS_BASE "MonitorItemFlags"
#define SPA_TYPE_INFO_MONITOR_ITEM_FLAGS_BASE SPA_TYPE_INFO_MonitorItemFlags ":"
static const struct spa_type_info spa_type_monitor_item_flags[] = {
{ SPA_MONITOR_ITEM_FLAG_NONE, SPA_TYPE_INFO_MONITOR_ITEM_FLAGS_BASE "none", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_MONITOR_ITEM_FLAG_NONE, SPA_TYPE_Int, SPA_TYPE_INFO_MONITOR_ITEM_FLAGS_BASE "none", NULL },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_MonitorItemState SPA_TYPE_INFO_ENUM_BASE "MonitorItemState"
#define SPA_TYPE_INFO_MONITOR_ITEM_STATE_BASE SPA_TYPE_INFO_MonitorItemState ":"
static const struct spa_type_info spa_type_monitor_item_state[] = {
{ SPA_MONITOR_ITEM_STATE_Available, SPA_TYPE_INFO_MONITOR_ITEM_STATE_BASE "Available", SPA_TYPE_Int, NULL },
{ SPA_MONITOR_ITEM_STATE_Disabled, SPA_TYPE_INFO_MONITOR_ITEM_STATE_BASE "Disabled", SPA_TYPE_Int, NULL },
{ SPA_MONITOR_ITEM_STATE_Unavailable, SPA_TYPE_INFO_MONITOR_ITEM_STATE_BASE "Unavailable", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_MONITOR_ITEM_STATE_Available, SPA_TYPE_Int, SPA_TYPE_INFO_MONITOR_ITEM_STATE_BASE "Available", NULL },
{ SPA_MONITOR_ITEM_STATE_Disabled, SPA_TYPE_Int, SPA_TYPE_INFO_MONITOR_ITEM_STATE_BASE "Disabled", NULL },
{ SPA_MONITOR_ITEM_STATE_Unavailable, SPA_TYPE_Int, SPA_TYPE_INFO_MONITOR_ITEM_STATE_BASE "Unavailable", NULL },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_MonitorItem SPA_TYPE_INFO_OBJECT_BASE "MonitorItem"
#define SPA_TYPE_INFO_MONITOR_ITEM_BASE SPA_TYPE_INFO_MonitorItem ":"
static const struct spa_type_info spa_type_monitor_item[] = {
{ SPA_MONITOR_ITEM_START, SPA_TYPE_INFO_MONITOR_ITEM_BASE, SPA_TYPE_Int, NULL },
{ SPA_MONITOR_ITEM_id, SPA_TYPE_INFO_MONITOR_ITEM_BASE "id", SPA_TYPE_String, NULL },
{ SPA_MONITOR_ITEM_flags, SPA_TYPE_INFO_MONITOR_ITEM_BASE "flags", SPA_TYPE_Id,
{ SPA_MONITOR_ITEM_START, SPA_TYPE_Int, SPA_TYPE_INFO_MONITOR_ITEM_BASE, NULL },
{ SPA_MONITOR_ITEM_id, SPA_TYPE_String, SPA_TYPE_INFO_MONITOR_ITEM_BASE "id", NULL },
{ SPA_MONITOR_ITEM_flags, SPA_TYPE_Id, SPA_TYPE_INFO_MONITOR_ITEM_BASE "flags",
spa_type_monitor_item_flags },
{ SPA_MONITOR_ITEM_state, SPA_TYPE_INFO_MONITOR_ITEM_BASE "state", SPA_TYPE_Id,
{ SPA_MONITOR_ITEM_state, SPA_TYPE_Id, SPA_TYPE_INFO_MONITOR_ITEM_BASE "state",
spa_type_monitor_item_state },
{ SPA_MONITOR_ITEM_name, SPA_TYPE_INFO_MONITOR_ITEM_BASE "name", SPA_TYPE_String, NULL },
{ SPA_MONITOR_ITEM_class, SPA_TYPE_INFO_MONITOR_ITEM_BASE "class", SPA_TYPE_String, NULL },
{ SPA_MONITOR_ITEM_info, SPA_TYPE_INFO_MONITOR_ITEM_BASE "info", SPA_TYPE_Pod, NULL },
{ SPA_MONITOR_ITEM_factory, SPA_TYPE_INFO_MONITOR_ITEM_BASE "factory", SPA_TYPE_Pointer, NULL },
{ SPA_MONITOR_ITEM_type, SPA_TYPE_INFO_MONITOR_ITEM_BASE "type", SPA_TYPE_Id, NULL },
{ 0, NULL, 0, NULL },
{ SPA_MONITOR_ITEM_name, SPA_TYPE_String, SPA_TYPE_INFO_MONITOR_ITEM_BASE "name", NULL },
{ SPA_MONITOR_ITEM_class, SPA_TYPE_String, SPA_TYPE_INFO_MONITOR_ITEM_BASE "class", NULL },
{ SPA_MONITOR_ITEM_info, SPA_TYPE_Pod, SPA_TYPE_INFO_MONITOR_ITEM_BASE "info", NULL },
{ SPA_MONITOR_ITEM_factory, SPA_TYPE_Pointer, SPA_TYPE_INFO_MONITOR_ITEM_BASE "factory", NULL },
{ SPA_MONITOR_ITEM_type, SPA_TYPE_Id, SPA_TYPE_INFO_MONITOR_ITEM_BASE "type", NULL },
{ 0, 0, NULL, NULL },
};
#ifdef __cplusplus

View file

@ -39,51 +39,51 @@ extern "C" {
#define SPA_TYPE_INFO_IO_BASE SPA_TYPE_INFO_IO ":"
static const struct spa_type_info spa_type_io[] = {
{ SPA_IO_Invalid, SPA_TYPE_INFO_IO_BASE "Invalid", SPA_TYPE_Int, NULL },
{ SPA_IO_Buffers, SPA_TYPE_INFO_IO_BASE "Buffers", SPA_TYPE_Int, NULL },
{ SPA_IO_Range, SPA_TYPE_INFO_IO_BASE "Range", SPA_TYPE_Int, NULL },
{ SPA_IO_Clock, SPA_TYPE_INFO_IO_BASE "Clock", SPA_TYPE_Int, NULL },
{ SPA_IO_Latency, SPA_TYPE_INFO_IO_BASE "Latency", SPA_TYPE_Int, NULL },
{ SPA_IO_Control, SPA_TYPE_INFO_IO_BASE "Control", SPA_TYPE_Int, NULL },
{ SPA_IO_Notify, SPA_TYPE_INFO_IO_BASE "Notify", SPA_TYPE_Int, NULL },
{ SPA_IO_Position, SPA_TYPE_INFO_IO_BASE "Position", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_IO_Invalid, SPA_TYPE_Int, SPA_TYPE_INFO_IO_BASE "Invalid", NULL },
{ SPA_IO_Buffers, SPA_TYPE_Int, SPA_TYPE_INFO_IO_BASE "Buffers", NULL },
{ SPA_IO_Range, SPA_TYPE_Int, SPA_TYPE_INFO_IO_BASE "Range", NULL },
{ SPA_IO_Clock, SPA_TYPE_Int, SPA_TYPE_INFO_IO_BASE "Clock", NULL },
{ SPA_IO_Latency, SPA_TYPE_Int, SPA_TYPE_INFO_IO_BASE "Latency", NULL },
{ SPA_IO_Control, SPA_TYPE_Int, SPA_TYPE_INFO_IO_BASE "Control", NULL },
{ SPA_IO_Notify, SPA_TYPE_Int, SPA_TYPE_INFO_IO_BASE "Notify", NULL },
{ SPA_IO_Position, SPA_TYPE_Int, SPA_TYPE_INFO_IO_BASE "Position", NULL },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_NodeEvent SPA_TYPE_INFO_EVENT_BASE "Node"
#define SPA_TYPE_INFO_NODE_EVENT_BASE SPA_TYPE_INFO_NodeEvent ":"
static const struct spa_type_info spa_type_node_event_id[] = {
{ SPA_NODE_EVENT_Error, SPA_TYPE_INFO_NODE_EVENT_BASE "Error", SPA_TYPE_Int, NULL },
{ SPA_NODE_EVENT_Buffering, SPA_TYPE_INFO_NODE_EVENT_BASE "Buffering", SPA_TYPE_Int, NULL },
{ SPA_NODE_EVENT_RequestRefresh, SPA_TYPE_INFO_NODE_EVENT_BASE "RequestRefresh", SPA_TYPE_Int, NULL },
{ SPA_NODE_EVENT_PortsChanged, SPA_TYPE_INFO_NODE_EVENT_BASE "PortsChanged", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_NODE_EVENT_Error, SPA_TYPE_Int, SPA_TYPE_INFO_NODE_EVENT_BASE "Error", NULL },
{ SPA_NODE_EVENT_Buffering, SPA_TYPE_Int, SPA_TYPE_INFO_NODE_EVENT_BASE "Buffering", NULL },
{ SPA_NODE_EVENT_RequestRefresh, SPA_TYPE_Int, SPA_TYPE_INFO_NODE_EVENT_BASE "RequestRefresh", NULL },
{ SPA_NODE_EVENT_PortsChanged, SPA_TYPE_Int, SPA_TYPE_INFO_NODE_EVENT_BASE "PortsChanged", NULL },
{ 0, 0, NULL, NULL },
};
static const struct spa_type_info spa_type_node_event[] = {
{ 0, SPA_TYPE_INFO_NODE_EVENT_BASE, SPA_TYPE_Id, spa_type_node_event_id },
{ 0, NULL, 0, NULL },
{ 0, SPA_TYPE_Id, SPA_TYPE_INFO_NODE_EVENT_BASE, spa_type_node_event_id },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_NodeCommand SPA_TYPE_INFO_COMMAND_BASE "Node"
#define SPA_TYPE_INFO_NODE_COMMAND_BASE SPA_TYPE_INFO_NodeCommand ":"
static const struct spa_type_info spa_type_node_command_id[] = {
{ SPA_NODE_COMMAND_Suspend, SPA_TYPE_INFO_NODE_COMMAND_BASE "Suspend", SPA_TYPE_Int, NULL },
{ SPA_NODE_COMMAND_Pause, SPA_TYPE_INFO_NODE_COMMAND_BASE "Pause", SPA_TYPE_Int, NULL },
{ SPA_NODE_COMMAND_Start, SPA_TYPE_INFO_NODE_COMMAND_BASE "Start", SPA_TYPE_Int, NULL },
{ SPA_NODE_COMMAND_Enable, SPA_TYPE_INFO_NODE_COMMAND_BASE "Enable", SPA_TYPE_Int, NULL },
{ SPA_NODE_COMMAND_Disable, SPA_TYPE_INFO_NODE_COMMAND_BASE "Disable", SPA_TYPE_Int, NULL },
{ SPA_NODE_COMMAND_Flush, SPA_TYPE_INFO_NODE_COMMAND_BASE "Flush", SPA_TYPE_Int, NULL },
{ SPA_NODE_COMMAND_Drain, SPA_TYPE_INFO_NODE_COMMAND_BASE "Drain", SPA_TYPE_Int, NULL },
{ SPA_NODE_COMMAND_Marker, SPA_TYPE_INFO_NODE_COMMAND_BASE "Marker", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_NODE_COMMAND_Suspend, SPA_TYPE_Int, SPA_TYPE_INFO_NODE_COMMAND_BASE "Suspend", NULL },
{ SPA_NODE_COMMAND_Pause, SPA_TYPE_Int, SPA_TYPE_INFO_NODE_COMMAND_BASE "Pause", NULL },
{ SPA_NODE_COMMAND_Start, SPA_TYPE_Int, SPA_TYPE_INFO_NODE_COMMAND_BASE "Start", NULL },
{ SPA_NODE_COMMAND_Enable, SPA_TYPE_Int, SPA_TYPE_INFO_NODE_COMMAND_BASE "Enable", NULL },
{ SPA_NODE_COMMAND_Disable, SPA_TYPE_Int, SPA_TYPE_INFO_NODE_COMMAND_BASE "Disable", NULL },
{ SPA_NODE_COMMAND_Flush, SPA_TYPE_Int, SPA_TYPE_INFO_NODE_COMMAND_BASE "Flush", NULL },
{ SPA_NODE_COMMAND_Drain, SPA_TYPE_Int, SPA_TYPE_INFO_NODE_COMMAND_BASE "Drain", NULL },
{ SPA_NODE_COMMAND_Marker, SPA_TYPE_Int, SPA_TYPE_INFO_NODE_COMMAND_BASE "Marker", NULL },
{ 0, 0, NULL, NULL },
};
static const struct spa_type_info spa_type_node_command[] = {
{ 0, SPA_TYPE_INFO_NODE_COMMAND_BASE, SPA_TYPE_Id, spa_type_node_command_id },
{ 0, NULL, 0, NULL },
{ 0, SPA_TYPE_Id, SPA_TYPE_INFO_NODE_COMMAND_BASE, spa_type_node_command_id },
{ 0, 0, NULL, NULL },
};
#ifdef __cplusplus

View file

@ -35,102 +35,102 @@ extern "C" {
#define SPA_TYPE_INFO_AUDIO_FORMAT_BASE SPA_TYPE_INFO_AudioFormat ":"
static const struct spa_type_info spa_type_audio_format[] = {
{ SPA_AUDIO_FORMAT_UNKNOWN, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "UNKNOWN", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_ENCODED, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "ENCODED", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S8, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S8", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U8, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U8", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S16_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S16_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U16_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U16LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U16_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U16BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S24_32_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S24_32_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U24_32_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24_32LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U24_32_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24_32BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S32_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S32LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S32_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S32BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U32_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U32LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U32_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U32BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S24_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S24_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U24_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U24_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S20_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S20LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S20_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S20BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U20_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U20LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U20_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U20BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S18_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S18LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S18_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S18BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U18_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U18LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U18_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U18BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_F32_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F32LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_F32_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F32BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_F64_LE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64LE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_F64_BE, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64BE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_UNKNOWN, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "UNKNOWN", NULL },
{ SPA_AUDIO_FORMAT_ENCODED, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "ENCODED", NULL },
{ SPA_AUDIO_FORMAT_S8, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S8", NULL },
{ SPA_AUDIO_FORMAT_U8, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U8", NULL },
{ SPA_AUDIO_FORMAT_S16_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16LE", NULL },
{ SPA_AUDIO_FORMAT_S16_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16BE", NULL },
{ SPA_AUDIO_FORMAT_U16_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U16LE", NULL },
{ SPA_AUDIO_FORMAT_U16_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U16BE", NULL },
{ SPA_AUDIO_FORMAT_S24_32_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32LE", NULL },
{ SPA_AUDIO_FORMAT_S24_32_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32BE", NULL },
{ SPA_AUDIO_FORMAT_U24_32_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24_32LE", NULL },
{ SPA_AUDIO_FORMAT_U24_32_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24_32BE", NULL },
{ SPA_AUDIO_FORMAT_S32_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S32LE", NULL },
{ SPA_AUDIO_FORMAT_S32_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S32BE", NULL },
{ SPA_AUDIO_FORMAT_U32_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U32LE", NULL },
{ SPA_AUDIO_FORMAT_U32_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U32BE", NULL },
{ SPA_AUDIO_FORMAT_S24_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24LE", NULL },
{ SPA_AUDIO_FORMAT_S24_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24BE", NULL },
{ SPA_AUDIO_FORMAT_U24_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24LE", NULL },
{ SPA_AUDIO_FORMAT_U24_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U24BE", NULL },
{ SPA_AUDIO_FORMAT_S20_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S20LE", NULL },
{ SPA_AUDIO_FORMAT_S20_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S20BE", NULL },
{ SPA_AUDIO_FORMAT_U20_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U20LE", NULL },
{ SPA_AUDIO_FORMAT_U20_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U20BE", NULL },
{ SPA_AUDIO_FORMAT_S18_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S18LE", NULL },
{ SPA_AUDIO_FORMAT_S18_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S18BE", NULL },
{ SPA_AUDIO_FORMAT_U18_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U18LE", NULL },
{ SPA_AUDIO_FORMAT_U18_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U18BE", NULL },
{ SPA_AUDIO_FORMAT_F32_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F32LE", NULL },
{ SPA_AUDIO_FORMAT_F32_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F32BE", NULL },
{ SPA_AUDIO_FORMAT_F64_LE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64LE", NULL },
{ SPA_AUDIO_FORMAT_F64_BE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64BE", NULL },
{ SPA_AUDIO_FORMAT_U8P, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U8P", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S16P, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16P", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S24_32P, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32P", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S32P, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S32P", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_S24P, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24P", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_F32P, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F32P", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_F64P, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64P", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FORMAT_U8P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "U8P", NULL },
{ SPA_AUDIO_FORMAT_S16P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S16P", NULL },
{ SPA_AUDIO_FORMAT_S24_32P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24_32P", NULL },
{ SPA_AUDIO_FORMAT_S32P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S32P", NULL },
{ SPA_AUDIO_FORMAT_S24P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "S24P", NULL },
{ SPA_AUDIO_FORMAT_F32P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F32P", NULL },
{ SPA_AUDIO_FORMAT_F64P, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FORMAT_BASE "F64P", NULL },
{ 0, NULL, 0, NULL },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_AudioFlags SPA_TYPE_INFO_FLAGS_BASE "AudioFlags"
#define SPA_TYPE_INFO_AUDIO_FLAGS_BASE SPA_TYPE_INFO_AudioFlags ":"
static const struct spa_type_info spa_type_audio_flags[] = {
{ SPA_AUDIO_FLAG_NONE, SPA_TYPE_INFO_AUDIO_FLAGS_BASE "none", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_FLAG_UNPOSITIONED, SPA_TYPE_INFO_AUDIO_FLAGS_BASE "unpositioned", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_AUDIO_FLAG_NONE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FLAGS_BASE "none", NULL },
{ SPA_AUDIO_FLAG_UNPOSITIONED, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_FLAGS_BASE "unpositioned", NULL },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_AudioChannel SPA_TYPE_INFO_ENUM_BASE "AudioChannel"
#define SPA_TYPE_INFO_AUDIO_CHANNEL_BASE SPA_TYPE_INFO_AudioChannel ":"
static const struct spa_type_info spa_type_audio_channel[] = {
{ SPA_AUDIO_CHANNEL_UNKNOWN, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "UNK", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_NA, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "NA", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_MONO, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "MONO", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_FL, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FL", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_FR, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FR", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_FC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FC", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_LFE, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "LFE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_SL, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "SL", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_SR, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "SR", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_FLC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FLC", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_FRC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FRC", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_RC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RC", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_RL, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RL", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_RR, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RR", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_TC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TC", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_TFL, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFL", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_TFC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFC", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_TFR, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFR", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_TRL, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TRL", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_TRC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TRC", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_TRR, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TRR", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_RLC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RLC", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_RRC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RRC", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_FLW, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FLW", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_FRW, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FRW", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_LFE2, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "LFE2", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_FLH, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FLH", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_FCH, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FCH", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_FRH, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FRH", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_TFLC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFLC", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_TFRC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFRC", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_TSL, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TSL", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_TSR, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TSR", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_LLFE, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "LLFR", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_RLFE, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RLFE", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_BC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "BC", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_BLC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "BLC", SPA_TYPE_Int, NULL },
{ SPA_AUDIO_CHANNEL_BRC, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "BRC", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_AUDIO_CHANNEL_UNKNOWN, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "UNK", NULL },
{ SPA_AUDIO_CHANNEL_NA, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "NA", NULL },
{ SPA_AUDIO_CHANNEL_MONO, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "MONO", NULL },
{ SPA_AUDIO_CHANNEL_FL, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FL", NULL },
{ SPA_AUDIO_CHANNEL_FR, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FR", NULL },
{ SPA_AUDIO_CHANNEL_FC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FC", NULL },
{ SPA_AUDIO_CHANNEL_LFE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "LFE", NULL },
{ SPA_AUDIO_CHANNEL_SL, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "SL", NULL },
{ SPA_AUDIO_CHANNEL_SR, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "SR", NULL },
{ SPA_AUDIO_CHANNEL_FLC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FLC", NULL },
{ SPA_AUDIO_CHANNEL_FRC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FRC", NULL },
{ SPA_AUDIO_CHANNEL_RC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RC", NULL },
{ SPA_AUDIO_CHANNEL_RL, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RL", NULL },
{ SPA_AUDIO_CHANNEL_RR, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RR", NULL },
{ SPA_AUDIO_CHANNEL_TC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TC", NULL },
{ SPA_AUDIO_CHANNEL_TFL, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFL", NULL },
{ SPA_AUDIO_CHANNEL_TFC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFC", NULL },
{ SPA_AUDIO_CHANNEL_TFR, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFR", NULL },
{ SPA_AUDIO_CHANNEL_TRL, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TRL", NULL },
{ SPA_AUDIO_CHANNEL_TRC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TRC", NULL },
{ SPA_AUDIO_CHANNEL_TRR, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TRR", NULL },
{ SPA_AUDIO_CHANNEL_RLC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RLC", NULL },
{ SPA_AUDIO_CHANNEL_RRC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RRC", NULL },
{ SPA_AUDIO_CHANNEL_FLW, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FLW", NULL },
{ SPA_AUDIO_CHANNEL_FRW, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FRW", NULL },
{ SPA_AUDIO_CHANNEL_LFE2, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "LFE2", NULL },
{ SPA_AUDIO_CHANNEL_FLH, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FLH", NULL },
{ SPA_AUDIO_CHANNEL_FCH, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FCH", NULL },
{ SPA_AUDIO_CHANNEL_FRH, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "FRH", NULL },
{ SPA_AUDIO_CHANNEL_TFLC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFLC", NULL },
{ SPA_AUDIO_CHANNEL_TFRC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TFRC", NULL },
{ SPA_AUDIO_CHANNEL_TSL, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TSL", NULL },
{ SPA_AUDIO_CHANNEL_TSR, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "TSR", NULL },
{ SPA_AUDIO_CHANNEL_LLFE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "LLFR", NULL },
{ SPA_AUDIO_CHANNEL_RLFE, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "RLFE", NULL },
{ SPA_AUDIO_CHANNEL_BC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "BC", NULL },
{ SPA_AUDIO_CHANNEL_BLC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "BLC", NULL },
{ SPA_AUDIO_CHANNEL_BRC, SPA_TYPE_Int, SPA_TYPE_INFO_AUDIO_CHANNEL_BASE "BRC", NULL },
{ 0, 0, NULL, NULL },
};
#ifdef __cplusplus

View file

@ -40,17 +40,17 @@ extern "C" {
#define SPA_TYPE_INFO_PARAM_ID_BASE SPA_TYPE_INFO_ParamId ":"
static const struct spa_type_info spa_type_param[] = {
{ SPA_PARAM_Invalid, SPA_TYPE_INFO_PARAM_ID_BASE "Invalid", SPA_TYPE_Int, NULL },
{ SPA_PARAM_List, SPA_TYPE_INFO_PARAM_ID_BASE "List", SPA_TYPE_Int, NULL },
{ SPA_PARAM_PropInfo, SPA_TYPE_INFO_PARAM_ID_BASE "PropInfo", SPA_TYPE_Int, NULL },
{ SPA_PARAM_Props, SPA_TYPE_INFO_PARAM_ID_BASE "Props", SPA_TYPE_Int, NULL },
{ SPA_PARAM_EnumFormat, SPA_TYPE_INFO_PARAM_ID_BASE "EnumFormat", SPA_TYPE_Int, NULL },
{ SPA_PARAM_Format, SPA_TYPE_INFO_PARAM_ID_BASE "Format", SPA_TYPE_Int, NULL },
{ SPA_PARAM_Buffers, SPA_TYPE_INFO_PARAM_ID_BASE "Buffers", SPA_TYPE_Int, NULL },
{ SPA_PARAM_Meta, SPA_TYPE_INFO_PARAM_ID_BASE "Meta", SPA_TYPE_Int, NULL },
{ SPA_PARAM_IO, SPA_TYPE_INFO_PARAM_ID_BASE "IO", SPA_TYPE_Int, NULL },
{ SPA_PARAM_Profile, SPA_TYPE_INFO_PARAM_ID_BASE "Profile", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_PARAM_Invalid, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "Invalid", NULL },
{ SPA_PARAM_List, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "List", NULL },
{ SPA_PARAM_PropInfo, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "PropInfo", NULL },
{ SPA_PARAM_Props, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "Props", NULL },
{ SPA_PARAM_EnumFormat, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "EnumFormat", NULL },
{ SPA_PARAM_Format, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "Format", NULL },
{ SPA_PARAM_Buffers, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "Buffers", NULL },
{ SPA_PARAM_Meta, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "Meta", NULL },
{ SPA_PARAM_IO, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "IO", NULL },
{ SPA_PARAM_Profile, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ID_BASE "Profile", NULL },
{ 0, 0, NULL, NULL },
};
/* base for parameter objects */
@ -62,47 +62,47 @@ static const struct spa_type_info spa_type_param[] = {
#define SPA_TYPE_INFO_PARAM_LIST_BASE SPA_TYPE_INFO_PARAM_List ":"
static const struct spa_type_info spa_type_param_list[] = {
{ SPA_PARAM_LIST_START, SPA_TYPE_INFO_PARAM_LIST_BASE, SPA_TYPE_Id, spa_type_param },
{ SPA_PARAM_LIST_id, SPA_TYPE_INFO_PARAM_LIST_BASE "id", SPA_TYPE_Id, spa_type_param },
{ 0, NULL, 0, NULL },
{ SPA_PARAM_LIST_START, SPA_TYPE_Id, SPA_TYPE_INFO_PARAM_LIST_BASE, spa_type_param },
{ SPA_PARAM_LIST_id, SPA_TYPE_Id, SPA_TYPE_INFO_PARAM_LIST_BASE "id", spa_type_param },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_Props SPA_TYPE_INFO_PARAM_BASE "Props"
#define SPA_TYPE_INFO_PROPS_BASE SPA_TYPE_INFO_Props ":"
static const struct spa_type_info spa_type_props[] = {
{ SPA_PROP_START, SPA_TYPE_INFO_PROPS_BASE, SPA_TYPE_Id, spa_type_param, },
{ SPA_PROP_unknown, SPA_TYPE_INFO_PROPS_BASE "unknown", SPA_TYPE_None, NULL },
{ SPA_PROP_device, SPA_TYPE_INFO_PROPS_BASE "device", SPA_TYPE_String, NULL },
{ SPA_PROP_deviceName, SPA_TYPE_INFO_PROPS_BASE "deviceName", SPA_TYPE_String, NULL },
{ SPA_PROP_deviceFd, SPA_TYPE_INFO_PROPS_BASE "deviceFd", SPA_TYPE_Fd, NULL },
{ SPA_PROP_card, SPA_TYPE_INFO_PROPS_BASE "card", SPA_TYPE_String, NULL },
{ SPA_PROP_cardName, SPA_TYPE_INFO_PROPS_BASE "cardName", SPA_TYPE_String, NULL },
{ SPA_PROP_minLatency, SPA_TYPE_INFO_PROPS_BASE "minLatency", SPA_TYPE_Int, NULL },
{ SPA_PROP_maxLatency, SPA_TYPE_INFO_PROPS_BASE "maxLatency", SPA_TYPE_Int, NULL },
{ SPA_PROP_periods, SPA_TYPE_INFO_PROPS_BASE "periods", SPA_TYPE_Int, NULL },
{ SPA_PROP_periodSize, SPA_TYPE_INFO_PROPS_BASE "periodSize", SPA_TYPE_Int, NULL },
{ SPA_PROP_periodEvent, SPA_TYPE_INFO_PROPS_BASE "periodEvent", SPA_TYPE_Bool, NULL },
{ SPA_PROP_live, SPA_TYPE_INFO_PROPS_BASE "live", SPA_TYPE_Bool, NULL },
{ SPA_PROP_rate, SPA_TYPE_INFO_PROPS_BASE "rate", SPA_TYPE_Double, NULL },
{ SPA_PROP_START, SPA_TYPE_Id, SPA_TYPE_INFO_PROPS_BASE, spa_type_param, },
{ SPA_PROP_unknown, SPA_TYPE_None, SPA_TYPE_INFO_PROPS_BASE "unknown", NULL },
{ SPA_PROP_device, SPA_TYPE_String, SPA_TYPE_INFO_PROPS_BASE "device", NULL },
{ SPA_PROP_deviceName, SPA_TYPE_String, SPA_TYPE_INFO_PROPS_BASE "deviceName", NULL },
{ SPA_PROP_deviceFd, SPA_TYPE_Fd, SPA_TYPE_INFO_PROPS_BASE "deviceFd", NULL },
{ SPA_PROP_card, SPA_TYPE_String, SPA_TYPE_INFO_PROPS_BASE "card", NULL },
{ SPA_PROP_cardName, SPA_TYPE_String, SPA_TYPE_INFO_PROPS_BASE "cardName", NULL },
{ SPA_PROP_minLatency, SPA_TYPE_Int, SPA_TYPE_INFO_PROPS_BASE "minLatency", NULL },
{ SPA_PROP_maxLatency, SPA_TYPE_Int, SPA_TYPE_INFO_PROPS_BASE "maxLatency", NULL },
{ SPA_PROP_periods, SPA_TYPE_Int, SPA_TYPE_INFO_PROPS_BASE "periods", NULL },
{ SPA_PROP_periodSize, SPA_TYPE_Int, SPA_TYPE_INFO_PROPS_BASE "periodSize", NULL },
{ SPA_PROP_periodEvent, SPA_TYPE_Bool, SPA_TYPE_INFO_PROPS_BASE "periodEvent", NULL },
{ SPA_PROP_live, SPA_TYPE_Bool, SPA_TYPE_INFO_PROPS_BASE "live", NULL },
{ SPA_PROP_rate, SPA_TYPE_Double, SPA_TYPE_INFO_PROPS_BASE "rate", NULL },
{ SPA_PROP_waveType, SPA_TYPE_INFO_PROPS_BASE "waveType", SPA_TYPE_Id, NULL },
{ SPA_PROP_frequency, SPA_TYPE_INFO_PROPS_BASE "frequency", SPA_TYPE_Int, NULL },
{ SPA_PROP_volume, SPA_TYPE_INFO_PROPS_BASE "volume", SPA_TYPE_Float, NULL },
{ SPA_PROP_mute, SPA_TYPE_INFO_PROPS_BASE "mute", SPA_TYPE_Bool, NULL },
{ SPA_PROP_patternType, SPA_TYPE_INFO_PROPS_BASE "patternType", SPA_TYPE_Id, NULL },
{ SPA_PROP_ditherType, SPA_TYPE_INFO_PROPS_BASE "ditherType", SPA_TYPE_Id, NULL },
{ SPA_PROP_truncate, SPA_TYPE_INFO_PROPS_BASE "truncate", SPA_TYPE_Bool, NULL },
{ SPA_PROP_waveType, SPA_TYPE_Id, SPA_TYPE_INFO_PROPS_BASE "waveType", NULL },
{ SPA_PROP_frequency, SPA_TYPE_Int, SPA_TYPE_INFO_PROPS_BASE "frequency", NULL },
{ SPA_PROP_volume, SPA_TYPE_Float, SPA_TYPE_INFO_PROPS_BASE "volume", NULL },
{ SPA_PROP_mute, SPA_TYPE_Bool, SPA_TYPE_INFO_PROPS_BASE "mute", NULL },
{ SPA_PROP_patternType, SPA_TYPE_Id, SPA_TYPE_INFO_PROPS_BASE "patternType", NULL },
{ SPA_PROP_ditherType, SPA_TYPE_Id, SPA_TYPE_INFO_PROPS_BASE "ditherType", NULL },
{ SPA_PROP_truncate, SPA_TYPE_Bool, SPA_TYPE_INFO_PROPS_BASE "truncate", NULL },
{ SPA_PROP_brightness, SPA_TYPE_INFO_PROPS_BASE "brightness", SPA_TYPE_Int, NULL },
{ SPA_PROP_contrast, SPA_TYPE_INFO_PROPS_BASE "contrast", SPA_TYPE_Int, NULL },
{ SPA_PROP_saturation, SPA_TYPE_INFO_PROPS_BASE "saturation", SPA_TYPE_Int, NULL },
{ SPA_PROP_hue, SPA_TYPE_INFO_PROPS_BASE "hue", SPA_TYPE_Int, NULL },
{ SPA_PROP_gamma, SPA_TYPE_INFO_PROPS_BASE "gamma", SPA_TYPE_Int, NULL },
{ SPA_PROP_exposure, SPA_TYPE_INFO_PROPS_BASE "exposure", SPA_TYPE_Int, NULL },
{ SPA_PROP_gain, SPA_TYPE_INFO_PROPS_BASE "gain", SPA_TYPE_Int, NULL },
{ SPA_PROP_sharpness, SPA_TYPE_INFO_PROPS_BASE "sharpness", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_PROP_brightness, SPA_TYPE_Int, SPA_TYPE_INFO_PROPS_BASE "brightness", NULL },
{ SPA_PROP_contrast, SPA_TYPE_Int, SPA_TYPE_INFO_PROPS_BASE "contrast", NULL },
{ SPA_PROP_saturation, SPA_TYPE_Int, SPA_TYPE_INFO_PROPS_BASE "saturation", NULL },
{ SPA_PROP_hue, SPA_TYPE_Int, SPA_TYPE_INFO_PROPS_BASE "hue", NULL },
{ SPA_PROP_gamma, SPA_TYPE_Int, SPA_TYPE_INFO_PROPS_BASE "gamma", NULL },
{ SPA_PROP_exposure, SPA_TYPE_Int, SPA_TYPE_INFO_PROPS_BASE "exposure", NULL },
{ SPA_PROP_gain, SPA_TYPE_Int, SPA_TYPE_INFO_PROPS_BASE "gain", NULL },
{ SPA_PROP_sharpness, SPA_TYPE_Int, SPA_TYPE_INFO_PROPS_BASE "sharpness", NULL },
{ 0, 0, NULL, NULL },
};
/** Enum Property info */
@ -110,22 +110,22 @@ static const struct spa_type_info spa_type_props[] = {
#define SPA_TYPE_INFO_PROP_INFO_BASE SPA_TYPE_INFO_PropInfo ":"
static const struct spa_type_info spa_type_prop_info[] = {
{ SPA_PROP_INFO_START, SPA_TYPE_INFO_PROP_INFO_BASE, SPA_TYPE_Id, spa_type_param, },
{ SPA_PROP_INFO_id, SPA_TYPE_INFO_PROP_INFO_BASE "id", SPA_TYPE_Id, spa_type_props },
{ SPA_PROP_INFO_name, SPA_TYPE_INFO_PROP_INFO_BASE "name", SPA_TYPE_String, NULL },
{ SPA_PROP_INFO_type, SPA_TYPE_INFO_PROP_INFO_BASE "type", SPA_TYPE_Pod, NULL },
{ SPA_PROP_INFO_labels, SPA_TYPE_INFO_PROP_INFO_BASE "labels", SPA_TYPE_Struct, NULL },
{ 0, NULL, 0, NULL },
{ SPA_PROP_INFO_START, SPA_TYPE_Id, SPA_TYPE_INFO_PROP_INFO_BASE, spa_type_param, },
{ SPA_PROP_INFO_id, SPA_TYPE_Id, SPA_TYPE_INFO_PROP_INFO_BASE "id", spa_type_props },
{ SPA_PROP_INFO_name, SPA_TYPE_String, SPA_TYPE_INFO_PROP_INFO_BASE "name", NULL },
{ SPA_PROP_INFO_type, SPA_TYPE_Pod, SPA_TYPE_INFO_PROP_INFO_BASE "type", NULL },
{ SPA_PROP_INFO_labels, SPA_TYPE_Struct, SPA_TYPE_INFO_PROP_INFO_BASE "labels", NULL },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_PARAM_Meta SPA_TYPE_INFO_PARAM_BASE "Meta"
#define SPA_TYPE_INFO_PARAM_META_BASE SPA_TYPE_INFO_PARAM_Meta ":"
static const struct spa_type_info spa_type_param_meta[] = {
{ SPA_PARAM_META_START, SPA_TYPE_INFO_PARAM_META_BASE, SPA_TYPE_Id, spa_type_param },
{ SPA_PARAM_META_type, SPA_TYPE_INFO_PARAM_META_BASE "type", SPA_TYPE_Id, spa_type_meta_type },
{ SPA_PARAM_META_size, SPA_TYPE_INFO_PARAM_META_BASE "size", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_PARAM_META_START, SPA_TYPE_Id, SPA_TYPE_INFO_PARAM_META_BASE, spa_type_param },
{ SPA_PARAM_META_type, SPA_TYPE_Id, SPA_TYPE_INFO_PARAM_META_BASE "type", spa_type_meta_type },
{ SPA_PARAM_META_size, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_META_BASE "size", NULL },
{ 0, 0, NULL, NULL },
};
/** Base for parameters that describe IO areas to exchange data,
@ -135,10 +135,10 @@ static const struct spa_type_info spa_type_param_meta[] = {
#define SPA_TYPE_INFO_PARAM_IO_BASE SPA_TYPE_INFO_PARAM_IO ":"
static const struct spa_type_info spa_type_param_io[] = {
{ SPA_PARAM_IO_START, SPA_TYPE_INFO_PARAM_IO_BASE, SPA_TYPE_Id, spa_type_param, },
{ SPA_PARAM_IO_id, SPA_TYPE_INFO_PARAM_IO_BASE "id", SPA_TYPE_Id, spa_type_io },
{ SPA_PARAM_IO_size, SPA_TYPE_INFO_PARAM_IO_BASE "size", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_PARAM_IO_START, SPA_TYPE_Id, SPA_TYPE_INFO_PARAM_IO_BASE, spa_type_param, },
{ SPA_PARAM_IO_id, SPA_TYPE_Id, SPA_TYPE_INFO_PARAM_IO_BASE "id", spa_type_io },
{ SPA_PARAM_IO_size, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_IO_BASE "size", NULL },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_Format SPA_TYPE_INFO_PARAM_BASE "Format"
@ -151,53 +151,53 @@ static const struct spa_type_info spa_type_param_io[] = {
#include <spa/param/video/type-info.h>
static const struct spa_type_info spa_type_media_type[] = {
{ SPA_MEDIA_TYPE_unknown, SPA_TYPE_INFO_MEDIA_TYPE_BASE "unknown", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_TYPE_audio, SPA_TYPE_INFO_MEDIA_TYPE_BASE "audio", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_TYPE_video, SPA_TYPE_INFO_MEDIA_TYPE_BASE "video", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_TYPE_image, SPA_TYPE_INFO_MEDIA_TYPE_BASE "image", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_TYPE_binary, SPA_TYPE_INFO_MEDIA_TYPE_BASE "binary", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_TYPE_stream, SPA_TYPE_INFO_MEDIA_TYPE_BASE "stream", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_MEDIA_TYPE_unknown, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_TYPE_BASE "unknown", NULL },
{ SPA_MEDIA_TYPE_audio, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_TYPE_BASE "audio", NULL },
{ SPA_MEDIA_TYPE_video, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_TYPE_BASE "video", NULL },
{ SPA_MEDIA_TYPE_image, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_TYPE_BASE "image", NULL },
{ SPA_MEDIA_TYPE_binary, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_TYPE_BASE "binary", NULL },
{ SPA_MEDIA_TYPE_stream, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_TYPE_BASE "stream", NULL },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_MediaSubtype SPA_TYPE_INFO_ENUM_BASE "MediaSubtype"
#define SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE SPA_TYPE_INFO_MediaSubtype ":"
static const struct spa_type_info spa_type_media_subtype[] = {
{ SPA_MEDIA_SUBTYPE_unknown, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "unknown", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_unknown, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "unknown", NULL },
/* generic subtypes */
{ SPA_MEDIA_SUBTYPE_raw, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "raw", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_raw, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "raw", NULL },
/* audio subtypes */
{ SPA_MEDIA_SUBTYPE_mp3, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "mp3", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_aac, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "aac", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_vorbis, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "vorbis", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_wma, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "wma", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_ra, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "ra", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_sbc, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "sbc", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_adpcm, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "adpcm", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_g723, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "g723", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_g726, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "g726", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_g729, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "g729", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_amr, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "amr", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_gsm, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "gsm", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_mp3, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "mp3", NULL },
{ SPA_MEDIA_SUBTYPE_aac, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "aac", NULL },
{ SPA_MEDIA_SUBTYPE_vorbis, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "vorbis", NULL },
{ SPA_MEDIA_SUBTYPE_wma, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "wma", NULL },
{ SPA_MEDIA_SUBTYPE_ra, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "ra", NULL },
{ SPA_MEDIA_SUBTYPE_sbc, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "sbc", NULL },
{ SPA_MEDIA_SUBTYPE_adpcm, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "adpcm", NULL },
{ SPA_MEDIA_SUBTYPE_g723, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "g723", NULL },
{ SPA_MEDIA_SUBTYPE_g726, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "g726", NULL },
{ SPA_MEDIA_SUBTYPE_g729, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "g729", NULL },
{ SPA_MEDIA_SUBTYPE_amr, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "amr", NULL },
{ SPA_MEDIA_SUBTYPE_gsm, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "gsm", NULL },
/* video subtypes */
{ SPA_MEDIA_SUBTYPE_h264, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "h264", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_mjpg, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "mjpg", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_dv, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "dv", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_mpegts, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "mpegts", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_h263, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "h263", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_mpeg1, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "mpeg1", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_mpeg2, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "mpeg2", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_mpeg4, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "mpeg4", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_xvid, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "xvid", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_vc1, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "vc1", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_vp8, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "vp8", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_vp9, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "vp9", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_jpeg, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "jpeg", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_bayer, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "bayer", SPA_TYPE_Int, NULL },
{ SPA_MEDIA_SUBTYPE_h264, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "h264", NULL },
{ SPA_MEDIA_SUBTYPE_mjpg, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "mjpg", NULL },
{ SPA_MEDIA_SUBTYPE_dv, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "dv", NULL },
{ SPA_MEDIA_SUBTYPE_mpegts, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "mpegts", NULL },
{ SPA_MEDIA_SUBTYPE_h263, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "h263", NULL },
{ SPA_MEDIA_SUBTYPE_mpeg1, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "mpeg1", NULL },
{ SPA_MEDIA_SUBTYPE_mpeg2, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "mpeg2", NULL },
{ SPA_MEDIA_SUBTYPE_mpeg4, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "mpeg4", NULL },
{ SPA_MEDIA_SUBTYPE_xvid, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "xvid", NULL },
{ SPA_MEDIA_SUBTYPE_vc1, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "vc1", NULL },
{ SPA_MEDIA_SUBTYPE_vp8, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "vp8", NULL },
{ SPA_MEDIA_SUBTYPE_vp9, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "vp9", NULL },
{ SPA_MEDIA_SUBTYPE_jpeg, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "jpeg", NULL },
{ SPA_MEDIA_SUBTYPE_bayer, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "bayer", NULL },
{ SPA_MEDIA_SUBTYPE_midi, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "midi", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_MEDIA_SUBTYPE_midi, SPA_TYPE_Int, SPA_TYPE_INFO_MEDIA_SUBTYPE_BASE "midi", NULL },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_FormatAudio SPA_TYPE_INFO_FORMAT_BASE "Audio"
@ -210,42 +210,43 @@ static const struct spa_type_info spa_type_media_subtype[] = {
#define SPA_TYPE_INFO_FORMAT_VIDEO_H264_BASE SPA_TYPE_INFO_FORMAT_VIDEO_H264 ":"
static const struct spa_type_info spa_type_format[] = {
{ SPA_FORMAT_START, SPA_TYPE_INFO_FORMAT_BASE, SPA_TYPE_Id, spa_type_param, },
{ SPA_FORMAT_START, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_BASE, spa_type_param, },
{ SPA_FORMAT_mediaType, SPA_TYPE_INFO_FORMAT_BASE "mediaType", SPA_TYPE_Id,
{ SPA_FORMAT_mediaType, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_BASE "mediaType",
spa_type_media_type, },
{ SPA_FORMAT_mediaSubtype, SPA_TYPE_INFO_FORMAT_BASE "mediaSubtype", SPA_TYPE_Id,
{ SPA_FORMAT_mediaSubtype, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_BASE "mediaSubtype",
spa_type_media_subtype, },
{ SPA_FORMAT_AUDIO_format, SPA_TYPE_INFO_FORMAT_AUDIO_BASE "format", SPA_TYPE_Id,
{ SPA_FORMAT_AUDIO_format, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_AUDIO_BASE "format",
spa_type_audio_format },
{ SPA_FORMAT_AUDIO_flags, SPA_TYPE_INFO_FORMAT_AUDIO_BASE "flags", SPA_TYPE_Id,
{ SPA_FORMAT_AUDIO_flags, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_AUDIO_BASE "flags",
spa_type_audio_flags },
{ SPA_FORMAT_AUDIO_rate, SPA_TYPE_INFO_FORMAT_AUDIO_BASE "rate", SPA_TYPE_Int, NULL },
{ SPA_FORMAT_AUDIO_channels, SPA_TYPE_INFO_FORMAT_AUDIO_BASE "channels", SPA_TYPE_Int, NULL },
{ SPA_FORMAT_AUDIO_position, SPA_TYPE_INFO_FORMAT_AUDIO_BASE "position", SPA_TYPE_Id, spa_type_audio_channel },
{ SPA_FORMAT_AUDIO_rate, SPA_TYPE_Int, SPA_TYPE_INFO_FORMAT_AUDIO_BASE "rate", NULL },
{ SPA_FORMAT_AUDIO_channels, SPA_TYPE_Int, SPA_TYPE_INFO_FORMAT_AUDIO_BASE "channels", NULL },
{ SPA_FORMAT_AUDIO_position, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_AUDIO_BASE "position",
spa_type_audio_channel },
{ SPA_FORMAT_VIDEO_format, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "format", SPA_TYPE_Id,
{ SPA_FORMAT_VIDEO_format, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "format",
spa_type_video_format, },
{ SPA_FORMAT_VIDEO_size, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "size", SPA_TYPE_Rectangle, NULL },
{ SPA_FORMAT_VIDEO_framerate, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "framerate", SPA_TYPE_Fraction, NULL },
{ SPA_FORMAT_VIDEO_maxFramerate, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "maxFramerate", SPA_TYPE_Fraction, NULL },
{ SPA_FORMAT_VIDEO_views, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "views", SPA_TYPE_Int, NULL },
{ SPA_FORMAT_VIDEO_interlaceMode, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "interlaceMode", SPA_TYPE_Id, NULL },
{ SPA_FORMAT_VIDEO_pixelAspectRatio, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "pixelAspectRatio", SPA_TYPE_Fraction, NULL },
{ SPA_FORMAT_VIDEO_multiviewMode, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "multiviewMode", SPA_TYPE_Id, NULL },
{ SPA_FORMAT_VIDEO_multiviewFlags, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "multiviewFlags", SPA_TYPE_Id, NULL },
{ SPA_FORMAT_VIDEO_chromaSite, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "chromaSite", SPA_TYPE_Id, NULL },
{ SPA_FORMAT_VIDEO_colorRange, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "colorRange", SPA_TYPE_Id, NULL },
{ SPA_FORMAT_VIDEO_colorMatrix, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "colorMatrix", SPA_TYPE_Id, NULL },
{ SPA_FORMAT_VIDEO_transferFunction, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "transferFunction", SPA_TYPE_Id, NULL },
{ SPA_FORMAT_VIDEO_colorPrimaries, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "colorPrimaries", SPA_TYPE_Id, NULL },
{ SPA_FORMAT_VIDEO_profile, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "profile", SPA_TYPE_Int, NULL },
{ SPA_FORMAT_VIDEO_level, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "level", SPA_TYPE_Int, NULL },
{ SPA_FORMAT_VIDEO_size, SPA_TYPE_Rectangle, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "size", NULL },
{ SPA_FORMAT_VIDEO_framerate, SPA_TYPE_Fraction, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "framerate", NULL },
{ SPA_FORMAT_VIDEO_maxFramerate, SPA_TYPE_Fraction, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "maxFramerate", NULL },
{ SPA_FORMAT_VIDEO_views, SPA_TYPE_Int, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "views", NULL },
{ SPA_FORMAT_VIDEO_interlaceMode, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "interlaceMode", NULL },
{ SPA_FORMAT_VIDEO_pixelAspectRatio, SPA_TYPE_Fraction, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "pixelAspectRatio", NULL },
{ SPA_FORMAT_VIDEO_multiviewMode, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "multiviewMode", NULL },
{ SPA_FORMAT_VIDEO_multiviewFlags, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "multiviewFlags", NULL },
{ SPA_FORMAT_VIDEO_chromaSite, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "chromaSite", NULL },
{ SPA_FORMAT_VIDEO_colorRange, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "colorRange", NULL },
{ SPA_FORMAT_VIDEO_colorMatrix, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "colorMatrix", NULL },
{ SPA_FORMAT_VIDEO_transferFunction, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "transferFunction", NULL },
{ SPA_FORMAT_VIDEO_colorPrimaries, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "colorPrimaries", NULL },
{ SPA_FORMAT_VIDEO_profile, SPA_TYPE_Int, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "profile", NULL },
{ SPA_FORMAT_VIDEO_level, SPA_TYPE_Int, SPA_TYPE_INFO_FORMAT_VIDEO_BASE "level", NULL },
{ SPA_FORMAT_VIDEO_H264_streamFormat, SPA_TYPE_INFO_FORMAT_VIDEO_H264_BASE "streamFormat", SPA_TYPE_Id, NULL },
{ SPA_FORMAT_VIDEO_H264_alignment, SPA_TYPE_INFO_FORMAT_VIDEO_H264_BASE "alignment", SPA_TYPE_Id, NULL },
{ 0, NULL, 0, NULL },
{ SPA_FORMAT_VIDEO_H264_streamFormat, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_VIDEO_H264_BASE "streamFormat", NULL },
{ SPA_FORMAT_VIDEO_H264_alignment, SPA_TYPE_Id, SPA_TYPE_INFO_FORMAT_VIDEO_H264_BASE "alignment", NULL },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_PARAM_Buffers SPA_TYPE_INFO_PARAM_BASE "Buffers"
@ -255,25 +256,25 @@ static const struct spa_type_info spa_type_format[] = {
#define SPA_TYPE_INFO_PARAM_BLOCK_INFO_BASE SPA_TYPE_INFO_PARAM_BlockInfo ":"
static const struct spa_type_info spa_type_param_buffers[] = {
{ SPA_PARAM_BUFFERS_START, SPA_TYPE_INFO_PARAM_BUFFERS_BASE, SPA_TYPE_Id, spa_type_param, },
{ SPA_PARAM_BUFFERS_buffers, SPA_TYPE_INFO_PARAM_BUFFERS_BASE "buffers", SPA_TYPE_Int, NULL },
{ SPA_PARAM_BUFFERS_blocks, SPA_TYPE_INFO_PARAM_BUFFERS_BASE "blocks", SPA_TYPE_Int, NULL },
{ SPA_PARAM_BUFFERS_size, SPA_TYPE_INFO_PARAM_BLOCK_INFO_BASE "size", SPA_TYPE_Int, NULL },
{ SPA_PARAM_BUFFERS_stride, SPA_TYPE_INFO_PARAM_BLOCK_INFO_BASE "stride", SPA_TYPE_Int, NULL },
{ SPA_PARAM_BUFFERS_align, SPA_TYPE_INFO_PARAM_BLOCK_INFO_BASE "align", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_PARAM_BUFFERS_START, SPA_TYPE_Id, SPA_TYPE_INFO_PARAM_BUFFERS_BASE, spa_type_param, },
{ SPA_PARAM_BUFFERS_buffers, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_BUFFERS_BASE "buffers", NULL },
{ SPA_PARAM_BUFFERS_blocks, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_BUFFERS_BASE "blocks", NULL },
{ SPA_PARAM_BUFFERS_size, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_BLOCK_INFO_BASE "size", NULL },
{ SPA_PARAM_BUFFERS_stride, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_BLOCK_INFO_BASE "stride", NULL },
{ SPA_PARAM_BUFFERS_align, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_BLOCK_INFO_BASE "align", NULL },
{ 0, 0, NULL, NULL },
};
#define SPA_TYPE_INFO_PARAM_Profile SPA_TYPE_INFO_PARAM_BASE "Profile"
#define SPA_TYPE_INFO_PARAM_PROFILE_BASE SPA_TYPE_INFO_PARAM_Profile ":"
static const struct spa_type_info spa_type_param_profile[] = {
{ SPA_PARAM_PROFILE_START, SPA_TYPE_INFO_PARAM_PROFILE_BASE, SPA_TYPE_Id, spa_type_param, },
{ SPA_PARAM_PROFILE_index, SPA_TYPE_INFO_PARAM_PROFILE_BASE "index", SPA_TYPE_Int, NULL },
{ SPA_PARAM_PROFILE_name, SPA_TYPE_INFO_PARAM_PROFILE_BASE "name", SPA_TYPE_String, NULL },
{ SPA_PARAM_PROFILE_direction, SPA_TYPE_INFO_PARAM_PROFILE_BASE "direction", SPA_TYPE_Id, spa_type_direction },
{ SPA_PARAM_PROFILE_format, SPA_TYPE_INFO_PARAM_PROFILE_BASE "format", SPA_TYPE_Object, NULL, },
{ 0, NULL, 0, NULL },
{ SPA_PARAM_PROFILE_START, SPA_TYPE_Id, SPA_TYPE_INFO_PARAM_PROFILE_BASE, spa_type_param, },
{ SPA_PARAM_PROFILE_index, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_PROFILE_BASE "index", NULL },
{ SPA_PARAM_PROFILE_name, SPA_TYPE_String, SPA_TYPE_INFO_PARAM_PROFILE_BASE "name", NULL },
{ SPA_PARAM_PROFILE_direction, SPA_TYPE_Id, SPA_TYPE_INFO_PARAM_PROFILE_BASE "direction", spa_type_direction },
{ SPA_PARAM_PROFILE_format, SPA_TYPE_Object, SPA_TYPE_INFO_PARAM_PROFILE_BASE "format", NULL, },
{ 0, 0, NULL, NULL },
};
#ifdef __cplusplus

View file

@ -35,84 +35,84 @@ extern "C" {
#define SPA_TYPE_INFO_VIDEO_FORMAT_BASE SPA_TYPE_INFO_VideoFormat ":"
static const struct spa_type_info spa_type_video_format[] = {
{ SPA_VIDEO_FORMAT_ENCODED, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "encoded", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_I420, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I420", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_YV12, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "YV12", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_YUY2, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "YUY2", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_UYVY, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "UYVY", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_AYUV, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "AYUV", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_RGBx, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "RGBx", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_BGRx, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "BGRx", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_xRGB, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "xRGB", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_xBGR, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "xBGR", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_RGBA, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "RGBA", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_BGRA, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "BGRA", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_ARGB, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "ARGB", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_ABGR, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "ABGR", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_RGB, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "RGB", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_BGR, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "BGR", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_Y41B, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y41B", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_Y42B, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y42B", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_YVYU, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "YVYU", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_Y444, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y444", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_v210, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "v210", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_v216, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "v216", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_NV12, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "NV12", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_NV21, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "NV21", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_GRAY8, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GRAY8", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_GRAY16_BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GRAY16_BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_GRAY16_LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GRAY16_LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_v308, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "v308", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_RGB16, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "RGB16", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_BGR16, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "BGR16", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_RGB15, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "RGB15", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_BGR15, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "BGR15", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_UYVP, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "UYVP", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_A420, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A420", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_RGB8P, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "RGB8P", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_YUV9, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "YUV9", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_YVU9, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "YVU9", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_IYU1, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "IYU1", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_ARGB64, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "ARGB64", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_AYUV64, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "AYUV64", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_r210, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "r210", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_I420_10BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I420_10BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_I420_10LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I420_10LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_I422_10BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I422_10BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_I422_10LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I422_10LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_Y444_10BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y444_10BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_Y444_10LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y444_10LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_GBR, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBR", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_GBR_10BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBR_10BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_GBR_10LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBR_10LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_NV16, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "NV16", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_NV24, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "NV24", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_NV12_64Z32, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "NV12_64Z32", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_A420_10BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A420_10BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_A420_10LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A420_10LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_A422_10BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A422_10BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_A422_10LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A422_10LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_A444_10BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A444_10BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_A444_10LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A444_10LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_NV61, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "NV61", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_P010_10BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "P010_10BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_P010_10LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "P010_10LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_IYU2, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "IYU2", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_VYUY, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "VYUY", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_GBRA, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBRA", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_GBRA_10BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBRA_10BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_GBRA_10LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBRA_10LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_GBR_12BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBR_12BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_GBR_12LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBR_12LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_GBRA_12BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBRA_12BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_GBRA_12LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBRA_12LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_I420_12BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I420_12BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_I420_12LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I420_12LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_I422_12BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I422_12BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_I422_12LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I422_12LE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_Y444_12BE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y444_12BE", SPA_TYPE_Int, NULL },
{ SPA_VIDEO_FORMAT_Y444_12LE, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y444_12LE", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL },
{ SPA_VIDEO_FORMAT_ENCODED, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "encoded", NULL },
{ SPA_VIDEO_FORMAT_I420, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I420", NULL },
{ SPA_VIDEO_FORMAT_YV12, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "YV12", NULL },
{ SPA_VIDEO_FORMAT_YUY2, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "YUY2", NULL },
{ SPA_VIDEO_FORMAT_UYVY, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "UYVY", NULL },
{ SPA_VIDEO_FORMAT_AYUV, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "AYUV", NULL },
{ SPA_VIDEO_FORMAT_RGBx, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "RGBx", NULL },
{ SPA_VIDEO_FORMAT_BGRx, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "BGRx", NULL },
{ SPA_VIDEO_FORMAT_xRGB, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "xRGB", NULL },
{ SPA_VIDEO_FORMAT_xBGR, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "xBGR", NULL },
{ SPA_VIDEO_FORMAT_RGBA, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "RGBA", NULL },
{ SPA_VIDEO_FORMAT_BGRA, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "BGRA", NULL },
{ SPA_VIDEO_FORMAT_ARGB, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "ARGB", NULL },
{ SPA_VIDEO_FORMAT_ABGR, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "ABGR", NULL },
{ SPA_VIDEO_FORMAT_RGB, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "RGB", NULL },
{ SPA_VIDEO_FORMAT_BGR, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "BGR", NULL },
{ SPA_VIDEO_FORMAT_Y41B, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y41B", NULL },
{ SPA_VIDEO_FORMAT_Y42B, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y42B", NULL },
{ SPA_VIDEO_FORMAT_YVYU, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "YVYU", NULL },
{ SPA_VIDEO_FORMAT_Y444, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y444", NULL },
{ SPA_VIDEO_FORMAT_v210, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "v210", NULL },
{ SPA_VIDEO_FORMAT_v216, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "v216", NULL },
{ SPA_VIDEO_FORMAT_NV12, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "NV12", NULL },
{ SPA_VIDEO_FORMAT_NV21, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "NV21", NULL },
{ SPA_VIDEO_FORMAT_GRAY8, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GRAY8", NULL },
{ SPA_VIDEO_FORMAT_GRAY16_BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GRAY16_BE", NULL },
{ SPA_VIDEO_FORMAT_GRAY16_LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GRAY16_LE", NULL },
{ SPA_VIDEO_FORMAT_v308, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "v308", NULL },
{ SPA_VIDEO_FORMAT_RGB16, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "RGB16", NULL },
{ SPA_VIDEO_FORMAT_BGR16, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "BGR16", NULL },
{ SPA_VIDEO_FORMAT_RGB15, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "RGB15", NULL },
{ SPA_VIDEO_FORMAT_BGR15, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "BGR15", NULL },
{ SPA_VIDEO_FORMAT_UYVP, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "UYVP", NULL },
{ SPA_VIDEO_FORMAT_A420, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A420", NULL },
{ SPA_VIDEO_FORMAT_RGB8P, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "RGB8P", NULL },
{ SPA_VIDEO_FORMAT_YUV9, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "YUV9", NULL },
{ SPA_VIDEO_FORMAT_YVU9, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "YVU9", NULL },
{ SPA_VIDEO_FORMAT_IYU1, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "IYU1", NULL },
{ SPA_VIDEO_FORMAT_ARGB64, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "ARGB64", NULL },
{ SPA_VIDEO_FORMAT_AYUV64, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "AYUV64", NULL },
{ SPA_VIDEO_FORMAT_r210, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "r210", NULL },
{ SPA_VIDEO_FORMAT_I420_10BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I420_10BE", NULL },
{ SPA_VIDEO_FORMAT_I420_10LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I420_10LE", NULL },
{ SPA_VIDEO_FORMAT_I422_10BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I422_10BE", NULL },
{ SPA_VIDEO_FORMAT_I422_10LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I422_10LE", NULL },
{ SPA_VIDEO_FORMAT_Y444_10BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y444_10BE", NULL },
{ SPA_VIDEO_FORMAT_Y444_10LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y444_10LE", NULL },
{ SPA_VIDEO_FORMAT_GBR, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBR", NULL },
{ SPA_VIDEO_FORMAT_GBR_10BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBR_10BE", NULL },
{ SPA_VIDEO_FORMAT_GBR_10LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBR_10LE", NULL },
{ SPA_VIDEO_FORMAT_NV16, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "NV16", NULL },
{ SPA_VIDEO_FORMAT_NV24, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "NV24", NULL },
{ SPA_VIDEO_FORMAT_NV12_64Z32, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "NV12_64Z32", NULL },
{ SPA_VIDEO_FORMAT_A420_10BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A420_10BE", NULL },
{ SPA_VIDEO_FORMAT_A420_10LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A420_10LE", NULL },
{ SPA_VIDEO_FORMAT_A422_10BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A422_10BE", NULL },
{ SPA_VIDEO_FORMAT_A422_10LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A422_10LE", NULL },
{ SPA_VIDEO_FORMAT_A444_10BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A444_10BE", NULL },
{ SPA_VIDEO_FORMAT_A444_10LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "A444_10LE", NULL },
{ SPA_VIDEO_FORMAT_NV61, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "NV61", NULL },
{ SPA_VIDEO_FORMAT_P010_10BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "P010_10BE", NULL },
{ SPA_VIDEO_FORMAT_P010_10LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "P010_10LE", NULL },
{ SPA_VIDEO_FORMAT_IYU2, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "IYU2", NULL },
{ SPA_VIDEO_FORMAT_VYUY, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "VYUY", NULL },
{ SPA_VIDEO_FORMAT_GBRA, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBRA", NULL },
{ SPA_VIDEO_FORMAT_GBRA_10BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBRA_10BE", NULL },
{ SPA_VIDEO_FORMAT_GBRA_10LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBRA_10LE", NULL },
{ SPA_VIDEO_FORMAT_GBR_12BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBR_12BE", NULL },
{ SPA_VIDEO_FORMAT_GBR_12LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBR_12LE", NULL },
{ SPA_VIDEO_FORMAT_GBRA_12BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBRA_12BE", NULL },
{ SPA_VIDEO_FORMAT_GBRA_12LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "GBRA_12LE", NULL },
{ SPA_VIDEO_FORMAT_I420_12BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I420_12BE", NULL },
{ SPA_VIDEO_FORMAT_I420_12LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I420_12LE", NULL },
{ SPA_VIDEO_FORMAT_I422_12BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I422_12BE", NULL },
{ SPA_VIDEO_FORMAT_I422_12LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "I422_12LE", NULL },
{ SPA_VIDEO_FORMAT_Y444_12BE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y444_12BE", NULL },
{ SPA_VIDEO_FORMAT_Y444_12LE, SPA_TYPE_Int, SPA_TYPE_INFO_VIDEO_FORMAT_BASE "Y444_12LE", NULL },
{ 0, 0, NULL, NULL },
};
#ifdef __cplusplus

View file

@ -41,12 +41,13 @@ struct spa_dict_item {
#define SPA_DICT_ITEM_INIT(key,value) (struct spa_dict_item) { key, value }
struct spa_dict {
const struct spa_dict_item *items;
uint32_t flags;
uint32_t n_items;
const struct spa_dict_item *items;
};
#define SPA_DICT_INIT(items,n_items) (struct spa_dict) { items, n_items }
#define SPA_DICT_INIT_ARRAY(items) (struct spa_dict) { items, SPA_N_ELEMENTS(items) }
#define SPA_DICT_INIT(items,n_items) (struct spa_dict) { 0, n_items, items }
#define SPA_DICT_INIT_ARRAY(items) (struct spa_dict) { 0, SPA_N_ELEMENTS(items), items }
#define spa_dict_for_each(item, dict) \
for ((item) = (dict)->items; \

View file

@ -47,9 +47,9 @@ static inline bool spa_type_is_a(const char *type, const char *parent)
#define SPA_TYPE_INFO_DIRECTION_BASE SPA_TYPE_INFO_Direction ":"
static const struct spa_type_info spa_type_direction[] = {
{ SPA_DIRECTION_INPUT, SPA_TYPE_INFO_DIRECTION_BASE "Input", SPA_TYPE_Int, NULL },
{ SPA_DIRECTION_OUTPUT, SPA_TYPE_INFO_DIRECTION_BASE "Output", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL }
{ SPA_DIRECTION_INPUT, SPA_TYPE_Int, SPA_TYPE_INFO_DIRECTION_BASE "Input", NULL },
{ SPA_DIRECTION_OUTPUT, SPA_TYPE_Int, SPA_TYPE_INFO_DIRECTION_BASE "Output", NULL },
{ 0, 0, NULL, NULL }
};
#include <spa/monitor/type-info.h>
@ -62,77 +62,77 @@ static const struct spa_type_info spa_type_direction[] = {
#define SPA_TYPE_INFO_CHOICE_BASE SPA_TYPE_INFO_Choice ":"
static const struct spa_type_info spa_type_choice[] = {
{ SPA_CHOICE_None, SPA_TYPE_INFO_CHOICE_BASE "None", SPA_TYPE_Int, NULL },
{ SPA_CHOICE_Range, SPA_TYPE_INFO_CHOICE_BASE "Range", SPA_TYPE_Int, NULL },
{ SPA_CHOICE_Step, SPA_TYPE_INFO_CHOICE_BASE "Step", SPA_TYPE_Int, NULL },
{ SPA_CHOICE_Enum, SPA_TYPE_INFO_CHOICE_BASE "Enum", SPA_TYPE_Int, NULL },
{ SPA_CHOICE_Flags, SPA_TYPE_INFO_CHOICE_BASE "Flags", SPA_TYPE_Int, NULL },
{ 0, NULL, 0, NULL }
{ SPA_CHOICE_None, SPA_TYPE_Int, SPA_TYPE_INFO_CHOICE_BASE "None", NULL },
{ SPA_CHOICE_Range, SPA_TYPE_Int, SPA_TYPE_INFO_CHOICE_BASE "Range", NULL },
{ SPA_CHOICE_Step, SPA_TYPE_Int, SPA_TYPE_INFO_CHOICE_BASE "Step", NULL },
{ SPA_CHOICE_Enum, SPA_TYPE_Int, SPA_TYPE_INFO_CHOICE_BASE "Enum", NULL },
{ SPA_CHOICE_Flags, SPA_TYPE_Int, SPA_TYPE_INFO_CHOICE_BASE "Flags", NULL },
{ 0, 0, NULL, NULL }
};
static const struct spa_type_info spa_types[] = {
/* Basic types */
{ SPA_TYPE_START, SPA_TYPE_INFO_BASE, SPA_TYPE_START, NULL },
{ SPA_TYPE_None, SPA_TYPE_INFO_BASE "None", SPA_TYPE_None, NULL },
{ SPA_TYPE_Bool, SPA_TYPE_INFO_BASE "Bool", SPA_TYPE_Bool, NULL },
{ SPA_TYPE_Id, SPA_TYPE_INFO_BASE "Id", SPA_TYPE_Int, NULL },
{ SPA_TYPE_Int, SPA_TYPE_INFO_BASE "Int", SPA_TYPE_Int, NULL },
{ SPA_TYPE_Long, SPA_TYPE_INFO_BASE "Long", SPA_TYPE_Long, NULL },
{ SPA_TYPE_Float, SPA_TYPE_INFO_BASE "Float", SPA_TYPE_Float, NULL },
{ SPA_TYPE_Double, SPA_TYPE_INFO_BASE "Double", SPA_TYPE_Double, NULL },
{ SPA_TYPE_String, SPA_TYPE_INFO_BASE "String", SPA_TYPE_String, NULL },
{ SPA_TYPE_Bytes, SPA_TYPE_INFO_BASE "Bytes", SPA_TYPE_Bytes, NULL },
{ SPA_TYPE_Rectangle, SPA_TYPE_INFO_BASE "Rectangle", SPA_TYPE_Rectangle, NULL },
{ SPA_TYPE_Fraction, SPA_TYPE_INFO_BASE "Fraction", SPA_TYPE_Fraction, NULL },
{ SPA_TYPE_Bitmap, SPA_TYPE_INFO_BASE "Bitmap", SPA_TYPE_Bitmap, NULL },
{ SPA_TYPE_Array, SPA_TYPE_INFO_BASE "Array", SPA_TYPE_Array, NULL },
{ SPA_TYPE_Pod, SPA_TYPE_INFO_Pod, SPA_TYPE_Pod, NULL },
{ SPA_TYPE_Struct, SPA_TYPE_INFO_Struct, SPA_TYPE_Pod, NULL },
{ SPA_TYPE_Object, SPA_TYPE_INFO_Object, SPA_TYPE_Pod, NULL },
{ SPA_TYPE_Sequence, SPA_TYPE_INFO_POD_BASE "Sequence", SPA_TYPE_Pod, NULL },
{ SPA_TYPE_Pointer, SPA_TYPE_INFO_Pointer, SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_Fd, SPA_TYPE_INFO_BASE "Fd", SPA_TYPE_Fd, NULL },
{ SPA_TYPE_Choice, SPA_TYPE_INFO_POD_BASE "Choice", SPA_TYPE_Pod, NULL },
{ SPA_TYPE_START, SPA_TYPE_START, SPA_TYPE_INFO_BASE, NULL },
{ SPA_TYPE_None, SPA_TYPE_None, SPA_TYPE_INFO_BASE "None", NULL },
{ SPA_TYPE_Bool, SPA_TYPE_Bool, SPA_TYPE_INFO_BASE "Bool", NULL },
{ SPA_TYPE_Id, SPA_TYPE_Int, SPA_TYPE_INFO_BASE "Id", NULL },
{ SPA_TYPE_Int, SPA_TYPE_Int, SPA_TYPE_INFO_BASE "Int", NULL },
{ SPA_TYPE_Long, SPA_TYPE_Long, SPA_TYPE_INFO_BASE "Long", NULL },
{ SPA_TYPE_Float, SPA_TYPE_Float, SPA_TYPE_INFO_BASE "Float", NULL },
{ SPA_TYPE_Double, SPA_TYPE_Double, SPA_TYPE_INFO_BASE "Double", NULL },
{ SPA_TYPE_String, SPA_TYPE_String, SPA_TYPE_INFO_BASE "String", NULL },
{ SPA_TYPE_Bytes, SPA_TYPE_Bytes, SPA_TYPE_INFO_BASE "Bytes", NULL },
{ SPA_TYPE_Rectangle, SPA_TYPE_Rectangle, SPA_TYPE_INFO_BASE "Rectangle", NULL },
{ SPA_TYPE_Fraction, SPA_TYPE_Fraction, SPA_TYPE_INFO_BASE "Fraction", NULL },
{ SPA_TYPE_Bitmap, SPA_TYPE_Bitmap, SPA_TYPE_INFO_BASE "Bitmap", NULL },
{ SPA_TYPE_Array, SPA_TYPE_Array, SPA_TYPE_INFO_BASE "Array", NULL },
{ SPA_TYPE_Pod, SPA_TYPE_Pod, SPA_TYPE_INFO_Pod, NULL },
{ SPA_TYPE_Struct, SPA_TYPE_Pod, SPA_TYPE_INFO_Struct, NULL },
{ SPA_TYPE_Object, SPA_TYPE_Pod, SPA_TYPE_INFO_Object, NULL },
{ SPA_TYPE_Sequence, SPA_TYPE_Pod, SPA_TYPE_INFO_POD_BASE "Sequence", NULL },
{ SPA_TYPE_Pointer, SPA_TYPE_Pointer, SPA_TYPE_INFO_Pointer, NULL },
{ SPA_TYPE_Fd, SPA_TYPE_Fd, SPA_TYPE_INFO_BASE "Fd", NULL },
{ SPA_TYPE_Choice, SPA_TYPE_Pod, SPA_TYPE_INFO_POD_BASE "Choice", NULL },
{ SPA_TYPE_POINTER_START, SPA_TYPE_INFO_Pointer, SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_POINTER_Buffer, SPA_TYPE_INFO_POINTER_BASE "Buffer", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_POINTER_Meta, SPA_TYPE_INFO_POINTER_BASE "Meta", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_POINTER_Dict, SPA_TYPE_INFO_POINTER_BASE "Dict", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_POINTER_START, SPA_TYPE_Pointer, SPA_TYPE_INFO_Pointer, NULL },
{ SPA_TYPE_POINTER_Buffer, SPA_TYPE_Pointer, SPA_TYPE_INFO_POINTER_BASE "Buffer", NULL },
{ SPA_TYPE_POINTER_Meta, SPA_TYPE_Pointer, SPA_TYPE_INFO_POINTER_BASE "Meta", NULL },
{ SPA_TYPE_POINTER_Dict, SPA_TYPE_Pointer, SPA_TYPE_INFO_POINTER_BASE "Dict", NULL },
{ SPA_TYPE_INTERFACE_START, SPA_TYPE_INFO_Interface, SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_Handle, SPA_TYPE_INFO_INTERFACE_BASE "Handle", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_HandleFactory, SPA_TYPE_INFO_INTERFACE_BASE "HandleFactory", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_Log, SPA_TYPE_INFO_INTERFACE_BASE "Log", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_Loop, SPA_TYPE_INFO_INTERFACE_BASE "Loop", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_LoopControl, SPA_TYPE_INFO_INTERFACE_BASE "LoopControl", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_LoopUtils, SPA_TYPE_INFO_INTERFACE_BASE "LoopUtils", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_DataLoop, SPA_TYPE_INFO_INTERFACE_BASE "DataLoop", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_MainLoop, SPA_TYPE_INFO_INTERFACE_BASE "MainLoop", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_DBus, SPA_TYPE_INFO_INTERFACE_BASE "DBus", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_Monitor, SPA_TYPE_INFO_INTERFACE_BASE "Monitor", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_Node, SPA_TYPE_INFO_INTERFACE_BASE "Node", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_Device, SPA_TYPE_INFO_INTERFACE_BASE "Device", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_CPU, SPA_TYPE_INFO_INTERFACE_BASE "CPU", SPA_TYPE_Pointer, NULL },
{ SPA_TYPE_INTERFACE_START, SPA_TYPE_Pointer, SPA_TYPE_INFO_Interface, NULL },
{ SPA_TYPE_INTERFACE_Handle, SPA_TYPE_Pointer, SPA_TYPE_INFO_INTERFACE_BASE "Handle", NULL },
{ SPA_TYPE_INTERFACE_HandleFactory, SPA_TYPE_Pointer, SPA_TYPE_INFO_INTERFACE_BASE "HandleFactory", NULL },
{ SPA_TYPE_INTERFACE_Log, SPA_TYPE_Pointer, SPA_TYPE_INFO_INTERFACE_BASE "Log", NULL },
{ SPA_TYPE_INTERFACE_Loop, SPA_TYPE_Pointer, SPA_TYPE_INFO_INTERFACE_BASE "Loop", NULL },
{ SPA_TYPE_INTERFACE_LoopControl, SPA_TYPE_Pointer, SPA_TYPE_INFO_INTERFACE_BASE "LoopControl", NULL },
{ SPA_TYPE_INTERFACE_LoopUtils, SPA_TYPE_Pointer, SPA_TYPE_INFO_INTERFACE_BASE "LoopUtils", NULL },
{ SPA_TYPE_INTERFACE_DataLoop, SPA_TYPE_Pointer, SPA_TYPE_INFO_INTERFACE_BASE "DataLoop", NULL },
{ SPA_TYPE_INTERFACE_MainLoop, SPA_TYPE_Pointer, SPA_TYPE_INFO_INTERFACE_BASE "MainLoop", NULL },
{ SPA_TYPE_INTERFACE_DBus, SPA_TYPE_Pointer, SPA_TYPE_INFO_INTERFACE_BASE "DBus", NULL },
{ SPA_TYPE_INTERFACE_Monitor, SPA_TYPE_Pointer, SPA_TYPE_INFO_INTERFACE_BASE "Monitor", NULL },
{ SPA_TYPE_INTERFACE_Node, SPA_TYPE_Pointer, SPA_TYPE_INFO_INTERFACE_BASE "Node", NULL },
{ SPA_TYPE_INTERFACE_Device, SPA_TYPE_Pointer, SPA_TYPE_INFO_INTERFACE_BASE "Device", NULL },
{ SPA_TYPE_INTERFACE_CPU, SPA_TYPE_Pointer, SPA_TYPE_INFO_INTERFACE_BASE "CPU", NULL },
{ SPA_TYPE_EVENT_START, SPA_TYPE_INFO_Event, SPA_TYPE_Object, NULL },
{ SPA_TYPE_EVENT_Monitor, SPA_TYPE_INFO_EVENT_BASE "Monitor", SPA_TYPE_Object, spa_type_monitor_event },
{ SPA_TYPE_EVENT_Node, SPA_TYPE_INFO_EVENT_BASE "Node", SPA_TYPE_Object, spa_type_node_event },
{ SPA_TYPE_EVENT_START, SPA_TYPE_Object, SPA_TYPE_INFO_Event, NULL },
{ SPA_TYPE_EVENT_Monitor, SPA_TYPE_Object, SPA_TYPE_INFO_EVENT_BASE "Monitor", spa_type_monitor_event },
{ SPA_TYPE_EVENT_Node, SPA_TYPE_Object, SPA_TYPE_INFO_EVENT_BASE "Node", spa_type_node_event },
{ SPA_TYPE_COMMAND_START, SPA_TYPE_INFO_Command, SPA_TYPE_Object, NULL },
{ SPA_TYPE_COMMAND_Node, SPA_TYPE_INFO_COMMAND_BASE "Node", SPA_TYPE_Object, spa_type_node_command },
{ SPA_TYPE_COMMAND_START, SPA_TYPE_Object, SPA_TYPE_INFO_Command, NULL },
{ SPA_TYPE_COMMAND_Node, SPA_TYPE_Object, SPA_TYPE_INFO_COMMAND_BASE "Node", spa_type_node_command },
{ SPA_TYPE_OBJECT_START, SPA_TYPE_INFO_Object, SPA_TYPE_Object, NULL },
{ SPA_TYPE_OBJECT_MonitorItem, SPA_TYPE_INFO_MonitorItem, SPA_TYPE_Object, spa_type_monitor_item },
{ SPA_TYPE_OBJECT_ParamList, SPA_TYPE_INFO_PARAM_List, SPA_TYPE_Object, spa_type_param_list, },
{ SPA_TYPE_OBJECT_PropInfo, SPA_TYPE_INFO_PropInfo, SPA_TYPE_Object, spa_type_prop_info, },
{ SPA_TYPE_OBJECT_Props, SPA_TYPE_INFO_Props, SPA_TYPE_Object, spa_type_props },
{ SPA_TYPE_OBJECT_Format, SPA_TYPE_INFO_Format, SPA_TYPE_Object, spa_type_format },
{ SPA_TYPE_OBJECT_ParamBuffers, SPA_TYPE_INFO_PARAM_Buffers, SPA_TYPE_Object, spa_type_param_buffers, },
{ SPA_TYPE_OBJECT_ParamMeta, SPA_TYPE_INFO_PARAM_Meta, SPA_TYPE_Object, spa_type_param_meta },
{ SPA_TYPE_OBJECT_ParamIO, SPA_TYPE_INFO_PARAM_IO, SPA_TYPE_Object, spa_type_param_io },
{ SPA_TYPE_OBJECT_ParamProfile, SPA_TYPE_INFO_PARAM_Profile, SPA_TYPE_Object, spa_type_param_profile },
{ SPA_TYPE_OBJECT_START, SPA_TYPE_Object, SPA_TYPE_INFO_Object, NULL },
{ SPA_TYPE_OBJECT_MonitorItem, SPA_TYPE_Object, SPA_TYPE_INFO_MonitorItem, spa_type_monitor_item },
{ SPA_TYPE_OBJECT_ParamList, SPA_TYPE_Object, SPA_TYPE_INFO_PARAM_List, spa_type_param_list, },
{ SPA_TYPE_OBJECT_PropInfo, SPA_TYPE_Object, SPA_TYPE_INFO_PropInfo, spa_type_prop_info, },
{ SPA_TYPE_OBJECT_Props, SPA_TYPE_Object, SPA_TYPE_INFO_Props, spa_type_props },
{ SPA_TYPE_OBJECT_Format, SPA_TYPE_Object, SPA_TYPE_INFO_Format, spa_type_format },
{ SPA_TYPE_OBJECT_ParamBuffers, SPA_TYPE_Object, SPA_TYPE_INFO_PARAM_Buffers, spa_type_param_buffers, },
{ SPA_TYPE_OBJECT_ParamMeta, SPA_TYPE_Object, SPA_TYPE_INFO_PARAM_Meta, spa_type_param_meta },
{ SPA_TYPE_OBJECT_ParamIO, SPA_TYPE_Object, SPA_TYPE_INFO_PARAM_IO, spa_type_param_io },
{ SPA_TYPE_OBJECT_ParamProfile, SPA_TYPE_Object, SPA_TYPE_INFO_PARAM_Profile, spa_type_param_profile },
{ 0, NULL, 0, NULL }
{ 0, 0, NULL, NULL }
};
#ifdef __cplusplus

View file

@ -141,8 +141,8 @@ enum {
struct spa_type_info {
uint32_t type;
const char *name;
uint32_t parent;
const char *name;
const struct spa_type_info *values;
};

View file

@ -806,10 +806,7 @@ static const struct spa_dict_item info_items[] = {
{ "factory.description", "Play audio with the alsa API" },
};
static const struct spa_dict info = {
info_items,
SPA_N_ELEMENTS(info_items),
};
static const struct spa_dict info = SPA_DICT_INIT_ARRAY(info_items);
const struct spa_handle_factory spa_alsa_sink_factory = {
SPA_VERSION_HANDLE_FACTORY,

View file

@ -816,10 +816,7 @@ static const struct spa_dict_item info_items[] = {
{ "factory.description", "Record audio with the alsa API" },
};
static const struct spa_dict info = {
info_items,
SPA_N_ELEMENTS(info_items)
};
static const struct spa_dict info = SPA_DICT_INIT_ARRAY(info_items);
const struct spa_handle_factory spa_alsa_source_factory = {
SPA_VERSION_HANDLE_FACTORY,

View file

@ -1108,10 +1108,7 @@ static const struct spa_dict_item info_items[] = {
{ "factory.description", "Generate an audio test pattern" },
};
static const struct spa_dict info = {
info_items,
SPA_N_ELEMENTS(info_items)
};
static const struct spa_dict info = SPA_DICT_INIT_ARRAY(info_items);
const struct spa_handle_factory spa_audiotestsrc_factory = {
SPA_VERSION_HANDLE_FACTORY,

View file

@ -1421,10 +1421,7 @@ static const struct spa_dict_item info_items[] = {
{ "factory.description", "Play audio with the a2dp" },
};
static const struct spa_dict info = {
info_items,
SPA_N_ELEMENTS(info_items),
};
static const struct spa_dict info = SPA_DICT_INIT_ARRAY(info_items);
struct spa_handle_factory spa_a2dp_sink_factory = {
SPA_VERSION_HANDLE_FACTORY,

View file

@ -982,10 +982,7 @@ static const struct spa_dict_item info_items[] = {
{ "factory.description", "Generate a video test pattern" },
};
static const struct spa_dict info = {
info_items,
SPA_N_ELEMENTS(info_items)
};
static const struct spa_dict info = SPA_DICT_INIT_ARRAY(info_items);
const struct spa_handle_factory spa_videotestsrc_factory = {
SPA_VERSION_HANDLE_FACTORY,

View file

@ -919,12 +919,12 @@ static const struct pw_protocol_native_demarshal pw_protocol_native_client_node_
static const struct pw_protocol_marshal pw_protocol_native_client_node_marshal = {
PW_TYPE_INTERFACE_ClientNode,
PW_VERSION_CLIENT_NODE,
PW_CLIENT_NODE_PROXY_METHOD_NUM,
PW_CLIENT_NODE_PROXY_EVENT_NUM,
&pw_protocol_native_client_node_method_marshal,
&pw_protocol_native_client_node_method_demarshal,
PW_CLIENT_NODE_PROXY_METHOD_NUM,
&pw_protocol_native_client_node_event_marshal,
pw_protocol_native_client_node_event_demarshal,
PW_CLIENT_NODE_PROXY_EVENT_NUM,
};
struct pw_protocol *pw_protocol_native_ext_client_node_init(struct pw_core *core)

View file

@ -1500,12 +1500,12 @@ static const struct pw_protocol_native_demarshal pw_protocol_native_core_event_d
static const struct pw_protocol_marshal pw_protocol_native_core_marshal = {
PW_TYPE_INTERFACE_Core,
PW_VERSION_CORE,
PW_CORE_PROXY_METHOD_NUM,
PW_CORE_PROXY_EVENT_NUM,
&pw_protocol_native_core_method_marshal,
pw_protocol_native_core_method_demarshal,
PW_CORE_PROXY_METHOD_NUM,
&pw_protocol_native_core_event_marshal,
pw_protocol_native_core_event_demarshal,
PW_CORE_PROXY_EVENT_NUM
};
static const struct pw_registry_proxy_methods pw_protocol_native_registry_method_marshal = {
@ -1533,12 +1533,12 @@ static const struct pw_protocol_native_demarshal pw_protocol_native_registry_eve
const struct pw_protocol_marshal pw_protocol_native_registry_marshal = {
PW_TYPE_INTERFACE_Registry,
PW_VERSION_REGISTRY,
PW_REGISTRY_PROXY_METHOD_NUM,
PW_REGISTRY_PROXY_EVENT_NUM,
&pw_protocol_native_registry_method_marshal,
pw_protocol_native_registry_method_demarshal,
PW_REGISTRY_PROXY_METHOD_NUM,
&pw_protocol_native_registry_event_marshal,
pw_protocol_native_registry_event_demarshal,
PW_REGISTRY_PROXY_EVENT_NUM,
};
static const struct pw_module_proxy_events pw_protocol_native_module_event_marshal = {
@ -1553,10 +1553,11 @@ static const struct pw_protocol_native_demarshal pw_protocol_native_module_event
const struct pw_protocol_marshal pw_protocol_native_module_marshal = {
PW_TYPE_INTERFACE_Module,
PW_VERSION_MODULE,
NULL, NULL, 0,
0,
PW_MODULE_PROXY_EVENT_NUM,
NULL, NULL,
&pw_protocol_native_module_event_marshal,
pw_protocol_native_module_event_demarshal,
PW_MODULE_PROXY_EVENT_NUM,
};
static const struct pw_factory_proxy_events pw_protocol_native_factory_event_marshal = {
@ -1571,10 +1572,11 @@ static const struct pw_protocol_native_demarshal pw_protocol_native_factory_even
const struct pw_protocol_marshal pw_protocol_native_factory_marshal = {
PW_TYPE_INTERFACE_Factory,
PW_VERSION_FACTORY,
NULL, NULL, 0,
0,
PW_FACTORY_PROXY_EVENT_NUM,
NULL, NULL,
&pw_protocol_native_factory_event_marshal,
pw_protocol_native_factory_event_demarshal,
PW_FACTORY_PROXY_EVENT_NUM,
};
static const struct pw_device_proxy_methods pw_protocol_native_device_method_marshal = {
@ -1602,12 +1604,12 @@ static const struct pw_protocol_native_demarshal pw_protocol_native_device_event
static const struct pw_protocol_marshal pw_protocol_native_device_marshal = {
PW_TYPE_INTERFACE_Device,
PW_VERSION_DEVICE,
PW_DEVICE_PROXY_METHOD_NUM,
PW_DEVICE_PROXY_EVENT_NUM,
&pw_protocol_native_device_method_marshal,
pw_protocol_native_device_method_demarshal,
PW_DEVICE_PROXY_METHOD_NUM,
&pw_protocol_native_device_event_marshal,
pw_protocol_native_device_event_demarshal,
PW_DEVICE_PROXY_EVENT_NUM,
};
static const struct pw_node_proxy_methods pw_protocol_native_node_method_marshal = {
@ -1637,12 +1639,12 @@ static const struct pw_protocol_native_demarshal pw_protocol_native_node_event_d
static const struct pw_protocol_marshal pw_protocol_native_node_marshal = {
PW_TYPE_INTERFACE_Node,
PW_VERSION_NODE,
PW_NODE_PROXY_METHOD_NUM,
PW_NODE_PROXY_EVENT_NUM,
&pw_protocol_native_node_method_marshal,
pw_protocol_native_node_method_demarshal,
PW_NODE_PROXY_METHOD_NUM,
&pw_protocol_native_node_event_marshal,
pw_protocol_native_node_event_demarshal,
PW_NODE_PROXY_EVENT_NUM,
};
@ -1669,12 +1671,12 @@ static const struct pw_protocol_native_demarshal pw_protocol_native_port_event_d
static const struct pw_protocol_marshal pw_protocol_native_port_marshal = {
PW_TYPE_INTERFACE_Port,
PW_VERSION_PORT,
PW_PORT_PROXY_METHOD_NUM,
PW_PORT_PROXY_EVENT_NUM,
&pw_protocol_native_port_method_marshal,
pw_protocol_native_port_method_demarshal,
PW_PORT_PROXY_METHOD_NUM,
&pw_protocol_native_port_event_marshal,
pw_protocol_native_port_event_demarshal,
PW_PORT_PROXY_EVENT_NUM,
};
static const struct pw_client_proxy_methods pw_protocol_native_client_method_marshal = {
@ -1706,12 +1708,12 @@ static const struct pw_protocol_native_demarshal pw_protocol_native_client_event
static const struct pw_protocol_marshal pw_protocol_native_client_marshal = {
PW_TYPE_INTERFACE_Client,
PW_VERSION_CLIENT,
PW_CLIENT_PROXY_METHOD_NUM,
PW_CLIENT_PROXY_EVENT_NUM,
&pw_protocol_native_client_method_marshal,
pw_protocol_native_client_method_demarshal,
PW_CLIENT_PROXY_METHOD_NUM,
&pw_protocol_native_client_event_marshal,
pw_protocol_native_client_event_demarshal,
PW_CLIENT_PROXY_EVENT_NUM,
};
static const struct pw_link_proxy_events pw_protocol_native_link_event_marshal = {
@ -1726,10 +1728,11 @@ static const struct pw_protocol_native_demarshal pw_protocol_native_link_event_d
static const struct pw_protocol_marshal pw_protocol_native_link_marshal = {
PW_TYPE_INTERFACE_Link,
PW_VERSION_LINK,
NULL, NULL, 0,
0,
PW_LINK_PROXY_EVENT_NUM,
NULL, NULL,
&pw_protocol_native_link_event_marshal,
pw_protocol_native_link_event_demarshal,
PW_LINK_PROXY_EVENT_NUM,
};
void pw_protocol_native_init(struct pw_protocol *protocol)

View file

@ -136,6 +136,7 @@ struct pw_core_info *pw_core_info_update(struct pw_core_info *info,
return NULL;
}
info->id = update->id;
info->cookie = update->cookie;
info->change_mask = update->change_mask;
if (update->change_mask & PW_CORE_CHANGE_MASK_USER_NAME) {
@ -154,8 +155,6 @@ struct pw_core_info *pw_core_info_update(struct pw_core_info *info,
free((void *) info->name);
info->name = update->name ? strdup(update->name) : NULL;
}
if (update->change_mask & PW_CORE_CHANGE_MASK_COOKIE)
info->cookie = update->cookie;
if (update->change_mask & PW_CORE_CHANGE_MASK_PROPS) {
if (info->props)
pw_spa_dict_destroy(info->props);

View file

@ -80,19 +80,18 @@ const char * pw_link_state_as_string(enum pw_link_state state);
/** The core information. Extra information can be added in later versions \memberof pw_introspect */
struct pw_core_info {
uint32_t id; /**< id of the global */
uint32_t cookie; /**< a random cookie for identifying this instance of PipeWire */
#define PW_CORE_CHANGE_MASK_USER_NAME (1 << 0)
#define PW_CORE_CHANGE_MASK_HOST_NAME (1 << 1)
#define PW_CORE_CHANGE_MASK_VERSION (1 << 2)
#define PW_CORE_CHANGE_MASK_NAME (1 << 3)
#define PW_CORE_CHANGE_MASK_COOKIE (1 << 4)
#define PW_CORE_CHANGE_MASK_PROPS (1 << 5)
#define PW_CORE_CHANGE_MASK_PROPS (1 << 4)
#define PW_CORE_CHANGE_MASK_ALL (~0)
uint64_t change_mask; /**< bitfield of changed fields since last call */
const char *user_name; /**< name of the user that started the core */
const char *host_name; /**< name of the machine the core is running on */
const char *version; /**< version of the core */
const char *name; /**< name of the core */
uint32_t cookie; /**< a random cookie for identifying this instance of PipeWire */
struct spa_dict *props; /**< extra properties */
};

View file

@ -43,29 +43,29 @@
#define MAX_SUPPORT 32
struct plugin {
int ref;
struct spa_list link;
char *filename;
void *hnd;
spa_handle_factory_enum_func_t enum_func;
struct spa_list handles;
int ref;
};
struct handle {
int ref;
struct spa_list link;
struct plugin *plugin;
const char *factory_name;
struct spa_handle *handle;
struct spa_list interfaces;
int ref;
};
struct interface {
int ref;
struct spa_list link;
struct handle *handle;
uint32_t type;
void *iface;
uint32_t type;
int ref;
};
struct registry {
@ -77,8 +77,8 @@ struct support {
const char *plugin_dir;
struct plugin *support_plugin;
struct spa_support support[MAX_SUPPORT];
uint32_t n_support;
struct registry *registry;
uint32_t n_support;
};
static struct registry global_registry;
@ -634,18 +634,18 @@ const char* pw_get_library_version(void)
}
static const struct spa_type_info type_info[] = {
{ PW_TYPE_INTERFACE_Core, PW_TYPE_INFO_INTERFACE_BASE "Core", SPA_TYPE_Pointer, NULL },
{ PW_TYPE_INTERFACE_Registry, PW_TYPE_INFO_INTERFACE_BASE "Registry", SPA_TYPE_Pointer, NULL },
{ PW_TYPE_INTERFACE_Node, PW_TYPE_INFO_INTERFACE_BASE "Node", SPA_TYPE_Pointer, NULL },
{ PW_TYPE_INTERFACE_Port, PW_TYPE_INFO_INTERFACE_BASE "Port", SPA_TYPE_Pointer, NULL },
{ PW_TYPE_INTERFACE_Factory, PW_TYPE_INFO_INTERFACE_BASE "Factory", SPA_TYPE_Pointer, NULL },
{ PW_TYPE_INTERFACE_Link, PW_TYPE_INFO_INTERFACE_BASE "Link", SPA_TYPE_Pointer, NULL },
{ PW_TYPE_INTERFACE_Client, PW_TYPE_INFO_INTERFACE_BASE "Client", SPA_TYPE_Pointer, NULL },
{ PW_TYPE_INTERFACE_Module, PW_TYPE_INFO_INTERFACE_BASE "Module", SPA_TYPE_Pointer, NULL },
{ PW_TYPE_INTERFACE_ClientNode, PW_TYPE_INFO_INTERFACE_BASE "ClientNode", SPA_TYPE_Pointer, NULL },
{ PW_TYPE_INTERFACE_Device, PW_TYPE_INFO_INTERFACE_BASE "Device", SPA_TYPE_Pointer, NULL },
{ SPA_ID_INVALID, "spa_types", SPA_ID_INVALID, spa_types },
{ 0, NULL, 0, NULL },
{ PW_TYPE_INTERFACE_Core, SPA_TYPE_Pointer, PW_TYPE_INFO_INTERFACE_BASE "Core", NULL },
{ PW_TYPE_INTERFACE_Registry, SPA_TYPE_Pointer, PW_TYPE_INFO_INTERFACE_BASE "Registry", NULL },
{ PW_TYPE_INTERFACE_Node, SPA_TYPE_Pointer, PW_TYPE_INFO_INTERFACE_BASE "Node", NULL },
{ PW_TYPE_INTERFACE_Port, SPA_TYPE_Pointer, PW_TYPE_INFO_INTERFACE_BASE "Port", NULL },
{ PW_TYPE_INTERFACE_Factory, SPA_TYPE_Pointer, PW_TYPE_INFO_INTERFACE_BASE "Factory", NULL },
{ PW_TYPE_INTERFACE_Link, SPA_TYPE_Pointer, PW_TYPE_INFO_INTERFACE_BASE "Link", NULL },
{ PW_TYPE_INTERFACE_Client, SPA_TYPE_Pointer, PW_TYPE_INFO_INTERFACE_BASE "Client", NULL },
{ PW_TYPE_INTERFACE_Module, SPA_TYPE_Pointer, PW_TYPE_INFO_INTERFACE_BASE "Module", NULL },
{ PW_TYPE_INTERFACE_ClientNode, SPA_TYPE_Pointer, PW_TYPE_INFO_INTERFACE_BASE "ClientNode", NULL },
{ PW_TYPE_INTERFACE_Device, SPA_TYPE_Pointer, PW_TYPE_INFO_INTERFACE_BASE "Device", NULL },
{ SPA_ID_INVALID, SPA_ID_INVALID, "spa_types", spa_types },
{ 0, 0, NULL, NULL },
};
SPA_EXPORT

View file

@ -53,10 +53,10 @@ typedef int (*pw_command_func_t) (struct pw_command *command, struct pw_core *co
/** \cond */
struct pw_command {
uint32_t id; /**< id of command */
struct spa_list link; /**< link in list of commands */
pw_command_func_t func;
char **args;
uint32_t id; /**< id of command */
int n_args;
};
@ -100,7 +100,6 @@ struct pw_client {
struct spa_list link; /**< link in core object client list */
struct pw_global *global; /**< global object created for this client */
struct spa_hook global_listener;
bool registered;
pw_permission_func_t permission_func; /**< get permissions of an object */
void *permission_data; /**< data passed to permission function */
@ -108,21 +107,22 @@ struct pw_client {
struct pw_properties *properties; /**< Client properties */
struct pw_client_info info; /**< client info */
bool ucred_valid; /**< if the ucred member is valid */
struct ucred ucred; /**< ucred information */
struct pw_resource *core_resource; /**< core resource object */
struct pw_map objects; /**< list of resource objects */
bool busy;
struct spa_hook_list listener_list;
struct pw_protocol *protocol; /**< protocol in use */
struct spa_list protocol_link; /**< link in the protocol client_list */
void *user_data; /**< extra user data */
struct ucred ucred; /**< ucred information */
int registered:1;
int ucred_valid:1; /**< if the ucred member is valid */
int busy:1;
};
#define pw_global_events_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_global_events, m, v, ##__VA_ARGS__)
@ -210,8 +210,8 @@ struct pw_data_loop {
struct spa_source *event;
bool running;
pthread_t thread;
int running:1;
};
#define pw_main_loop_events_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_main_loop_events, m, v, ##__VA_ARGS__)
@ -223,7 +223,7 @@ struct pw_main_loop {
struct spa_hook_list listener_list;
struct spa_source *event;
bool running;
int running:1;
};
struct allocation {
@ -258,7 +258,6 @@ struct pw_device {
struct spa_list link; /**< link in the core device_list */
struct pw_global *global; /**< global object for this device */
struct spa_hook global_listener;
bool registered;
struct pw_properties *properties; /**< properties of the device */
struct pw_device_info info; /**< introspectable device info */
@ -269,6 +268,8 @@ struct pw_device {
struct spa_list node_list;
void *user_data; /**< device user_data */
int registered:1;
};
#define pw_module_events_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_module_events, m, v, ##__VA_ARGS__)
@ -327,21 +328,23 @@ struct pw_node {
struct spa_list link; /**< link in core node_list */
struct pw_global *global; /**< global for this node */
struct spa_hook global_listener;
bool registered;
struct pw_properties *properties; /**< properties of the node */
struct pw_node_info info; /**< introspectable node info */
bool enabled; /**< if the node is enabled */
bool active; /**< if the node is active */
bool live; /**< if the node is live */
bool driver; /**< if the node can drive the graph */
bool exported; /**< if the node is exported */
bool remote; /**< if the node is implemented remotely */
bool master; /**< a master node is one of the driver nodes that
int registered:1;
int enabled:1; /**< if the node is enabled */
int active:1; /**< if the node is active */
int live:1; /**< if the node is live */
int driver:1; /**< if the node can drive the graph */
int exported:1; /**< if the node is exported */
int remote:1; /**< if the node is implemented remotely */
int master:1; /**< a master node is one of the driver nodes that
* is selected to drive the graph */
uint32_t port_user_data_size; /**< extra size for port user data */
struct pw_node *driver_node;
struct pw_node *driver_root;
struct spa_list driver_list;
@ -349,16 +352,15 @@ struct pw_node {
struct spa_node *node; /**< SPA node implementation */
uint32_t port_user_data_size; /**< extra size for port user data */
struct spa_list input_ports; /**< list of input ports */
struct pw_map input_port_map; /**< map from port_id to port */
struct spa_list output_ports; /**< list of output ports */
struct pw_map output_port_map; /**< map from port_id to port */
uint32_t n_used_input_links; /**< number of active input links */
uint32_t idle_used_input_links; /**< number of active input to be idle */
uint32_t n_ready_input_links; /**< number of ready input links */
struct spa_list output_ports; /**< list of output ports */
struct pw_map output_port_map; /**< map from port_id to port */
uint32_t n_used_output_links; /**< number of active output links */
uint32_t idle_used_output_links; /**< number of active output to be idle */
uint32_t n_ready_output_links; /**< number of ready output links */
@ -430,12 +432,11 @@ struct pw_port {
enum pw_direction direction; /**< port direction */
uint32_t port_id; /**< port id */
enum pw_port_state state; /**< state of the port */
struct pw_properties *properties; /**< properties of the port */
struct pw_port_info info;
enum pw_port_state state; /**< state of the port */
bool allocated; /**< if buffers are allocated */
struct allocation allocation;
struct spa_list links; /**< list of \ref pw_link */
@ -451,6 +452,9 @@ struct pw_port {
#define PW_PORT_MIX_FLAG_MULTI (1<<0) /**< multi input or output */
#define PW_PORT_MIX_FLAG_MIX_ONLY (1<<1) /**< only negotiate mix ports */
uint32_t mix_flags; /**< flags for the mixing */
int allocated:1; /**< if buffers are allocated */
struct pw_map mix_port_map; /**< map from port_id from mixer */
uint32_t n_mix;
uint32_t n_mix_configure;
@ -483,11 +487,9 @@ struct pw_link {
struct spa_list link; /**< link in core link_list */
struct pw_global *global; /**< global for this link */
struct spa_hook global_listener;
bool registered;
struct pw_link_info info; /**< introspectable link info */
struct pw_properties *properties; /**< extra link properties */
bool feedback;
struct spa_io_buffers *io; /**< link io area */
@ -505,6 +507,9 @@ struct pw_link {
} rt;
void *user_data;
int registered:1;
int feedback:1;
};
#define pw_resource_events_emit(o,m,v,...) spa_hook_list_call(&o->listener_list, struct pw_resource_events, m, v, ##__VA_ARGS__)
@ -593,10 +598,10 @@ struct pw_stream {
struct spa_list link; /**< link in the remote */
char *name; /**< the name of the stream */
uint32_t node_id; /**< node id for remote node, available from
* CONFIGURE state and higher */
struct pw_properties *properties; /**< properties of the stream */
uint32_t node_id; /**< node id for remote node, available from
* CONFIGURE state and higher */
enum pw_stream_state state; /**< stream state */
char *error; /**< error reason when state is in error */
@ -615,7 +620,6 @@ struct pw_factory {
struct spa_list link; /**< link in core node_factory_list */
struct pw_global *global; /**< global for this factory */
struct spa_hook global_listener;
bool registered;
struct pw_factory_info info; /**< introspectable factory info */
struct pw_properties *properties; /**< properties of the factory */
@ -626,6 +630,8 @@ struct pw_factory {
void *implementation_data;
void *user_data;
int registered:1;
};
#define pw_control_events_emit(c,m,v,...) spa_hook_list_call(&c->listener_list, struct pw_control_events, m, v, ##__VA_ARGS__)

View file

@ -75,12 +75,12 @@ struct pw_protocol_server {
struct pw_protocol_marshal {
uint32_t type; /**< interface type */
uint32_t version; /**< version */
uint32_t n_methods; /**< number of methods in the interface */
uint32_t n_events; /**< number of events in the interface */
const void *method_marshal;
const void *method_demarshal;
uint32_t n_methods; /**< number of methods in the interface */
const void *event_marshal;
const void *event_demarshal;
uint32_t n_events; /**< number of events in the interface */
};
struct pw_protocol_implementaton {

View file

@ -80,8 +80,8 @@ struct param {
#define DEFAULT_VOLUME 1.0
struct props {
bool changed;
float volume;
int changed:1;
};
static void reset_props(struct props *props)
@ -101,7 +101,6 @@ struct stream {
enum spa_direction direction;
enum pw_stream_flags flags;
bool async_connect;
struct spa_hook remote_listener;
struct pw_node *node;
@ -112,27 +111,28 @@ struct stream {
void *callbacks_data;
struct spa_io_buffers *io;
struct spa_io_sequence *io_control;
uint32_t io_control_size;
struct spa_io_sequence *io_notify;
uint32_t io_notify_size;
struct spa_io_position *position;
uint32_t io_control_size;
uint32_t io_notify_size;
struct pw_array params;
struct buffer buffers[MAX_BUFFERS];
uint32_t n_buffers;
uint32_t pending_seq;
struct queue dequeued;
struct queue queued;
uint32_t pending_seq;
bool disconnecting;
bool free_data;
struct data data;
uintptr_t seq;
struct pw_time time;
int async_connect:1;
int disconnecting:1;
int free_data:1;
};
static struct param *add_param(struct pw_stream *stream,

View file

@ -43,7 +43,6 @@ struct pw_thread_loop {
pthread_cond_t cond;
pthread_cond_t accept_cond;
bool running;
pthread_t thread;
struct spa_hook hook;
@ -52,6 +51,7 @@ struct pw_thread_loop {
int n_waiting;
int n_waiting_for_accept;
int running:1;
};
/** \endcond */

View file

@ -33,24 +33,24 @@
/** \cond */
struct work_item {
uint32_t id;
void *obj;
uint32_t id;
uint32_t seq;
int res;
pw_work_func_t func;
void *data;
struct spa_list link;
int res;
};
struct pw_work_queue {
struct pw_loop *loop;
struct spa_source *wakeup;
uint32_t counter;
struct spa_list work_list;
struct spa_list free_list;
int n_queued;
uint32_t counter;
uint32_t n_queued;
};
/** \endcond */

View file

@ -151,13 +151,13 @@ static void on_core_info(void *data, const struct pw_core_info *info)
bool print_all = true, print_mark = false;
printf("\ttype: %s\n", spa_debug_type_find_name(pw_type_info(), PW_TYPE_INTERFACE_Core));
printf("\tcookie: %u\n", info->cookie);
if (print_all) {
printf("%c\tuser-name: \"%s\"\n", MARK_CHANGE(0), info->user_name);
printf("%c\thost-name: \"%s\"\n", MARK_CHANGE(1), info->host_name);
printf("%c\tversion: \"%s\"\n", MARK_CHANGE(2), info->version);
printf("%c\tname: \"%s\"\n", MARK_CHANGE(3), info->name);
printf("%c\tcookie: %u\n", MARK_CHANGE(4), info->cookie);
print_properties(info->props, MARK_CHANGE(5));
print_properties(info->props, MARK_CHANGE(4));
}
}