uri -> type

Clean up some more types.
This commit is contained in:
Wim Taymans 2017-03-24 13:11:57 +01:00
parent 5825c62d6d
commit 25b7ede0bc
46 changed files with 276 additions and 256 deletions

View file

@ -159,20 +159,20 @@ core_event_remove_id (void *object,
} }
static void static void
core_event_update_uris (void *object, core_event_update_types (void *object,
uint32_t first_id, uint32_t first_id,
uint32_t n_uris, uint32_t n_types,
const char **uris) const char **types)
{ {
PinosProxy *proxy = object; PinosProxy *proxy = object;
PinosContext *this = proxy->context; PinosContext *this = proxy->context;
int i; int i;
for (i = 0; i < n_uris; i++, first_id++) { for (i = 0; i < n_types; i++, first_id++) {
SpaType this_id = spa_type_map_get_id (this->type.map, uris[i]); SpaType this_id = spa_type_map_get_id (this->type.map, types[i]);
printf ("update %d %s -> %d\n", first_id, uris[i], this_id); printf ("update %d %s -> %d\n", first_id, types[i], this_id);
if (!pinos_map_insert_at (&this->types, first_id, SPA_UINT32_TO_PTR (this_id))) if (!pinos_map_insert_at (&this->types, first_id, SPA_UINT32_TO_PTR (this_id)))
pinos_log_error ("can't add uri for client"); pinos_log_error ("can't add type for client");
} }
} }
@ -181,7 +181,7 @@ static const PinosCoreEvents core_events = {
&core_event_done, &core_event_done,
&core_event_error, &core_event_error,
&core_event_remove_id, &core_event_remove_id,
&core_event_update_uris &core_event_update_types
}; };
static void static void

View file

@ -43,8 +43,8 @@ static struct {
SpaTypeMediaSubtype media_subtype; SpaTypeMediaSubtype media_subtype;
SpaTypeMediaSubtypeVideo media_subtype_video; SpaTypeMediaSubtypeVideo media_subtype_video;
SpaTypeMediaSubtypeAudio media_subtype_audio; SpaTypeMediaSubtypeAudio media_subtype_audio;
SpaTypePropVideo prop_video; SpaTypeFormatVideo format_video;
SpaTypePropAudio prop_audio; SpaTypeFormatAudio format_audio;
SpaTypeVideoFormat video_format; SpaTypeVideoFormat video_format;
SpaTypeAudioFormat audio_format; SpaTypeAudioFormat audio_format;
} type = { 0, }; } type = { 0, };
@ -59,8 +59,8 @@ ensure_types (void)
spa_type_media_subtype_map (map, &type.media_subtype); spa_type_media_subtype_map (map, &type.media_subtype);
spa_type_media_subtype_video_map (map, &type.media_subtype_video); spa_type_media_subtype_video_map (map, &type.media_subtype_video);
spa_type_media_subtype_audio_map (map, &type.media_subtype_audio); spa_type_media_subtype_audio_map (map, &type.media_subtype_audio);
spa_type_prop_video_map (map, &type.prop_video); spa_type_format_video_map (map, &type.format_video);
spa_type_prop_audio_map (map, &type.prop_audio); spa_type_format_audio_map (map, &type.format_audio);
spa_type_video_format_map (map, &type.video_format); spa_type_video_format_map (map, &type.video_format);
spa_type_audio_format_map (map, &type.audio_format); spa_type_audio_format_map (map, &type.audio_format);
} }
@ -369,10 +369,10 @@ handle_video_fields (ConvertData *d)
for (i = 0; (v = get_nth_string (value, i)); i++) { for (i = 0; (v = get_nth_string (value, i)); i++) {
if (i == 0) if (i == 0)
spa_pod_builder_push_prop (&d->b, &f, spa_pod_builder_push_prop (&d->b, &f,
type.prop_video.format, type.format_video.format,
get_range_type (value) | SPA_POD_PROP_FLAG_READWRITE); get_range_type (value) | SPA_POD_PROP_FLAG_READWRITE);
spa_pod_builder_uri (&d->b, *video_format_map[gst_video_format_from_string (v)]); spa_pod_builder_id (&d->b, *video_format_map[gst_video_format_from_string (v)]);
} }
if (i > 1) if (i > 1)
SPA_POD_BUILDER_DEREF (&d->b, f.ref, SpaPODProp)->body.flags |= SPA_POD_PROP_FLAG_UNSET; SPA_POD_BUILDER_DEREF (&d->b, f.ref, SpaPODProp)->body.flags |= SPA_POD_PROP_FLAG_UNSET;
@ -385,7 +385,7 @@ handle_video_fields (ConvertData *d)
for (i = 0; get_nth_rectangle (value, value2, i, &v); i++) { for (i = 0; get_nth_rectangle (value, value2, i, &v); i++) {
if (i == 0) if (i == 0)
spa_pod_builder_push_prop (&d->b, &f, spa_pod_builder_push_prop (&d->b, &f,
type.prop_video.size, type.format_video.size,
get_range_type2 (value, value2) | SPA_POD_PROP_FLAG_READWRITE); get_range_type2 (value, value2) | SPA_POD_PROP_FLAG_READWRITE);
spa_pod_builder_rectangle (&d->b, v.width, v.height); spa_pod_builder_rectangle (&d->b, v.width, v.height);
@ -401,7 +401,7 @@ handle_video_fields (ConvertData *d)
for (i = 0; get_nth_fraction (value, i, &v); i++) { for (i = 0; get_nth_fraction (value, i, &v); i++) {
if (i == 0) if (i == 0)
spa_pod_builder_push_prop (&d->b, &f, spa_pod_builder_push_prop (&d->b, &f,
type.prop_video.framerate, type.format_video.framerate,
get_range_type (value) | SPA_POD_PROP_FLAG_READWRITE); get_range_type (value) | SPA_POD_PROP_FLAG_READWRITE);
spa_pod_builder_fraction (&d->b, v.num, v.denom); spa_pod_builder_fraction (&d->b, v.num, v.denom);
@ -426,10 +426,10 @@ handle_audio_fields (ConvertData *d)
for (i = 0; (v = get_nth_string (value, i)); i++) { for (i = 0; (v = get_nth_string (value, i)); i++) {
if (i == 0) if (i == 0)
spa_pod_builder_push_prop (&d->b, &f, spa_pod_builder_push_prop (&d->b, &f,
type.prop_audio.format, type.format_audio.format,
get_range_type (value) | SPA_POD_PROP_FLAG_READWRITE); get_range_type (value) | SPA_POD_PROP_FLAG_READWRITE);
spa_pod_builder_uri (&d->b, *audio_format_map[gst_audio_format_from_string (v)]); spa_pod_builder_id (&d->b, *audio_format_map[gst_audio_format_from_string (v)]);
} }
if (i > 1) if (i > 1)
SPA_POD_BUILDER_DEREF (&d->b, f.ref, SpaPODProp)->body.flags |= SPA_POD_PROP_FLAG_UNSET; SPA_POD_BUILDER_DEREF (&d->b, f.ref, SpaPODProp)->body.flags |= SPA_POD_PROP_FLAG_UNSET;
@ -451,7 +451,7 @@ handle_audio_fields (ConvertData *d)
if (i == 0) if (i == 0)
spa_pod_builder_push_prop (&d->b, &f, spa_pod_builder_push_prop (&d->b, &f,
type.prop_audio.layout, type.format_audio.layout,
get_range_type (value) | SPA_POD_PROP_FLAG_READWRITE); get_range_type (value) | SPA_POD_PROP_FLAG_READWRITE);
spa_pod_builder_int (&d->b, layout); spa_pod_builder_int (&d->b, layout);
@ -466,7 +466,7 @@ handle_audio_fields (ConvertData *d)
for (i = 0; get_nth_int (value, i, &v); i++) { for (i = 0; get_nth_int (value, i, &v); i++) {
if (i == 0) if (i == 0)
spa_pod_builder_push_prop (&d->b, &f, spa_pod_builder_push_prop (&d->b, &f,
type.prop_audio.rate, type.format_audio.rate,
get_range_type (value) | SPA_POD_PROP_FLAG_READWRITE); get_range_type (value) | SPA_POD_PROP_FLAG_READWRITE);
spa_pod_builder_int (&d->b, v); spa_pod_builder_int (&d->b, v);
@ -481,7 +481,7 @@ handle_audio_fields (ConvertData *d)
for (i = 0; get_nth_int (value, i, &v); i++) { for (i = 0; get_nth_int (value, i, &v); i++) {
if (i == 0) if (i == 0)
spa_pod_builder_push_prop (&d->b, &f, spa_pod_builder_push_prop (&d->b, &f,
type.prop_audio.channels, type.format_audio.channels,
get_range_type (value) | SPA_POD_PROP_FLAG_READWRITE); get_range_type (value) | SPA_POD_PROP_FLAG_READWRITE);
spa_pod_builder_int (&d->b, v); spa_pod_builder_int (&d->b, v);

View file

@ -54,8 +54,8 @@ setup_video_node (PinosCore *core, SpaNode *spa_node, PinosProperties *pinos_pro
} }
if ((prop = spa_pod_object_find_prop (props, spa_type_map_get_id (core->type.map, SPA_TYPE_PROPS__patternType)))) { if ((prop = spa_pod_object_find_prop (props, spa_type_map_get_id (core->type.map, SPA_TYPE_PROPS__patternType)))) {
if (prop->body.value.type == SPA_POD_TYPE_URI) if (prop->body.value.type == SPA_POD_TYPE_ID)
SPA_POD_VALUE (SpaPODURI, &prop->body.value) = spa_type_map_get_id (core->type.map, pattern_type); SPA_POD_VALUE (SpaPODId, &prop->body.value) = spa_type_map_get_id (core->type.map, pattern_type);
} }
if ((res = spa_node_set_props (spa_node, props)) != SPA_RESULT_OK) { if ((res = spa_node_set_props (spa_node, props)) != SPA_RESULT_OK) {

View file

@ -30,7 +30,7 @@ typedef struct _SpaAllocParam SpaAllocParam;
#include <spa/type-map.h> #include <spa/type-map.h>
#include <spa/pod-utils.h> #include <spa/pod-utils.h>
#define SPA_TYPE__AllocParam "Spa:Object:AllocParam" #define SPA_TYPE__AllocParam SPA_TYPE_POD_OBJECT_BASE "AllocParam"
#define SPA_TYPE_ALLOC_PARAM_BASE SPA_TYPE__AllocParam ":" #define SPA_TYPE_ALLOC_PARAM_BASE SPA_TYPE__AllocParam ":"
typedef struct { typedef struct {

View file

@ -35,18 +35,18 @@ typedef struct {
uint32_t rate; uint32_t rate;
uint32_t channels; uint32_t channels;
uint32_t channel_mask; uint32_t channel_mask;
} SpaTypePropAudio; } SpaTypeFormatAudio;
static inline void static inline void
spa_type_prop_audio_map (SpaTypeMap *map, SpaTypePropAudio *type) spa_type_format_audio_map (SpaTypeMap *map, SpaTypeFormatAudio *type)
{ {
if (type->format == 0) { if (type->format == 0) {
type->format = spa_type_map_get_id (map, SPA_TYPE_PROP_AUDIO__format); type->format = spa_type_map_get_id (map, SPA_TYPE_FORMAT_AUDIO__format);
type->flags = spa_type_map_get_id (map, SPA_TYPE_PROP_AUDIO__flags); type->flags = spa_type_map_get_id (map, SPA_TYPE_FORMAT_AUDIO__flags);
type->layout = spa_type_map_get_id (map, SPA_TYPE_PROP_AUDIO__layout); type->layout = spa_type_map_get_id (map, SPA_TYPE_FORMAT_AUDIO__layout);
type->rate = spa_type_map_get_id (map, SPA_TYPE_PROP_AUDIO__rate); type->rate = spa_type_map_get_id (map, SPA_TYPE_FORMAT_AUDIO__rate);
type->channels = spa_type_map_get_id (map, SPA_TYPE_PROP_AUDIO__channels); type->channels = spa_type_map_get_id (map, SPA_TYPE_FORMAT_AUDIO__channels);
type->channel_mask = spa_type_map_get_id (map, SPA_TYPE_PROP_AUDIO__channelMask); type->channel_mask = spa_type_map_get_id (map, SPA_TYPE_FORMAT_AUDIO__channelMask);
} }
} }

View file

@ -29,15 +29,15 @@ extern "C" {
typedef struct _SpaAudioInfo SpaAudioInfo; typedef struct _SpaAudioInfo SpaAudioInfo;
#define SPA_TYPE_PROP__Audio "Spa:Prop:Audio" #define SPA_TYPE_FORMAT__Audio SPA_TYPE_FORMAT_BASE "Audio"
#define SPA_TYPE_PROP_AUDIO_BASE SPA_TYPE_PROP__Audio ":" #define SPA_TYPE_FORMAT_AUDIO_BASE SPA_TYPE_FORMAT__Audio ":"
#define SPA_TYPE_PROP_AUDIO__format SPA_TYPE_PROP_AUDIO_BASE "format" #define SPA_TYPE_FORMAT_AUDIO__format SPA_TYPE_FORMAT_AUDIO_BASE "format"
#define SPA_TYPE_PROP_AUDIO__flags SPA_TYPE_PROP_AUDIO_BASE "flags" #define SPA_TYPE_FORMAT_AUDIO__flags SPA_TYPE_FORMAT_AUDIO_BASE "flags"
#define SPA_TYPE_PROP_AUDIO__layout SPA_TYPE_PROP_AUDIO_BASE "layout" #define SPA_TYPE_FORMAT_AUDIO__layout SPA_TYPE_FORMAT_AUDIO_BASE "layout"
#define SPA_TYPE_PROP_AUDIO__rate SPA_TYPE_PROP_AUDIO_BASE "rate" #define SPA_TYPE_FORMAT_AUDIO__rate SPA_TYPE_FORMAT_AUDIO_BASE "rate"
#define SPA_TYPE_PROP_AUDIO__channels SPA_TYPE_PROP_AUDIO_BASE "channels" #define SPA_TYPE_FORMAT_AUDIO__channels SPA_TYPE_FORMAT_AUDIO_BASE "channels"
#define SPA_TYPE_PROP_AUDIO__channelMask SPA_TYPE_PROP_AUDIO_BASE "channel-mask" #define SPA_TYPE_FORMAT_AUDIO__channelMask SPA_TYPE_FORMAT_AUDIO_BASE "channel-mask"
struct _SpaAudioInfo { struct _SpaAudioInfo {
uint32_t media_type; uint32_t media_type;

View file

@ -28,8 +28,8 @@ typedef struct _SpaAudioInfoRaw SpaAudioInfoRaw;
#include <endian.h> #include <endian.h>
#define SPA_TYPE_AudioFormat "Spa:Enum:AudioFormat" #define SPA_TYPE__AudioFormat SPA_TYPE_ENUM_BASE "AudioFormat"
#define SPA_TYPE_AUDIO_FORMAT_BASE SPA_TYPE_AudioFormat ":" #define SPA_TYPE_AUDIO_FORMAT_BASE SPA_TYPE__AudioFormat ":"
#define SPA_TYPE_AUDIO_FORMAT__UNKNOWN SPA_TYPE_AUDIO_FORMAT_BASE "UNKNOWN" #define SPA_TYPE_AUDIO_FORMAT__UNKNOWN SPA_TYPE_AUDIO_FORMAT_BASE "UNKNOWN"
#define SPA_TYPE_AUDIO_FORMAT__ENCODED SPA_TYPE_AUDIO_FORMAT_BASE "ENCODED" #define SPA_TYPE_AUDIO_FORMAT__ENCODED SPA_TYPE_AUDIO_FORMAT_BASE "ENCODED"

View file

@ -26,7 +26,7 @@ extern "C" {
typedef struct _SpaBuffer SpaBuffer; typedef struct _SpaBuffer SpaBuffer;
#define SPA_TYPE__Buffer "Spa:Pointer:Buffer" #define SPA_TYPE__Buffer SPA_TYPE_POINTER_BASE "Buffer"
#define SPA_TYPE_BUFFER_BASE SPA_TYPE__Buffer ":" #define SPA_TYPE_BUFFER_BASE SPA_TYPE__Buffer ":"
/** /**

View file

@ -26,7 +26,7 @@ extern "C" {
typedef struct _SpaClock SpaClock; typedef struct _SpaClock SpaClock;
#define SPA_TYPE__Clock "Spa:Interface:Clock" #define SPA_TYPE__Clock SPA_TYPE_INTERFACE_BASE "Clock"
#define SPA_TYPE_CLOCK_BASE SPA_TYPE__Clock ":" #define SPA_TYPE_CLOCK_BASE SPA_TYPE__Clock ":"
/** /**

View file

@ -29,7 +29,7 @@ typedef struct _SpaCommand SpaCommand;
#include <spa/defs.h> #include <spa/defs.h>
#include <spa/pod.h> #include <spa/pod.h>
#define SPA_TYPE__Command "Spa:Object:Command" #define SPA_TYPE__Command SPA_TYPE_POD_OBJECT_BASE "Command"
#define SPA_TYPE_COMMAND_BASE SPA_TYPE__Command ":" #define SPA_TYPE_COMMAND_BASE SPA_TYPE__Command ":"
typedef struct { typedef struct {

View file

@ -26,7 +26,7 @@ extern "C" {
typedef struct _SpaDict SpaDict; typedef struct _SpaDict SpaDict;
#define SPA_TYPE__Dict "Spa:Pointer:Dict" #define SPA_TYPE__Dict SPA_TYPE_POINTER_BASE "Dict"
#define SPA_TYPE_DICT_BASE SPA_TYPE__Dict ":" #define SPA_TYPE_DICT_BASE SPA_TYPE__Dict ":"
#include <string.h> #include <string.h>

View file

@ -29,7 +29,7 @@ typedef struct _SpaEvent SpaEvent;
#include <spa/defs.h> #include <spa/defs.h>
#include <spa/pod.h> #include <spa/pod.h>
#define SPA_TYPE__Event "Spa:Object:Event" #define SPA_TYPE__Event SPA_TYPE_POD_OBJECT_BASE "Event"
#define SPA_TYPE_EVENT_BASE SPA_TYPE__Event ":" #define SPA_TYPE_EVENT_BASE SPA_TYPE__Event ":"
typedef struct { typedef struct {

View file

@ -38,16 +38,16 @@ spa_pod_builder_push_format (SpaPODBuilder *builder,
{ {
const SpaFormat p = { { sizeof (SpaFormatBody), SPA_POD_TYPE_OBJECT }, const SpaFormat p = { { sizeof (SpaFormatBody), SPA_POD_TYPE_OBJECT },
{ { 0, format_type }, { { 0, format_type },
{ { sizeof (uint32_t), SPA_POD_TYPE_URI }, media_type }, { { sizeof (uint32_t), SPA_POD_TYPE_ID }, media_type },
{ { sizeof (uint32_t), SPA_POD_TYPE_URI }, media_subtype } } }; { { sizeof (uint32_t), SPA_POD_TYPE_ID }, media_subtype } } };
return spa_pod_builder_push (builder, frame, &p.pod, return spa_pod_builder_push (builder, frame, &p.pod,
spa_pod_builder_raw (builder, &p, sizeof(p))); spa_pod_builder_raw (builder, &p, sizeof(p)));
} }
#define spa_pod_builder_format(b,f,format_type,media_type,media_subtype,...) \ #define spa_pod_builder_format(b,f,format_type,media_type,media_subtype,...) \
spa_pod_builder_object(b, f, 0, format_type, \ spa_pod_builder_object(b, f, 0, format_type, \
SPA_POD_TYPE_URI,media_type, \ SPA_POD_TYPE_ID,media_type, \
SPA_POD_TYPE_URI,media_subtype, \ SPA_POD_TYPE_ID,media_subtype, \
__VA_ARGS__) __VA_ARGS__)
SpaResult SpaResult

View file

@ -133,8 +133,8 @@ spa_type_media_subtype_audio_map (SpaTypeMap *map, SpaTypeMediaSubtypeAudio *typ
#define SPA_FORMAT_INIT(size,type,media_type,media_subtype,...) \ #define SPA_FORMAT_INIT(size,type,media_type,media_subtype,...) \
{ { size, SPA_POD_TYPE_OBJECT }, \ { { size, SPA_POD_TYPE_OBJECT }, \
{ { 0, type }, \ { { 0, type }, \
SPA_POD_URI_INIT (media_type), \ SPA_POD_ID_INIT (media_type), \
SPA_POD_URI_INIT (media_subtype) } } SPA_POD_ID_INIT (media_subtype) } }
#define SPA_FORMAT_BODY_FOREACH(body, size, iter) \ #define SPA_FORMAT_BODY_FOREACH(body, size, iter) \
for ((iter) = SPA_MEMBER ((body), sizeof (SpaFormatBody), SpaPODProp); \ for ((iter) = SPA_MEMBER ((body), sizeof (SpaFormatBody), SpaPODProp); \

View file

@ -24,7 +24,7 @@
extern "C" { extern "C" {
#endif #endif
#define SPA_TYPE__Format "Spa:Object:Format" #define SPA_TYPE__Format SPA_TYPE_POD_OBJECT_BASE "Format"
#define SPA_TYPE_FORMAT_BASE SPA_TYPE__Format ":" #define SPA_TYPE_FORMAT_BASE SPA_TYPE__Format ":"
typedef struct _SpaFormat SpaFormat; typedef struct _SpaFormat SpaFormat;
@ -32,14 +32,14 @@ typedef struct _SpaFormat SpaFormat;
#include <spa/defs.h> #include <spa/defs.h>
#include <spa/pod.h> #include <spa/pod.h>
#define SPA_TYPE__MediaType "Spa:Enum:MediaType" #define SPA_TYPE__MediaType SPA_TYPE_ENUM_BASE "MediaType"
#define SPA_TYPE_MEDIA_TYPE_BASE SPA_TYPE__MediaType ":" #define SPA_TYPE_MEDIA_TYPE_BASE SPA_TYPE__MediaType ":"
#define SPA_TYPE_MEDIA_TYPE__audio SPA_TYPE_MEDIA_TYPE_BASE "audio" #define SPA_TYPE_MEDIA_TYPE__audio SPA_TYPE_MEDIA_TYPE_BASE "audio"
#define SPA_TYPE_MEDIA_TYPE__video SPA_TYPE_MEDIA_TYPE_BASE "video" #define SPA_TYPE_MEDIA_TYPE__video SPA_TYPE_MEDIA_TYPE_BASE "video"
#define SPA_TYPE_MEDIA_TYPE__image SPA_TYPE_MEDIA_TYPE_BASE "image" #define SPA_TYPE_MEDIA_TYPE__image SPA_TYPE_MEDIA_TYPE_BASE "image"
#define SPA_TYPE__MediaSubtype "Spa:Enum:MediaSubtype" #define SPA_TYPE__MediaSubtype SPA_TYPE_ENUM_BASE "MediaSubtype"
#define SPA_TYPE_MEDIA_SUBTYPE_BASE SPA_TYPE__MediaSubtype ":" #define SPA_TYPE_MEDIA_SUBTYPE_BASE SPA_TYPE__MediaSubtype ":"
/* generic subtypes */ /* generic subtypes */
@ -77,8 +77,8 @@ typedef struct _SpaFormat SpaFormat;
typedef struct { typedef struct {
SpaPODObjectBody obj_body; SpaPODObjectBody obj_body;
SpaPODURI media_type SPA_ALIGNED (8); SpaPODId media_type SPA_ALIGNED (8);
SpaPODURI media_subtype SPA_ALIGNED (8); SpaPODId media_subtype SPA_ALIGNED (8);
/* contents follow, series of SpaPODProp */ /* contents follow, series of SpaPODProp */
} SpaFormatBody; } SpaFormatBody;

View file

@ -26,7 +26,7 @@ extern "C" {
typedef struct _SpaLog SpaLog; typedef struct _SpaLog SpaLog;
#define SPA_TYPE__Log "Spa:Interface:Log" #define SPA_TYPE__Log SPA_TYPE_INTERFACE_BASE "Log"
#define SPA_TYPE_LOG_BASE SPA_TYPE__Log ":" #define SPA_TYPE_LOG_BASE SPA_TYPE__Log ":"
#include <stdarg.h> #include <stdarg.h>

View file

@ -29,11 +29,12 @@ typedef struct _SpaSource SpaSource;
typedef struct _SpaLoopControl SpaLoopControl; typedef struct _SpaLoopControl SpaLoopControl;
typedef struct _SpaLoopUtils SpaLoopUtils; typedef struct _SpaLoopUtils SpaLoopUtils;
#define SPA_TYPE__Loop "Spa:Interface:Loop" #define SPA_TYPE__Loop SPA_TYPE_INTERFACE_BASE "Loop"
#define SPA_TYPE__LoopControl "Spa:Interface:LoopControl" #define SPA_TYPE_LOOP_BASE SPA_TYPE__Loop ":"
#define SPA_TYPE__LoopUtils "Spa:Interface:LoopUtils"
#define SPA_TYPE__LoopControl SPA_TYPE_INTERFACE_BASE "LoopControl"
#define SPA_TYPE__LoopUtils SPA_TYPE_INTERFACE_BASE "LoopUtils"
#define SPA_TYPE_LOOP_BASE SPA_TYPE__Loop ":"
#define SPA_TYPE_LOOP__MainLoop SPA_TYPE_LOOP_BASE "MainLoop" #define SPA_TYPE_LOOP__MainLoop SPA_TYPE_LOOP_BASE "MainLoop"
#define SPA_TYPE_LOOP__DataLoop SPA_TYPE_LOOP_BASE "DataLoop" #define SPA_TYPE_LOOP__DataLoop SPA_TYPE_LOOP_BASE "DataLoop"

View file

@ -26,7 +26,7 @@ extern "C" {
typedef struct _SpaMonitor SpaMonitor; typedef struct _SpaMonitor SpaMonitor;
#define SPA_TYPE__Monitor "Spa:Interface:Monitor" #define SPA_TYPE__Monitor SPA_TYPE_INTERFACE_BASE "Monitor"
#define SPA_TYPE_MONITOR_BASE SPA_TYPE__Monitor ":" #define SPA_TYPE_MONITOR_BASE SPA_TYPE__Monitor ":"
#include <spa/defs.h> #include <spa/defs.h>
@ -42,8 +42,9 @@ typedef SpaEvent SpaEventMonitor;
#define SPA_TYPE_EVENT_MONITOR__Changed SPA_TYPE_EVENT_MONITOR_BASE "Changed" #define SPA_TYPE_EVENT_MONITOR__Changed SPA_TYPE_EVENT_MONITOR_BASE "Changed"
typedef SpaPODObject SpaMonitorItem; typedef SpaPODObject SpaMonitorItem;
#define SPA_TYPE__MonitorItem "Spa:Object:MonitorItem" #define SPA_TYPE__MonitorItem SPA_TYPE_POD_OBJECT_BASE "MonitorItem"
#define SPA_TYPE_MONITOR_ITEM_BASE SPA_TYPE__MonitorItem ":" #define SPA_TYPE_MONITOR_ITEM_BASE SPA_TYPE__MonitorItem ":"
#define SPA_TYPE_MONITOR_ITEM__id SPA_TYPE_MONITOR_ITEM_BASE "id" #define SPA_TYPE_MONITOR_ITEM__id SPA_TYPE_MONITOR_ITEM_BASE "id"
#define SPA_TYPE_MONITOR_ITEM__flags SPA_TYPE_MONITOR_ITEM_BASE "flags" #define SPA_TYPE_MONITOR_ITEM__flags SPA_TYPE_MONITOR_ITEM_BASE "flags"
#define SPA_TYPE_MONITOR_ITEM__state SPA_TYPE_MONITOR_ITEM_BASE "state" #define SPA_TYPE_MONITOR_ITEM__state SPA_TYPE_MONITOR_ITEM_BASE "state"

View file

@ -26,7 +26,7 @@ extern "C" {
typedef struct _SpaNode SpaNode; typedef struct _SpaNode SpaNode;
#define SPA_TYPE__Node "Spa:Interface:Node" #define SPA_TYPE__Node SPA_TYPE_INTERFACE_BASE "Node"
#define SPA_TYPE_NODE_BASE SPA_TYPE__Node ":" #define SPA_TYPE_NODE_BASE SPA_TYPE__Node ":"
/** /**

View file

@ -27,8 +27,8 @@ extern "C" {
#include <spa/defs.h> #include <spa/defs.h>
#include <spa/dict.h> #include <spa/dict.h>
#define SPA_TYPE__Handle "Spa:Interface:Handle" #define SPA_TYPE__Handle SPA_TYPE_INTERFACE_BASE "Handle"
#define SPA_TYPE__HandleFactory "Spa:Interface:HandleFactory" #define SPA_TYPE__HandleFactory SPA_TYPE_INTERFACE_BASE "HandleFactory"
typedef struct _SpaHandle SpaHandle; typedef struct _SpaHandle SpaHandle;
typedef struct _SpaHandleFactory SpaHandleFactory; typedef struct _SpaHandleFactory SpaHandleFactory;

View file

@ -157,12 +157,12 @@ spa_pod_builder_bool (SpaPODBuilder *builder, bool val)
return spa_pod_builder_primitive (builder, &p.pod); return spa_pod_builder_primitive (builder, &p.pod);
} }
#define SPA_POD_URI_INIT(val) { { sizeof (uint32_t), SPA_POD_TYPE_URI }, val } #define SPA_POD_ID_INIT(val) { { sizeof (uint32_t), SPA_POD_TYPE_ID }, val }
static inline uint32_t static inline uint32_t
spa_pod_builder_uri (SpaPODBuilder *builder, uint32_t val) spa_pod_builder_id (SpaPODBuilder *builder, uint32_t val)
{ {
const SpaPODURI p = SPA_POD_URI_INIT (val); const SpaPODId p = SPA_POD_ID_INIT (val);
return spa_pod_builder_primitive (builder, &p.pod); return spa_pod_builder_primitive (builder, &p.pod);
} }
@ -332,7 +332,7 @@ spa_pod_builder_addv (SpaPODBuilder *builder,
union { union {
SpaPOD pod; SpaPOD pod;
SpaPODBool bool_pod; SpaPODBool bool_pod;
SpaPODURI uri_pod; SpaPODId id_pod;
SpaPODInt int_pod; SpaPODInt int_pod;
SpaPODLong long_pod; SpaPODLong long_pod;
SpaPODFloat float_pod; SpaPODFloat float_pod;
@ -361,7 +361,7 @@ spa_pod_builder_addv (SpaPODBuilder *builder,
case SPA_POD_TYPE_NONE: case SPA_POD_TYPE_NONE:
break; break;
case SPA_POD_TYPE_BOOL: case SPA_POD_TYPE_BOOL:
case SPA_POD_TYPE_URI: case SPA_POD_TYPE_ID:
case SPA_POD_TYPE_INT: case SPA_POD_TYPE_INT:
head.int_pod.pod.type = type; head.int_pod.pod.type = type;
head.int_pod.pod.size = body_size = sizeof (uint32_t); head.int_pod.pod.size = body_size = sizeof (uint32_t);

View file

@ -109,7 +109,7 @@ spa_pod_object_find_prop (const SpaPODObject *obj, uint32_t key)
} else if ((pod)->type == type || (pod)->type == -type) { \ } else if ((pod)->type == type || (pod)->type == -type) { \
switch (type) { \ switch (type) { \
case SPA_POD_TYPE_BOOL: \ case SPA_POD_TYPE_BOOL: \
case SPA_POD_TYPE_URI: \ case SPA_POD_TYPE_ID: \
case SPA_POD_TYPE_INT: \ case SPA_POD_TYPE_INT: \
*(va_arg (args, int32_t*)) = SPA_POD_VALUE(SpaPODInt, pod); \ *(va_arg (args, int32_t*)) = SPA_POD_VALUE(SpaPODInt, pod); \
break; \ break; \
@ -175,7 +175,7 @@ spa_pod_object_find_prop (const SpaPODObject *obj, uint32_t key)
va_arg (args, void*); \ va_arg (args, void*); \
/* fallthrough */ \ /* fallthrough */ \
case SPA_POD_TYPE_BOOL: \ case SPA_POD_TYPE_BOOL: \
case SPA_POD_TYPE_URI: \ case SPA_POD_TYPE_ID: \
case SPA_POD_TYPE_INT: \ case SPA_POD_TYPE_INT: \
case SPA_POD_TYPE_LONG: \ case SPA_POD_TYPE_LONG: \
case SPA_POD_TYPE_FLOAT: \ case SPA_POD_TYPE_FLOAT: \

View file

@ -28,6 +28,15 @@ extern "C" {
#include <spa/defs.h> #include <spa/defs.h>
#define SPA_TYPE__POD SPA_TYPE_BASE "POD"
#define SPA_TYPE_POD_BASE SPA_TYPE__POD ":"
#define SPA_TYPE_POD__Object SPA_TYPE_POD_BASE "Object"
#define SPA_TYPE_POD_OBJECT_BASE SPA_TYPE_POD__Object ":"
#define SPA_TYPE_POD__Struct SPA_TYPE_POD_BASE "Struct"
#define SPA_TYPE_POD_STRUCT_BASE SPA_TYPE_POD__Struct ":"
/** /**
* SpaPODType: * SpaPODType:
*/ */
@ -35,7 +44,7 @@ typedef enum {
SPA_POD_TYPE_INVALID = 0, SPA_POD_TYPE_INVALID = 0,
SPA_POD_TYPE_NONE = 1, SPA_POD_TYPE_NONE = 1,
SPA_POD_TYPE_BOOL, SPA_POD_TYPE_BOOL,
SPA_POD_TYPE_URI, SPA_POD_TYPE_ID,
SPA_POD_TYPE_INT, SPA_POD_TYPE_INT,
SPA_POD_TYPE_LONG, SPA_POD_TYPE_LONG,
SPA_POD_TYPE_FLOAT, SPA_POD_TYPE_FLOAT,
@ -55,7 +64,7 @@ typedef enum {
typedef struct { typedef struct {
uint32_t size; uint32_t size;
uint32_t type; uint32_t type; /* one of SpaPODType */
} SpaPOD; } SpaPOD;
typedef struct { typedef struct {
@ -65,7 +74,7 @@ typedef struct {
} SpaPODInt; } SpaPODInt;
typedef SpaPODInt SpaPODBool; typedef SpaPODInt SpaPODBool;
typedef SpaPODInt SpaPODURI; typedef SpaPODInt SpaPODId;
typedef struct { typedef struct {
SpaPOD pod; SpaPOD pod;

View file

@ -29,7 +29,7 @@ extern "C" {
typedef SpaPODObject SpaProps; typedef SpaPODObject SpaProps;
#define SPA_TYPE__Props "Spa:Object:Props" #define SPA_TYPE__Props SPA_TYPE_POD_OBJECT_BASE "Props"
#define SPA_TYPE_PROPS_BASE SPA_TYPE__Props ":" #define SPA_TYPE_PROPS_BASE SPA_TYPE__Props ":"
#define SPA_TYPE_PROPS__device SPA_TYPE_PROPS_BASE "device" #define SPA_TYPE_PROPS__device SPA_TYPE_PROPS_BASE "device"

View file

@ -26,7 +26,7 @@ extern "C" {
typedef struct _SpaRingbuffer SpaRingbuffer; typedef struct _SpaRingbuffer SpaRingbuffer;
#define SPA_TYPE__RingBuffer "Spa:Object:RingBuffer" #define SPA_TYPE__RingBuffer SPA_TYPE_INTERFACE_BASE "RingBuffer"
#define SPA_TYPE_RINGBUFFER_BASE SPA_TYPE__RingBuffer ":" #define SPA_TYPE_RINGBUFFER_BASE SPA_TYPE__RingBuffer ":"
#include <string.h> #include <string.h>

View file

@ -30,8 +30,7 @@ typedef struct _SpaTypeMap SpaTypeMap;
#include <spa/plugin.h> #include <spa/plugin.h>
#include <spa/type.h> #include <spa/type.h>
#define SPA_TYPE__TypeMap "Spa:Interface:TypeMap" #define SPA_TYPE__TypeMap SPA_TYPE_INTERFACE_BASE "TypeMap"
#define SPA_TYPE_TYPE_MAP_BASE SPA_TYPE__TypeMap ":"
/** /**
* SpaTypeMap: * SpaTypeMap:

View file

@ -28,6 +28,16 @@ extern "C" {
typedef uint32_t SpaType; typedef uint32_t SpaType;
#define SPA_TYPE_BASE "Spa:"
#define SPA_TYPE__Enum SPA_TYPE_BASE "Enum"
#define SPA_TYPE_ENUM_BASE SPA_TYPE__Enum ":"
#define SPA_TYPE__Interface SPA_TYPE_BASE "Interface"
#define SPA_TYPE_INTERFACE_BASE SPA_TYPE__Interface ":"
#define SPA_TYPE__Object SPA_TYPE_BASE "Object"
#define SPA_TYPE_OBJECT_BASE SPA_TYPE__Object ":"
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */

View file

@ -47,30 +47,30 @@ typedef struct {
uint32_t level; uint32_t level;
uint32_t stream_format; uint32_t stream_format;
uint32_t alignment; uint32_t alignment;
} SpaTypePropVideo; } SpaTypeFormatVideo;
static inline void static inline void
spa_type_prop_video_map (SpaTypeMap *map, SpaTypePropVideo *type) spa_type_format_video_map (SpaTypeMap *map, SpaTypeFormatVideo *type)
{ {
if (type->format == 0) { if (type->format == 0) {
type->format = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__format); type->format = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__format);
type->size = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__size); type->size = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__size);
type->framerate = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__framerate); type->framerate = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__framerate);
type->max_framerate = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__maxFramerate); type->max_framerate = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__maxFramerate);
type->views = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__views); type->views = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__views);
type->interlace_mode = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__interlaceMode); type->interlace_mode = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__interlaceMode);
type->pixel_aspect_ratio = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__pixelAspectRatio); type->pixel_aspect_ratio = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__pixelAspectRatio);
type->multiview_mode = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__multiviewMode); type->multiview_mode = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__multiviewMode);
type->multiview_flags = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__multiviewFlags); type->multiview_flags = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__multiviewFlags);
type->chroma_site = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__chromaSite); type->chroma_site = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__chromaSite);
type->color_range = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__colorRange); type->color_range = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__colorRange);
type->color_matrix = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__colorMatrix); type->color_matrix = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__colorMatrix);
type->transfer_function = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__transferFunction); type->transfer_function = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__transferFunction);
type->color_primaries = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__colorPrimaries); type->color_primaries = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__colorPrimaries);
type->profile = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__profile); type->profile = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__profile);
type->level = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__level); type->level = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__level);
type->stream_format = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__streamFormat); type->stream_format = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__streamFormat);
type->alignment = spa_type_map_get_id (map, SPA_TYPE_PROP_VIDEO__alignment); type->alignment = spa_type_map_get_id (map, SPA_TYPE_FORMAT_VIDEO__alignment);
} }
} }

View file

@ -30,27 +30,27 @@ extern "C" {
typedef struct _SpaVideoInfo SpaVideoInfo; typedef struct _SpaVideoInfo SpaVideoInfo;
#define SPA_TYPE_PROP__Video "Spa:Prop:Video" #define SPA_TYPE_FORMAT__Video SPA_TYPE_FORMAT_BASE "Video"
#define SPA_TYPE_PROP_VIDEO_BASE SPA_TYPE_PROP__Video ":" #define SPA_TYPE_FORMAT_VIDEO_BASE SPA_TYPE_FORMAT__Video ":"
#define SPA_TYPE_PROP_VIDEO__format SPA_TYPE_PROP_VIDEO_BASE "format" #define SPA_TYPE_FORMAT_VIDEO__format SPA_TYPE_FORMAT_VIDEO_BASE "format"
#define SPA_TYPE_PROP_VIDEO__size SPA_TYPE_PROP_VIDEO_BASE "size" #define SPA_TYPE_FORMAT_VIDEO__size SPA_TYPE_FORMAT_VIDEO_BASE "size"
#define SPA_TYPE_PROP_VIDEO__framerate SPA_TYPE_PROP_VIDEO_BASE "framerate" #define SPA_TYPE_FORMAT_VIDEO__framerate SPA_TYPE_FORMAT_VIDEO_BASE "framerate"
#define SPA_TYPE_PROP_VIDEO__maxFramerate SPA_TYPE_PROP_VIDEO_BASE "max-framerate" #define SPA_TYPE_FORMAT_VIDEO__maxFramerate SPA_TYPE_FORMAT_VIDEO_BASE "max-framerate"
#define SPA_TYPE_PROP_VIDEO__views SPA_TYPE_PROP_VIDEO_BASE "views" #define SPA_TYPE_FORMAT_VIDEO__views SPA_TYPE_FORMAT_VIDEO_BASE "views"
#define SPA_TYPE_PROP_VIDEO__interlaceMode SPA_TYPE_PROP_VIDEO_BASE "interlace-mode" #define SPA_TYPE_FORMAT_VIDEO__interlaceMode SPA_TYPE_FORMAT_VIDEO_BASE "interlace-mode"
#define SPA_TYPE_PROP_VIDEO__pixelAspectRatio SPA_TYPE_PROP_VIDEO_BASE "pixel-aspect-ratio" #define SPA_TYPE_FORMAT_VIDEO__pixelAspectRatio SPA_TYPE_FORMAT_VIDEO_BASE "pixel-aspect-ratio"
#define SPA_TYPE_PROP_VIDEO__multiviewMode SPA_TYPE_PROP_VIDEO_BASE "multiview-mode" #define SPA_TYPE_FORMAT_VIDEO__multiviewMode SPA_TYPE_FORMAT_VIDEO_BASE "multiview-mode"
#define SPA_TYPE_PROP_VIDEO__multiviewFlags SPA_TYPE_PROP_VIDEO_BASE "multiview-flags" #define SPA_TYPE_FORMAT_VIDEO__multiviewFlags SPA_TYPE_FORMAT_VIDEO_BASE "multiview-flags"
#define SPA_TYPE_PROP_VIDEO__chromaSite SPA_TYPE_PROP_VIDEO_BASE "chroma-site" #define SPA_TYPE_FORMAT_VIDEO__chromaSite SPA_TYPE_FORMAT_VIDEO_BASE "chroma-site"
#define SPA_TYPE_PROP_VIDEO__colorRange SPA_TYPE_PROP_VIDEO_BASE "color-range" #define SPA_TYPE_FORMAT_VIDEO__colorRange SPA_TYPE_FORMAT_VIDEO_BASE "color-range"
#define SPA_TYPE_PROP_VIDEO__colorMatrix SPA_TYPE_PROP_VIDEO_BASE "color-matrix" #define SPA_TYPE_FORMAT_VIDEO__colorMatrix SPA_TYPE_FORMAT_VIDEO_BASE "color-matrix"
#define SPA_TYPE_PROP_VIDEO__transferFunction SPA_TYPE_PROP_VIDEO_BASE "transfer-function" #define SPA_TYPE_FORMAT_VIDEO__transferFunction SPA_TYPE_FORMAT_VIDEO_BASE "transfer-function"
#define SPA_TYPE_PROP_VIDEO__colorPrimaries SPA_TYPE_PROP_VIDEO_BASE "color-primaries" #define SPA_TYPE_FORMAT_VIDEO__colorPrimaries SPA_TYPE_FORMAT_VIDEO_BASE "color-primaries"
#define SPA_TYPE_PROP_VIDEO__profile SPA_TYPE_PROP_VIDEO_BASE "profile" #define SPA_TYPE_FORMAT_VIDEO__profile SPA_TYPE_FORMAT_VIDEO_BASE "profile"
#define SPA_TYPE_PROP_VIDEO__level SPA_TYPE_PROP_VIDEO_BASE "level" #define SPA_TYPE_FORMAT_VIDEO__level SPA_TYPE_FORMAT_VIDEO_BASE "level"
#define SPA_TYPE_PROP_VIDEO__streamFormat SPA_TYPE_PROP_VIDEO_BASE "stream-format" #define SPA_TYPE_FORMAT_VIDEO__streamFormat SPA_TYPE_FORMAT_VIDEO_BASE "stream-format"
#define SPA_TYPE_PROP_VIDEO__alignment SPA_TYPE_PROP_VIDEO_BASE "alignment" #define SPA_TYPE_FORMAT_VIDEO__alignment SPA_TYPE_FORMAT_VIDEO_BASE "alignment"
struct _SpaVideoInfo { struct _SpaVideoInfo {
uint32_t media_type; uint32_t media_type;

View file

@ -34,7 +34,7 @@ typedef struct _SpaVideoInfoRaw SpaVideoInfoRaw;
#define SPA_VIDEO_MAX_PLANES 4 #define SPA_VIDEO_MAX_PLANES 4
#define SPA_VIDEO_MAX_COMPONENTS 4 #define SPA_VIDEO_MAX_COMPONENTS 4
#define SPA_TYPE__VideoFormat "Spa:Enum:VideoFormat" #define SPA_TYPE__VideoFormat SPA_TYPE_ENUM_BASE "VideoFormat"
#define SPA_TYPE_VIDEO_FORMAT_BASE SPA_TYPE__VideoFormat ":" #define SPA_TYPE_VIDEO_FORMAT_BASE SPA_TYPE__VideoFormat ":"
#define SPA_TYPE_VIDEO_FORMAT__ENCODED SPA_TYPE_VIDEO_FORMAT_BASE "encoded" #define SPA_TYPE_VIDEO_FORMAT__ENCODED SPA_TYPE_VIDEO_FORMAT_BASE "encoded"

View file

@ -33,13 +33,13 @@ spa_format_audio_parse (const SpaFormat *format,
static SpaTypeMediaType media_type = { 0, }; static SpaTypeMediaType media_type = { 0, };
static SpaTypeMediaSubtype media_subtype = { 0, }; static SpaTypeMediaSubtype media_subtype = { 0, };
static SpaTypeMediaSubtypeAudio media_subtype_audio = { 0, }; static SpaTypeMediaSubtypeAudio media_subtype_audio = { 0, };
static SpaTypePropAudio prop_audio = { 0, }; static SpaTypeFormatAudio format_audio = { 0, };
SpaTypeMap *map = spa_type_map_get_default(); SpaTypeMap *map = spa_type_map_get_default();
spa_type_media_type_map (map, &media_type); spa_type_media_type_map (map, &media_type);
spa_type_media_subtype_map (map, &media_subtype); spa_type_media_subtype_map (map, &media_subtype);
spa_type_media_subtype_audio_map (map, &media_subtype_audio); spa_type_media_subtype_audio_map (map, &media_subtype_audio);
spa_type_prop_audio_map (map, &prop_audio); spa_type_format_audio_map (map, &format_audio);
if (format->body.media_type.value != media_type.audio) if (format->body.media_type.value != media_type.audio)
return SPA_RESULT_INVALID_MEDIA_TYPE; return SPA_RESULT_INVALID_MEDIA_TYPE;
@ -49,12 +49,12 @@ spa_format_audio_parse (const SpaFormat *format,
if (info->media_subtype == media_subtype.raw) { if (info->media_subtype == media_subtype.raw) {
spa_format_query (format, spa_format_query (format,
prop_audio.format, SPA_POD_TYPE_URI, &info->info.raw.format, format_audio.format, SPA_POD_TYPE_ID, &info->info.raw.format,
prop_audio.flags, SPA_POD_TYPE_INT, &info->info.raw.flags, format_audio.flags, SPA_POD_TYPE_INT, &info->info.raw.flags,
prop_audio.layout, SPA_POD_TYPE_INT, &info->info.raw.layout, format_audio.layout, SPA_POD_TYPE_INT, &info->info.raw.layout,
prop_audio.rate, SPA_POD_TYPE_INT, &info->info.raw.rate, format_audio.rate, SPA_POD_TYPE_INT, &info->info.raw.rate,
prop_audio.channels, SPA_POD_TYPE_INT, &info->info.raw.channels, format_audio.channels, SPA_POD_TYPE_INT, &info->info.raw.channels,
prop_audio.channel_mask, SPA_POD_TYPE_INT, &info->info.raw.channel_mask, format_audio.channel_mask, SPA_POD_TYPE_INT, &info->info.raw.channel_mask,
0); 0);
} }
else else

View file

@ -189,7 +189,7 @@ struct pod_type_name {
{ "invalid", "*Invalid*" }, { "invalid", "*Invalid*" },
{ "none", "None" }, { "none", "None" },
{ "bool", "Bool" }, { "bool", "Bool" },
{ "uri", "URI" }, { "id", "Id" },
{ "int", "Int" }, { "int", "Int" },
{ "long", "Long" }, { "long", "Long" },
{ "float", "Float" }, { "float", "Float" },
@ -213,8 +213,8 @@ print_pod_value (uint32_t size, uint32_t type, void *body, int prefix)
case SPA_POD_TYPE_BOOL: case SPA_POD_TYPE_BOOL:
printf ("%-*sBool %d\n", prefix, "", *(int32_t *) body); printf ("%-*sBool %d\n", prefix, "", *(int32_t *) body);
break; break;
case SPA_POD_TYPE_URI: case SPA_POD_TYPE_ID:
printf ("%-*sURI %d %s\n", prefix, "", *(int32_t *) body, printf ("%-*sId %d %s\n", prefix, "", *(int32_t *) body,
spa_type_map_get_type (spa_type_map_get_default(), *(int32_t*)body)); spa_type_map_get_type (spa_type_map_get_default(), *(int32_t*)body));
break; break;
case SPA_POD_TYPE_INT: case SPA_POD_TYPE_INT:
@ -334,7 +334,7 @@ print_format_value (uint32_t size, uint32_t type, void *body)
case SPA_POD_TYPE_BOOL: case SPA_POD_TYPE_BOOL:
fprintf (stderr, "%s", *(int32_t *) body ? "true" : "false"); fprintf (stderr, "%s", *(int32_t *) body ? "true" : "false");
break; break;
case SPA_POD_TYPE_URI: case SPA_POD_TYPE_ID:
{ {
const char *str = spa_type_map_get_type (spa_type_map_get_default(), *(int32_t*)body); const char *str = spa_type_map_get_type (spa_type_map_get_default(), *(int32_t*)body);
if (str) { if (str) {

View file

@ -26,11 +26,11 @@
#include <lib/debug.h> #include <lib/debug.h>
#define MAX_URIS 4096 #define MAX_TYPES 4096
typedef struct { typedef struct {
SpaTypeMap map; SpaTypeMap map;
char *types[MAX_URIS]; char *types[MAX_TYPES];
unsigned int n_types; unsigned int n_types;
} TypeMap; } TypeMap;

View file

@ -31,7 +31,7 @@ compare_value (SpaPODType type, const void *r1, const void *r2)
case SPA_POD_TYPE_INVALID: case SPA_POD_TYPE_INVALID:
return 0; return 0;
case SPA_POD_TYPE_BOOL: case SPA_POD_TYPE_BOOL:
case SPA_POD_TYPE_URI: case SPA_POD_TYPE_ID:
return *(int32_t*)r1 == *(uint32_t*)r2 ? 0 : 1; return *(int32_t*)r1 == *(uint32_t*)r2 ? 0 : 1;
case SPA_POD_TYPE_INT: case SPA_POD_TYPE_INT:
return *(int32_t*)r1 - *(int32_t*)r2; return *(int32_t*)r1 - *(int32_t*)r2;

View file

@ -34,13 +34,13 @@ spa_format_video_parse (const SpaFormat *format,
static SpaTypeMediaType media_type = { 0, }; static SpaTypeMediaType media_type = { 0, };
static SpaTypeMediaSubtype media_subtype = { 0, }; static SpaTypeMediaSubtype media_subtype = { 0, };
static SpaTypeMediaSubtypeVideo media_subtype_video = { 0, }; static SpaTypeMediaSubtypeVideo media_subtype_video = { 0, };
static SpaTypePropVideo prop_video = { 0, }; static SpaTypeFormatVideo format_video = { 0, };
SpaTypeMap *map = spa_type_map_get_default (); SpaTypeMap *map = spa_type_map_get_default ();
spa_type_media_type_map (map, &media_type); spa_type_media_type_map (map, &media_type);
spa_type_media_subtype_map (map, &media_subtype); spa_type_media_subtype_map (map, &media_subtype);
spa_type_media_subtype_video_map (map, &media_subtype_video); spa_type_media_subtype_video_map (map, &media_subtype_video);
spa_type_prop_video_map (map, &prop_video); spa_type_format_video_map (map, &format_video);
if (format->body.media_type.value != media_type.video) if (format->body.media_type.value != media_type.video)
return SPA_RESULT_INVALID_MEDIA_TYPE; return SPA_RESULT_INVALID_MEDIA_TYPE;
@ -50,32 +50,32 @@ spa_format_video_parse (const SpaFormat *format,
if (info->media_subtype == media_subtype.raw) if (info->media_subtype == media_subtype.raw)
spa_format_query (format, spa_format_query (format,
prop_video.format, SPA_POD_TYPE_URI, &info->info.raw.format, format_video.format, SPA_POD_TYPE_ID, &info->info.raw.format,
prop_video.size, SPA_POD_TYPE_RECTANGLE, &info->info.raw.size, format_video.size, SPA_POD_TYPE_RECTANGLE, &info->info.raw.size,
prop_video.framerate, SPA_POD_TYPE_FRACTION, &info->info.raw.framerate, format_video.framerate, SPA_POD_TYPE_FRACTION, &info->info.raw.framerate,
prop_video.max_framerate, SPA_POD_TYPE_FRACTION, &info->info.raw.max_framerate, format_video.max_framerate, SPA_POD_TYPE_FRACTION, &info->info.raw.max_framerate,
prop_video.views, SPA_POD_TYPE_INT, &info->info.raw.views, format_video.views, SPA_POD_TYPE_INT, &info->info.raw.views,
prop_video.interlace_mode, SPA_POD_TYPE_INT, &info->info.raw.interlace_mode, format_video.interlace_mode, SPA_POD_TYPE_INT, &info->info.raw.interlace_mode,
prop_video.pixel_aspect_ratio, SPA_POD_TYPE_FRACTION, &info->info.raw.pixel_aspect_ratio, format_video.pixel_aspect_ratio, SPA_POD_TYPE_FRACTION, &info->info.raw.pixel_aspect_ratio,
prop_video.multiview_mode, SPA_POD_TYPE_INT, &info->info.raw.multiview_mode, format_video.multiview_mode, SPA_POD_TYPE_INT, &info->info.raw.multiview_mode,
prop_video.multiview_flags, SPA_POD_TYPE_INT, &info->info.raw.multiview_flags, format_video.multiview_flags, SPA_POD_TYPE_INT, &info->info.raw.multiview_flags,
prop_video.chroma_site, SPA_POD_TYPE_INT, &info->info.raw.chroma_site, format_video.chroma_site, SPA_POD_TYPE_INT, &info->info.raw.chroma_site,
prop_video.color_range, SPA_POD_TYPE_INT, &info->info.raw.color_range, format_video.color_range, SPA_POD_TYPE_INT, &info->info.raw.color_range,
prop_video.color_matrix, SPA_POD_TYPE_INT, &info->info.raw.color_matrix, format_video.color_matrix, SPA_POD_TYPE_INT, &info->info.raw.color_matrix,
prop_video.transfer_function, SPA_POD_TYPE_INT, &info->info.raw.transfer_function, format_video.transfer_function, SPA_POD_TYPE_INT, &info->info.raw.transfer_function,
prop_video.color_primaries, SPA_POD_TYPE_INT, &info->info.raw.color_primaries, format_video.color_primaries, SPA_POD_TYPE_INT, &info->info.raw.color_primaries,
0); 0);
else if (info->media_subtype == media_subtype_video.h264) else if (info->media_subtype == media_subtype_video.h264)
spa_format_query (format, spa_format_query (format,
prop_video.size, SPA_POD_TYPE_RECTANGLE, &info->info.h264.size, format_video.size, SPA_POD_TYPE_RECTANGLE, &info->info.h264.size,
prop_video.framerate, SPA_POD_TYPE_FRACTION, &info->info.h264.framerate, format_video.framerate, SPA_POD_TYPE_FRACTION, &info->info.h264.framerate,
prop_video.max_framerate, SPA_POD_TYPE_FRACTION, &info->info.h264.max_framerate, format_video.max_framerate, SPA_POD_TYPE_FRACTION, &info->info.h264.max_framerate,
0); 0);
else if (info->media_subtype == media_subtype_video.mjpg) else if (info->media_subtype == media_subtype_video.mjpg)
spa_format_query (format, spa_format_query (format,
prop_video.size, SPA_POD_TYPE_RECTANGLE, &info->info.mjpg.size, format_video.size, SPA_POD_TYPE_RECTANGLE, &info->info.mjpg.size,
prop_video.framerate, SPA_POD_TYPE_FRACTION, &info->info.mjpg.framerate, format_video.framerate, SPA_POD_TYPE_FRACTION, &info->info.mjpg.framerate,
prop_video.max_framerate, SPA_POD_TYPE_FRACTION, &info->info.mjpg.max_framerate, format_video.max_framerate, SPA_POD_TYPE_FRACTION, &info->info.mjpg.max_framerate,
0); 0);
else else
return SPA_RESULT_NOT_IMPLEMENTED; return SPA_RESULT_NOT_IMPLEMENTED;

View file

@ -304,11 +304,11 @@ next:
case 0: case 0:
spa_pod_builder_format (&b, &f[0], this->type.format, spa_pod_builder_format (&b, &f[0], this->type.format,
this->type.media_type.audio, this->type.media_subtype.raw, this->type.media_type.audio, this->type.media_subtype.raw,
PROP_U_EN (&f[1], this->type.prop_audio.format, SPA_POD_TYPE_URI, 3, this->type.audio_format.S16, PROP_U_EN (&f[1], this->type.format_audio.format, SPA_POD_TYPE_ID, 3, this->type.audio_format.S16,
this->type.audio_format.S16, this->type.audio_format.S16,
this->type.audio_format.S32), this->type.audio_format.S32),
PROP_U_MM (&f[1], this->type.prop_audio.rate, SPA_POD_TYPE_INT, 44100, 1, INT32_MAX), PROP_U_MM (&f[1], this->type.format_audio.rate, SPA_POD_TYPE_INT, 44100, 1, INT32_MAX),
PROP_U_MM (&f[1], this->type.prop_audio.channels, SPA_POD_TYPE_INT, 2, 1, INT32_MAX)); PROP_U_MM (&f[1], this->type.format_audio.channels, SPA_POD_TYPE_INT, 2, 1, INT32_MAX));
break; break;
case 1: case 1:
spa_pod_builder_format (&b, &f[0], this->type.format, spa_pod_builder_format (&b, &f[0], this->type.format,

View file

@ -342,11 +342,11 @@ next:
case 0: case 0:
spa_pod_builder_format (&b, &f[0], this->type.format, spa_pod_builder_format (&b, &f[0], this->type.format,
this->type.media_type.audio, this->type.media_subtype.raw, this->type.media_type.audio, this->type.media_subtype.raw,
PROP_U_EN (&f[1], this->type.prop_audio.format, SPA_POD_TYPE_URI, 3, this->type.audio_format.S16, PROP_U_EN (&f[1], this->type.format_audio.format, SPA_POD_TYPE_ID, 3, this->type.audio_format.S16,
this->type.audio_format.S16, this->type.audio_format.S16,
this->type.audio_format.S32), this->type.audio_format.S32),
PROP_U_MM (&f[1], this->type.prop_audio.rate, SPA_POD_TYPE_INT, 44100, 1, INT32_MAX), PROP_U_MM (&f[1], this->type.format_audio.rate, SPA_POD_TYPE_INT, 44100, 1, INT32_MAX),
PROP_U_MM (&f[1], this->type.prop_audio.channels, SPA_POD_TYPE_INT, 2, 1, INT32_MAX)); PROP_U_MM (&f[1], this->type.format_audio.channels, SPA_POD_TYPE_INT, 2, 1, INT32_MAX));
break; break;
case 1: case 1:
spa_pod_builder_format (&b, &f[0], this->type.format, spa_pod_builder_format (&b, &f[0], this->type.format,

View file

@ -74,7 +74,7 @@ typedef struct {
SpaTypeMediaType media_type; SpaTypeMediaType media_type;
SpaTypeMediaSubtype media_subtype; SpaTypeMediaSubtype media_subtype;
SpaTypeMediaSubtypeAudio media_subtype_audio; SpaTypeMediaSubtypeAudio media_subtype_audio;
SpaTypePropAudio prop_audio; SpaTypeFormatAudio format_audio;
SpaTypeAudioFormat audio_format; SpaTypeAudioFormat audio_format;
SpaTypeEventNode event_node; SpaTypeEventNode event_node;
SpaTypeCommandNode command_node; SpaTypeCommandNode command_node;
@ -99,7 +99,7 @@ init_type (Type *type, SpaTypeMap *map)
spa_type_media_type_map (map, &type->media_type); spa_type_media_type_map (map, &type->media_type);
spa_type_media_subtype_map (map, &type->media_subtype); spa_type_media_subtype_map (map, &type->media_subtype);
spa_type_media_subtype_audio_map (map, &type->media_subtype_audio); spa_type_media_subtype_audio_map (map, &type->media_subtype_audio);
spa_type_prop_audio_map (map, &type->prop_audio); spa_type_format_audio_map (map, &type->format_audio);
spa_type_audio_format_map (map, &type->audio_format); spa_type_audio_format_map (map, &type->audio_format);
spa_type_event_node_map (map, &type->event_node); spa_type_event_node_map (map, &type->event_node);
spa_type_command_node_map (map, &type->command_node); spa_type_command_node_map (map, &type->command_node);

View file

@ -50,7 +50,7 @@ typedef struct {
uint32_t wave_square; uint32_t wave_square;
SpaTypeMediaType media_type; SpaTypeMediaType media_type;
SpaTypeMediaSubtype media_subtype; SpaTypeMediaSubtype media_subtype;
SpaTypePropAudio prop_audio; SpaTypeFormatAudio format_audio;
SpaTypeAudioFormat audio_format; SpaTypeAudioFormat audio_format;
SpaTypeEventNode event_node; SpaTypeEventNode event_node;
SpaTypeCommandNode command_node; SpaTypeCommandNode command_node;
@ -73,7 +73,7 @@ init_type (Type *type, SpaTypeMap *map)
type->wave_square = spa_type_map_get_id (map, SPA_TYPE_PROPS__waveType ":square"); type->wave_square = spa_type_map_get_id (map, SPA_TYPE_PROPS__waveType ":square");
spa_type_media_type_map (map, &type->media_type); spa_type_media_type_map (map, &type->media_type);
spa_type_media_subtype_map (map, &type->media_subtype); spa_type_media_subtype_map (map, &type->media_subtype);
spa_type_prop_audio_map (map, &type->prop_audio); spa_type_format_audio_map (map, &type->format_audio);
spa_type_audio_format_map (map, &type->audio_format); spa_type_audio_format_map (map, &type->audio_format);
spa_type_event_node_map (map, &type->event_node); spa_type_event_node_map (map, &type->event_node);
spa_type_command_node_map (map, &type->command_node); spa_type_command_node_map (map, &type->command_node);
@ -192,7 +192,7 @@ spa_audiotestsrc_node_get_props (SpaNode *node,
spa_pod_builder_init (&b, this->props_buffer, sizeof (this->props_buffer)); spa_pod_builder_init (&b, this->props_buffer, sizeof (this->props_buffer));
spa_pod_builder_props (&b, &f[0], this->type.props, spa_pod_builder_props (&b, &f[0], this->type.props,
PROP (&f[1], this->type.prop_live, SPA_POD_TYPE_BOOL, this->props.live), PROP (&f[1], this->type.prop_live, SPA_POD_TYPE_BOOL, this->props.live),
PROP_EN (&f[1], this->type.prop_wave, SPA_POD_TYPE_URI, 3, this->props.wave, PROP_EN (&f[1], this->type.prop_wave, SPA_POD_TYPE_ID, 3, this->props.wave,
this->type.wave_sine, this->type.wave_sine,
this->type.wave_square), this->type.wave_square),
PROP_MM (&f[1], this->type.prop_freq, SPA_POD_TYPE_DOUBLE, this->props.freq, PROP_MM (&f[1], this->type.prop_freq, SPA_POD_TYPE_DOUBLE, this->props.freq,
@ -221,7 +221,7 @@ spa_audiotestsrc_node_set_props (SpaNode *node,
} else { } else {
spa_props_query (props, spa_props_query (props,
this->type.prop_live, SPA_POD_TYPE_BOOL, &this->props.live, this->type.prop_live, SPA_POD_TYPE_BOOL, &this->props.live,
this->type.prop_wave, SPA_POD_TYPE_URI, &this->props.wave, this->type.prop_wave, SPA_POD_TYPE_ID, &this->props.wave,
this->type.prop_freq, SPA_POD_TYPE_DOUBLE, &this->props.freq, this->type.prop_freq, SPA_POD_TYPE_DOUBLE, &this->props.freq,
this->type.prop_volume, SPA_POD_TYPE_DOUBLE, &this->props.volume, this->type.prop_volume, SPA_POD_TYPE_DOUBLE, &this->props.volume,
0); 0);
@ -486,11 +486,11 @@ next:
case 0: case 0:
spa_pod_builder_format (&b, &f[0], this->type.format, spa_pod_builder_format (&b, &f[0], this->type.format,
this->type.media_type.audio, this->type.media_subtype.raw, this->type.media_type.audio, this->type.media_subtype.raw,
PROP_U_EN (&f[1], this->type.prop_audio.format, SPA_POD_TYPE_URI, 3, this->type.audio_format.S16, PROP_U_EN (&f[1], this->type.format_audio.format, SPA_POD_TYPE_ID, 3, this->type.audio_format.S16,
this->type.audio_format.S16, this->type.audio_format.S16,
this->type.audio_format.S32), this->type.audio_format.S32),
PROP_U_MM (&f[1], this->type.prop_audio.rate, SPA_POD_TYPE_INT, 44100, 1, INT32_MAX), PROP_U_MM (&f[1], this->type.format_audio.rate, SPA_POD_TYPE_INT, 44100, 1, INT32_MAX),
PROP_U_MM (&f[1], this->type.prop_audio.channels, SPA_POD_TYPE_INT, 2, 1, INT32_MAX)); PROP_U_MM (&f[1], this->type.format_audio.channels, SPA_POD_TYPE_INT, 2, 1, INT32_MAX));
break; break;
default: default:
return SPA_RESULT_ENUM_END; return SPA_RESULT_ENUM_END;
@ -604,9 +604,9 @@ spa_audiotestsrc_node_port_get_format (SpaNode *node,
spa_pod_builder_init (&b, this->format_buffer, sizeof (this->format_buffer)); spa_pod_builder_init (&b, this->format_buffer, sizeof (this->format_buffer));
spa_pod_builder_format (&b, &f[0], this->type.format, spa_pod_builder_format (&b, &f[0], this->type.format,
this->type.media_type.audio, this->type.media_subtype.raw, this->type.media_type.audio, this->type.media_subtype.raw,
PROP (&f[1], this->type.prop_audio.format, SPA_POD_TYPE_URI, this->current_format.info.raw.format), PROP (&f[1], this->type.format_audio.format, SPA_POD_TYPE_ID, this->current_format.info.raw.format),
PROP (&f[1], this->type.prop_audio.rate, SPA_POD_TYPE_INT, this->current_format.info.raw.rate), PROP (&f[1], this->type.format_audio.rate, SPA_POD_TYPE_INT, this->current_format.info.raw.rate),
PROP (&f[1], this->type.prop_audio.channels, SPA_POD_TYPE_INT, this->current_format.info.raw.channels)); PROP (&f[1], this->type.format_audio.channels, SPA_POD_TYPE_INT, this->current_format.info.raw.channels));
*format = SPA_POD_BUILDER_DEREF (&b, f[0].ref, SpaFormat); *format = SPA_POD_BUILDER_DEREF (&b, f[0].ref, SpaFormat);

View file

@ -74,7 +74,7 @@ typedef struct {
SpaTypeMediaType media_type; SpaTypeMediaType media_type;
SpaTypeMediaSubtype media_subtype; SpaTypeMediaSubtype media_subtype;
SpaTypeMediaSubtypeVideo media_subtype_video; SpaTypeMediaSubtypeVideo media_subtype_video;
SpaTypePropVideo prop_video; SpaTypeFormatVideo format_video;
SpaTypeVideoFormat video_format; SpaTypeVideoFormat video_format;
SpaTypeEventNode event_node; SpaTypeEventNode event_node;
SpaTypeCommandNode command_node; SpaTypeCommandNode command_node;
@ -95,7 +95,7 @@ init_type (Type *type, SpaTypeMap *map)
spa_type_media_type_map (map, &type->media_type); spa_type_media_type_map (map, &type->media_type);
spa_type_media_subtype_map (map, &type->media_subtype); spa_type_media_subtype_map (map, &type->media_subtype);
spa_type_media_subtype_video_map (map, &type->media_subtype_video); spa_type_media_subtype_video_map (map, &type->media_subtype_video);
spa_type_prop_video_map (map, &type->prop_video); spa_type_format_video_map (map, &type->format_video);
spa_type_video_format_map (map, &type->video_format); spa_type_video_format_map (map, &type->video_format);
spa_type_event_node_map (map, &type->event_node); spa_type_event_node_map (map, &type->event_node);
spa_type_command_node_map (map, &type->command_node); spa_type_command_node_map (map, &type->command_node);
@ -593,22 +593,22 @@ spa_v4l2_source_node_port_get_format (SpaNode *node,
if (state->current_format.media_subtype == this->type.media_subtype.raw) { if (state->current_format.media_subtype == this->type.media_subtype.raw) {
spa_pod_builder_add (&b, spa_pod_builder_add (&b,
PROP (&f[1], this->type.prop_video.format, SPA_POD_TYPE_URI, state->current_format.info.raw.format), PROP (&f[1], this->type.format_video.format, SPA_POD_TYPE_ID, state->current_format.info.raw.format),
PROP (&f[1], this->type.prop_video.size, -SPA_POD_TYPE_RECTANGLE, &state->current_format.info.raw.size), PROP (&f[1], this->type.format_video.size, -SPA_POD_TYPE_RECTANGLE, &state->current_format.info.raw.size),
PROP (&f[1], this->type.prop_video.framerate, -SPA_POD_TYPE_FRACTION, &state->current_format.info.raw.framerate), PROP (&f[1], this->type.format_video.framerate, -SPA_POD_TYPE_FRACTION, &state->current_format.info.raw.framerate),
0); 0);
} }
else if (state->current_format.media_subtype == this->type.media_subtype_video.mjpg || else if (state->current_format.media_subtype == this->type.media_subtype_video.mjpg ||
state->current_format.media_subtype == this->type.media_subtype_video.jpeg) { state->current_format.media_subtype == this->type.media_subtype_video.jpeg) {
spa_pod_builder_add (&b, spa_pod_builder_add (&b,
PROP (&f[1], this->type.prop_video.size, -SPA_POD_TYPE_RECTANGLE, &state->current_format.info.mjpg.size), PROP (&f[1], this->type.format_video.size, -SPA_POD_TYPE_RECTANGLE, &state->current_format.info.mjpg.size),
PROP (&f[1], this->type.prop_video.framerate, -SPA_POD_TYPE_FRACTION, &state->current_format.info.mjpg.framerate), PROP (&f[1], this->type.format_video.framerate, -SPA_POD_TYPE_FRACTION, &state->current_format.info.mjpg.framerate),
0); 0);
} }
else if (state->current_format.media_subtype == this->type.media_subtype_video.h264) { else if (state->current_format.media_subtype == this->type.media_subtype_video.h264) {
spa_pod_builder_add (&b, spa_pod_builder_add (&b,
PROP (&f[1], this->type.prop_video.size, -SPA_POD_TYPE_RECTANGLE, &state->current_format.info.h264.size), PROP (&f[1], this->type.format_video.size, -SPA_POD_TYPE_RECTANGLE, &state->current_format.info.h264.size),
PROP (&f[1], this->type.prop_video.framerate, -SPA_POD_TYPE_FRACTION, &state->current_format.info.h264.framerate), PROP (&f[1], this->type.format_video.framerate, -SPA_POD_TYPE_FRACTION, &state->current_format.info.h264.framerate),
0); 0);
} else } else
return SPA_RESULT_NO_FORMAT; return SPA_RESULT_NO_FORMAT;

View file

@ -389,10 +389,10 @@ enum_filter_format (Type *type, const SpaFormat *filter, uint32_t index)
uint32_t n_values; uint32_t n_values;
const uint32_t *values; const uint32_t *values;
if (!(p = spa_format_find_prop (filter, type->prop_video.format))) if (!(p = spa_format_find_prop (filter, type->format_video.format)))
return type->video_format.UNKNOWN; return type->video_format.UNKNOWN;
if (p->body.value.type != SPA_POD_TYPE_URI) if (p->body.value.type != SPA_POD_TYPE_ID)
return type->video_format.UNKNOWN; return type->video_format.UNKNOWN;
values = SPA_POD_BODY_CONST (&p->body.value); values = SPA_POD_BODY_CONST (&p->body.value);
@ -572,7 +572,7 @@ next_frmsize:
SpaPODProp *p; SpaPODProp *p;
/* check if we have a fixed frame size */ /* check if we have a fixed frame size */
if (!(p = spa_format_find_prop (filter, this->type.prop_video.size))) if (!(p = spa_format_find_prop (filter, this->type.format_video.size)))
goto do_frmsize; goto do_frmsize;
if (p->body.value.type != SPA_POD_TYPE_RECTANGLE) if (p->body.value.type != SPA_POD_TYPE_RECTANGLE)
@ -605,7 +605,7 @@ do_frmsize:
uint32_t i, n_values; uint32_t i, n_values;
/* check if we have a fixed frame size */ /* check if we have a fixed frame size */
if (!(p = spa_format_find_prop (filter, this->type.prop_video.size))) if (!(p = spa_format_find_prop (filter, this->type.format_video.size)))
goto have_size; goto have_size;
range = p->body.flags & SPA_POD_PROP_RANGE_MASK; range = p->body.flags & SPA_POD_PROP_RANGE_MASK;
@ -668,16 +668,16 @@ have_size:
if (media_subtype == this->type.media_subtype.raw) { if (media_subtype == this->type.media_subtype.raw) {
spa_pod_builder_add (&b, spa_pod_builder_add (&b,
PROP (&f[1], this->type.prop_video.format, SPA_POD_TYPE_URI, video_format), PROP (&f[1], this->type.format_video.format, SPA_POD_TYPE_ID, video_format),
0); 0);
} }
spa_pod_builder_add (&b, spa_pod_builder_add (&b,
PROP (&f[1], this->type.prop_video.size, SPA_POD_TYPE_RECTANGLE, state->frmsize.discrete.width, PROP (&f[1], this->type.format_video.size, SPA_POD_TYPE_RECTANGLE, state->frmsize.discrete.width,
state->frmsize.discrete.height), state->frmsize.discrete.height),
0); 0);
spa_pod_builder_push_prop (&b, &f[1], spa_pod_builder_push_prop (&b, &f[1],
this->type.prop_video.framerate, this->type.format_video.framerate,
SPA_POD_PROP_RANGE_NONE | SPA_POD_PROP_RANGE_NONE |
SPA_POD_PROP_FLAG_UNSET | SPA_POD_PROP_FLAG_UNSET |
SPA_POD_PROP_FLAG_READWRITE); SPA_POD_PROP_FLAG_READWRITE);
@ -705,7 +705,7 @@ have_size:
uint32_t i, n_values; uint32_t i, n_values;
const SpaFraction step = { 1, 1 }, *values; const SpaFraction step = { 1, 1 }, *values;
if (!(p = spa_format_find_prop (filter, this->type.prop_video.framerate))) if (!(p = spa_format_find_prop (filter, this->type.format_video.framerate)))
goto have_framerate; goto have_framerate;
if (p->body.value.type != SPA_POD_TYPE_FRACTION) if (p->body.value.type != SPA_POD_TYPE_FRACTION)

View file

@ -48,7 +48,7 @@ typedef struct {
uint32_t pattern_snow; uint32_t pattern_snow;
SpaTypeMediaType media_type; SpaTypeMediaType media_type;
SpaTypeMediaSubtype media_subtype; SpaTypeMediaSubtype media_subtype;
SpaTypePropVideo prop_video; SpaTypeFormatVideo format_video;
SpaTypeVideoFormat video_format; SpaTypeVideoFormat video_format;
SpaTypeEventNode event_node; SpaTypeEventNode event_node;
SpaTypeCommandNode command_node; SpaTypeCommandNode command_node;
@ -69,7 +69,7 @@ init_type (Type *type, SpaTypeMap *map)
type->pattern_snow = spa_type_map_get_id (map, SPA_TYPE_PROPS__patternType ":snow"); type->pattern_snow = spa_type_map_get_id (map, SPA_TYPE_PROPS__patternType ":snow");
spa_type_media_type_map (map, &type->media_type); spa_type_media_type_map (map, &type->media_type);
spa_type_media_subtype_map (map, &type->media_subtype); spa_type_media_subtype_map (map, &type->media_subtype);
spa_type_prop_video_map (map, &type->prop_video); spa_type_format_video_map (map, &type->format_video);
spa_type_video_format_map (map, &type->video_format); spa_type_video_format_map (map, &type->video_format);
spa_type_event_node_map (map, &type->event_node); spa_type_event_node_map (map, &type->event_node);
spa_type_command_node_map (map, &type->command_node); spa_type_command_node_map (map, &type->command_node);
@ -184,7 +184,7 @@ spa_videotestsrc_node_get_props (SpaNode *node,
spa_pod_builder_props (&b, &f[0], this->type.props, spa_pod_builder_props (&b, &f[0], this->type.props,
PROP (&f[1], this->type.prop_live, SPA_POD_TYPE_BOOL, this->props.live), PROP (&f[1], this->type.prop_live, SPA_POD_TYPE_BOOL, this->props.live),
PROP_EN (&f[1], this->type.prop_pattern, SPA_POD_TYPE_URI, 3, PROP_EN (&f[1], this->type.prop_pattern, SPA_POD_TYPE_ID, 3,
this->props.pattern, this->props.pattern,
this->type.pattern_smpte_snow, this->type.pattern_smpte_snow,
this->type.pattern_snow)); this->type.pattern_snow));
@ -210,7 +210,7 @@ spa_videotestsrc_node_set_props (SpaNode *node,
} else { } else {
spa_props_query (props, spa_props_query (props,
this->type.prop_live, SPA_POD_TYPE_BOOL, &this->props.live, this->type.prop_live, SPA_POD_TYPE_BOOL, &this->props.live,
this->type.prop_pattern, SPA_POD_TYPE_URI, &this->props.pattern, this->type.prop_pattern, SPA_POD_TYPE_ID, &this->props.pattern,
0); 0);
} }
@ -467,15 +467,15 @@ next:
case 0: case 0:
spa_pod_builder_format (&b, &f[0], this->type.format, spa_pod_builder_format (&b, &f[0], this->type.format,
this->type.media_type.video, this->type.media_subtype.raw, this->type.media_type.video, this->type.media_subtype.raw,
PROP_U_EN (&f[1], this->type.prop_video.format, SPA_POD_TYPE_URI, 3, PROP_U_EN (&f[1], this->type.format_video.format, SPA_POD_TYPE_ID, 3,
this->type.video_format.RGB, this->type.video_format.RGB,
this->type.video_format.RGB, this->type.video_format.RGB,
this->type.video_format.UYVY), this->type.video_format.UYVY),
PROP_U_MM (&f[1], this->type.prop_video.size, SPA_POD_TYPE_RECTANGLE, PROP_U_MM (&f[1], this->type.format_video.size, SPA_POD_TYPE_RECTANGLE,
320, 240, 320, 240,
1, 1, 1, 1,
INT32_MAX, INT32_MAX), INT32_MAX, INT32_MAX),
PROP_U_MM (&f[1], this->type.prop_video.framerate, SPA_POD_TYPE_FRACTION, PROP_U_MM (&f[1], this->type.format_video.framerate, SPA_POD_TYPE_FRACTION,
25, 1, 25, 1,
0, 1, 0, 1,
INT32_MAX, 1)); INT32_MAX, 1));
@ -605,9 +605,9 @@ spa_videotestsrc_node_port_get_format (SpaNode *node,
spa_pod_builder_format (&b, &f[0], this->type.format, spa_pod_builder_format (&b, &f[0], this->type.format,
this->type.media_type.video, this->type.media_subtype.raw, this->type.media_type.video, this->type.media_subtype.raw,
PROP (&f[1], this->type.prop_video.format, SPA_POD_TYPE_URI, this->current_format.info.raw.format), PROP (&f[1], this->type.format_video.format, SPA_POD_TYPE_ID, this->current_format.info.raw.format),
PROP (&f[1], this->type.prop_video.size, -SPA_POD_TYPE_RECTANGLE, &this->current_format.info.raw.size), PROP (&f[1], this->type.format_video.size, -SPA_POD_TYPE_RECTANGLE, &this->current_format.info.raw.size),
PROP (&f[1], this->type.prop_video.framerate, -SPA_POD_TYPE_FRACTION, &this->current_format.info.raw.framerate)); PROP (&f[1], this->type.format_video.framerate, -SPA_POD_TYPE_FRACTION, &this->current_format.info.raw.framerate));
*format = SPA_POD_BUILDER_DEREF (&b, f[0].ref, SpaFormat); *format = SPA_POD_BUILDER_DEREF (&b, f[0].ref, SpaFormat);
return SPA_RESULT_OK; return SPA_RESULT_OK;

View file

@ -69,7 +69,7 @@ typedef struct {
uint32_t prop_mute; uint32_t prop_mute;
SpaTypeMediaType media_type; SpaTypeMediaType media_type;
SpaTypeMediaSubtype media_subtype; SpaTypeMediaSubtype media_subtype;
SpaTypePropAudio prop_audio; SpaTypeFormatAudio format_audio;
SpaTypeAudioFormat audio_format; SpaTypeAudioFormat audio_format;
SpaTypeEventNode event_node; SpaTypeEventNode event_node;
SpaTypeCommandNode command_node; SpaTypeCommandNode command_node;
@ -87,7 +87,7 @@ init_type (Type *type, SpaTypeMap *map)
type->prop_mute = spa_type_map_get_id (map, SPA_TYPE_PROPS__mute); type->prop_mute = spa_type_map_get_id (map, SPA_TYPE_PROPS__mute);
spa_type_media_type_map (map, &type->media_type); spa_type_media_type_map (map, &type->media_type);
spa_type_media_subtype_map (map, &type->media_subtype); spa_type_media_subtype_map (map, &type->media_subtype);
spa_type_prop_audio_map (map, &type->prop_audio); spa_type_format_audio_map (map, &type->format_audio);
spa_type_audio_format_map (map, &type->audio_format); spa_type_audio_format_map (map, &type->audio_format);
spa_type_event_node_map (map, &type->event_node); spa_type_event_node_map (map, &type->event_node);
spa_type_command_node_map (map, &type->command_node); spa_type_command_node_map (map, &type->command_node);
@ -324,12 +324,12 @@ next:
case 0: case 0:
spa_pod_builder_format (&b, &f[0], this->type.format, spa_pod_builder_format (&b, &f[0], this->type.format,
this->type.media_type.audio, this->type.media_subtype.raw, this->type.media_type.audio, this->type.media_subtype.raw,
PROP_U_EN (&f[1], this->type.prop_audio.format, SPA_POD_TYPE_URI, 3, PROP_U_EN (&f[1], this->type.format_audio.format, SPA_POD_TYPE_ID, 3,
this->type.audio_format.S16, this->type.audio_format.S16,
this->type.audio_format.S16, this->type.audio_format.S16,
this->type.audio_format.S32), this->type.audio_format.S32),
PROP_U_MM (&f[1], this->type.prop_audio.rate, SPA_POD_TYPE_INT, 44100, 1, INT32_MAX), PROP_U_MM (&f[1], this->type.format_audio.rate, SPA_POD_TYPE_INT, 44100, 1, INT32_MAX),
PROP_U_MM (&f[1], this->type.prop_audio.channels, SPA_POD_TYPE_INT, 2, 1, INT32_MAX)); PROP_U_MM (&f[1], this->type.format_audio.channels, SPA_POD_TYPE_INT, 2, 1, INT32_MAX));
break; break;
default: default:

View file

@ -35,7 +35,7 @@
typedef struct { typedef struct {
uint32_t node; uint32_t node;
} URI; } Type;
typedef struct { typedef struct {
SpaNode *sink; SpaNode *sink;
@ -51,10 +51,10 @@ typedef struct {
SpaSupport support[2]; SpaSupport support[2];
uint32_t n_support; uint32_t n_support;
SpaIDMap *map; SpaTypeMap *map;
SpaLog *log; SpaLog *log;
SpaPoll data_loop; SpaPoll data_loop;
URI uri; Type type;
} AppData; } AppData;
static SpaResult static SpaResult
@ -93,7 +93,7 @@ make_node (AppData *data, SpaNode **node, const char *lib, const char *name)
printf ("can't make factory instance: %d\n", res); printf ("can't make factory instance: %d\n", res);
return res; return res;
} }
if ((res = spa_handle_get_interface (handle, data->uri.node, &iface)) < 0) { if ((res = spa_handle_get_interface (handle, data->type.node, &iface)) < 0) {
printf ("can't get interface %d\n", res); printf ("can't get interface %d\n", res);
return res; return res;
} }
@ -358,20 +358,20 @@ main (int argc, char *argv[])
AppData data; AppData data;
SpaResult res; SpaResult res;
data.map = spa_id_map_get_default(); data.map = spa_type_map_get_default();
data.data_loop.size = sizeof (SpaPoll); data.data_loop.size = sizeof (SpaPoll);
data.data_loop.info = NULL; data.data_loop.info = NULL;
data.data_loop.add_item = do_add_item; data.data_loop.add_item = do_add_item;
data.data_loop.update_item = NULL; data.data_loop.update_item = NULL;
data.data_loop.remove_item = NULL; data.data_loop.remove_item = NULL;
data.support[0].uri = SPA_TYPE__IDMap; data.support[0].type = SPA_TYPE__TypeMap;
data.support[0].data = data.map; data.support[0].data = data.map;
data.support[1].uri = SPA_TYPE_LOOP__DataLoop; data.support[1].type = SPA_TYPE_LOOP__DataLoop;
data.support[1].data = &data.data_loop; data.support[1].data = &data.data_loop;
data.n_support = 2; data.n_support = 2;
data.uri.node = spa_id_map_get_id (data.map, SPA_TYPE__Node); data.type.node = spa_type_map_get_id (data.map, SPA_TYPE__Node);
if ((res = make_nodes (&data)) < 0) { if ((res = make_nodes (&data)) < 0) {
printf ("can't make nodes: %d\n", res); printf ("can't make nodes: %d\n", res);

View file

@ -40,19 +40,19 @@
*/ */
spa_build (SPA_MEDIA_TYPE_VIDEO, SPA_MEDIA_SUBTYPE_RAW, spa_build (SPA_MEDIA_TYPE_VIDEO, SPA_MEDIA_SUBTYPE_RAW,
type.prop_video.format, SPA_PROP_TYPE_URI, type.format_video.format, SPA_PROP_TYPE_ID,
video_format.I420 video_format.I420
SPA_POD_PROP_FLAG_UNSET | SPA_POD_PROP_FLAG_UNSET |
SPA_PROP_RANGE_ENUM, 2, SPA_PROP_RANGE_ENUM, 2,
video_format.I420, video_format.I420,
video_format.YUY2, video_format.YUY2,
type.prop_video.size , SPA_PROP_TYPE_RECTANGLE, type.format_video.size , SPA_PROP_TYPE_RECTANGLE,
320, 240, 320, 240,
SPA_POD_PROP_FLAG_UNSET | SPA_POD_PROP_FLAG_UNSET |
SPA_PROP_RANGE_MIN_MAX, SPA_PROP_RANGE_MIN_MAX,
1, 1, 1, 1,
INT32_MAX, INT32_MAX, INT32_MAX, INT32_MAX,
type.prop_video.framerate, SPA_PROP_TYPE_FRACTION, 25, 1, type.format_video.framerate, SPA_PROP_TYPE_FRACTION, 25, 1,
SPA_POD_PROP_FLAG_UNSET | SPA_POD_PROP_FLAG_UNSET |
SPA_PROP_RANGE_MIN_MAX, SPA_PROP_RANGE_MIN_MAX,
0, 1, 0, 1,
@ -64,7 +64,7 @@ static struct {
uint32_t format; uint32_t format;
SpaTypeMediaType media_type; SpaTypeMediaType media_type;
SpaTypeMediaSubtype media_subtype; SpaTypeMediaSubtype media_subtype;
SpaTypePropVideo prop_video; SpaTypeFormatVideo format_video;
SpaTypeVideoFormat video_format; SpaTypeVideoFormat video_format;
} type = { 0, }; } type = { 0, };
@ -74,7 +74,7 @@ type_init (SpaTypeMap *map)
type.format = spa_type_map_get_id (map, SPA_TYPE__Format); type.format = spa_type_map_get_id (map, SPA_TYPE__Format);
spa_type_media_type_map (map, &type.media_type); spa_type_media_type_map (map, &type.media_type);
spa_type_media_subtype_map (map, &type.media_subtype); spa_type_media_subtype_map (map, &type.media_subtype);
spa_type_prop_video_map (map, &type.prop_video); spa_type_format_video_map (map, &type.format_video);
spa_type_video_format_map (map, &type.video_format); spa_type_video_format_map (map, &type.video_format);
} }
@ -109,19 +109,19 @@ do_static_struct (void)
} test_format = { } test_format = {
{ { sizeof (test_format.props) + sizeof (SpaFormatBody), SPA_POD_TYPE_OBJECT }, { { sizeof (test_format.props) + sizeof (SpaFormatBody), SPA_POD_TYPE_OBJECT },
{ { 0, type.format }, { { 0, type.format },
{ { sizeof (uint32_t), SPA_POD_TYPE_URI }, type.media_type.video }, { { sizeof (uint32_t), SPA_POD_TYPE_ID }, type.media_type.video },
{ { sizeof (uint32_t), SPA_POD_TYPE_URI }, type.media_subtype.raw } }, { { sizeof (uint32_t), SPA_POD_TYPE_ID }, type.media_subtype.raw } },
}, { }, {
{ { sizeof (test_format.props.format_vals) + sizeof (SpaPODPropBody), { { sizeof (test_format.props.format_vals) + sizeof (SpaPODPropBody),
SPA_POD_TYPE_PROP } , SPA_POD_TYPE_PROP } ,
{ type.prop_video.format, SPA_POD_PROP_RANGE_ENUM | SPA_POD_PROP_FLAG_UNSET, { type.format_video.format, SPA_POD_PROP_RANGE_ENUM | SPA_POD_PROP_FLAG_UNSET,
{ sizeof (uint32_t), SPA_POD_TYPE_URI } }, }, { sizeof (uint32_t), SPA_POD_TYPE_ID } }, },
{ type.video_format.I420, { type.video_format.I420,
{ type.video_format.I420, type.video_format.YUY2 } }, 0, { type.video_format.I420, type.video_format.YUY2 } }, 0,
{ { sizeof (test_format.props.size_vals) + sizeof (SpaPODPropBody), { { sizeof (test_format.props.size_vals) + sizeof (SpaPODPropBody),
SPA_POD_TYPE_PROP } , SPA_POD_TYPE_PROP } ,
{ type.prop_video.size, SPA_POD_PROP_RANGE_MIN_MAX | SPA_POD_PROP_FLAG_UNSET, { type.format_video.size, SPA_POD_PROP_RANGE_MIN_MAX | SPA_POD_PROP_FLAG_UNSET,
{ sizeof (SpaRectangle), SPA_POD_TYPE_RECTANGLE } }, }, { sizeof (SpaRectangle), SPA_POD_TYPE_RECTANGLE } }, },
{ { 320, 243 }, { { 320, 243 },
{ 1, 1 }, { 1, 1 },
@ -129,7 +129,7 @@ do_static_struct (void)
{ { sizeof (test_format.props.framerate_vals) + sizeof (SpaPODPropBody), { { sizeof (test_format.props.framerate_vals) + sizeof (SpaPODPropBody),
SPA_POD_TYPE_PROP } , SPA_POD_TYPE_PROP } ,
{ type.prop_video.framerate, SPA_POD_PROP_RANGE_MIN_MAX | SPA_POD_PROP_FLAG_UNSET, { type.format_video.framerate, SPA_POD_PROP_RANGE_MIN_MAX | SPA_POD_PROP_FLAG_UNSET,
{ sizeof (SpaFraction), SPA_POD_TYPE_FRACTION } }, }, { sizeof (SpaFraction), SPA_POD_TYPE_FRACTION } }, },
{ { 25, 1 }, { { 25, 1 },
{ 0, 1 }, { 0, 1 },
@ -145,8 +145,8 @@ do_static_struct (void)
SpaFraction frac = { 0, 0 }; SpaFraction frac = { 0, 0 };
match = spa_pod_contents_query (&test_format.fmt.pod, sizeof (SpaFormat), match = spa_pod_contents_query (&test_format.fmt.pod, sizeof (SpaFormat),
type.prop_video.format, SPA_POD_TYPE_INT, &format, type.format_video.format, SPA_POD_TYPE_INT, &format,
type.prop_video.framerate, SPA_POD_TYPE_FRACTION, &frac, type.format_video.framerate, SPA_POD_TYPE_FRACTION, &frac,
0); 0);
printf ("%d %d %d %d\n", match, format, frac.num, frac.denom); printf ("%d %d %d %d\n", match, format, frac.num, frac.denom);
@ -170,16 +170,16 @@ main (int argc, char *argv[])
type.media_type.video, type.media_type.video,
type.media_subtype.raw), SpaFormat); type.media_subtype.raw), SpaFormat);
spa_pod_builder_push_prop (&b, &frame[1], spa_pod_builder_push_prop (&b, &frame[1],
type.prop_video.format, type.format_video.format,
SPA_POD_PROP_RANGE_ENUM | SPA_POD_PROP_FLAG_UNSET | SPA_POD_PROP_FLAG_READWRITE); SPA_POD_PROP_RANGE_ENUM | SPA_POD_PROP_FLAG_UNSET | SPA_POD_PROP_FLAG_READWRITE);
spa_pod_builder_uri (&b, type.video_format.I420); spa_pod_builder_id (&b, type.video_format.I420);
spa_pod_builder_uri (&b, type.video_format.I420); spa_pod_builder_id (&b, type.video_format.I420);
spa_pod_builder_uri (&b, type.video_format.YUY2); spa_pod_builder_id (&b, type.video_format.YUY2);
spa_pod_builder_pop (&b, &frame[1]); spa_pod_builder_pop (&b, &frame[1]);
SpaRectangle size_min_max[] = { { 1, 1 }, { INT32_MAX, INT32_MAX } }; SpaRectangle size_min_max[] = { { 1, 1 }, { INT32_MAX, INT32_MAX } };
spa_pod_builder_push_prop (&b, &frame[1], spa_pod_builder_push_prop (&b, &frame[1],
type.prop_video.size, type.format_video.size,
SPA_POD_PROP_RANGE_MIN_MAX | SPA_POD_PROP_FLAG_UNSET | SPA_POD_PROP_FLAG_READWRITE); SPA_POD_PROP_RANGE_MIN_MAX | SPA_POD_PROP_FLAG_UNSET | SPA_POD_PROP_FLAG_READWRITE);
spa_pod_builder_rectangle (&b, 320, 240); spa_pod_builder_rectangle (&b, 320, 240);
spa_pod_builder_raw (&b, size_min_max, sizeof(size_min_max)); spa_pod_builder_raw (&b, size_min_max, sizeof(size_min_max));
@ -187,7 +187,7 @@ main (int argc, char *argv[])
SpaFraction rate_min_max[] = { { 0, 1 }, { INT32_MAX, 1 } }; SpaFraction rate_min_max[] = { { 0, 1 }, { INT32_MAX, 1 } };
spa_pod_builder_push_prop (&b, &frame[1], spa_pod_builder_push_prop (&b, &frame[1],
type.prop_video.framerate, type.format_video.framerate,
SPA_POD_PROP_RANGE_MIN_MAX | SPA_POD_PROP_FLAG_UNSET | SPA_POD_PROP_FLAG_READWRITE); SPA_POD_PROP_RANGE_MIN_MAX | SPA_POD_PROP_FLAG_UNSET | SPA_POD_PROP_FLAG_READWRITE);
spa_pod_builder_fraction (&b, 25, 1); spa_pod_builder_fraction (&b, 25, 1);
spa_pod_builder_raw (&b, rate_min_max, sizeof(rate_min_max)); spa_pod_builder_raw (&b, rate_min_max, sizeof(rate_min_max));
@ -202,15 +202,15 @@ main (int argc, char *argv[])
spa_pod_builder_format (&b, &frame[0], type.format, spa_pod_builder_format (&b, &frame[0], type.format,
type.media_type.video, type.media_subtype.raw, type.media_type.video, type.media_subtype.raw,
SPA_POD_TYPE_PROP, &frame[1], SPA_POD_TYPE_PROP, &frame[1],
type.prop_video.format, SPA_POD_PROP_FLAG_UNSET | type.format_video.format, SPA_POD_PROP_FLAG_UNSET |
SPA_POD_PROP_RANGE_ENUM, SPA_POD_PROP_RANGE_ENUM,
SPA_POD_TYPE_URI, 3, SPA_POD_TYPE_ID, 3,
type.video_format.I420, type.video_format.I420,
type.video_format.I420, type.video_format.I420,
type.video_format.YUY2, type.video_format.YUY2,
-SPA_POD_TYPE_PROP, &frame[1], -SPA_POD_TYPE_PROP, &frame[1],
SPA_POD_TYPE_PROP, &frame[1], SPA_POD_TYPE_PROP, &frame[1],
type.prop_video.size, SPA_POD_PROP_FLAG_UNSET | type.format_video.size, SPA_POD_PROP_FLAG_UNSET |
SPA_POD_PROP_RANGE_MIN_MAX, SPA_POD_PROP_RANGE_MIN_MAX,
SPA_POD_TYPE_RECTANGLE, 3, SPA_POD_TYPE_RECTANGLE, 3,
320, 241, 320, 241,
@ -218,7 +218,7 @@ main (int argc, char *argv[])
INT32_MAX, INT32_MAX, INT32_MAX, INT32_MAX,
-SPA_POD_TYPE_PROP, &frame[1], -SPA_POD_TYPE_PROP, &frame[1],
SPA_POD_TYPE_PROP, &frame[1], SPA_POD_TYPE_PROP, &frame[1],
type.prop_video.framerate, SPA_POD_PROP_FLAG_UNSET | type.format_video.framerate, SPA_POD_PROP_FLAG_UNSET |
SPA_POD_PROP_RANGE_MIN_MAX, SPA_POD_PROP_RANGE_MIN_MAX,
SPA_POD_TYPE_FRACTION, 3, SPA_POD_TYPE_FRACTION, 3,
25, 1, 25, 1,
@ -234,18 +234,18 @@ main (int argc, char *argv[])
spa_pod_builder_add (&b, spa_pod_builder_add (&b,
SPA_POD_TYPE_OBJECT, &frame[0], 0, type.format, SPA_POD_TYPE_OBJECT, &frame[0], 0, type.format,
SPA_POD_TYPE_URI, type.media_type.video, SPA_POD_TYPE_ID, type.media_type.video,
SPA_POD_TYPE_URI, type.media_subtype.raw, SPA_POD_TYPE_ID, type.media_subtype.raw,
SPA_POD_TYPE_PROP, &frame[1], SPA_POD_TYPE_PROP, &frame[1],
type.prop_video.format, SPA_POD_PROP_FLAG_UNSET | type.format_video.format, SPA_POD_PROP_FLAG_UNSET |
SPA_POD_PROP_RANGE_ENUM, SPA_POD_PROP_RANGE_ENUM,
SPA_POD_TYPE_URI, 3, SPA_POD_TYPE_ID, 3,
type.video_format.I420, type.video_format.I420,
type.video_format.I420, type.video_format.I420,
type.video_format.YUY2, type.video_format.YUY2,
-SPA_POD_TYPE_PROP, &frame[1], -SPA_POD_TYPE_PROP, &frame[1],
SPA_POD_TYPE_PROP, &frame[1], SPA_POD_TYPE_PROP, &frame[1],
type.prop_video.size, SPA_POD_PROP_FLAG_UNSET | type.format_video.size, SPA_POD_PROP_FLAG_UNSET |
SPA_POD_PROP_RANGE_MIN_MAX, SPA_POD_PROP_RANGE_MIN_MAX,
SPA_POD_TYPE_RECTANGLE, 3, SPA_POD_TYPE_RECTANGLE, 3,
320, 242, 320, 242,
@ -253,7 +253,7 @@ main (int argc, char *argv[])
INT32_MAX, INT32_MAX, INT32_MAX, INT32_MAX,
-SPA_POD_TYPE_PROP, &frame[1], -SPA_POD_TYPE_PROP, &frame[1],
SPA_POD_TYPE_PROP, &frame[1], SPA_POD_TYPE_PROP, &frame[1],
type.prop_video.framerate, SPA_POD_PROP_FLAG_UNSET | type.format_video.framerate, SPA_POD_PROP_FLAG_UNSET |
SPA_POD_PROP_RANGE_MIN_MAX, SPA_POD_PROP_RANGE_MIN_MAX,
SPA_POD_TYPE_FRACTION, 3, SPA_POD_TYPE_FRACTION, 3,
25, 1, 25, 1,

View file

@ -49,7 +49,7 @@ typedef struct {
typedef struct { typedef struct {
uint32_t node; uint32_t node;
} URI; } Type;
typedef struct { typedef struct {
SpaNode *source; SpaNode *source;
@ -72,10 +72,10 @@ typedef struct {
SpaSupport support[2]; SpaSupport support[2];
uint32_t n_support; uint32_t n_support;
SpaIDMap *map; SpaTypeMap *map;
SpaLog *log; SpaLog *log;
SpaPoll data_loop; SpaPoll data_loop;
URI uri; Type type;
} AppData; } AppData;
static SpaResult static SpaResult
@ -114,7 +114,7 @@ make_node (AppData *data, SpaNode **node, const char *lib, const char *name)
printf ("can't make factory instance: %d\n", res); printf ("can't make factory instance: %d\n", res);
return res; return res;
} }
if ((res = spa_handle_get_interface (handle, data->uri.node, &iface)) < 0) { if ((res = spa_handle_get_interface (handle, data->type.node, &iface)) < 0) {
printf ("can't get interface %d\n", res); printf ("can't get interface %d\n", res);
return res; return res;
} }
@ -457,7 +457,7 @@ main (int argc, char *argv[])
data.use_buffer = true; data.use_buffer = true;
data.map = spa_id_map_get_default (); data.map = spa_type_map_get_default ();
data.data_loop.size = sizeof (SpaPoll); data.data_loop.size = sizeof (SpaPoll);
data.data_loop.info = NULL; data.data_loop.info = NULL;
@ -465,13 +465,13 @@ main (int argc, char *argv[])
data.data_loop.update_item = do_update_item; data.data_loop.update_item = do_update_item;
data.data_loop.remove_item = do_remove_item; data.data_loop.remove_item = do_remove_item;
data.support[0].uri = SPA_TYPE__IDMap; data.support[0].type = SPA_TYPE__TypeMap;
data.support[0].data = data.map; data.support[0].data = data.map;
data.support[1].uri = SPA_TYPE_LOOP__DataLoop; data.support[1].type = SPA_TYPE_LOOP__DataLoop;
data.support[1].data = &data.data_loop; data.support[1].data = &data.data_loop;
data.n_support = 2; data.n_support = 2;
data.uri.node = spa_id_map_get_id (data.map, SPA_TYPE__Node); data.type.node = spa_type_map_get_id (data.map, SPA_TYPE__Node);
if (SDL_Init (SDL_INIT_VIDEO) < 0) { if (SDL_Init (SDL_INIT_VIDEO) < 0) {
printf ("can't initialize SDL: %s\n", SDL_GetError ()); printf ("can't initialize SDL: %s\n", SDL_GetError ());