PipeWire 1.6.2
Loading...
Searching...
No Matches
POD

Binary data serialization format. More...

Files

file  body.h
 spa/pod/body.h
 
file  builder.h
 spa/pod/builder.h
 
file  command.h
 spa/pod/command.h
 
file  compare.h
 spa/pod/compare.h
 
file  event.h
 spa/pod/event.h
 
file  filter.h
 spa/pod/filter.h
 
file  iter.h
 spa/pod/iter.h
 
file  parser.h
 spa/pod/parser.h
 
file  pod.h
 spa/pod/pod.h
 
file  simplify.h
 spa/pod/simplify.h
 
file  vararg.h
 spa/pod/vararg.h
 

Data Structures

struct  spa_pod_frame
 
struct  spa_pod_builder_state
 
struct  spa_pod_builder_callbacks
 
struct  spa_pod_builder
 
struct  spa_command_body
 
struct  spa_command
 
struct  spa_event_body
 
struct  spa_event
 
struct  spa_pod_parser_state
 
struct  spa_pod_parser
 
struct  spa_pod
 
struct  spa_pod_bool
 
struct  spa_pod_id
 
struct  spa_pod_int
 
struct  spa_pod_long
 
struct  spa_pod_float
 
struct  spa_pod_double
 
struct  spa_pod_string
 
struct  spa_pod_bytes
 
struct  spa_pod_rectangle
 
struct  spa_pod_fraction
 
struct  spa_pod_bitmap
 
struct  spa_pod_array_body
 
struct  spa_pod_array
 
struct  spa_pod_choice_body
 
struct  spa_pod_choice
 
struct  spa_pod_struct
 
struct  spa_pod_object_body
 
struct  spa_pod_object
 
struct  spa_pod_pointer_body
 
struct  spa_pod_pointer
 
struct  spa_pod_fd
 
struct  spa_pod_prop
 
struct  spa_pod_control
 
struct  spa_pod_sequence_body
 
struct  spa_pod_sequence
 a sequence of timed controls More...
 

Enumerations

enum  spa_choice_type {
  SPA_CHOICE_None , SPA_CHOICE_Range , SPA_CHOICE_Step , SPA_CHOICE_Enum ,
  SPA_CHOICE_Flags
}
 

Macros

#define SPA_POD_BODY_LOAD_ONCE(a, b)   (*(a) = SPA_LOAD_ONCE((__typeof__(a))(b)))
 
#define SPA_POD_BODY_LOAD_FIELD_ONCE(a, b, field)   ((a)->field = SPA_LOAD_ONCE(&((__typeof__(a))(b))->field))
 
#define SPA_API_POD_BUILDER   static inline
 
#define SPA_POD_BUILDER_FLAG_BODY   (1<<0)
 
#define SPA_POD_BUILDER_FLAG_FIRST   (1<<1)
 
#define SPA_VERSION_POD_BUILDER_CALLBACKS   0
 
#define SPA_POD_BUILDER_INIT(buffer, size)   ((struct spa_pod_builder){ (buffer), (size), 0, {0,0,NULL},{NULL,NULL}})
 
#define SPA_POD_INIT(size, type)   ((struct spa_pod) { (size), (type) })
 
#define SPA_POD_INIT_None()   SPA_POD_INIT(0, SPA_TYPE_None)
 
#define SPA_POD_INIT_Bool(val)   ((struct spa_pod_bool){ { sizeof(uint32_t), SPA_TYPE_Bool }, (val) ? 1 : 0, 0 })
 
#define SPA_POD_INIT_Id(val)   ((struct spa_pod_id){ { sizeof(uint32_t), SPA_TYPE_Id }, (val), 0 })
 
#define SPA_POD_INIT_Int(val)   ((struct spa_pod_int){ { sizeof(int32_t), SPA_TYPE_Int }, (val), 0 })
 
#define SPA_POD_INIT_Long(val)   ((struct spa_pod_long){ { sizeof(int64_t), SPA_TYPE_Long }, (val) })
 
#define SPA_POD_INIT_Float(val)   ((struct spa_pod_float){ { sizeof(float), SPA_TYPE_Float }, (val), 0 })
 
#define SPA_POD_INIT_Double(val)   ((struct spa_pod_double){ { sizeof(double), SPA_TYPE_Double }, (val) })
 
#define SPA_POD_INIT_String(len)   ((struct spa_pod_string){ { (len), SPA_TYPE_String } })
 
#define SPA_POD_INIT_Bytes(len)   ((struct spa_pod_bytes){ { (len), SPA_TYPE_Bytes } })
 
#define SPA_POD_INIT_Pointer(type, value)   ((struct spa_pod_pointer){ { sizeof(struct spa_pod_pointer_body), SPA_TYPE_Pointer }, { (type), 0, (value) } })
 
#define SPA_POD_INIT_Fd(fd)   ((struct spa_pod_fd){ { sizeof(int64_t), SPA_TYPE_Fd }, (fd) })
 
#define SPA_POD_INIT_Rectangle(val)   ((struct spa_pod_rectangle){ { sizeof(struct spa_rectangle), SPA_TYPE_Rectangle }, (val) })
 
#define SPA_POD_INIT_Fraction(val)   ((struct spa_pod_fraction){ { sizeof(struct spa_fraction), SPA_TYPE_Fraction }, (val) })
 
#define SPA_POD_INIT_CHOICE_BODY(type, flags, child_size, child_type)    ((struct spa_pod_choice_body) { (type), (flags), { (child_size), (child_type) }})
 
#define SPA_POD_INIT_Choice(type, ctype, child_type, n_vals, ...)
 
#define SPA_POD_INIT_Struct(size)   ((struct spa_pod_struct){ { (size), SPA_TYPE_Struct } })
 
#define SPA_POD_INIT_Object(size, type, id, ...)   ((struct spa_pod_object){ { (size), SPA_TYPE_Object }, { (type), (id) }, ##__VA_ARGS__ })
 
#define SPA_POD_INIT_Prop(key, flags, size, type)    ((struct spa_pod_prop){ (key), (flags), { (size), (type) } })
 
#define SPA_POD_INIT_Sequence(size, unit)    ((struct spa_pod_sequence){ { (size), SPA_TYPE_Sequence}, {(unit), 0 } })
 
#define SPA_POD_BUILDER_COLLECT(builder, type, args)
 
#define spa_pod_builder_add_object(b, type, id, ...)
 
#define spa_pod_builder_add_struct(b, ...)
 
#define spa_pod_builder_add_sequence(b, unit, ...)
 
#define SPA_COMMAND_TYPE(cmd)   ((cmd)->body.body.type)
 
#define SPA_COMMAND_ID(cmd, type)
 
#define SPA_COMMAND_INIT_FULL(t, size, type, id, ...)
 
#define SPA_COMMAND_INIT(type, id)
 
#define SPA_EVENT_TYPE(ev)   ((ev)->body.body.type)
 
#define SPA_EVENT_ID(ev, type)
 
#define SPA_EVENT_INIT_FULL(t, size, type, id, ...)
 
#define SPA_EVENT_INIT(type, id)
 
#define SPA_POD_ARRAY_BODY_FOREACH(body, _size, iter)
 
#define SPA_POD_ARRAY_FOREACH(obj, iter)    SPA_POD_ARRAY_BODY_FOREACH(&(obj)->body, SPA_POD_BODY_SIZE(obj), iter)
 
#define SPA_POD_CHOICE_BODY_FOREACH(body, _size, iter)
 
#define SPA_POD_CHOICE_FOREACH(obj, iter)    SPA_POD_CHOICE_BODY_FOREACH(&(obj)->body, SPA_POD_BODY_SIZE(obj), iter)
 
#define SPA_POD_FOREACH(pod, size, iter)
 
#define SPA_POD_STRUCT_FOREACH(obj, iter)    SPA_POD_FOREACH(SPA_POD_STRUCT_BODY(obj), SPA_POD_BODY_SIZE(obj), iter)
 
#define SPA_POD_OBJECT_BODY_FOREACH(body, size, iter)
 
#define SPA_POD_OBJECT_FOREACH(obj, iter)    SPA_POD_OBJECT_BODY_FOREACH(&(obj)->body, SPA_POD_BODY_SIZE(obj), iter)
 
#define SPA_POD_SEQUENCE_BODY_FOREACH(body, size, iter)
 
#define SPA_POD_SEQUENCE_FOREACH(seq, iter)    SPA_POD_SEQUENCE_BODY_FOREACH(&(seq)->body, SPA_POD_BODY_SIZE(seq), iter)
 
#define spa_pod_copy_array(pod, type, values, max_values)    spa_pod_copy_array_full(pod,type,sizeof(values[0]),values,max_values)
 
#define SPA_POD_PARSER_INIT(buffer, size)   ((struct spa_pod_parser){ (buffer), (size), 0, {0,0,NULL}})
 
#define SPA_POD_PARSER_COLLECT_BODY(_pod, _body, _type, args)
 
#define SPA_POD_PARSER_COLLECT(pod, _type, args)    SPA_POD_PARSER_COLLECT_BODY(pod, SPA_POD_BODY_CONST(pod),_type,args)
 
#define SPA_POD_PARSER_SKIP(_type, args)
 
#define SPA_POD_OPT_Bool(val)   "?" SPA_POD_Bool(val)
 
#define SPA_POD_OPT_Id(val)   "?" SPA_POD_Id(val)
 
#define SPA_POD_OPT_Int(val)   "?" SPA_POD_Int(val)
 
#define SPA_POD_OPT_Long(val)   "?" SPA_POD_Long(val)
 
#define SPA_POD_OPT_Float(val)   "?" SPA_POD_Float(val)
 
#define SPA_POD_OPT_Double(val)   "?" SPA_POD_Double(val)
 
#define SPA_POD_OPT_String(val)   "?" SPA_POD_String(val)
 
#define SPA_POD_OPT_Stringn(val, len)   "?" SPA_POD_Stringn(val,len)
 
#define SPA_POD_OPT_Bytes(val, len)   "?" SPA_POD_Bytes(val,len)
 
#define SPA_POD_OPT_Rectangle(val)   "?" SPA_POD_Rectangle(val)
 
#define SPA_POD_OPT_Fraction(val)   "?" SPA_POD_Fraction(val)
 
#define SPA_POD_OPT_Array(csize, ctype, n_vals, vals)   "?" SPA_POD_Array(csize,ctype,n_vals,vals)
 
#define SPA_POD_OPT_Pointer(type, val)   "?" SPA_POD_Pointer(type,val)
 
#define SPA_POD_OPT_Fd(val)   "?" SPA_POD_Fd(val)
 
#define SPA_POD_OPT_Pod(val)   "?" SPA_POD_Pod(val)
 
#define SPA_POD_OPT_PodObject(val)   "?" SPA_POD_PodObject(val)
 
#define SPA_POD_OPT_PodStruct(val)   "?" SPA_POD_PodStruct(val)
 
#define SPA_POD_OPT_PodChoice(val)   "?" SPA_POD_PodChoice(val)
 
#define SPA_POD_OPT_PodBody(val, body)   "?" SPA_POD_PodBody(val,body)
 
#define SPA_POD_OPT_PodBodyObject(val, body)   "?" SPA_POD_PodBodyObject(val,body)
 
#define SPA_POD_OPT_PodBodyStruct(val, body)   "?" SPA_POD_PodBodyStruct(val,body)
 
#define SPA_POD_OPT_PodBodyChoice(val, body)   "?" SPA_POD_PodBodyChoice(val,body)
 
#define spa_pod_parser_get_object(p, type, id, ...)
 
#define spa_pod_parser_get_struct(p, ...)
 
#define spa_pod_body_parse_object(pod, body, type, id, ...)
 
#define spa_pod_parse_object(pod, type, id, ...)    spa_pod_body_parse_object(pod,SPA_POD_BODY_CONST(pod),type,id,##__VA_ARGS__)
 
#define spa_pod_body_parse_struct(pod, body, ...)
 
#define spa_pod_parse_struct(pod, ...)    spa_pod_body_parse_struct(pod,SPA_POD_BODY_CONST(pod),##__VA_ARGS__)
 
#define SPA_POD_ALIGN   8
 
#define SPA_POD_MAX_SIZE   (1u<<20)
 
#define SPA_POD_BODY_SIZE(pod)   (((struct spa_pod*)(pod))->size)
 
#define SPA_POD_TYPE(pod)   (((struct spa_pod*)(pod))->type)
 
#define SPA_POD_SIZE(pod)   ((uint64_t)sizeof(struct spa_pod) + SPA_POD_BODY_SIZE(pod))
 
#define SPA_POD_CONTENTS_SIZE(type, pod)   (SPA_POD_SIZE(pod)-sizeof(type))
 
#define SPA_POD_CONTENTS(type, pod)   SPA_PTROFF((pod),sizeof(type),void)
 
#define SPA_POD_CONTENTS_CONST(type, pod)   SPA_PTROFF((pod),sizeof(type),const void)
 
#define SPA_POD_BODY(pod)   SPA_PTROFF((pod),sizeof(struct spa_pod),void)
 
#define SPA_POD_BODY_CONST(pod)   SPA_PTROFF((pod),sizeof(struct spa_pod),const void)
 
#define SPA_POD_IS_VALID(pod)    (SPA_POD_BODY_SIZE(pod) < SPA_POD_MAX_SIZE)
 
#define SPA_POD_CHECK_TYPE(pod, _type)
 
#define SPA_POD_CHECK(pod, _type, _size)    (SPA_POD_CHECK_TYPE(pod,_type) && (pod)->size >= (_size))
 
#define SPA_POD_VALUE(type, pod)   (((type*)(pod))->value)
 
#define SPA_POD_ARRAY_CHILD(arr)   (&((struct spa_pod_array*)(arr))->body.child)
 
#define SPA_POD_ARRAY_VALUE_TYPE(arr)   (SPA_POD_ARRAY_CHILD(arr)->type)
 
#define SPA_POD_ARRAY_VALUE_SIZE(arr)   (SPA_POD_ARRAY_CHILD(arr)->size)
 
#define SPA_POD_ARRAY_N_VALUES(arr)   (SPA_POD_ARRAY_VALUE_SIZE(arr) ? ((SPA_POD_BODY_SIZE(arr) - sizeof(struct spa_pod_array_body)) / SPA_POD_ARRAY_VALUE_SIZE(arr)) : 0)
 
#define SPA_POD_ARRAY_VALUES(arr)   SPA_POD_CONTENTS(struct spa_pod_array, arr)
 
#define SPA_POD_CHOICE_CHILD(choice)   (&((struct spa_pod_choice*)(choice))->body.child)
 
#define SPA_POD_CHOICE_TYPE(choice)   (((struct spa_pod_choice*)(choice))->body.type)
 
#define SPA_POD_CHOICE_FLAGS(choice)   (((struct spa_pod_choice*)(choice))->body.flags)
 
#define SPA_POD_CHOICE_VALUE_TYPE(choice)   (SPA_POD_CHOICE_CHILD(choice)->type)
 
#define SPA_POD_CHOICE_VALUE_SIZE(choice)   (SPA_POD_CHOICE_CHILD(choice)->size)
 
#define SPA_POD_CHOICE_N_VALUES(choice)   (SPA_POD_CHOICE_VALUE_SIZE(choice) ? ((SPA_POD_BODY_SIZE(choice) - sizeof(struct spa_pod_choice_body)) / SPA_POD_CHOICE_VALUE_SIZE(choice)) : 0)
 
#define SPA_POD_CHOICE_VALUES(choice)   (SPA_POD_CONTENTS(struct spa_pod_choice, choice))
 
#define SPA_POD_STRUCT_BODY(pod)   SPA_PTROFF((pod),sizeof(struct spa_pod),struct spa_pod)
 
#define SPA_POD_STRUCT_BODY_CONST(pod)   SPA_PTROFF((pod),sizeof(struct spa_pod),const struct spa_pod)
 
#define SPA_POD_OBJECT_TYPE(obj)   (((struct spa_pod_object*)(obj))->body.type)
 
#define SPA_POD_OBJECT_ID(obj)   (((struct spa_pod_object*)(obj))->body.id)
 
#define SPA_POD_PROP_SIZE(prop)   (sizeof(struct spa_pod_prop) + (prop)->value.size)
 
#define SPA_POD_PROP_FLAG_READONLY   (1u<<0)
 is read-only
 
#define SPA_POD_PROP_FLAG_HARDWARE   (1u<<1)
 some sort of hardware parameter
 
#define SPA_POD_PROP_FLAG_HINT_DICT   (1u<<2)
 contains a dictionary struct as (Struct( Int : n_items, (String : key, String : value)*))
 
#define SPA_POD_PROP_FLAG_MANDATORY   (1u<<3)
 is mandatory, when filtering, both sides need this property or filtering fails.
 
#define SPA_POD_PROP_FLAG_DONT_FIXATE   (1u<<4)
 choices need no fixation
 
#define SPA_POD_PROP_FLAG_DROP   (1u<<5)
 drop property, when filtering, both sides need the property or it will be dropped.
 
#define SPA_POD_CONTROL_SIZE(ev)   (sizeof(struct spa_pod_control) + (ev)->value.size)
 
#define SPA_POD_Prop(key, ...)    key, ##__VA_ARGS__
 
#define SPA_POD_Propf(key, flags, ...)    SPA_ID_INVALID, key, flags, ##__VA_ARGS__
 
#define SPA_POD_Control(offset, type, ...)    offset, type, ##__VA_ARGS__
 
#define SPA_CHOICE_RANGE(def, min, max)   3,(def),(min),(max)
 
#define SPA_CHOICE_STEP(def, min, max, step)   4,(def),(min),(max),(step)
 
#define SPA_CHOICE_ENUM(n_vals, def, alt1, ...)   (n_vals),(def),(alt1),##__VA_ARGS__
 
#define SPA_CHOICE_FLAGS(flags)   1, (flags)
 
#define SPA_CHOICE_FEATURES(features)   1, (features)
 
#define SPA_CHOICE_BOOL(def)   3,(def),(def),!(def)
 
#define SPA_POD_Bool(val)   "b", val
 
#define SPA_POD_CHOICE_Bool(def)   "?eb", SPA_CHOICE_BOOL(def)
 
#define SPA_POD_Id(val)   "I", val
 
#define SPA_POD_CHOICE_ENUM_Id(n_vals, ...)   "?eI", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)
 
#define SPA_POD_Int(val)   "i", val
 
#define SPA_POD_CHOICE_ENUM_Int(n_vals, ...)   "?ei", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)
 
#define SPA_POD_CHOICE_RANGE_Int(def, min, max)   "?ri", SPA_CHOICE_RANGE(def, min, max)
 
#define SPA_POD_CHOICE_STEP_Int(def, min, max, step)   "?si", SPA_CHOICE_STEP(def, min, max, step)
 
#define SPA_POD_CHOICE_FLAGS_Int(flags)   "?fi", SPA_CHOICE_FLAGS(flags)
 
#define SPA_POD_CHOICE_FEATURES_Int(features)   "?Fi", SPA_CHOICE_FEATURES(features)
 
#define SPA_POD_Long(val)   "l", val
 
#define SPA_POD_CHOICE_ENUM_Long(n_vals, ...)   "?el", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)
 
#define SPA_POD_CHOICE_RANGE_Long(def, min, max)   "?rl", SPA_CHOICE_RANGE(def, min, max)
 
#define SPA_POD_CHOICE_STEP_Long(def, min, max, step)   "?sl", SPA_CHOICE_STEP(def, min, max, step)
 
#define SPA_POD_CHOICE_FLAGS_Long(flags)   "?fl", SPA_CHOICE_FLAGS(flags)
 
#define SPA_POD_CHOICE_FEATURES_LONG(features)   "?Fl", SPA_CHOICE_FEATURES(features)
 
#define SPA_POD_Float(val)   "f", val
 
#define SPA_POD_CHOICE_ENUM_Float(n_vals, ...)   "?ef", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)
 
#define SPA_POD_CHOICE_RANGE_Float(def, min, max)   "?rf", SPA_CHOICE_RANGE(def, min, max)
 
#define SPA_POD_CHOICE_STEP_Float(def, min, max, step)   "?sf", SPA_CHOICE_STEP(def, min, max, step)
 
#define SPA_POD_Double(val)   "d", val
 
#define SPA_POD_CHOICE_ENUM_Double(n_vals, ...)   "?ed", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)
 
#define SPA_POD_CHOICE_RANGE_Double(def, min, max)   "?rd", SPA_CHOICE_RANGE(def, min, max)
 
#define SPA_POD_CHOICE_STEP_Double(def, min, max, step)   "?sd", SPA_CHOICE_STEP(def, min, max, step)
 
#define SPA_POD_String(val)   "s",val
 
#define SPA_POD_Stringn(val, len)   "S",val,len
 
#define SPA_POD_Bytes(val, len)   "y",val,len
 
#define SPA_POD_Rectangle(val)   "R",val
 
#define SPA_POD_CHOICE_ENUM_Rectangle(n_vals, ...)   "?eR", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)
 
#define SPA_POD_CHOICE_RANGE_Rectangle(def, min, max)   "?rR", SPA_CHOICE_RANGE((def),(min),(max))
 
#define SPA_POD_CHOICE_STEP_Rectangle(def, min, max, step)   "?sR", SPA_CHOICE_STEP((def),(min),(max),(step))
 
#define SPA_POD_Fraction(val)   "F",val
 
#define SPA_POD_CHOICE_ENUM_Fraction(n_vals, ...)   "?eF", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)
 
#define SPA_POD_CHOICE_RANGE_Fraction(def, min, max)   "?rF", SPA_CHOICE_RANGE((def),(min),(max))
 
#define SPA_POD_CHOICE_STEP_Fraction(def, min, max, step)   "?sF", SPA_CHOICE_STEP(def, min, max, step)
 
#define SPA_POD_Array(csize, ctype, n_vals, vals)   "a", csize,ctype,n_vals,vals
 
#define SPA_POD_Pointer(type, val)   "p", type,val
 
#define SPA_POD_Fd(val)   "h", val
 
#define SPA_POD_None()   "P", NULL
 
#define SPA_POD_Pod(val)   "P", val
 
#define SPA_POD_PodObject(val)   "O", val
 
#define SPA_POD_PodStruct(val)   "T", val
 
#define SPA_POD_PodChoice(val)   "V", val
 
#define SPA_POD_PodBody(val, body)   "Q", val, body
 
#define SPA_POD_PodBodyObject(val, body)   "N", val, body
 
#define SPA_POD_PodBodyStruct(val, body)   "U", val, body
 
#define SPA_POD_PodBodyChoice(val, body)   "W", val, body
 

Functions

SPA_API_POD_BODY uint32_t spa_pod_type_size (uint32_t type)
 
SPA_API_POD_BODY int spa_pod_choice_n_values (uint32_t choice_type, uint32_t *min, uint32_t *max)
 
SPA_API_POD_BODY int spa_pod_body_from_data (void *data, size_t maxsize, off_t offset, size_t size, struct spa_pod *pod, const void **body)
 
SPA_API_POD_BODY int spa_pod_is_none (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_is_bool (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_bool (const struct spa_pod *pod, const void *body, bool *value)
 
SPA_API_POD_BODY int spa_pod_is_id (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_id (const struct spa_pod *pod, const void *body, uint32_t *value)
 
SPA_API_POD_BODY int spa_pod_is_int (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_int (const struct spa_pod *pod, const void *body, int32_t *value)
 
SPA_API_POD_BODY int spa_pod_is_long (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_long (const struct spa_pod *pod, const void *body, int64_t *value)
 
SPA_API_POD_BODY int spa_pod_is_float (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_float (const struct spa_pod *pod, const void *body, float *value)
 
SPA_API_POD_BODY int spa_pod_is_double (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_double (const struct spa_pod *pod, const void *body, double *value)
 
SPA_API_POD_BODY int spa_pod_is_string (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_string (const struct spa_pod *pod, const void *body, const char **value)
 
SPA_API_POD_BODY int spa_pod_body_copy_string (const struct spa_pod *pod, const void *body, char *dest, size_t maxlen)
 
SPA_API_POD_BODY int spa_pod_is_bytes (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_bytes (const struct spa_pod *pod, const void *body, const void **value, uint32_t *len)
 
SPA_API_POD_BODY int spa_pod_is_pointer (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_pointer (const struct spa_pod *pod, const void *body, uint32_t *type, const void **value)
 
SPA_API_POD_BODY int spa_pod_is_fd (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_fd (const struct spa_pod *pod, const void *body, int64_t *value)
 
SPA_API_POD_BODY int spa_pod_is_rectangle (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_rectangle (const struct spa_pod *pod, const void *body, struct spa_rectangle *value)
 
SPA_API_POD_BODY int spa_pod_is_fraction (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_fraction (const struct spa_pod *pod, const void *body, struct spa_fraction *value)
 
SPA_API_POD_BODY int spa_pod_is_bitmap (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_bitmap (const struct spa_pod *pod, const void *body, const uint8_t **value)
 
SPA_API_POD_BODY int spa_pod_is_array (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_array (const struct spa_pod *pod, const void *body, struct spa_pod_array *arr, const void **arr_body)
 
SPA_API_POD_BODY const void * spa_pod_array_body_get_values (const struct spa_pod_array *arr, const void *body, uint32_t *n_values, uint32_t *val_size, uint32_t *val_type)
 
SPA_API_POD_BODY const void * spa_pod_body_get_array_values (const struct spa_pod *pod, const void *body, uint32_t *n_values, uint32_t *val_size, uint32_t *val_type)
 
SPA_API_POD_BODY int spa_pod_is_choice (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_choice (const struct spa_pod *pod, const void *body, struct spa_pod_choice *choice, const void **choice_body)
 
SPA_API_POD_BODY const void * spa_pod_choice_body_get_values (const struct spa_pod_choice *pod, const void *body, uint32_t *n_values, uint32_t *choice, uint32_t *val_size, uint32_t *val_type)
 
SPA_API_POD_BODY int spa_pod_is_struct (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_is_object (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_object (const struct spa_pod *pod, const void *body, struct spa_pod_object *object, const void **object_body)
 
SPA_API_POD_BODY int spa_pod_is_sequence (const struct spa_pod *pod)
 
SPA_API_POD_BODY int spa_pod_body_get_sequence (const struct spa_pod *pod, const void *body, struct spa_pod_sequence *seq, const void **seq_body)
 
SPA_API_POD_BUILDER void spa_pod_builder_get_state (struct spa_pod_builder *builder, struct spa_pod_builder_state *state)
 
SPA_API_POD_BUILDER bool spa_pod_builder_corrupted (const struct spa_pod_builder *builder)
 
SPA_API_POD_BUILDER void spa_pod_builder_set_callbacks (struct spa_pod_builder *builder, const struct spa_pod_builder_callbacks *callbacks, void *data)
 
SPA_API_POD_BUILDER void spa_pod_builder_reset (struct spa_pod_builder *builder, struct spa_pod_builder_state *state)
 
SPA_API_POD_BUILDER void spa_pod_builder_init (struct spa_pod_builder *builder, void *data, uint32_t size)
 
SPA_API_POD_BUILDER struct spa_podspa_pod_builder_deref_fallback (struct spa_pod_builder *builder, uint32_t offset, struct spa_pod *fallback)
 
SPA_API_POD_BUILDER struct spa_podspa_pod_builder_deref (struct spa_pod_builder *builder, uint32_t offset)
 
SPA_API_POD_BUILDER struct spa_podspa_pod_builder_frame (struct spa_pod_builder *builder, struct spa_pod_frame *frame)
 
SPA_API_POD_BUILDER void spa_pod_builder_push (struct spa_pod_builder *builder, struct spa_pod_frame *frame, const struct spa_pod *pod, uint32_t offset)
 
SPA_API_POD_BUILDER int spa_pod_builder_raw (struct spa_pod_builder *builder, const void *data, uint32_t size)
 
SPA_API_POD_BUILDER void spa_pod_builder_remove (struct spa_pod_builder *builder, uint32_t size)
 
SPA_API_POD_BUILDER int spa_pod_builder_pad (struct spa_pod_builder *builder, uint32_t size)
 
SPA_API_POD_BUILDER int spa_pod_builder_raw_padded (struct spa_pod_builder *builder, const void *data, uint32_t size)
 
SPA_API_POD_BUILDER void * spa_pod_builder_pop (struct spa_pod_builder *builder, struct spa_pod_frame *frame)
 
SPA_API_POD_BUILDER int spa_pod_builder_primitive_body (struct spa_pod_builder *builder, const struct spa_pod *p, const void *body, uint32_t body_size, const char *suffix, uint32_t suffix_size)
 
SPA_API_POD_BUILDER int spa_pod_builder_primitive (struct spa_pod_builder *builder, const struct spa_pod *p)
 
SPA_API_POD_BUILDER int spa_pod_builder_none (struct spa_pod_builder *builder)
 
SPA_API_POD_BUILDER int spa_pod_builder_child (struct spa_pod_builder *builder, uint32_t size, uint32_t type)
 
SPA_API_POD_BUILDER int spa_pod_builder_bool (struct spa_pod_builder *builder, bool val)
 
SPA_API_POD_BUILDER int spa_pod_builder_id (struct spa_pod_builder *builder, uint32_t val)
 
SPA_API_POD_BUILDER int spa_pod_builder_int (struct spa_pod_builder *builder, int32_t val)
 
SPA_API_POD_BUILDER int spa_pod_builder_long (struct spa_pod_builder *builder, int64_t val)
 
SPA_API_POD_BUILDER int spa_pod_builder_float (struct spa_pod_builder *builder, float val)
 
SPA_API_POD_BUILDER int spa_pod_builder_double (struct spa_pod_builder *builder, double val)
 
SPA_API_POD_BUILDER int spa_pod_builder_write_string (struct spa_pod_builder *builder, const char *str, uint32_t len)
 
SPA_API_POD_BUILDER int spa_pod_builder_string_len (struct spa_pod_builder *builder, const char *str, uint32_t len)
 
SPA_API_POD_BUILDER int spa_pod_builder_string (struct spa_pod_builder *builder, const char *str)
 
SPA_API_POD_BUILDER int spa_pod_builder_bytes (struct spa_pod_builder *builder, const void *bytes, uint32_t len)
 
SPA_API_POD_BUILDER void * spa_pod_builder_reserve_bytes (struct spa_pod_builder *builder, uint32_t len)
 
SPA_API_POD_BUILDER int spa_pod_builder_pointer (struct spa_pod_builder *builder, uint32_t type, const void *val)
 
SPA_API_POD_BUILDER int spa_pod_builder_fd (struct spa_pod_builder *builder, int64_t fd)
 
SPA_API_POD_BUILDER int spa_pod_builder_rectangle (struct spa_pod_builder *builder, uint32_t width, uint32_t height)
 
SPA_API_POD_BUILDER int spa_pod_builder_fraction (struct spa_pod_builder *builder, uint32_t num, uint32_t denom)
 
SPA_API_POD_BUILDER int spa_pod_builder_push_array (struct spa_pod_builder *builder, struct spa_pod_frame *frame)
 
SPA_API_POD_BUILDER int spa_pod_builder_array (struct spa_pod_builder *builder, uint32_t child_size, uint32_t child_type, uint32_t n_elems, const void *elems)
 
SPA_API_POD_BUILDER int spa_pod_builder_push_choice (struct spa_pod_builder *builder, struct spa_pod_frame *frame, uint32_t type, uint32_t flags)
 
SPA_API_POD_BUILDER int spa_pod_builder_push_struct (struct spa_pod_builder *builder, struct spa_pod_frame *frame)
 
SPA_API_POD_BUILDER int spa_pod_builder_push_object (struct spa_pod_builder *builder, struct spa_pod_frame *frame, uint32_t type, uint32_t id)
 
SPA_API_POD_BUILDER int spa_pod_builder_prop (struct spa_pod_builder *builder, uint32_t key, uint32_t flags)
 
SPA_API_POD_BUILDER int spa_pod_builder_push_sequence (struct spa_pod_builder *builder, struct spa_pod_frame *frame, uint32_t unit)
 
SPA_API_POD_BUILDER int spa_pod_builder_control (struct spa_pod_builder *builder, uint32_t offset, uint32_t type)
 
SPA_API_POD_BUILDER uint32_t spa_choice_from_id_flags (char id, uint32_t *flags)
 
SPA_API_POD_BUILDER uint32_t spa_choice_from_id (char id)
 
SPA_API_POD_BUILDER int spa_pod_builder_addv (struct spa_pod_builder *builder, va_list args)
 
SPA_API_POD_BUILDER int spa_pod_builder_add (struct spa_pod_builder *builder,...)
 
SPA_API_POD_BUILDER struct spa_podspa_pod_copy (const struct spa_pod *pod)
 Copy a pod structure.
 
SPA_API_POD_COMPARE int spa_pod_compare_value (uint32_t type, const void *r1, const void *r2, uint32_t size)
 
SPA_API_POD_COMPARE int spa_pod_memcmp (const struct spa_pod *a, const struct spa_pod *b)
 
SPA_API_POD_COMPARE int spa_pod_compare (const struct spa_pod *pod1, const struct spa_pod *pod2)
 
SPA_API_POD_COMPARE int spa_pod_compare_is_compatible_flags (uint32_t type, const void *r1, const void *r2, uint32_t size 1)
 
SPA_API_POD_COMPARE int spa_pod_compare_is_step_of (uint32_t type, const void *r1, const void *r2, uint32_t size)
 
SPA_API_POD_COMPARE int spa_pod_compare_is_in_range (uint32_t type, const void *v, const void *min, const void *max, const void *step, uint32_t size 1)
 
SPA_API_POD_COMPARE int spa_pod_compare_is_valid_choice (uint32_t type, uint32_t size, const void *val, const void *vals, uint32_t n_vals, uint32_t choice)
 
SPA_API_POD_FILTER int spa_pod_filter_flags_value (struct spa_pod_builder *b, uint32_t type, const void *r1, const void *r2, uint32_t size)
 
SPA_API_POD_FILTER int spa_pod_filter_prop (struct spa_pod_builder *b, const struct spa_pod_prop *p1, const struct spa_pod_prop *p2)
 
SPA_API_POD_FILTER int spa_pod_filter_part (struct spa_pod_builder *b, const struct spa_pod *pod, uint32_t pod_size, const struct spa_pod *filter, uint32_t filter_size)
 
SPA_API_POD_FILTER int spa_pod_filter (struct spa_pod_builder *b, struct spa_pod **result, const struct spa_pod *pod, const struct spa_pod *filter)
 
SPA_API_POD_FILTER int spa_pod_filter_object_make (struct spa_pod_object *pod)
 
SPA_API_POD_FILTER int spa_pod_filter_make (struct spa_pod *pod)
 
SPA_API_POD_ITER bool spa_pod_is_inside (const void *pod, uint32_t size, const void *iter)
 
SPA_API_POD_ITER void * spa_pod_next (const void *iter)
 
SPA_API_POD_ITER struct spa_pod_propspa_pod_prop_first (const struct spa_pod_object_body *body)
 
SPA_API_POD_ITER bool spa_pod_prop_is_inside (const struct spa_pod_object_body *body, uint32_t size, const struct spa_pod_prop *iter)
 
SPA_API_POD_ITER struct spa_pod_propspa_pod_prop_next (const struct spa_pod_prop *iter)
 
SPA_API_POD_ITER struct spa_pod_controlspa_pod_control_first (const struct spa_pod_sequence_body *body)
 
SPA_API_POD_ITER bool spa_pod_control_is_inside (const struct spa_pod_sequence_body *body, uint32_t size, const struct spa_pod_control *iter)
 
SPA_API_POD_ITER struct spa_pod_controlspa_pod_control_next (const struct spa_pod_control *iter)
 
SPA_API_POD_ITER void * spa_pod_from_data (void *data, size_t maxsize, off_t offset, size_t size)
 
SPA_API_POD_ITER int spa_pod_get_bool (const struct spa_pod *pod, bool *value)
 
SPA_API_POD_ITER int spa_pod_get_id (const struct spa_pod *pod, uint32_t *value)
 
SPA_API_POD_ITER int spa_pod_get_int (const struct spa_pod *pod, int32_t *value)
 
SPA_API_POD_ITER int spa_pod_get_long (const struct spa_pod *pod, int64_t *value)
 
SPA_API_POD_ITER int spa_pod_get_float (const struct spa_pod *pod, float *value)
 
SPA_API_POD_ITER int spa_pod_get_double (const struct spa_pod *pod, double *value)
 
SPA_API_POD_ITER int spa_pod_get_string (const struct spa_pod *pod, const char **value)
 
SPA_API_POD_ITER int spa_pod_copy_string (const struct spa_pod *pod, size_t maxlen, char *dest)
 
SPA_API_POD_ITER int spa_pod_get_bytes (const struct spa_pod *pod, const void **value, uint32_t *len)
 
SPA_API_POD_ITER int spa_pod_get_pointer (const struct spa_pod *pod, uint32_t *type, const void **value)
 
SPA_API_POD_ITER int spa_pod_get_fd (const struct spa_pod *pod, int64_t *value)
 
SPA_API_POD_ITER int spa_pod_get_rectangle (const struct spa_pod *pod, struct spa_rectangle *value)
 
SPA_API_POD_ITER int spa_pod_get_fraction (const struct spa_pod *pod, struct spa_fraction *value)
 
SPA_API_POD_ITER void * spa_pod_get_array_full (const struct spa_pod *pod, uint32_t *n_values, uint32_t *val_size, uint32_t *val_type)
 
SPA_API_POD_ITER void * spa_pod_get_array (const struct spa_pod *pod, uint32_t *n_values)
 
SPA_API_POD_ITER uint32_t spa_pod_copy_array_full (const struct spa_pod *pod, uint32_t type, uint32_t size, void *values, uint32_t max_values)
 
SPA_API_POD_ITER struct spa_podspa_pod_get_values (const struct spa_pod *pod, uint32_t *n_vals, uint32_t *choice)
 
SPA_API_POD_ITER bool spa_pod_is_object_type (const struct spa_pod *pod, uint32_t type)
 
SPA_API_POD_ITER bool spa_pod_is_object_id (const struct spa_pod *pod, uint32_t id)
 
SPA_API_POD_ITER const struct spa_pod_propspa_pod_object_find_prop (const struct spa_pod_object *pod, const struct spa_pod_prop *start, uint32_t key)
 
SPA_API_POD_ITER const struct spa_pod_propspa_pod_find_prop (const struct spa_pod *pod, const struct spa_pod_prop *start, uint32_t key)
 
SPA_API_POD_ITER int spa_pod_object_has_props (const struct spa_pod_object *pod)
 
SPA_API_POD_ITER int spa_pod_object_fixate (struct spa_pod_object *pod)
 
SPA_API_POD_ITER int spa_pod_object_is_fixated (const struct spa_pod_object *pod)
 
SPA_API_POD_ITER int spa_pod_fixate (struct spa_pod *pod)
 
SPA_API_POD_ITER int spa_pod_is_fixated (const struct spa_pod *pod)
 
SPA_API_POD_PARSER void spa_pod_parser_init (struct spa_pod_parser *parser, const void *data, uint32_t size)
 
SPA_API_POD_PARSER void spa_pod_parser_pod (struct spa_pod_parser *parser, const struct spa_pod *pod)
 
SPA_API_POD_PARSER void spa_pod_parser_init_pod_body (struct spa_pod_parser *parser, const struct spa_pod *pod, const void *body)
 
SPA_API_POD_PARSER void spa_pod_parser_init_from_data (struct spa_pod_parser *parser, const void *data, uint32_t maxsize, uint32_t offset, uint32_t size)
 
SPA_API_POD_PARSER void spa_pod_parser_get_state (struct spa_pod_parser *parser, struct spa_pod_parser_state *state)
 
SPA_API_POD_PARSER void spa_pod_parser_reset (struct spa_pod_parser *parser, struct spa_pod_parser_state *state)
 
SPA_API_POD_PARSER int spa_pod_parser_read_header (struct spa_pod_parser *parser, uint32_t offset, uint32_t size, void *header, uint32_t header_size, uint32_t pod_offset, const void **body)
 
SPA_API_POD_PARSER struct spa_podspa_pod_parser_deref (struct spa_pod_parser *parser, uint32_t offset, uint32_t size)
 
SPA_API_POD_PARSER struct spa_podspa_pod_parser_frame (struct spa_pod_parser *parser, struct spa_pod_frame *frame)
 
SPA_API_POD_PARSER void spa_pod_parser_push (struct spa_pod_parser *parser, struct spa_pod_frame *frame, const struct spa_pod *pod, uint32_t offset)
 
SPA_API_POD_PARSER int spa_pod_parser_get_header (struct spa_pod_parser *parser, void *header, uint32_t header_size, uint32_t pod_offset, const void **body)
 
SPA_API_POD_PARSER int spa_pod_parser_current_body (struct spa_pod_parser *parser, struct spa_pod *pod, const void **body)
 
SPA_API_POD_PARSER struct spa_podspa_pod_parser_current (struct spa_pod_parser *parser)
 
SPA_API_POD_PARSER void spa_pod_parser_advance (struct spa_pod_parser *parser, const struct spa_pod *pod)
 
SPA_API_POD_PARSER int spa_pod_parser_next_body (struct spa_pod_parser *parser, struct spa_pod *pod, const void **body)
 
SPA_API_POD_PARSER struct spa_podspa_pod_parser_next (struct spa_pod_parser *parser)
 
SPA_API_POD_PARSER void spa_pod_parser_restart (struct spa_pod_parser *parser, struct spa_pod_frame *frame)
 
SPA_API_POD_PARSER void spa_pod_parser_unpush (struct spa_pod_parser *parser, struct spa_pod_frame *frame)
 
SPA_API_POD_PARSER int spa_pod_parser_pop (struct spa_pod_parser *parser, struct spa_pod_frame *frame)
 
SPA_API_POD_PARSER int spa_pod_parser_get_bool (struct spa_pod_parser *parser, bool *value)
 
SPA_API_POD_PARSER int spa_pod_parser_get_id (struct spa_pod_parser *parser, uint32_t *value)
 
SPA_API_POD_PARSER int spa_pod_parser_get_int (struct spa_pod_parser *parser, int32_t *value)
 
SPA_API_POD_PARSER int spa_pod_parser_get_long (struct spa_pod_parser *parser, int64_t *value)
 
SPA_API_POD_PARSER int spa_pod_parser_get_float (struct spa_pod_parser *parser, float *value)
 
SPA_API_POD_PARSER int spa_pod_parser_get_double (struct spa_pod_parser *parser, double *value)
 
SPA_API_POD_PARSER int spa_pod_parser_get_string (struct spa_pod_parser *parser, const char **value)
 
SPA_API_POD_PARSER int spa_pod_parser_get_bytes (struct spa_pod_parser *parser, const void **value, uint32_t *len)
 
SPA_API_POD_PARSER int spa_pod_parser_get_pointer (struct spa_pod_parser *parser, uint32_t *type, const void **value)
 
SPA_API_POD_PARSER int spa_pod_parser_get_fd (struct spa_pod_parser *parser, int64_t *value)
 
SPA_API_POD_PARSER int spa_pod_parser_get_rectangle (struct spa_pod_parser *parser, struct spa_rectangle *value)
 
SPA_API_POD_PARSER int spa_pod_parser_get_fraction (struct spa_pod_parser *parser, struct spa_fraction *value)
 
SPA_API_POD_PARSER int spa_pod_parser_get_pod_body (struct spa_pod_parser *parser, struct spa_pod *value, const void **body)
 
SPA_API_POD_PARSER int spa_pod_parser_get_pod (struct spa_pod_parser *parser, struct spa_pod **value)
 
SPA_API_POD_PARSER int spa_pod_parser_init_struct_body (struct spa_pod_parser *parser, struct spa_pod_frame *frame, const struct spa_pod *pod, const void *body)
 
SPA_API_POD_PARSER int spa_pod_parser_push_struct_body (struct spa_pod_parser *parser, struct spa_pod_frame *frame, struct spa_pod *str, const void **str_body)
 
SPA_API_POD_PARSER int spa_pod_parser_push_struct (struct spa_pod_parser *parser, struct spa_pod_frame *frame)
 
SPA_API_POD_PARSER int spa_pod_parser_init_object_body (struct spa_pod_parser *parser, struct spa_pod_frame *frame, const struct spa_pod *pod, const void *body, struct spa_pod_object *object, const void **object_body)
 
SPA_API_POD_PARSER int spa_pod_parser_push_object_body (struct spa_pod_parser *parser, struct spa_pod_frame *frame, struct spa_pod_object *object, const void **object_body)
 
SPA_API_POD_PARSER int spa_pod_parser_push_object (struct spa_pod_parser *parser, struct spa_pod_frame *frame, uint32_t type, uint32_t *id)
 
SPA_API_POD_PARSER int spa_pod_parser_get_prop_body (struct spa_pod_parser *parser, struct spa_pod_prop *prop, const void **body)
 
SPA_API_POD_PARSER int spa_pod_parser_push_sequence_body (struct spa_pod_parser *parser, struct spa_pod_frame *frame, struct spa_pod_sequence *seq, const void **seq_body)
 
SPA_API_POD_PARSER int spa_pod_parser_get_control_body (struct spa_pod_parser *parser, struct spa_pod_control *control, const void **body)
 
SPA_API_POD_PARSER int spa_pod_parser_object_find_prop (struct spa_pod_parser *parser, uint32_t key, struct spa_pod_prop *prop, const void **body)
 
SPA_API_POD_PARSER bool spa_pod_parser_body_can_collect (const struct spa_pod *pod, const void *body, char type)
 
SPA_API_POD_PARSER bool spa_pod_parser_can_collect (const struct spa_pod *pod, char type)
 
SPA_API_POD_PARSER int spa_pod_parser_getv (struct spa_pod_parser *parser, va_list args)
 
SPA_API_POD_PARSER int spa_pod_parser_get (struct spa_pod_parser *parser,...)
 
SPA_API_POD_SIMPLIFY int spa_pod_simplify_merge (struct spa_pod_builder *b, const struct spa_pod *pod1, const struct spa_pod *pod2)
 
SPA_API_POD_SIMPLIFY int spa_pod_simplify_struct (struct spa_pod_builder *b, const struct spa_pod *pod, uint32_t pod_size)
 
SPA_API_POD_SIMPLIFY int spa_pod_simplify (struct spa_pod_builder *b, struct spa_pod **result, const struct spa_pod *pod)
 

Detailed Description

Binary data serialization format.

See: SPA POD.

Enumeration Type Documentation

◆ spa_choice_type

Enumerator
SPA_CHOICE_None 

no choice, first value is current

SPA_CHOICE_Range 

range: default, min, max

SPA_CHOICE_Step 

range with step: default, min, max, step

SPA_CHOICE_Enum 

list: default, alternative,...

SPA_CHOICE_Flags 

flags: first value is flags

Macro Definition Documentation

◆ SPA_POD_BODY_LOAD_ONCE

#define SPA_POD_BODY_LOAD_ONCE (   a,
 
)    (*(a) = SPA_LOAD_ONCE((__typeof__(a))(b)))

◆ SPA_POD_BODY_LOAD_FIELD_ONCE

#define SPA_POD_BODY_LOAD_FIELD_ONCE (   a,
  b,
  field 
)    ((a)->field = SPA_LOAD_ONCE(&((__typeof__(a))(b))->field))

◆ SPA_API_POD_BUILDER

#define SPA_API_POD_BUILDER   static inline

◆ SPA_POD_BUILDER_FLAG_BODY

#define SPA_POD_BUILDER_FLAG_BODY   (1<<0)

◆ SPA_POD_BUILDER_FLAG_FIRST

#define SPA_POD_BUILDER_FLAG_FIRST   (1<<1)

◆ SPA_VERSION_POD_BUILDER_CALLBACKS

#define SPA_VERSION_POD_BUILDER_CALLBACKS   0

◆ SPA_POD_BUILDER_INIT

◆ SPA_POD_INIT

#define SPA_POD_INIT (   size,
  type 
)    ((struct spa_pod) { (size), (type) })

◆ SPA_POD_INIT_None

#define SPA_POD_INIT_None ( )    SPA_POD_INIT(0, SPA_TYPE_None)

◆ SPA_POD_INIT_Bool

#define SPA_POD_INIT_Bool (   val)    ((struct spa_pod_bool){ { sizeof(uint32_t), SPA_TYPE_Bool }, (val) ? 1 : 0, 0 })

◆ SPA_POD_INIT_Id

#define SPA_POD_INIT_Id (   val)    ((struct spa_pod_id){ { sizeof(uint32_t), SPA_TYPE_Id }, (val), 0 })

◆ SPA_POD_INIT_Int

#define SPA_POD_INIT_Int (   val)    ((struct spa_pod_int){ { sizeof(int32_t), SPA_TYPE_Int }, (val), 0 })

◆ SPA_POD_INIT_Long

#define SPA_POD_INIT_Long (   val)    ((struct spa_pod_long){ { sizeof(int64_t), SPA_TYPE_Long }, (val) })

◆ SPA_POD_INIT_Float

#define SPA_POD_INIT_Float (   val)    ((struct spa_pod_float){ { sizeof(float), SPA_TYPE_Float }, (val), 0 })

◆ SPA_POD_INIT_Double

#define SPA_POD_INIT_Double (   val)    ((struct spa_pod_double){ { sizeof(double), SPA_TYPE_Double }, (val) })

◆ SPA_POD_INIT_String

#define SPA_POD_INIT_String (   len)    ((struct spa_pod_string){ { (len), SPA_TYPE_String } })

◆ SPA_POD_INIT_Bytes

#define SPA_POD_INIT_Bytes (   len)    ((struct spa_pod_bytes){ { (len), SPA_TYPE_Bytes } })

◆ SPA_POD_INIT_Pointer

#define SPA_POD_INIT_Pointer (   type,
  value 
)    ((struct spa_pod_pointer){ { sizeof(struct spa_pod_pointer_body), SPA_TYPE_Pointer }, { (type), 0, (value) } })

◆ SPA_POD_INIT_Fd

#define SPA_POD_INIT_Fd (   fd)    ((struct spa_pod_fd){ { sizeof(int64_t), SPA_TYPE_Fd }, (fd) })

◆ SPA_POD_INIT_Rectangle

#define SPA_POD_INIT_Rectangle (   val)    ((struct spa_pod_rectangle){ { sizeof(struct spa_rectangle), SPA_TYPE_Rectangle }, (val) })

◆ SPA_POD_INIT_Fraction

#define SPA_POD_INIT_Fraction (   val)    ((struct spa_pod_fraction){ { sizeof(struct spa_fraction), SPA_TYPE_Fraction }, (val) })

◆ SPA_POD_INIT_CHOICE_BODY

#define SPA_POD_INIT_CHOICE_BODY (   type,
  flags,
  child_size,
  child_type 
)     ((struct spa_pod_choice_body) { (type), (flags), { (child_size), (child_type) }})

◆ SPA_POD_INIT_Choice

#define SPA_POD_INIT_Choice (   type,
  ctype,
  child_type,
  n_vals,
  ... 
)

◆ SPA_POD_INIT_Struct

#define SPA_POD_INIT_Struct (   size)    ((struct spa_pod_struct){ { (size), SPA_TYPE_Struct } })

◆ SPA_POD_INIT_Object

#define SPA_POD_INIT_Object (   size,
  type,
  id,
  ... 
)    ((struct spa_pod_object){ { (size), SPA_TYPE_Object }, { (type), (id) }, ##__VA_ARGS__ })

◆ SPA_POD_INIT_Prop

#define SPA_POD_INIT_Prop (   key,
  flags,
  size,
  type 
)     ((struct spa_pod_prop){ (key), (flags), { (size), (type) } })

◆ SPA_POD_INIT_Sequence

#define SPA_POD_INIT_Sequence (   size,
  unit 
)     ((struct spa_pod_sequence){ { (size), SPA_TYPE_Sequence}, {(unit), 0 } })

◆ SPA_POD_BUILDER_COLLECT

#define SPA_POD_BUILDER_COLLECT (   builder,
  type,
  args 
)

◆ spa_pod_builder_add_object

◆ spa_pod_builder_add_struct

#define spa_pod_builder_add_struct (   b,
  ... 
)

◆ spa_pod_builder_add_sequence

#define spa_pod_builder_add_sequence (   b,
  unit,
  ... 
)

◆ SPA_COMMAND_TYPE

#define SPA_COMMAND_TYPE (   cmd)    ((cmd)->body.body.type)

◆ SPA_COMMAND_ID

#define SPA_COMMAND_ID (   cmd,
  type 
)

◆ SPA_COMMAND_INIT_FULL

#define SPA_COMMAND_INIT_FULL (   t,
  size,
  type,
  id,
  ... 
)

◆ SPA_COMMAND_INIT

#define SPA_COMMAND_INIT (   type,
  id 
)

◆ SPA_EVENT_TYPE

#define SPA_EVENT_TYPE (   ev)    ((ev)->body.body.type)

◆ SPA_EVENT_ID

#define SPA_EVENT_ID (   ev,
  type 
)

◆ SPA_EVENT_INIT_FULL

#define SPA_EVENT_INIT_FULL (   t,
  size,
  type,
  id,
  ... 
)

◆ SPA_EVENT_INIT

#define SPA_EVENT_INIT (   type,
  id 
)

◆ SPA_POD_ARRAY_BODY_FOREACH

#define SPA_POD_ARRAY_BODY_FOREACH (   body,
  _size,
  iter 
)

◆ SPA_POD_ARRAY_FOREACH

#define SPA_POD_ARRAY_FOREACH (   obj,
  iter 
)     SPA_POD_ARRAY_BODY_FOREACH(&(obj)->body, SPA_POD_BODY_SIZE(obj), iter)

◆ SPA_POD_CHOICE_BODY_FOREACH

#define SPA_POD_CHOICE_BODY_FOREACH (   body,
  _size,
  iter 
)

◆ SPA_POD_CHOICE_FOREACH

#define SPA_POD_CHOICE_FOREACH (   obj,
  iter 
)     SPA_POD_CHOICE_BODY_FOREACH(&(obj)->body, SPA_POD_BODY_SIZE(obj), iter)

◆ SPA_POD_FOREACH

#define SPA_POD_FOREACH (   pod,
  size,
  iter 
)

◆ SPA_POD_STRUCT_FOREACH

#define SPA_POD_STRUCT_FOREACH (   obj,
  iter 
)     SPA_POD_FOREACH(SPA_POD_STRUCT_BODY(obj), SPA_POD_BODY_SIZE(obj), iter)

◆ SPA_POD_OBJECT_BODY_FOREACH

#define SPA_POD_OBJECT_BODY_FOREACH (   body,
  size,
  iter 
)

◆ SPA_POD_OBJECT_FOREACH

#define SPA_POD_OBJECT_FOREACH (   obj,
  iter 
)     SPA_POD_OBJECT_BODY_FOREACH(&(obj)->body, SPA_POD_BODY_SIZE(obj), iter)

◆ SPA_POD_SEQUENCE_BODY_FOREACH

#define SPA_POD_SEQUENCE_BODY_FOREACH (   body,
  size,
  iter 
)

◆ SPA_POD_SEQUENCE_FOREACH

#define SPA_POD_SEQUENCE_FOREACH (   seq,
  iter 
)     SPA_POD_SEQUENCE_BODY_FOREACH(&(seq)->body, SPA_POD_BODY_SIZE(seq), iter)

◆ spa_pod_copy_array

#define spa_pod_copy_array (   pod,
  type,
  values,
  max_values 
)     spa_pod_copy_array_full(pod,type,sizeof(values[0]),values,max_values)

◆ SPA_POD_PARSER_INIT

#define SPA_POD_PARSER_INIT (   buffer,
  size 
)    ((struct spa_pod_parser){ (buffer), (size), 0, {0,0,NULL}})

◆ SPA_POD_PARSER_COLLECT_BODY

#define SPA_POD_PARSER_COLLECT_BODY (   _pod,
  _body,
  _type,
  args 
)

◆ SPA_POD_PARSER_COLLECT

#define SPA_POD_PARSER_COLLECT (   pod,
  _type,
  args 
)     SPA_POD_PARSER_COLLECT_BODY(pod, SPA_POD_BODY_CONST(pod),_type,args)

◆ SPA_POD_PARSER_SKIP

#define SPA_POD_PARSER_SKIP (   _type,
  args 
)

◆ SPA_POD_OPT_Bool

#define SPA_POD_OPT_Bool (   val)    "?" SPA_POD_Bool(val)

◆ SPA_POD_OPT_Id

#define SPA_POD_OPT_Id (   val)    "?" SPA_POD_Id(val)

◆ SPA_POD_OPT_Int

#define SPA_POD_OPT_Int (   val)    "?" SPA_POD_Int(val)

◆ SPA_POD_OPT_Long

#define SPA_POD_OPT_Long (   val)    "?" SPA_POD_Long(val)

◆ SPA_POD_OPT_Float

#define SPA_POD_OPT_Float (   val)    "?" SPA_POD_Float(val)

◆ SPA_POD_OPT_Double

#define SPA_POD_OPT_Double (   val)    "?" SPA_POD_Double(val)

◆ SPA_POD_OPT_String

#define SPA_POD_OPT_String (   val)    "?" SPA_POD_String(val)

◆ SPA_POD_OPT_Stringn

#define SPA_POD_OPT_Stringn (   val,
  len 
)    "?" SPA_POD_Stringn(val,len)

◆ SPA_POD_OPT_Bytes

#define SPA_POD_OPT_Bytes (   val,
  len 
)    "?" SPA_POD_Bytes(val,len)

◆ SPA_POD_OPT_Rectangle

#define SPA_POD_OPT_Rectangle (   val)    "?" SPA_POD_Rectangle(val)

◆ SPA_POD_OPT_Fraction

#define SPA_POD_OPT_Fraction (   val)    "?" SPA_POD_Fraction(val)

◆ SPA_POD_OPT_Array

#define SPA_POD_OPT_Array (   csize,
  ctype,
  n_vals,
  vals 
)    "?" SPA_POD_Array(csize,ctype,n_vals,vals)

◆ SPA_POD_OPT_Pointer

#define SPA_POD_OPT_Pointer (   type,
  val 
)    "?" SPA_POD_Pointer(type,val)

◆ SPA_POD_OPT_Fd

#define SPA_POD_OPT_Fd (   val)    "?" SPA_POD_Fd(val)

◆ SPA_POD_OPT_Pod

#define SPA_POD_OPT_Pod (   val)    "?" SPA_POD_Pod(val)

◆ SPA_POD_OPT_PodObject

#define SPA_POD_OPT_PodObject (   val)    "?" SPA_POD_PodObject(val)

◆ SPA_POD_OPT_PodStruct

#define SPA_POD_OPT_PodStruct (   val)    "?" SPA_POD_PodStruct(val)

◆ SPA_POD_OPT_PodChoice

#define SPA_POD_OPT_PodChoice (   val)    "?" SPA_POD_PodChoice(val)

◆ SPA_POD_OPT_PodBody

#define SPA_POD_OPT_PodBody (   val,
  body 
)    "?" SPA_POD_PodBody(val,body)

◆ SPA_POD_OPT_PodBodyObject

#define SPA_POD_OPT_PodBodyObject (   val,
  body 
)    "?" SPA_POD_PodBodyObject(val,body)

◆ SPA_POD_OPT_PodBodyStruct

#define SPA_POD_OPT_PodBodyStruct (   val,
  body 
)    "?" SPA_POD_PodBodyStruct(val,body)

◆ SPA_POD_OPT_PodBodyChoice

#define SPA_POD_OPT_PodBodyChoice (   val,
  body 
)    "?" SPA_POD_PodBodyChoice(val,body)

◆ spa_pod_parser_get_object

#define spa_pod_parser_get_object (   p,
  type,
  id,
  ... 
)

◆ spa_pod_parser_get_struct

#define spa_pod_parser_get_struct (   p,
  ... 
)

◆ spa_pod_body_parse_object

#define spa_pod_body_parse_object (   pod,
  body,
  type,
  id,
  ... 
)

◆ spa_pod_parse_object

#define spa_pod_parse_object (   pod,
  type,
  id,
  ... 
)     spa_pod_body_parse_object(pod,SPA_POD_BODY_CONST(pod),type,id,##__VA_ARGS__)

◆ spa_pod_body_parse_struct

#define spa_pod_body_parse_struct (   pod,
  body,
  ... 
)

◆ spa_pod_parse_struct

#define spa_pod_parse_struct (   pod,
  ... 
)     spa_pod_body_parse_struct(pod,SPA_POD_BODY_CONST(pod),##__VA_ARGS__)

◆ SPA_POD_ALIGN

#define SPA_POD_ALIGN   8

◆ SPA_POD_MAX_SIZE

#define SPA_POD_MAX_SIZE   (1u<<20)

◆ SPA_POD_BODY_SIZE

#define SPA_POD_BODY_SIZE (   pod)    (((struct spa_pod*)(pod))->size)

◆ SPA_POD_TYPE

#define SPA_POD_TYPE (   pod)    (((struct spa_pod*)(pod))->type)

◆ SPA_POD_SIZE

#define SPA_POD_SIZE (   pod)    ((uint64_t)sizeof(struct spa_pod) + SPA_POD_BODY_SIZE(pod))

◆ SPA_POD_CONTENTS_SIZE

#define SPA_POD_CONTENTS_SIZE (   type,
  pod 
)    (SPA_POD_SIZE(pod)-sizeof(type))

◆ SPA_POD_CONTENTS

#define SPA_POD_CONTENTS (   type,
  pod 
)    SPA_PTROFF((pod),sizeof(type),void)

◆ SPA_POD_CONTENTS_CONST

#define SPA_POD_CONTENTS_CONST (   type,
  pod 
)    SPA_PTROFF((pod),sizeof(type),const void)

◆ SPA_POD_BODY

#define SPA_POD_BODY (   pod)    SPA_PTROFF((pod),sizeof(struct spa_pod),void)

◆ SPA_POD_BODY_CONST

#define SPA_POD_BODY_CONST (   pod)    SPA_PTROFF((pod),sizeof(struct spa_pod),const void)

◆ SPA_POD_IS_VALID

#define SPA_POD_IS_VALID (   pod)     (SPA_POD_BODY_SIZE(pod) < SPA_POD_MAX_SIZE)

◆ SPA_POD_CHECK_TYPE

#define SPA_POD_CHECK_TYPE (   pod,
  _type 
)

◆ SPA_POD_CHECK

#define SPA_POD_CHECK (   pod,
  _type,
  _size 
)     (SPA_POD_CHECK_TYPE(pod,_type) && (pod)->size >= (_size))

◆ SPA_POD_VALUE

#define SPA_POD_VALUE (   type,
  pod 
)    (((type*)(pod))->value)

◆ SPA_POD_ARRAY_CHILD

#define SPA_POD_ARRAY_CHILD (   arr)    (&((struct spa_pod_array*)(arr))->body.child)

◆ SPA_POD_ARRAY_VALUE_TYPE

#define SPA_POD_ARRAY_VALUE_TYPE (   arr)    (SPA_POD_ARRAY_CHILD(arr)->type)

◆ SPA_POD_ARRAY_VALUE_SIZE

#define SPA_POD_ARRAY_VALUE_SIZE (   arr)    (SPA_POD_ARRAY_CHILD(arr)->size)

◆ SPA_POD_ARRAY_N_VALUES

#define SPA_POD_ARRAY_N_VALUES (   arr)    (SPA_POD_ARRAY_VALUE_SIZE(arr) ? ((SPA_POD_BODY_SIZE(arr) - sizeof(struct spa_pod_array_body)) / SPA_POD_ARRAY_VALUE_SIZE(arr)) : 0)

◆ SPA_POD_ARRAY_VALUES

#define SPA_POD_ARRAY_VALUES (   arr)    SPA_POD_CONTENTS(struct spa_pod_array, arr)

◆ SPA_POD_CHOICE_CHILD

#define SPA_POD_CHOICE_CHILD (   choice)    (&((struct spa_pod_choice*)(choice))->body.child)

◆ SPA_POD_CHOICE_TYPE

#define SPA_POD_CHOICE_TYPE (   choice)    (((struct spa_pod_choice*)(choice))->body.type)

◆ SPA_POD_CHOICE_FLAGS

#define SPA_POD_CHOICE_FLAGS (   choice)    (((struct spa_pod_choice*)(choice))->body.flags)

◆ SPA_POD_CHOICE_VALUE_TYPE

#define SPA_POD_CHOICE_VALUE_TYPE (   choice)    (SPA_POD_CHOICE_CHILD(choice)->type)

◆ SPA_POD_CHOICE_VALUE_SIZE

#define SPA_POD_CHOICE_VALUE_SIZE (   choice)    (SPA_POD_CHOICE_CHILD(choice)->size)

◆ SPA_POD_CHOICE_N_VALUES

#define SPA_POD_CHOICE_N_VALUES (   choice)    (SPA_POD_CHOICE_VALUE_SIZE(choice) ? ((SPA_POD_BODY_SIZE(choice) - sizeof(struct spa_pod_choice_body)) / SPA_POD_CHOICE_VALUE_SIZE(choice)) : 0)

◆ SPA_POD_CHOICE_VALUES

#define SPA_POD_CHOICE_VALUES (   choice)    (SPA_POD_CONTENTS(struct spa_pod_choice, choice))

◆ SPA_POD_STRUCT_BODY

#define SPA_POD_STRUCT_BODY (   pod)    SPA_PTROFF((pod),sizeof(struct spa_pod),struct spa_pod)

◆ SPA_POD_STRUCT_BODY_CONST

#define SPA_POD_STRUCT_BODY_CONST (   pod)    SPA_PTROFF((pod),sizeof(struct spa_pod),const struct spa_pod)

◆ SPA_POD_OBJECT_TYPE

#define SPA_POD_OBJECT_TYPE (   obj)    (((struct spa_pod_object*)(obj))->body.type)

◆ SPA_POD_OBJECT_ID

#define SPA_POD_OBJECT_ID (   obj)    (((struct spa_pod_object*)(obj))->body.id)

◆ SPA_POD_PROP_SIZE

#define SPA_POD_PROP_SIZE (   prop)    (sizeof(struct spa_pod_prop) + (prop)->value.size)

◆ SPA_POD_PROP_FLAG_READONLY

#define SPA_POD_PROP_FLAG_READONLY   (1u<<0)

is read-only

◆ SPA_POD_PROP_FLAG_HARDWARE

#define SPA_POD_PROP_FLAG_HARDWARE   (1u<<1)

some sort of hardware parameter

◆ SPA_POD_PROP_FLAG_HINT_DICT

#define SPA_POD_PROP_FLAG_HINT_DICT   (1u<<2)

contains a dictionary struct as (Struct( Int : n_items, (String : key, String : value)*))

◆ SPA_POD_PROP_FLAG_MANDATORY

#define SPA_POD_PROP_FLAG_MANDATORY   (1u<<3)

is mandatory, when filtering, both sides need this property or filtering fails.

Examples
video-play-fixate.c, video-play-sync.c, video-src-fixate.c, and video-src-sync.c.

◆ SPA_POD_PROP_FLAG_DONT_FIXATE

#define SPA_POD_PROP_FLAG_DONT_FIXATE   (1u<<4)

choices need no fixation

Examples
video-play-fixate.c, and video-src-fixate.c.

◆ SPA_POD_PROP_FLAG_DROP

#define SPA_POD_PROP_FLAG_DROP   (1u<<5)

drop property, when filtering, both sides need the property or it will be dropped.

Examples
video-play-sync.c, and video-src-sync.c.

◆ SPA_POD_CONTROL_SIZE

#define SPA_POD_CONTROL_SIZE (   ev)    (sizeof(struct spa_pod_control) + (ev)->value.size)

◆ SPA_POD_Prop

#define SPA_POD_Prop (   key,
  ... 
)     key, ##__VA_ARGS__

◆ SPA_POD_Propf

#define SPA_POD_Propf (   key,
  flags,
  ... 
)     SPA_ID_INVALID, key, flags, ##__VA_ARGS__

◆ SPA_POD_Control

#define SPA_POD_Control (   offset,
  type,
  ... 
)     offset, type, ##__VA_ARGS__

◆ SPA_CHOICE_RANGE

#define SPA_CHOICE_RANGE (   def,
  min,
  max 
)    3,(def),(min),(max)

◆ SPA_CHOICE_STEP

#define SPA_CHOICE_STEP (   def,
  min,
  max,
  step 
)    4,(def),(min),(max),(step)

◆ SPA_CHOICE_ENUM

#define SPA_CHOICE_ENUM (   n_vals,
  def,
  alt1,
  ... 
)    (n_vals),(def),(alt1),##__VA_ARGS__

◆ SPA_CHOICE_FLAGS

#define SPA_CHOICE_FLAGS (   flags)    1, (flags)

◆ SPA_CHOICE_FEATURES

#define SPA_CHOICE_FEATURES (   features)    1, (features)

◆ SPA_CHOICE_BOOL

#define SPA_CHOICE_BOOL (   def)    3,(def),(def),!(def)

◆ SPA_POD_Bool

#define SPA_POD_Bool (   val)    "b", val

◆ SPA_POD_CHOICE_Bool

#define SPA_POD_CHOICE_Bool (   def)    "?eb", SPA_CHOICE_BOOL(def)

◆ SPA_POD_Id

◆ SPA_POD_CHOICE_ENUM_Id

#define SPA_POD_CHOICE_ENUM_Id (   n_vals,
  ... 
)    "?eI", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)

◆ SPA_POD_Int

◆ SPA_POD_CHOICE_ENUM_Int

#define SPA_POD_CHOICE_ENUM_Int (   n_vals,
  ... 
)    "?ei", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)

◆ SPA_POD_CHOICE_RANGE_Int

◆ SPA_POD_CHOICE_STEP_Int

#define SPA_POD_CHOICE_STEP_Int (   def,
  min,
  max,
  step 
)    "?si", SPA_CHOICE_STEP(def, min, max, step)

◆ SPA_POD_CHOICE_FLAGS_Int

◆ SPA_POD_CHOICE_FEATURES_Int

#define SPA_POD_CHOICE_FEATURES_Int (   features)    "?Fi", SPA_CHOICE_FEATURES(features)

◆ SPA_POD_Long

#define SPA_POD_Long (   val)    "l", val

◆ SPA_POD_CHOICE_ENUM_Long

#define SPA_POD_CHOICE_ENUM_Long (   n_vals,
  ... 
)    "?el", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)

◆ SPA_POD_CHOICE_RANGE_Long

#define SPA_POD_CHOICE_RANGE_Long (   def,
  min,
  max 
)    "?rl", SPA_CHOICE_RANGE(def, min, max)

◆ SPA_POD_CHOICE_STEP_Long

#define SPA_POD_CHOICE_STEP_Long (   def,
  min,
  max,
  step 
)    "?sl", SPA_CHOICE_STEP(def, min, max, step)

◆ SPA_POD_CHOICE_FLAGS_Long

#define SPA_POD_CHOICE_FLAGS_Long (   flags)    "?fl", SPA_CHOICE_FLAGS(flags)

◆ SPA_POD_CHOICE_FEATURES_LONG

#define SPA_POD_CHOICE_FEATURES_LONG (   features)    "?Fl", SPA_CHOICE_FEATURES(features)

◆ SPA_POD_Float

#define SPA_POD_Float (   val)    "f", val

◆ SPA_POD_CHOICE_ENUM_Float

#define SPA_POD_CHOICE_ENUM_Float (   n_vals,
  ... 
)    "?ef", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)

◆ SPA_POD_CHOICE_RANGE_Float

#define SPA_POD_CHOICE_RANGE_Float (   def,
  min,
  max 
)    "?rf", SPA_CHOICE_RANGE(def, min, max)

◆ SPA_POD_CHOICE_STEP_Float

#define SPA_POD_CHOICE_STEP_Float (   def,
  min,
  max,
  step 
)    "?sf", SPA_CHOICE_STEP(def, min, max, step)

◆ SPA_POD_Double

#define SPA_POD_Double (   val)    "d", val

◆ SPA_POD_CHOICE_ENUM_Double

#define SPA_POD_CHOICE_ENUM_Double (   n_vals,
  ... 
)    "?ed", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)

◆ SPA_POD_CHOICE_RANGE_Double

#define SPA_POD_CHOICE_RANGE_Double (   def,
  min,
  max 
)    "?rd", SPA_CHOICE_RANGE(def, min, max)

◆ SPA_POD_CHOICE_STEP_Double

#define SPA_POD_CHOICE_STEP_Double (   def,
  min,
  max,
  step 
)    "?sd", SPA_CHOICE_STEP(def, min, max, step)

◆ SPA_POD_String

#define SPA_POD_String (   val)    "s",val

◆ SPA_POD_Stringn

#define SPA_POD_Stringn (   val,
  len 
)    "S",val,len

◆ SPA_POD_Bytes

#define SPA_POD_Bytes (   val,
  len 
)    "y",val,len

◆ SPA_POD_Rectangle

#define SPA_POD_Rectangle (   val)    "R",val

◆ SPA_POD_CHOICE_ENUM_Rectangle

#define SPA_POD_CHOICE_ENUM_Rectangle (   n_vals,
  ... 
)    "?eR", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)

◆ SPA_POD_CHOICE_RANGE_Rectangle

#define SPA_POD_CHOICE_RANGE_Rectangle (   def,
  min,
  max 
)    "?rR", SPA_CHOICE_RANGE((def),(min),(max))

◆ SPA_POD_CHOICE_STEP_Rectangle

#define SPA_POD_CHOICE_STEP_Rectangle (   def,
  min,
  max,
  step 
)    "?sR", SPA_CHOICE_STEP((def),(min),(max),(step))

◆ SPA_POD_Fraction

#define SPA_POD_Fraction (   val)    "F",val

◆ SPA_POD_CHOICE_ENUM_Fraction

#define SPA_POD_CHOICE_ENUM_Fraction (   n_vals,
  ... 
)    "?eF", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)

◆ SPA_POD_CHOICE_RANGE_Fraction

#define SPA_POD_CHOICE_RANGE_Fraction (   def,
  min,
  max 
)    "?rF", SPA_CHOICE_RANGE((def),(min),(max))

◆ SPA_POD_CHOICE_STEP_Fraction

#define SPA_POD_CHOICE_STEP_Fraction (   def,
  min,
  max,
  step 
)    "?sF", SPA_CHOICE_STEP(def, min, max, step)

◆ SPA_POD_Array

#define SPA_POD_Array (   csize,
  ctype,
  n_vals,
  vals 
)    "a", csize,ctype,n_vals,vals

◆ SPA_POD_Pointer

#define SPA_POD_Pointer (   type,
  val 
)    "p", type,val

◆ SPA_POD_Fd

#define SPA_POD_Fd (   val)    "h", val

◆ SPA_POD_None

#define SPA_POD_None ( )    "P", NULL

◆ SPA_POD_Pod

#define SPA_POD_Pod (   val)    "P", val

◆ SPA_POD_PodObject

#define SPA_POD_PodObject (   val)    "O", val

◆ SPA_POD_PodStruct

#define SPA_POD_PodStruct (   val)    "T", val

◆ SPA_POD_PodChoice

#define SPA_POD_PodChoice (   val)    "V", val

◆ SPA_POD_PodBody

#define SPA_POD_PodBody (   val,
  body 
)    "Q", val, body

◆ SPA_POD_PodBodyObject

#define SPA_POD_PodBodyObject (   val,
  body 
)    "N", val, body

◆ SPA_POD_PodBodyStruct

#define SPA_POD_PodBodyStruct (   val,
  body 
)    "U", val, body

◆ SPA_POD_PodBodyChoice

#define SPA_POD_PodBodyChoice (   val,
  body 
)    "W", val, body

Function Documentation

◆ spa_pod_type_size()

SPA_API_POD_BODY uint32_t spa_pod_type_size ( uint32_t  type)

◆ spa_pod_choice_n_values()

SPA_API_POD_BODY int spa_pod_choice_n_values ( uint32_t  choice_type,
uint32_t *  min,
uint32_t *  max 
)

◆ spa_pod_body_from_data()

SPA_API_POD_BODY int spa_pod_body_from_data ( void *  data,
size_t  maxsize,
off_t  offset,
size_t  size,
struct spa_pod pod,
const void **  body 
)

◆ spa_pod_is_none()

SPA_API_POD_BODY int spa_pod_is_none ( const struct spa_pod pod)

◆ spa_pod_is_bool()

SPA_API_POD_BODY int spa_pod_is_bool ( const struct spa_pod pod)

◆ spa_pod_body_get_bool()

SPA_API_POD_BODY int spa_pod_body_get_bool ( const struct spa_pod pod,
const void *  body,
bool *  value 
)

◆ spa_pod_is_id()

SPA_API_POD_BODY int spa_pod_is_id ( const struct spa_pod pod)

◆ spa_pod_body_get_id()

SPA_API_POD_BODY int spa_pod_body_get_id ( const struct spa_pod pod,
const void *  body,
uint32_t *  value 
)

◆ spa_pod_is_int()

SPA_API_POD_BODY int spa_pod_is_int ( const struct spa_pod pod)

◆ spa_pod_body_get_int()

SPA_API_POD_BODY int spa_pod_body_get_int ( const struct spa_pod pod,
const void *  body,
int32_t *  value 
)

◆ spa_pod_is_long()

SPA_API_POD_BODY int spa_pod_is_long ( const struct spa_pod pod)

◆ spa_pod_body_get_long()

SPA_API_POD_BODY int spa_pod_body_get_long ( const struct spa_pod pod,
const void *  body,
int64_t *  value 
)

◆ spa_pod_is_float()

SPA_API_POD_BODY int spa_pod_is_float ( const struct spa_pod pod)

◆ spa_pod_body_get_float()

SPA_API_POD_BODY int spa_pod_body_get_float ( const struct spa_pod pod,
const void *  body,
float *  value 
)

◆ spa_pod_is_double()

SPA_API_POD_BODY int spa_pod_is_double ( const struct spa_pod pod)

◆ spa_pod_body_get_double()

SPA_API_POD_BODY int spa_pod_body_get_double ( const struct spa_pod pod,
const void *  body,
double *  value 
)

◆ spa_pod_is_string()

SPA_API_POD_BODY int spa_pod_is_string ( const struct spa_pod pod)

◆ spa_pod_body_get_string()

SPA_API_POD_BODY int spa_pod_body_get_string ( const struct spa_pod pod,
const void *  body,
const char **  value 
)

◆ spa_pod_body_copy_string()

SPA_API_POD_BODY int spa_pod_body_copy_string ( const struct spa_pod pod,
const void *  body,
char *  dest,
size_t  maxlen 
)

◆ spa_pod_is_bytes()

SPA_API_POD_BODY int spa_pod_is_bytes ( const struct spa_pod pod)

◆ spa_pod_body_get_bytes()

SPA_API_POD_BODY int spa_pod_body_get_bytes ( const struct spa_pod pod,
const void *  body,
const void **  value,
uint32_t *  len 
)

◆ spa_pod_is_pointer()

SPA_API_POD_BODY int spa_pod_is_pointer ( const struct spa_pod pod)

◆ spa_pod_body_get_pointer()

SPA_API_POD_BODY int spa_pod_body_get_pointer ( const struct spa_pod pod,
const void *  body,
uint32_t *  type,
const void **  value 
)

◆ spa_pod_is_fd()

SPA_API_POD_BODY int spa_pod_is_fd ( const struct spa_pod pod)

◆ spa_pod_body_get_fd()

SPA_API_POD_BODY int spa_pod_body_get_fd ( const struct spa_pod pod,
const void *  body,
int64_t *  value 
)

◆ spa_pod_is_rectangle()

SPA_API_POD_BODY int spa_pod_is_rectangle ( const struct spa_pod pod)

◆ spa_pod_body_get_rectangle()

SPA_API_POD_BODY int spa_pod_body_get_rectangle ( const struct spa_pod pod,
const void *  body,
struct spa_rectangle value 
)

◆ spa_pod_is_fraction()

SPA_API_POD_BODY int spa_pod_is_fraction ( const struct spa_pod pod)

◆ spa_pod_body_get_fraction()

SPA_API_POD_BODY int spa_pod_body_get_fraction ( const struct spa_pod pod,
const void *  body,
struct spa_fraction value 
)

◆ spa_pod_is_bitmap()

SPA_API_POD_BODY int spa_pod_is_bitmap ( const struct spa_pod pod)

◆ spa_pod_body_get_bitmap()

SPA_API_POD_BODY int spa_pod_body_get_bitmap ( const struct spa_pod pod,
const void *  body,
const uint8_t **  value 
)

◆ spa_pod_is_array()

SPA_API_POD_BODY int spa_pod_is_array ( const struct spa_pod pod)

◆ spa_pod_body_get_array()

SPA_API_POD_BODY int spa_pod_body_get_array ( const struct spa_pod pod,
const void *  body,
struct spa_pod_array arr,
const void **  arr_body 
)

◆ spa_pod_array_body_get_values()

SPA_API_POD_BODY const void * spa_pod_array_body_get_values ( const struct spa_pod_array arr,
const void *  body,
uint32_t *  n_values,
uint32_t *  val_size,
uint32_t *  val_type 
)

◆ spa_pod_body_get_array_values()

SPA_API_POD_BODY const void * spa_pod_body_get_array_values ( const struct spa_pod pod,
const void *  body,
uint32_t *  n_values,
uint32_t *  val_size,
uint32_t *  val_type 
)

◆ spa_pod_is_choice()

SPA_API_POD_BODY int spa_pod_is_choice ( const struct spa_pod pod)

◆ spa_pod_body_get_choice()

SPA_API_POD_BODY int spa_pod_body_get_choice ( const struct spa_pod pod,
const void *  body,
struct spa_pod_choice choice,
const void **  choice_body 
)

◆ spa_pod_choice_body_get_values()

SPA_API_POD_BODY const void * spa_pod_choice_body_get_values ( const struct spa_pod_choice pod,
const void *  body,
uint32_t *  n_values,
uint32_t *  choice,
uint32_t *  val_size,
uint32_t *  val_type 
)

◆ spa_pod_is_struct()

SPA_API_POD_BODY int spa_pod_is_struct ( const struct spa_pod pod)

◆ spa_pod_is_object()

SPA_API_POD_BODY int spa_pod_is_object ( const struct spa_pod pod)

◆ spa_pod_body_get_object()

SPA_API_POD_BODY int spa_pod_body_get_object ( const struct spa_pod pod,
const void *  body,
struct spa_pod_object object,
const void **  object_body 
)

◆ spa_pod_is_sequence()

SPA_API_POD_BODY int spa_pod_is_sequence ( const struct spa_pod pod)

◆ spa_pod_body_get_sequence()

SPA_API_POD_BODY int spa_pod_body_get_sequence ( const struct spa_pod pod,
const void *  body,
struct spa_pod_sequence seq,
const void **  seq_body 
)

◆ spa_pod_builder_get_state()

SPA_API_POD_BUILDER void spa_pod_builder_get_state ( struct spa_pod_builder builder,
struct spa_pod_builder_state state 
)

◆ spa_pod_builder_corrupted()

SPA_API_POD_BUILDER bool spa_pod_builder_corrupted ( const struct spa_pod_builder builder)

◆ spa_pod_builder_set_callbacks()

SPA_API_POD_BUILDER void spa_pod_builder_set_callbacks ( struct spa_pod_builder builder,
const struct spa_pod_builder_callbacks callbacks,
void *  data 
)

◆ spa_pod_builder_reset()

SPA_API_POD_BUILDER void spa_pod_builder_reset ( struct spa_pod_builder builder,
struct spa_pod_builder_state state 
)

◆ spa_pod_builder_init()

◆ spa_pod_builder_deref_fallback()

SPA_API_POD_BUILDER struct spa_pod * spa_pod_builder_deref_fallback ( struct spa_pod_builder builder,
uint32_t  offset,
struct spa_pod fallback 
)

◆ spa_pod_builder_deref()

SPA_API_POD_BUILDER struct spa_pod * spa_pod_builder_deref ( struct spa_pod_builder builder,
uint32_t  offset 
)

◆ spa_pod_builder_frame()

SPA_API_POD_BUILDER struct spa_pod * spa_pod_builder_frame ( struct spa_pod_builder builder,
struct spa_pod_frame frame 
)

◆ spa_pod_builder_push()

SPA_API_POD_BUILDER void spa_pod_builder_push ( struct spa_pod_builder builder,
struct spa_pod_frame frame,
const struct spa_pod pod,
uint32_t  offset 
)

◆ spa_pod_builder_raw()

SPA_API_POD_BUILDER int spa_pod_builder_raw ( struct spa_pod_builder builder,
const void *  data,
uint32_t  size 
)

◆ spa_pod_builder_remove()

SPA_API_POD_BUILDER void spa_pod_builder_remove ( struct spa_pod_builder builder,
uint32_t  size 
)

◆ spa_pod_builder_pad()

SPA_API_POD_BUILDER int spa_pod_builder_pad ( struct spa_pod_builder builder,
uint32_t  size 
)

◆ spa_pod_builder_raw_padded()

SPA_API_POD_BUILDER int spa_pod_builder_raw_padded ( struct spa_pod_builder builder,
const void *  data,
uint32_t  size 
)

◆ spa_pod_builder_pop()

◆ spa_pod_builder_primitive_body()

SPA_API_POD_BUILDER int spa_pod_builder_primitive_body ( struct spa_pod_builder builder,
const struct spa_pod p,
const void *  body,
uint32_t  body_size,
const char *  suffix,
uint32_t  suffix_size 
)

◆ spa_pod_builder_primitive()

SPA_API_POD_BUILDER int spa_pod_builder_primitive ( struct spa_pod_builder builder,
const struct spa_pod p 
)

◆ spa_pod_builder_none()

SPA_API_POD_BUILDER int spa_pod_builder_none ( struct spa_pod_builder builder)

◆ spa_pod_builder_child()

SPA_API_POD_BUILDER int spa_pod_builder_child ( struct spa_pod_builder builder,
uint32_t  size,
uint32_t  type 
)

◆ spa_pod_builder_bool()

SPA_API_POD_BUILDER int spa_pod_builder_bool ( struct spa_pod_builder builder,
bool  val 
)

◆ spa_pod_builder_id()

SPA_API_POD_BUILDER int spa_pod_builder_id ( struct spa_pod_builder builder,
uint32_t  val 
)

◆ spa_pod_builder_int()

SPA_API_POD_BUILDER int spa_pod_builder_int ( struct spa_pod_builder builder,
int32_t  val 
)

◆ spa_pod_builder_long()

SPA_API_POD_BUILDER int spa_pod_builder_long ( struct spa_pod_builder builder,
int64_t  val 
)

◆ spa_pod_builder_float()

SPA_API_POD_BUILDER int spa_pod_builder_float ( struct spa_pod_builder builder,
float  val 
)

◆ spa_pod_builder_double()

SPA_API_POD_BUILDER int spa_pod_builder_double ( struct spa_pod_builder builder,
double  val 
)

◆ spa_pod_builder_write_string()

SPA_API_POD_BUILDER int spa_pod_builder_write_string ( struct spa_pod_builder builder,
const char *  str,
uint32_t  len 
)

◆ spa_pod_builder_string_len()

SPA_API_POD_BUILDER int spa_pod_builder_string_len ( struct spa_pod_builder builder,
const char *  str,
uint32_t  len 
)

◆ spa_pod_builder_string()

SPA_API_POD_BUILDER int spa_pod_builder_string ( struct spa_pod_builder builder,
const char *  str 
)

◆ spa_pod_builder_bytes()

SPA_API_POD_BUILDER int spa_pod_builder_bytes ( struct spa_pod_builder builder,
const void *  bytes,
uint32_t  len 
)

◆ spa_pod_builder_reserve_bytes()

SPA_API_POD_BUILDER void * spa_pod_builder_reserve_bytes ( struct spa_pod_builder builder,
uint32_t  len 
)

◆ spa_pod_builder_pointer()

SPA_API_POD_BUILDER int spa_pod_builder_pointer ( struct spa_pod_builder builder,
uint32_t  type,
const void *  val 
)

◆ spa_pod_builder_fd()

SPA_API_POD_BUILDER int spa_pod_builder_fd ( struct spa_pod_builder builder,
int64_t  fd 
)

◆ spa_pod_builder_rectangle()

SPA_API_POD_BUILDER int spa_pod_builder_rectangle ( struct spa_pod_builder builder,
uint32_t  width,
uint32_t  height 
)

◆ spa_pod_builder_fraction()

SPA_API_POD_BUILDER int spa_pod_builder_fraction ( struct spa_pod_builder builder,
uint32_t  num,
uint32_t  denom 
)

◆ spa_pod_builder_push_array()

SPA_API_POD_BUILDER int spa_pod_builder_push_array ( struct spa_pod_builder builder,
struct spa_pod_frame frame 
)

◆ spa_pod_builder_array()

SPA_API_POD_BUILDER int spa_pod_builder_array ( struct spa_pod_builder builder,
uint32_t  child_size,
uint32_t  child_type,
uint32_t  n_elems,
const void *  elems 
)

◆ spa_pod_builder_push_choice()

SPA_API_POD_BUILDER int spa_pod_builder_push_choice ( struct spa_pod_builder builder,
struct spa_pod_frame frame,
uint32_t  type,
uint32_t  flags 
)

◆ spa_pod_builder_push_struct()

SPA_API_POD_BUILDER int spa_pod_builder_push_struct ( struct spa_pod_builder builder,
struct spa_pod_frame frame 
)

◆ spa_pod_builder_push_object()

SPA_API_POD_BUILDER int spa_pod_builder_push_object ( struct spa_pod_builder builder,
struct spa_pod_frame frame,
uint32_t  type,
uint32_t  id 
)

◆ spa_pod_builder_prop()

SPA_API_POD_BUILDER int spa_pod_builder_prop ( struct spa_pod_builder builder,
uint32_t  key,
uint32_t  flags 
)

◆ spa_pod_builder_push_sequence()

SPA_API_POD_BUILDER int spa_pod_builder_push_sequence ( struct spa_pod_builder builder,
struct spa_pod_frame frame,
uint32_t  unit 
)

◆ spa_pod_builder_control()

SPA_API_POD_BUILDER int spa_pod_builder_control ( struct spa_pod_builder builder,
uint32_t  offset,
uint32_t  type 
)

◆ spa_choice_from_id_flags()

SPA_API_POD_BUILDER uint32_t spa_choice_from_id_flags ( char  id,
uint32_t *  flags 
)

◆ spa_choice_from_id()

SPA_API_POD_BUILDER uint32_t spa_choice_from_id ( char  id)

◆ spa_pod_builder_addv()

SPA_API_POD_BUILDER int spa_pod_builder_addv ( struct spa_pod_builder builder,
va_list  args 
)

◆ spa_pod_builder_add()

SPA_API_POD_BUILDER int spa_pod_builder_add ( struct spa_pod_builder builder,
  ... 
)

◆ spa_pod_copy()

SPA_API_POD_BUILDER struct spa_pod * spa_pod_copy ( const struct spa_pod pod)

Copy a pod structure.

◆ spa_pod_compare_value()

SPA_API_POD_COMPARE int spa_pod_compare_value ( uint32_t  type,
const void *  r1,
const void *  r2,
uint32_t  size 
)

◆ spa_pod_memcmp()

SPA_API_POD_COMPARE int spa_pod_memcmp ( const struct spa_pod a,
const struct spa_pod b 
)

◆ spa_pod_compare()

SPA_API_POD_COMPARE int spa_pod_compare ( const struct spa_pod pod1,
const struct spa_pod pod2 
)

◆ spa_pod_compare_is_compatible_flags()

SPA_API_POD_COMPARE int spa_pod_compare_is_compatible_flags ( uint32_t  type,
const void *  r1,
const void *  r2,
uint32_t size  1 
)

◆ spa_pod_compare_is_step_of()

SPA_API_POD_COMPARE int spa_pod_compare_is_step_of ( uint32_t  type,
const void *  r1,
const void *  r2,
uint32_t  size 
)

◆ spa_pod_compare_is_in_range()

SPA_API_POD_COMPARE int spa_pod_compare_is_in_range ( uint32_t  type,
const void *  v,
const void *  min,
const void *  max,
const void *  step,
uint32_t size  1 
)

◆ spa_pod_compare_is_valid_choice()

SPA_API_POD_COMPARE int spa_pod_compare_is_valid_choice ( uint32_t  type,
uint32_t  size,
const void *  val,
const void *  vals,
uint32_t  n_vals,
uint32_t  choice 
)

◆ spa_pod_filter_flags_value()

SPA_API_POD_FILTER int spa_pod_filter_flags_value ( struct spa_pod_builder b,
uint32_t  type,
const void *  r1,
const void *  r2,
uint32_t  size 
)

◆ spa_pod_filter_prop()

SPA_API_POD_FILTER int spa_pod_filter_prop ( struct spa_pod_builder b,
const struct spa_pod_prop p1,
const struct spa_pod_prop p2 
)

◆ spa_pod_filter_part()

SPA_API_POD_FILTER int spa_pod_filter_part ( struct spa_pod_builder b,
const struct spa_pod pod,
uint32_t  pod_size,
const struct spa_pod filter,
uint32_t  filter_size 
)

◆ spa_pod_filter()

SPA_API_POD_FILTER int spa_pod_filter ( struct spa_pod_builder b,
struct spa_pod **  result,
const struct spa_pod pod,
const struct spa_pod filter 
)

◆ spa_pod_filter_object_make()

SPA_API_POD_FILTER int spa_pod_filter_object_make ( struct spa_pod_object pod)

◆ spa_pod_filter_make()

SPA_API_POD_FILTER int spa_pod_filter_make ( struct spa_pod pod)

◆ spa_pod_is_inside()

SPA_API_POD_ITER bool spa_pod_is_inside ( const void *  pod,
uint32_t  size,
const void *  iter 
)

◆ spa_pod_next()

SPA_API_POD_ITER void * spa_pod_next ( const void *  iter)

◆ spa_pod_prop_first()

SPA_API_POD_ITER struct spa_pod_prop * spa_pod_prop_first ( const struct spa_pod_object_body body)

◆ spa_pod_prop_is_inside()

SPA_API_POD_ITER bool spa_pod_prop_is_inside ( const struct spa_pod_object_body body,
uint32_t  size,
const struct spa_pod_prop iter 
)

◆ spa_pod_prop_next()

SPA_API_POD_ITER struct spa_pod_prop * spa_pod_prop_next ( const struct spa_pod_prop iter)

◆ spa_pod_control_first()

SPA_API_POD_ITER struct spa_pod_control * spa_pod_control_first ( const struct spa_pod_sequence_body body)

◆ spa_pod_control_is_inside()

SPA_API_POD_ITER bool spa_pod_control_is_inside ( const struct spa_pod_sequence_body body,
uint32_t  size,
const struct spa_pod_control iter 
)

◆ spa_pod_control_next()

SPA_API_POD_ITER struct spa_pod_control * spa_pod_control_next ( const struct spa_pod_control iter)

◆ spa_pod_from_data()

SPA_API_POD_ITER void * spa_pod_from_data ( void *  data,
size_t  maxsize,
off_t  offset,
size_t  size 
)

◆ spa_pod_get_bool()

SPA_API_POD_ITER int spa_pod_get_bool ( const struct spa_pod pod,
bool *  value 
)

◆ spa_pod_get_id()

SPA_API_POD_ITER int spa_pod_get_id ( const struct spa_pod pod,
uint32_t *  value 
)

◆ spa_pod_get_int()

SPA_API_POD_ITER int spa_pod_get_int ( const struct spa_pod pod,
int32_t *  value 
)

◆ spa_pod_get_long()

SPA_API_POD_ITER int spa_pod_get_long ( const struct spa_pod pod,
int64_t *  value 
)

◆ spa_pod_get_float()

SPA_API_POD_ITER int spa_pod_get_float ( const struct spa_pod pod,
float *  value 
)

◆ spa_pod_get_double()

SPA_API_POD_ITER int spa_pod_get_double ( const struct spa_pod pod,
double *  value 
)

◆ spa_pod_get_string()

SPA_API_POD_ITER int spa_pod_get_string ( const struct spa_pod pod,
const char **  value 
)

◆ spa_pod_copy_string()

SPA_API_POD_ITER int spa_pod_copy_string ( const struct spa_pod pod,
size_t  maxlen,
char *  dest 
)

◆ spa_pod_get_bytes()

SPA_API_POD_ITER int spa_pod_get_bytes ( const struct spa_pod pod,
const void **  value,
uint32_t *  len 
)

◆ spa_pod_get_pointer()

SPA_API_POD_ITER int spa_pod_get_pointer ( const struct spa_pod pod,
uint32_t *  type,
const void **  value 
)

◆ spa_pod_get_fd()

SPA_API_POD_ITER int spa_pod_get_fd ( const struct spa_pod pod,
int64_t *  value 
)

◆ spa_pod_get_rectangle()

SPA_API_POD_ITER int spa_pod_get_rectangle ( const struct spa_pod pod,
struct spa_rectangle value 
)

◆ spa_pod_get_fraction()

SPA_API_POD_ITER int spa_pod_get_fraction ( const struct spa_pod pod,
struct spa_fraction value 
)

◆ spa_pod_get_array_full()

SPA_API_POD_ITER void * spa_pod_get_array_full ( const struct spa_pod pod,
uint32_t *  n_values,
uint32_t *  val_size,
uint32_t *  val_type 
)

◆ spa_pod_get_array()

SPA_API_POD_ITER void * spa_pod_get_array ( const struct spa_pod pod,
uint32_t *  n_values 
)

◆ spa_pod_copy_array_full()

SPA_API_POD_ITER uint32_t spa_pod_copy_array_full ( const struct spa_pod pod,
uint32_t  type,
uint32_t  size,
void *  values,
uint32_t  max_values 
)

◆ spa_pod_get_values()

SPA_API_POD_ITER struct spa_pod * spa_pod_get_values ( const struct spa_pod pod,
uint32_t *  n_vals,
uint32_t *  choice 
)

◆ spa_pod_is_object_type()

SPA_API_POD_ITER bool spa_pod_is_object_type ( const struct spa_pod pod,
uint32_t  type 
)

◆ spa_pod_is_object_id()

SPA_API_POD_ITER bool spa_pod_is_object_id ( const struct spa_pod pod,
uint32_t  id 
)

◆ spa_pod_object_find_prop()

SPA_API_POD_ITER const struct spa_pod_prop * spa_pod_object_find_prop ( const struct spa_pod_object pod,
const struct spa_pod_prop start,
uint32_t  key 
)

◆ spa_pod_find_prop()

SPA_API_POD_ITER const struct spa_pod_prop * spa_pod_find_prop ( const struct spa_pod pod,
const struct spa_pod_prop start,
uint32_t  key 
)

◆ spa_pod_object_has_props()

SPA_API_POD_ITER int spa_pod_object_has_props ( const struct spa_pod_object pod)

◆ spa_pod_object_fixate()

SPA_API_POD_ITER int spa_pod_object_fixate ( struct spa_pod_object pod)

◆ spa_pod_object_is_fixated()

SPA_API_POD_ITER int spa_pod_object_is_fixated ( const struct spa_pod_object pod)

◆ spa_pod_fixate()

SPA_API_POD_ITER int spa_pod_fixate ( struct spa_pod pod)

◆ spa_pod_is_fixated()

SPA_API_POD_ITER int spa_pod_is_fixated ( const struct spa_pod pod)

◆ spa_pod_parser_init()

SPA_API_POD_PARSER void spa_pod_parser_init ( struct spa_pod_parser parser,
const void *  data,
uint32_t  size 
)

◆ spa_pod_parser_pod()

SPA_API_POD_PARSER void spa_pod_parser_pod ( struct spa_pod_parser parser,
const struct spa_pod pod 
)

◆ spa_pod_parser_init_pod_body()

SPA_API_POD_PARSER void spa_pod_parser_init_pod_body ( struct spa_pod_parser parser,
const struct spa_pod pod,
const void *  body 
)

◆ spa_pod_parser_init_from_data()

SPA_API_POD_PARSER void spa_pod_parser_init_from_data ( struct spa_pod_parser parser,
const void *  data,
uint32_t  maxsize,
uint32_t  offset,
uint32_t  size 
)

◆ spa_pod_parser_get_state()

SPA_API_POD_PARSER void spa_pod_parser_get_state ( struct spa_pod_parser parser,
struct spa_pod_parser_state state 
)

◆ spa_pod_parser_reset()

SPA_API_POD_PARSER void spa_pod_parser_reset ( struct spa_pod_parser parser,
struct spa_pod_parser_state state 
)

◆ spa_pod_parser_read_header()

SPA_API_POD_PARSER int spa_pod_parser_read_header ( struct spa_pod_parser parser,
uint32_t  offset,
uint32_t  size,
void *  header,
uint32_t  header_size,
uint32_t  pod_offset,
const void **  body 
)

◆ spa_pod_parser_deref()

SPA_API_POD_PARSER struct spa_pod * spa_pod_parser_deref ( struct spa_pod_parser parser,
uint32_t  offset,
uint32_t  size 
)

◆ spa_pod_parser_frame()

SPA_API_POD_PARSER struct spa_pod * spa_pod_parser_frame ( struct spa_pod_parser parser,
struct spa_pod_frame frame 
)

◆ spa_pod_parser_push()

SPA_API_POD_PARSER void spa_pod_parser_push ( struct spa_pod_parser parser,
struct spa_pod_frame frame,
const struct spa_pod pod,
uint32_t  offset 
)

◆ spa_pod_parser_get_header()

SPA_API_POD_PARSER int spa_pod_parser_get_header ( struct spa_pod_parser parser,
void *  header,
uint32_t  header_size,
uint32_t  pod_offset,
const void **  body 
)

◆ spa_pod_parser_current_body()

SPA_API_POD_PARSER int spa_pod_parser_current_body ( struct spa_pod_parser parser,
struct spa_pod pod,
const void **  body 
)

◆ spa_pod_parser_current()

SPA_API_POD_PARSER struct spa_pod * spa_pod_parser_current ( struct spa_pod_parser parser)

◆ spa_pod_parser_advance()

SPA_API_POD_PARSER void spa_pod_parser_advance ( struct spa_pod_parser parser,
const struct spa_pod pod 
)

◆ spa_pod_parser_next_body()

SPA_API_POD_PARSER int spa_pod_parser_next_body ( struct spa_pod_parser parser,
struct spa_pod pod,
const void **  body 
)

◆ spa_pod_parser_next()

SPA_API_POD_PARSER struct spa_pod * spa_pod_parser_next ( struct spa_pod_parser parser)

◆ spa_pod_parser_restart()

SPA_API_POD_PARSER void spa_pod_parser_restart ( struct spa_pod_parser parser,
struct spa_pod_frame frame 
)

◆ spa_pod_parser_unpush()

SPA_API_POD_PARSER void spa_pod_parser_unpush ( struct spa_pod_parser parser,
struct spa_pod_frame frame 
)

◆ spa_pod_parser_pop()

SPA_API_POD_PARSER int spa_pod_parser_pop ( struct spa_pod_parser parser,
struct spa_pod_frame frame 
)

◆ spa_pod_parser_get_bool()

SPA_API_POD_PARSER int spa_pod_parser_get_bool ( struct spa_pod_parser parser,
bool *  value 
)

◆ spa_pod_parser_get_id()

SPA_API_POD_PARSER int spa_pod_parser_get_id ( struct spa_pod_parser parser,
uint32_t *  value 
)

◆ spa_pod_parser_get_int()

SPA_API_POD_PARSER int spa_pod_parser_get_int ( struct spa_pod_parser parser,
int32_t *  value 
)

◆ spa_pod_parser_get_long()

SPA_API_POD_PARSER int spa_pod_parser_get_long ( struct spa_pod_parser parser,
int64_t *  value 
)

◆ spa_pod_parser_get_float()

SPA_API_POD_PARSER int spa_pod_parser_get_float ( struct spa_pod_parser parser,
float *  value 
)

◆ spa_pod_parser_get_double()

SPA_API_POD_PARSER int spa_pod_parser_get_double ( struct spa_pod_parser parser,
double *  value 
)

◆ spa_pod_parser_get_string()

SPA_API_POD_PARSER int spa_pod_parser_get_string ( struct spa_pod_parser parser,
const char **  value 
)

◆ spa_pod_parser_get_bytes()

SPA_API_POD_PARSER int spa_pod_parser_get_bytes ( struct spa_pod_parser parser,
const void **  value,
uint32_t *  len 
)

◆ spa_pod_parser_get_pointer()

SPA_API_POD_PARSER int spa_pod_parser_get_pointer ( struct spa_pod_parser parser,
uint32_t *  type,
const void **  value 
)

◆ spa_pod_parser_get_fd()

SPA_API_POD_PARSER int spa_pod_parser_get_fd ( struct spa_pod_parser parser,
int64_t *  value 
)

◆ spa_pod_parser_get_rectangle()

SPA_API_POD_PARSER int spa_pod_parser_get_rectangle ( struct spa_pod_parser parser,
struct spa_rectangle value 
)

◆ spa_pod_parser_get_fraction()

SPA_API_POD_PARSER int spa_pod_parser_get_fraction ( struct spa_pod_parser parser,
struct spa_fraction value 
)

◆ spa_pod_parser_get_pod_body()

SPA_API_POD_PARSER int spa_pod_parser_get_pod_body ( struct spa_pod_parser parser,
struct spa_pod value,
const void **  body 
)

◆ spa_pod_parser_get_pod()

SPA_API_POD_PARSER int spa_pod_parser_get_pod ( struct spa_pod_parser parser,
struct spa_pod **  value 
)

◆ spa_pod_parser_init_struct_body()

SPA_API_POD_PARSER int spa_pod_parser_init_struct_body ( struct spa_pod_parser parser,
struct spa_pod_frame frame,
const struct spa_pod pod,
const void *  body 
)

◆ spa_pod_parser_push_struct_body()

SPA_API_POD_PARSER int spa_pod_parser_push_struct_body ( struct spa_pod_parser parser,
struct spa_pod_frame frame,
struct spa_pod str,
const void **  str_body 
)

◆ spa_pod_parser_push_struct()

SPA_API_POD_PARSER int spa_pod_parser_push_struct ( struct spa_pod_parser parser,
struct spa_pod_frame frame 
)

◆ spa_pod_parser_init_object_body()

SPA_API_POD_PARSER int spa_pod_parser_init_object_body ( struct spa_pod_parser parser,
struct spa_pod_frame frame,
const struct spa_pod pod,
const void *  body,
struct spa_pod_object object,
const void **  object_body 
)

◆ spa_pod_parser_push_object_body()

SPA_API_POD_PARSER int spa_pod_parser_push_object_body ( struct spa_pod_parser parser,
struct spa_pod_frame frame,
struct spa_pod_object object,
const void **  object_body 
)

◆ spa_pod_parser_push_object()

SPA_API_POD_PARSER int spa_pod_parser_push_object ( struct spa_pod_parser parser,
struct spa_pod_frame frame,
uint32_t  type,
uint32_t *  id 
)

◆ spa_pod_parser_get_prop_body()

SPA_API_POD_PARSER int spa_pod_parser_get_prop_body ( struct spa_pod_parser parser,
struct spa_pod_prop prop,
const void **  body 
)

◆ spa_pod_parser_push_sequence_body()

SPA_API_POD_PARSER int spa_pod_parser_push_sequence_body ( struct spa_pod_parser parser,
struct spa_pod_frame frame,
struct spa_pod_sequence seq,
const void **  seq_body 
)

◆ spa_pod_parser_get_control_body()

SPA_API_POD_PARSER int spa_pod_parser_get_control_body ( struct spa_pod_parser parser,
struct spa_pod_control control,
const void **  body 
)

◆ spa_pod_parser_object_find_prop()

SPA_API_POD_PARSER int spa_pod_parser_object_find_prop ( struct spa_pod_parser parser,
uint32_t  key,
struct spa_pod_prop prop,
const void **  body 
)

◆ spa_pod_parser_body_can_collect()

SPA_API_POD_PARSER bool spa_pod_parser_body_can_collect ( const struct spa_pod pod,
const void *  body,
char  type 
)

◆ spa_pod_parser_can_collect()

SPA_API_POD_PARSER bool spa_pod_parser_can_collect ( const struct spa_pod pod,
char  type 
)

◆ spa_pod_parser_getv()

SPA_API_POD_PARSER int spa_pod_parser_getv ( struct spa_pod_parser parser,
va_list  args 
)

◆ spa_pod_parser_get()

SPA_API_POD_PARSER int spa_pod_parser_get ( struct spa_pod_parser parser,
  ... 
)

◆ spa_pod_simplify_merge()

SPA_API_POD_SIMPLIFY int spa_pod_simplify_merge ( struct spa_pod_builder b,
const struct spa_pod pod1,
const struct spa_pod pod2 
)

◆ spa_pod_simplify_struct()

SPA_API_POD_SIMPLIFY int spa_pod_simplify_struct ( struct spa_pod_builder b,
const struct spa_pod pod,
uint32_t  pod_size 
)

◆ spa_pod_simplify()

SPA_API_POD_SIMPLIFY int spa_pod_simplify ( struct spa_pod_builder b,
struct spa_pod **  result,
const struct spa_pod pod 
)