PipeWire 1.2.7
Loading...
Searching...
No Matches
POD

Files

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  vararg.h
 spa/pod/vararg.h
 

Data Structures

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_frame
 
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_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)
 
#define SPA_POD_INIT(size, type)
 
#define SPA_POD_INIT_None()
 
#define SPA_POD_INIT_Bool(val)
 
#define SPA_POD_INIT_Id(val)
 
#define SPA_POD_INIT_Int(val)
 
#define SPA_POD_INIT_Long(val)
 
#define SPA_POD_INIT_Float(val)
 
#define SPA_POD_INIT_Double(val)
 
#define SPA_POD_INIT_String(len)
 
#define SPA_POD_INIT_Bytes(len)
 
#define SPA_POD_INIT_Pointer(type, value)
 
#define SPA_POD_INIT_Fd(fd)
 
#define SPA_POD_INIT_Rectangle(val)
 
#define SPA_POD_INIT_Fraction(val)
 
#define SPA_POD_INIT_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)
 
#define SPA_POD_INIT_Object(size, type, id, ...)
 
#define SPA_POD_INIT_Prop(key, flags, size, type)
 
#define SPA_POD_INIT_Sequence(size, unit)
 
#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)
 
#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)
 
#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)
 
#define SPA_POD_CHOICE_BODY_FOREACH(body, _size, iter)
 
#define SPA_POD_CHOICE_FOREACH(obj, iter)
 
#define SPA_POD_FOREACH(pod, size, iter)
 
#define SPA_POD_STRUCT_FOREACH(obj, iter)
 
#define SPA_POD_OBJECT_BODY_FOREACH(body, size, iter)
 
#define SPA_POD_OBJECT_FOREACH(obj, iter)
 
#define SPA_POD_SEQUENCE_BODY_FOREACH(body, size, iter)
 
#define SPA_POD_SEQUENCE_FOREACH(seq, iter)
 
#define SPA_POD_PARSER_INIT(buffer, size)
 
#define SPA_POD_PARSER_COLLECT(pod, _type, args)
 
#define SPA_POD_PARSER_SKIP(_type, args)
 
#define SPA_POD_OPT_Bool(val)
 
#define SPA_POD_OPT_Id(val)
 
#define SPA_POD_OPT_Int(val)
 
#define SPA_POD_OPT_Long(val)
 
#define SPA_POD_OPT_Float(val)
 
#define SPA_POD_OPT_Double(val)
 
#define SPA_POD_OPT_String(val)
 
#define SPA_POD_OPT_Stringn(val, len)
 
#define SPA_POD_OPT_Bytes(val, len)
 
#define SPA_POD_OPT_Rectangle(val)
 
#define SPA_POD_OPT_Fraction(val)
 
#define SPA_POD_OPT_Array(csize, ctype, n_vals, vals)
 
#define SPA_POD_OPT_Pointer(type, val)
 
#define SPA_POD_OPT_Fd(val)
 
#define SPA_POD_OPT_Pod(val)
 
#define SPA_POD_OPT_PodObject(val)
 
#define SPA_POD_OPT_PodStruct(val)
 
#define SPA_POD_OPT_PodChoice(val)
 
#define spa_pod_parser_get_object(p, type, id, ...)
 
#define spa_pod_parser_get_struct(p, ...)
 
#define spa_pod_parse_object(pod, type, id, ...)
 
#define spa_pod_parse_struct(pod, ...)
 
#define SPA_POD_BODY_SIZE(pod)
 
#define SPA_POD_TYPE(pod)
 
#define SPA_POD_SIZE(pod)
 
#define SPA_POD_CONTENTS_SIZE(type, pod)
 
#define SPA_POD_CONTENTS(type, pod)
 
#define SPA_POD_CONTENTS_CONST(type, pod)
 
#define SPA_POD_BODY(pod)
 
#define SPA_POD_BODY_CONST(pod)
 
#define SPA_POD_VALUE(type, pod)
 
#define SPA_POD_ARRAY_CHILD(arr)
 
#define SPA_POD_ARRAY_VALUE_TYPE(arr)
 
#define SPA_POD_ARRAY_VALUE_SIZE(arr)
 
#define SPA_POD_ARRAY_N_VALUES(arr)
 
#define SPA_POD_ARRAY_VALUES(arr)
 
#define SPA_POD_CHOICE_CHILD(choice)
 
#define SPA_POD_CHOICE_TYPE(choice)
 
#define SPA_POD_CHOICE_FLAGS(choice)
 
#define SPA_POD_CHOICE_VALUE_TYPE(choice)
 
#define SPA_POD_CHOICE_VALUE_SIZE(choice)
 
#define SPA_POD_CHOICE_N_VALUES(choice)
 
#define SPA_POD_CHOICE_VALUES(choice)
 
#define SPA_POD_OBJECT_TYPE(obj)
 
#define SPA_POD_OBJECT_ID(obj)
 
#define SPA_POD_PROP_SIZE(prop)
 
#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
 
#define SPA_POD_PROP_FLAG_DONT_FIXATE   (1u<<4)
 choices need no fixation
 
#define SPA_POD_CONTROL_SIZE(ev)
 
#define SPA_POD_Prop(key, ...)
 
#define SPA_POD_Control(offset, type, ...)
 
#define SPA_CHOICE_RANGE(def, min, max)
 
#define SPA_CHOICE_STEP(def, min, max, step)
 
#define SPA_CHOICE_ENUM(n_vals, ...)
 
#define SPA_CHOICE_FLAGS(flags)
 
#define SPA_CHOICE_BOOL(def)
 
#define SPA_POD_Bool(val)
 
#define SPA_POD_CHOICE_Bool(def)
 
#define SPA_POD_Id(val)
 
#define SPA_POD_CHOICE_ENUM_Id(n_vals, ...)
 
#define SPA_POD_Int(val)
 
#define SPA_POD_CHOICE_ENUM_Int(n_vals, ...)
 
#define SPA_POD_CHOICE_RANGE_Int(def, min, max)
 
#define SPA_POD_CHOICE_STEP_Int(def, min, max, step)
 
#define SPA_POD_CHOICE_FLAGS_Int(flags)
 
#define SPA_POD_Long(val)
 
#define SPA_POD_CHOICE_ENUM_Long(n_vals, ...)
 
#define SPA_POD_CHOICE_RANGE_Long(def, min, max)
 
#define SPA_POD_CHOICE_STEP_Long(def, min, max, step)
 
#define SPA_POD_CHOICE_FLAGS_Long(flags)
 
#define SPA_POD_Float(val)
 
#define SPA_POD_CHOICE_ENUM_Float(n_vals, ...)
 
#define SPA_POD_CHOICE_RANGE_Float(def, min, max)
 
#define SPA_POD_CHOICE_STEP_Float(def, min, max, step)
 
#define SPA_POD_Double(val)
 
#define SPA_POD_CHOICE_ENUM_Double(n_vals, ...)
 
#define SPA_POD_CHOICE_RANGE_Double(def, min, max)
 
#define SPA_POD_CHOICE_STEP_Double(def, min, max, step)
 
#define SPA_POD_String(val)
 
#define SPA_POD_Stringn(val, len)
 
#define SPA_POD_Bytes(val, len)
 
#define SPA_POD_Rectangle(val)
 
#define SPA_POD_CHOICE_ENUM_Rectangle(n_vals, ...)
 
#define SPA_POD_CHOICE_RANGE_Rectangle(def, min, max)
 
#define SPA_POD_CHOICE_STEP_Rectangle(def, min, max, step)
 
#define SPA_POD_Fraction(val)
 
#define SPA_POD_CHOICE_ENUM_Fraction(n_vals, ...)
 
#define SPA_POD_CHOICE_RANGE_Fraction(def, min, max)
 
#define SPA_POD_CHOICE_STEP_Fraction(def, min, max, step)
 
#define SPA_POD_Array(csize, ctype, n_vals, vals)
 
#define SPA_POD_Pointer(type, val)
 
#define SPA_POD_Fd(val)
 
#define SPA_POD_None()
 
#define SPA_POD_Pod(val)
 
#define SPA_POD_PodObject(val)
 
#define SPA_POD_PodStruct(val)
 
#define SPA_POD_PodChoice(val)
 

Functions

static void spa_pod_builder_get_state (struct spa_pod_builder *builder, struct spa_pod_builder_state *state)
 
static void spa_pod_builder_set_callbacks (struct spa_pod_builder *builder, const struct spa_pod_builder_callbacks *callbacks, void *data)
 
static void spa_pod_builder_reset (struct spa_pod_builder *builder, struct spa_pod_builder_state *state)
 
static void spa_pod_builder_init (struct spa_pod_builder *builder, void *data, uint32_t size)
 
static struct spa_podspa_pod_builder_deref (struct spa_pod_builder *builder, uint32_t offset)
 
static struct spa_podspa_pod_builder_frame (struct spa_pod_builder *builder, struct spa_pod_frame *frame)
 
static void spa_pod_builder_push (struct spa_pod_builder *builder, struct spa_pod_frame *frame, const struct spa_pod *pod, uint32_t offset)
 
static int spa_pod_builder_raw (struct spa_pod_builder *builder, const void *data, uint32_t size)
 
static int spa_pod_builder_pad (struct spa_pod_builder *builder, uint32_t size)
 
static int spa_pod_builder_raw_padded (struct spa_pod_builder *builder, const void *data, uint32_t size)
 
static void * spa_pod_builder_pop (struct spa_pod_builder *builder, struct spa_pod_frame *frame)
 
static int spa_pod_builder_primitive (struct spa_pod_builder *builder, const struct spa_pod *p)
 
static int spa_pod_builder_none (struct spa_pod_builder *builder)
 
static int spa_pod_builder_child (struct spa_pod_builder *builder, uint32_t size, uint32_t type)
 
static int spa_pod_builder_bool (struct spa_pod_builder *builder, bool val)
 
static int spa_pod_builder_id (struct spa_pod_builder *builder, uint32_t val)
 
static int spa_pod_builder_int (struct spa_pod_builder *builder, int32_t val)
 
static int spa_pod_builder_long (struct spa_pod_builder *builder, int64_t val)
 
static int spa_pod_builder_float (struct spa_pod_builder *builder, float val)
 
static int spa_pod_builder_double (struct spa_pod_builder *builder, double val)
 
static int spa_pod_builder_write_string (struct spa_pod_builder *builder, const char *str, uint32_t len)
 
static int spa_pod_builder_string_len (struct spa_pod_builder *builder, const char *str, uint32_t len)
 
static int spa_pod_builder_string (struct spa_pod_builder *builder, const char *str)
 
static int spa_pod_builder_bytes (struct spa_pod_builder *builder, const void *bytes, uint32_t len)
 
static void * spa_pod_builder_reserve_bytes (struct spa_pod_builder *builder, uint32_t len)
 
static int spa_pod_builder_pointer (struct spa_pod_builder *builder, uint32_t type, const void *val)
 
static int spa_pod_builder_fd (struct spa_pod_builder *builder, int64_t fd)
 
static int spa_pod_builder_rectangle (struct spa_pod_builder *builder, uint32_t width, uint32_t height)
 
static int spa_pod_builder_fraction (struct spa_pod_builder *builder, uint32_t num, uint32_t denom)
 
static int spa_pod_builder_push_array (struct spa_pod_builder *builder, struct spa_pod_frame *frame)
 
static 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)
 
static int spa_pod_builder_push_choice (struct spa_pod_builder *builder, struct spa_pod_frame *frame, uint32_t type, uint32_t flags)
 
static int spa_pod_builder_push_struct (struct spa_pod_builder *builder, struct spa_pod_frame *frame)
 
static int spa_pod_builder_push_object (struct spa_pod_builder *builder, struct spa_pod_frame *frame, uint32_t type, uint32_t id)
 
static int spa_pod_builder_prop (struct spa_pod_builder *builder, uint32_t key, uint32_t flags)
 
static int spa_pod_builder_push_sequence (struct spa_pod_builder *builder, struct spa_pod_frame *frame, uint32_t unit)
 
static int spa_pod_builder_control (struct spa_pod_builder *builder, uint32_t offset, uint32_t type)
 
static uint32_t spa_choice_from_id (char id)
 
static int spa_pod_builder_addv (struct spa_pod_builder *builder, va_list args)
 
static int spa_pod_builder_add (struct spa_pod_builder *builder,...)
 
static struct spa_podspa_pod_copy (const struct spa_pod *pod)
 Copy a pod structure.
 
static int spa_pod_compare_value (uint32_t type, const void *r1, const void *r2, uint32_t size)
 
static int spa_pod_compare (const struct spa_pod *pod1, const struct spa_pod *pod2)
 
static int spa_pod_choice_fix_default (struct spa_pod_choice *choice)
 
static int spa_pod_filter_flags_value (struct spa_pod_builder *b, uint32_t type, const void *r1, const void *r2, uint32_t size 1)
 
static int spa_pod_filter_is_step_of (uint32_t type, const void *r1, const void *r2, uint32_t size 1)
 
static int spa_pod_filter_prop (struct spa_pod_builder *b, const struct spa_pod_prop *p1, const struct spa_pod_prop *p2)
 
static 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)
 
static int spa_pod_filter (struct spa_pod_builder *b, struct spa_pod **result, const struct spa_pod *pod, const struct spa_pod *filter)
 
static bool spa_pod_is_inside (const void *pod, uint32_t size, const void *iter)
 
static void * spa_pod_next (const void *iter)
 
static struct spa_pod_propspa_pod_prop_first (const struct spa_pod_object_body *body)
 
static bool spa_pod_prop_is_inside (const struct spa_pod_object_body *body, uint32_t size, const struct spa_pod_prop *iter)
 
static struct spa_pod_propspa_pod_prop_next (const struct spa_pod_prop *iter)
 
static struct spa_pod_controlspa_pod_control_first (const struct spa_pod_sequence_body *body)
 
static bool spa_pod_control_is_inside (const struct spa_pod_sequence_body *body, uint32_t size, const struct spa_pod_control *iter)
 
static struct spa_pod_controlspa_pod_control_next (const struct spa_pod_control *iter)
 
static void * spa_pod_from_data (void *data, size_t maxsize, off_t offset, size_t size)
 
static int spa_pod_is_none (const struct spa_pod *pod)
 
static int spa_pod_is_bool (const struct spa_pod *pod)
 
static int spa_pod_get_bool (const struct spa_pod *pod, bool *value)
 
static int spa_pod_is_id (const struct spa_pod *pod)
 
static int spa_pod_get_id (const struct spa_pod *pod, uint32_t *value)
 
static int spa_pod_is_int (const struct spa_pod *pod)
 
static int spa_pod_get_int (const struct spa_pod *pod, int32_t *value)
 
static int spa_pod_is_long (const struct spa_pod *pod)
 
static int spa_pod_get_long (const struct spa_pod *pod, int64_t *value)
 
static int spa_pod_is_float (const struct spa_pod *pod)
 
static int spa_pod_get_float (const struct spa_pod *pod, float *value)
 
static int spa_pod_is_double (const struct spa_pod *pod)
 
static int spa_pod_get_double (const struct spa_pod *pod, double *value)
 
static int spa_pod_is_string (const struct spa_pod *pod)
 
static int spa_pod_get_string (const struct spa_pod *pod, const char **value)
 
static int spa_pod_copy_string (const struct spa_pod *pod, size_t maxlen, char *dest)
 
static int spa_pod_is_bytes (const struct spa_pod *pod)
 
static int spa_pod_get_bytes (const struct spa_pod *pod, const void **value, uint32_t *len)
 
static int spa_pod_is_pointer (const struct spa_pod *pod)
 
static int spa_pod_get_pointer (const struct spa_pod *pod, uint32_t *type, const void **value)
 
static int spa_pod_is_fd (const struct spa_pod *pod)
 
static int spa_pod_get_fd (const struct spa_pod *pod, int64_t *value)
 
static int spa_pod_is_rectangle (const struct spa_pod *pod)
 
static int spa_pod_get_rectangle (const struct spa_pod *pod, struct spa_rectangle *value)
 
static int spa_pod_is_fraction (const struct spa_pod *pod)
 
static int spa_pod_get_fraction (const struct spa_pod *pod, struct spa_fraction *value)
 
static int spa_pod_is_bitmap (const struct spa_pod *pod)
 
static int spa_pod_is_array (const struct spa_pod *pod)
 
static void * spa_pod_get_array (const struct spa_pod *pod, uint32_t *n_values)
 
static uint32_t spa_pod_copy_array (const struct spa_pod *pod, uint32_t type, void *values, uint32_t max_values)
 
static int spa_pod_is_choice (const struct spa_pod *pod)
 
static struct spa_podspa_pod_get_values (const struct spa_pod *pod, uint32_t *n_vals, uint32_t *choice)
 
static int spa_pod_is_struct (const struct spa_pod *pod)
 
static int spa_pod_is_object (const struct spa_pod *pod)
 
static bool spa_pod_is_object_type (const struct spa_pod *pod, uint32_t type)
 
static bool spa_pod_is_object_id (const struct spa_pod *pod, uint32_t id)
 
static int spa_pod_is_sequence (const struct spa_pod *pod)
 
static const struct spa_pod_propspa_pod_object_find_prop (const struct spa_pod_object *pod, const struct spa_pod_prop *start, uint32_t key)
 
static const struct spa_pod_propspa_pod_find_prop (const struct spa_pod *pod, const struct spa_pod_prop *start, uint32_t key)
 
static int spa_pod_object_fixate (struct spa_pod_object *pod)
 
static int spa_pod_fixate (struct spa_pod *pod)
 
static int spa_pod_object_is_fixated (const struct spa_pod_object *pod)
 
static int spa_pod_object_has_props (const struct spa_pod_object *pod)
 
static int spa_pod_is_fixated (const struct spa_pod *pod)
 
static void spa_pod_parser_init (struct spa_pod_parser *parser, const void *data, uint32_t size)
 
static void spa_pod_parser_pod (struct spa_pod_parser *parser, const struct spa_pod *pod)
 
static void spa_pod_parser_get_state (struct spa_pod_parser *parser, struct spa_pod_parser_state *state)
 
static void spa_pod_parser_reset (struct spa_pod_parser *parser, struct spa_pod_parser_state *state)
 
static struct spa_podspa_pod_parser_deref (struct spa_pod_parser *parser, uint32_t offset, uint32_t size)
 
static struct spa_podspa_pod_parser_frame (struct spa_pod_parser *parser, struct spa_pod_frame *frame)
 
static void spa_pod_parser_push (struct spa_pod_parser *parser, struct spa_pod_frame *frame, const struct spa_pod *pod, uint32_t offset)
 
static struct spa_podspa_pod_parser_current (struct spa_pod_parser *parser)
 
static void spa_pod_parser_advance (struct spa_pod_parser *parser, const struct spa_pod *pod)
 
static struct spa_podspa_pod_parser_next (struct spa_pod_parser *parser)
 
static int spa_pod_parser_pop (struct spa_pod_parser *parser, struct spa_pod_frame *frame)
 
static int spa_pod_parser_get_bool (struct spa_pod_parser *parser, bool *value)
 
static int spa_pod_parser_get_id (struct spa_pod_parser *parser, uint32_t *value)
 
static int spa_pod_parser_get_int (struct spa_pod_parser *parser, int32_t *value)
 
static int spa_pod_parser_get_long (struct spa_pod_parser *parser, int64_t *value)
 
static int spa_pod_parser_get_float (struct spa_pod_parser *parser, float *value)
 
static int spa_pod_parser_get_double (struct spa_pod_parser *parser, double *value)
 
static int spa_pod_parser_get_string (struct spa_pod_parser *parser, const char **value)
 
static int spa_pod_parser_get_bytes (struct spa_pod_parser *parser, const void **value, uint32_t *len)
 
static int spa_pod_parser_get_pointer (struct spa_pod_parser *parser, uint32_t *type, const void **value)
 
static int spa_pod_parser_get_fd (struct spa_pod_parser *parser, int64_t *value)
 
static int spa_pod_parser_get_rectangle (struct spa_pod_parser *parser, struct spa_rectangle *value)
 
static int spa_pod_parser_get_fraction (struct spa_pod_parser *parser, struct spa_fraction *value)
 
static int spa_pod_parser_get_pod (struct spa_pod_parser *parser, struct spa_pod **value)
 
static int spa_pod_parser_push_struct (struct spa_pod_parser *parser, struct spa_pod_frame *frame)
 
static int spa_pod_parser_push_object (struct spa_pod_parser *parser, struct spa_pod_frame *frame, uint32_t type, uint32_t *id)
 
static bool spa_pod_parser_can_collect (const struct spa_pod *pod, char type)
 
static int spa_pod_parser_getv (struct spa_pod_parser *parser, va_list args)
 
static int spa_pod_parser_get (struct spa_pod_parser *parser,...)
 

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: default, possible flags,...

Macro Definition Documentation

◆ 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 )
Value:
((struct spa_pod) { (size), (type) })
Definition pod.h:43
uint32_t type
Definition pod.h:45
uint32_t size
Definition pod.h:44

◆ SPA_POD_INIT_None

#define SPA_POD_INIT_None ( )
Value:
#define SPA_POD_INIT(size, type)
Definition builder.h:208
@ SPA_TYPE_None
Definition type.h:31

◆ SPA_POD_INIT_Bool

#define SPA_POD_INIT_Bool ( val)
Value:
((struct spa_pod_bool){ { sizeof(uint32_t), SPA_TYPE_Bool }, (val) ? 1 : 0, 0 })
@ SPA_TYPE_Bool
Definition type.h:32
Definition pod.h:51

◆ SPA_POD_INIT_Id

#define SPA_POD_INIT_Id ( val)
Value:
((struct spa_pod_id){ { sizeof(uint32_t), SPA_TYPE_Id }, (val), 0 })
@ SPA_TYPE_Id
Definition type.h:33
Definition pod.h:57

◆ SPA_POD_INIT_Int

#define SPA_POD_INIT_Int ( val)
Value:
((struct spa_pod_int){ { sizeof(int32_t), SPA_TYPE_Int }, (val), 0 })
@ SPA_TYPE_Int
Definition type.h:34
Definition pod.h:63

◆ SPA_POD_INIT_Long

#define SPA_POD_INIT_Long ( val)
Value:
((struct spa_pod_long){ { sizeof(int64_t), SPA_TYPE_Long }, (val) })
@ SPA_TYPE_Long
Definition type.h:35
Definition pod.h:69

◆ SPA_POD_INIT_Float

#define SPA_POD_INIT_Float ( val)
Value:
((struct spa_pod_float){ { sizeof(float), SPA_TYPE_Float }, (val), 0 })
@ SPA_TYPE_Float
Definition type.h:36
Definition pod.h:74

◆ SPA_POD_INIT_Double

#define SPA_POD_INIT_Double ( val)
Value:
((struct spa_pod_double){ { sizeof(double), SPA_TYPE_Double }, (val) })
@ SPA_TYPE_Double
Definition type.h:37
Definition pod.h:80

◆ SPA_POD_INIT_String

#define SPA_POD_INIT_String ( len)
Value:
((struct spa_pod_string){ { (len), SPA_TYPE_String } })
@ SPA_TYPE_String
Definition type.h:38
Definition pod.h:85

◆ SPA_POD_INIT_Bytes

#define SPA_POD_INIT_Bytes ( len)
Value:
((struct spa_pod_bytes){ { (len), SPA_TYPE_Bytes } })
@ SPA_TYPE_Bytes
Definition type.h:39
Definition pod.h:90

◆ SPA_POD_INIT_Pointer

#define SPA_POD_INIT_Pointer ( type,
value )
Value:
((struct spa_pod_pointer){ { sizeof(struct spa_pod_pointer_body), SPA_TYPE_Pointer }, { (type), 0, (value) } })
@ SPA_TYPE_Pointer
Definition type.h:47
Definition pod.h:188
Definition pod.h:194

◆ SPA_POD_INIT_Fd

#define SPA_POD_INIT_Fd ( fd)
Value:
((struct spa_pod_fd){ { sizeof(int64_t), SPA_TYPE_Fd }, (fd) })
@ SPA_TYPE_Fd
Definition type.h:48
Definition pod.h:199

◆ SPA_POD_INIT_Rectangle

#define SPA_POD_INIT_Rectangle ( val)
Value:
((struct spa_pod_rectangle){ { sizeof(struct spa_rectangle), SPA_TYPE_Rectangle }, (val) })
@ SPA_TYPE_Rectangle
Definition type.h:40
Definition pod.h:95
Definition defs.h:116

◆ SPA_POD_INIT_Fraction

#define SPA_POD_INIT_Fraction ( val)
Value:
((struct spa_pod_fraction){ { sizeof(struct spa_fraction), SPA_TYPE_Fraction }, (val) })
@ SPA_TYPE_Fraction
Definition type.h:41
Definition defs.h:137
Definition pod.h:100

◆ SPA_POD_INIT_CHOICE_BODY

#define SPA_POD_INIT_CHOICE_BODY ( type,
flags,
child_size,
child_type )
Value:
((struct spa_pod_choice_body) { (type), (flags), { (child_size), (child_type) }})
Definition pod.h:154
uint32_t type
type of choice, one of enum spa_choice_type
Definition pod.h:155
uint32_t flags
extra flags
Definition pod.h:156

◆ 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)
Value:
((struct spa_pod_struct){ { (size), SPA_TYPE_Struct } })
@ SPA_TYPE_Struct
Definition type.h:44
Definition pod.h:167

◆ SPA_POD_INIT_Object

#define SPA_POD_INIT_Object ( size,
type,
id,
... )
Value:
((struct spa_pod_object){ { (size), SPA_TYPE_Object }, { (type), (id) }, ##__VA_ARGS__ })
@ SPA_TYPE_Object
Definition type.h:45
Definition pod.h:183

◆ SPA_POD_INIT_Prop

#define SPA_POD_INIT_Prop ( key,
flags,
size,
type )
Value:
((struct spa_pod_prop){ (key), (flags), { (size), (type) } })
Definition pod.h:208
uint32_t key
key of property, list of valid keys depends on the object type
Definition pod.h:209
uint32_t flags
flags for property
Definition pod.h:225

◆ SPA_POD_INIT_Sequence

#define SPA_POD_INIT_Sequence ( size,
unit )
Value:
((struct spa_pod_sequence){ { (size), SPA_TYPE_Sequence}, {(unit), 0 } })
@ SPA_TYPE_Sequence
Definition type.h:46
a sequence of timed controls
Definition pod.h:248

◆ 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)
Value:
((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)
Value:
((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 )
Value:
#define SPA_POD_BODY_SIZE(pod)
Definition pod.h:26
#define SPA_POD_ARRAY_BODY_FOREACH(body, _size, iter)
Definition iter.h:85

◆ 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 )
Value:
#define SPA_POD_CHOICE_BODY_FOREACH(body, _size, iter)
Definition iter.h:93

◆ SPA_POD_FOREACH

#define SPA_POD_FOREACH ( pod,
size,
iter )

◆ SPA_POD_STRUCT_FOREACH

#define SPA_POD_STRUCT_FOREACH ( obj,
iter )
Value:
#define SPA_POD_BODY(pod)
Definition pod.h:39
#define SPA_POD_FOREACH(pod, size, iter)
Definition iter.h:101

◆ 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 )
Value:
#define SPA_POD_OBJECT_BODY_FOREACH(body, size, iter)
Definition iter.h:109

◆ 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 )
Value:
#define SPA_POD_SEQUENCE_BODY_FOREACH(body, size, iter)
Definition iter.h:117

◆ SPA_POD_PARSER_INIT

#define SPA_POD_PARSER_INIT ( buffer,
size )
Value:
((struct spa_pod_parser){ (buffer), (size), 0, {0} })
Definition parser.h:34
uint32_t size
Definition parser.h:36

◆ SPA_POD_PARSER_COLLECT

#define SPA_POD_PARSER_COLLECT ( pod,
_type,
args )

◆ SPA_POD_PARSER_SKIP

#define SPA_POD_PARSER_SKIP ( _type,
args )

◆ SPA_POD_OPT_Bool

#define SPA_POD_OPT_Bool ( val)
Value:
"?" SPA_POD_Bool(val)
#define SPA_POD_Bool(val)
Definition vararg.h:44

◆ SPA_POD_OPT_Id

#define SPA_POD_OPT_Id ( val)
Value:
"?" SPA_POD_Id(val)
#define SPA_POD_Id(val)
Definition vararg.h:49

◆ SPA_POD_OPT_Int

#define SPA_POD_OPT_Int ( val)
Value:
"?" SPA_POD_Int(val)
#define SPA_POD_Int(val)
Definition vararg.h:54

◆ SPA_POD_OPT_Long

#define SPA_POD_OPT_Long ( val)
Value:
"?" SPA_POD_Long(val)
#define SPA_POD_Long(val)
Definition vararg.h:65

◆ SPA_POD_OPT_Float

#define SPA_POD_OPT_Float ( val)
Value:
"?" SPA_POD_Float(val)
#define SPA_POD_Float(val)
Definition vararg.h:76

◆ SPA_POD_OPT_Double

#define SPA_POD_OPT_Double ( val)
Value:
#define SPA_POD_Double(val)
Definition vararg.h:85

◆ SPA_POD_OPT_String

#define SPA_POD_OPT_String ( val)
Value:
#define SPA_POD_String(val)
Definition vararg.h:94

◆ SPA_POD_OPT_Stringn

#define SPA_POD_OPT_Stringn ( val,
len )
Value:
"?" SPA_POD_Stringn(val,len)
#define SPA_POD_Stringn(val, len)
Definition vararg.h:96

◆ SPA_POD_OPT_Bytes

#define SPA_POD_OPT_Bytes ( val,
len )
Value:
"?" SPA_POD_Bytes(val,len)
#define SPA_POD_Bytes(val, len)
Definition vararg.h:99

◆ SPA_POD_OPT_Rectangle

#define SPA_POD_OPT_Rectangle ( val)
Value:
#define SPA_POD_Rectangle(val)
Definition vararg.h:102

◆ SPA_POD_OPT_Fraction

#define SPA_POD_OPT_Fraction ( val)
Value:
#define SPA_POD_Fraction(val)
Definition vararg.h:111

◆ SPA_POD_OPT_Array

#define SPA_POD_OPT_Array ( csize,
ctype,
n_vals,
vals )
Value:
"?" SPA_POD_Array(csize,ctype,n_vals,vals)
#define SPA_POD_Array(csize, ctype, n_vals, vals)
Definition vararg.h:120

◆ SPA_POD_OPT_Pointer

#define SPA_POD_OPT_Pointer ( type,
val )
Value:
"?" SPA_POD_Pointer(type,val)
#define SPA_POD_Pointer(type, val)
Definition vararg.h:122

◆ SPA_POD_OPT_Fd

#define SPA_POD_OPT_Fd ( val)
Value:
"?" SPA_POD_Fd(val)
#define SPA_POD_Fd(val)
Definition vararg.h:124

◆ SPA_POD_OPT_Pod

#define SPA_POD_OPT_Pod ( val)
Value:
"?" SPA_POD_Pod(val)
#define SPA_POD_Pod(val)
Definition vararg.h:128

◆ SPA_POD_OPT_PodObject

#define SPA_POD_OPT_PodObject ( val)
Value:
#define SPA_POD_PodObject(val)
Definition vararg.h:130

◆ SPA_POD_OPT_PodStruct

#define SPA_POD_OPT_PodStruct ( val)
Value:
#define SPA_POD_PodStruct(val)
Definition vararg.h:132

◆ SPA_POD_OPT_PodChoice

#define SPA_POD_OPT_PodChoice ( val)
Value:
#define SPA_POD_PodChoice(val)
Definition vararg.h:134

◆ 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_parse_object

#define spa_pod_parse_object ( pod,
type,
id,
... )

◆ spa_pod_parse_struct

#define spa_pod_parse_struct ( pod,
... )

◆ SPA_POD_BODY_SIZE

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

◆ SPA_POD_TYPE

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

◆ SPA_POD_SIZE

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

◆ SPA_POD_CONTENTS_SIZE

#define SPA_POD_CONTENTS_SIZE ( type,
pod )
Value:
(SPA_POD_SIZE(pod)-sizeof(type))
#define SPA_POD_SIZE(pod)
Definition pod.h:30

◆ SPA_POD_CONTENTS

#define SPA_POD_CONTENTS ( type,
pod )
Value:
SPA_PTROFF((pod),sizeof(type),void)
#define SPA_PTROFF(ptr_, offset_, type_)
Return the address (buffer + offset) as pointer of type.
Definition defs.h:222

◆ SPA_POD_CONTENTS_CONST

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

◆ SPA_POD_BODY

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

◆ SPA_POD_BODY_CONST

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

◆ SPA_POD_VALUE

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

◆ SPA_POD_ARRAY_CHILD

#define SPA_POD_ARRAY_CHILD ( arr)
Value:
(&((struct spa_pod_array*)(arr))->body.child)
Definition pod.h:126

◆ SPA_POD_ARRAY_VALUE_TYPE

#define SPA_POD_ARRAY_VALUE_TYPE ( arr)
Value:
#define SPA_POD_TYPE(pod)
Definition pod.h:28
#define SPA_POD_ARRAY_CHILD(arr)
Definition pod.h:111

◆ SPA_POD_ARRAY_VALUE_SIZE

#define SPA_POD_ARRAY_VALUE_SIZE ( arr)

◆ SPA_POD_ARRAY_N_VALUES

#define SPA_POD_ARRAY_N_VALUES ( arr)
Value:
#define SPA_POD_ARRAY_VALUE_SIZE(arr)
Definition pod.h:115
Definition pod.h:121

◆ SPA_POD_ARRAY_VALUES

#define SPA_POD_ARRAY_VALUES ( arr)
Value:
#define SPA_POD_CONTENTS(type, pod)
Definition pod.h:35

◆ SPA_POD_CHOICE_CHILD

#define SPA_POD_CHOICE_CHILD ( choice)
Value:
(&((struct spa_pod_choice*)(choice))->body.child)
Definition pod.h:162

◆ SPA_POD_CHOICE_TYPE

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

◆ SPA_POD_CHOICE_FLAGS

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

◆ SPA_POD_CHOICE_VALUE_TYPE

#define SPA_POD_CHOICE_VALUE_TYPE ( choice)
Value:
#define SPA_POD_CHOICE_CHILD(choice)
Definition pod.h:132

◆ SPA_POD_CHOICE_VALUE_SIZE

#define SPA_POD_CHOICE_VALUE_SIZE ( choice)

◆ SPA_POD_CHOICE_N_VALUES

#define SPA_POD_CHOICE_N_VALUES ( choice)
Value:
(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_VALUE_SIZE(choice)
Definition pod.h:140
Examples
video-src-fixate.c.

◆ SPA_POD_CHOICE_VALUES

#define SPA_POD_CHOICE_VALUES ( choice)
Value:
Examples
video-src-fixate.c.

◆ SPA_POD_OBJECT_TYPE

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

◆ SPA_POD_OBJECT_ID

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

◆ SPA_POD_PROP_SIZE

#define SPA_POD_PROP_SIZE ( prop)
Value:
(sizeof(struct spa_pod_prop) + (prop)->value.size)
struct spa_pod value
Definition pod.h:226

◆ 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

Examples
video-play-fixate.c, and video-src-fixate.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_CONTROL_SIZE

#define SPA_POD_CONTROL_SIZE ( ev)
Value:
(sizeof(struct spa_pod_control) + (ev)->value.size)
Definition pod.h:234
struct spa_pod value
control value, depends on type
Definition pod.h:237

◆ SPA_POD_Prop

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

◆ SPA_POD_Control

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

◆ SPA_CHOICE_RANGE

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

◆ SPA_CHOICE_STEP

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

◆ SPA_CHOICE_ENUM

#define SPA_CHOICE_ENUM ( n_vals,
... )
Value:
(n_vals),##__VA_ARGS__

◆ SPA_CHOICE_FLAGS

#define SPA_CHOICE_FLAGS ( flags)
Value:
1, (flags)

◆ SPA_CHOICE_BOOL

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

◆ SPA_POD_Bool

#define SPA_POD_Bool ( val)

◆ SPA_POD_CHOICE_Bool

#define SPA_POD_CHOICE_Bool ( def)
Value:
"?eb", SPA_CHOICE_BOOL(def)
#define SPA_CHOICE_BOOL(def)
Definition vararg.h:41

◆ SPA_POD_Id

◆ SPA_POD_CHOICE_ENUM_Id

#define SPA_POD_CHOICE_ENUM_Id ( n_vals,
... )
Value:
"?eI", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)
#define SPA_CHOICE_ENUM(n_vals,...)
Definition vararg.h:37
Examples
export-source.c, and tutorial5.c.

◆ SPA_POD_Int

◆ SPA_POD_CHOICE_ENUM_Int

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

◆ SPA_POD_CHOICE_RANGE_Int

#define SPA_POD_CHOICE_RANGE_Int ( def,
min,
max )

◆ SPA_POD_CHOICE_STEP_Int

#define SPA_POD_CHOICE_STEP_Int ( def,
min,
max,
step )
Value:
"?si", SPA_CHOICE_STEP(def, min, max, step)
#define SPA_CHOICE_STEP(def, min, max, step)
Definition vararg.h:35

◆ SPA_POD_CHOICE_FLAGS_Int

#define SPA_POD_CHOICE_FLAGS_Int ( flags)
Value:
"?fi", SPA_CHOICE_FLAGS(flags)
#define SPA_CHOICE_FLAGS(flags)
Definition vararg.h:39
Examples
video-play-fixate.c, video-play-pull.c, video-play-reneg.c, video-play.c, video-src-alloc.c, video-src-fixate.c, and video-src-reneg.c.

◆ SPA_POD_Long

#define SPA_POD_Long ( val)
Value:
"l", val

◆ SPA_POD_CHOICE_ENUM_Long

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

◆ SPA_POD_CHOICE_RANGE_Long

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

◆ SPA_POD_CHOICE_STEP_Long

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

◆ SPA_POD_CHOICE_FLAGS_Long

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

◆ SPA_POD_Float

#define SPA_POD_Float ( val)

◆ SPA_POD_CHOICE_ENUM_Float

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

◆ SPA_POD_CHOICE_RANGE_Float

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

◆ SPA_POD_CHOICE_STEP_Float

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

◆ SPA_POD_Double

#define SPA_POD_Double ( val)
Value:
"d", val

◆ SPA_POD_CHOICE_ENUM_Double

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

◆ SPA_POD_CHOICE_RANGE_Double

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

◆ SPA_POD_CHOICE_STEP_Double

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

◆ SPA_POD_String

◆ SPA_POD_Stringn

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

◆ SPA_POD_Bytes

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

◆ SPA_POD_Rectangle

#define SPA_POD_Rectangle ( val)
Value:
"R",val
Examples
video-play-reneg.c, and video-src-reneg.c.

◆ SPA_POD_CHOICE_ENUM_Rectangle

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

◆ SPA_POD_CHOICE_RANGE_Rectangle

#define SPA_POD_CHOICE_RANGE_Rectangle ( def,
min,
max )

◆ SPA_POD_CHOICE_STEP_Rectangle

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

◆ SPA_POD_Fraction

#define SPA_POD_Fraction ( val)

◆ SPA_POD_CHOICE_ENUM_Fraction

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

◆ SPA_POD_CHOICE_RANGE_Fraction

#define SPA_POD_CHOICE_RANGE_Fraction ( def,
min,
max )
Value:
"?rF", SPA_CHOICE_RANGE((def),(min),(max))
Examples
tutorial5.c, and video-play-fixate.c.

◆ SPA_POD_CHOICE_STEP_Fraction

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

◆ SPA_POD_Array

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

◆ SPA_POD_Pointer

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

◆ SPA_POD_Fd

#define SPA_POD_Fd ( val)
Value:
"h", val

◆ SPA_POD_None

#define SPA_POD_None ( )
Value:
"P", NULL

◆ SPA_POD_Pod

#define SPA_POD_Pod ( val)
Value:
"P", val
Examples
spa/examples/adapter-control.c.

◆ SPA_POD_PodObject

#define SPA_POD_PodObject ( val)
Value:
"O", val

◆ SPA_POD_PodStruct

#define SPA_POD_PodStruct ( val)
Value:
"T", val

◆ SPA_POD_PodChoice

#define SPA_POD_PodChoice ( val)
Value:
"V", val

Function Documentation

◆ spa_pod_builder_get_state()

static void spa_pod_builder_get_state ( struct spa_pod_builder * builder,
struct spa_pod_builder_state * state )
inlinestatic

◆ spa_pod_builder_set_callbacks()

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

◆ spa_pod_builder_reset()

static void spa_pod_builder_reset ( struct spa_pod_builder * builder,
struct spa_pod_builder_state * state )
inlinestatic

◆ spa_pod_builder_init()

static void spa_pod_builder_init ( struct spa_pod_builder * builder,
void * data,
uint32_t size )
inlinestatic

◆ spa_pod_builder_deref()

static struct spa_pod * spa_pod_builder_deref ( struct spa_pod_builder * builder,
uint32_t offset )
inlinestatic

◆ spa_pod_builder_frame()

static struct spa_pod * spa_pod_builder_frame ( struct spa_pod_builder * builder,
struct spa_pod_frame * frame )
inlinestatic

◆ spa_pod_builder_push()

static void spa_pod_builder_push ( struct spa_pod_builder * builder,
struct spa_pod_frame * frame,
const struct spa_pod * pod,
uint32_t offset )
inlinestatic

◆ spa_pod_builder_raw()

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

◆ spa_pod_builder_pad()

static int spa_pod_builder_pad ( struct spa_pod_builder * builder,
uint32_t size )
inlinestatic

◆ spa_pod_builder_raw_padded()

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

◆ spa_pod_builder_pop()

static void * spa_pod_builder_pop ( struct spa_pod_builder * builder,
struct spa_pod_frame * frame )
inlinestatic

◆ spa_pod_builder_primitive()

static int spa_pod_builder_primitive ( struct spa_pod_builder * builder,
const struct spa_pod * p )
inlinestatic

◆ spa_pod_builder_none()

static int spa_pod_builder_none ( struct spa_pod_builder * builder)
inlinestatic

◆ spa_pod_builder_child()

static int spa_pod_builder_child ( struct spa_pod_builder * builder,
uint32_t size,
uint32_t type )
inlinestatic

◆ spa_pod_builder_bool()

static int spa_pod_builder_bool ( struct spa_pod_builder * builder,
bool val )
inlinestatic

◆ spa_pod_builder_id()

static int spa_pod_builder_id ( struct spa_pod_builder * builder,
uint32_t val )
inlinestatic

◆ spa_pod_builder_int()

static int spa_pod_builder_int ( struct spa_pod_builder * builder,
int32_t val )
inlinestatic

◆ spa_pod_builder_long()

static int spa_pod_builder_long ( struct spa_pod_builder * builder,
int64_t val )
inlinestatic

◆ spa_pod_builder_float()

static int spa_pod_builder_float ( struct spa_pod_builder * builder,
float val )
inlinestatic

◆ spa_pod_builder_double()

static int spa_pod_builder_double ( struct spa_pod_builder * builder,
double val )
inlinestatic

◆ spa_pod_builder_write_string()

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

◆ spa_pod_builder_string_len()

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

◆ spa_pod_builder_string()

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

◆ spa_pod_builder_bytes()

static int spa_pod_builder_bytes ( struct spa_pod_builder * builder,
const void * bytes,
uint32_t len )
inlinestatic
Examples
midi-src.c.

◆ spa_pod_builder_reserve_bytes()

static void * spa_pod_builder_reserve_bytes ( struct spa_pod_builder * builder,
uint32_t len )
inlinestatic

◆ spa_pod_builder_pointer()

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

◆ spa_pod_builder_fd()

static int spa_pod_builder_fd ( struct spa_pod_builder * builder,
int64_t fd )
inlinestatic

◆ spa_pod_builder_rectangle()

static int spa_pod_builder_rectangle ( struct spa_pod_builder * builder,
uint32_t width,
uint32_t height )
inlinestatic

◆ spa_pod_builder_fraction()

static int spa_pod_builder_fraction ( struct spa_pod_builder * builder,
uint32_t num,
uint32_t denom )
inlinestatic

◆ spa_pod_builder_push_array()

static int spa_pod_builder_push_array ( struct spa_pod_builder * builder,
struct spa_pod_frame * frame )
inlinestatic

◆ spa_pod_builder_array()

static 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 )
inlinestatic

◆ spa_pod_builder_push_choice()

static int spa_pod_builder_push_choice ( struct spa_pod_builder * builder,
struct spa_pod_frame * frame,
uint32_t type,
uint32_t flags )
inlinestatic

◆ spa_pod_builder_push_struct()

static int spa_pod_builder_push_struct ( struct spa_pod_builder * builder,
struct spa_pod_frame * frame )
inlinestatic

◆ spa_pod_builder_push_object()

static int spa_pod_builder_push_object ( struct spa_pod_builder * builder,
struct spa_pod_frame * frame,
uint32_t type,
uint32_t id )
inlinestatic

◆ spa_pod_builder_prop()

static int spa_pod_builder_prop ( struct spa_pod_builder * builder,
uint32_t key,
uint32_t flags )
inlinestatic

◆ spa_pod_builder_push_sequence()

static int spa_pod_builder_push_sequence ( struct spa_pod_builder * builder,
struct spa_pod_frame * frame,
uint32_t unit )
inlinestatic

◆ spa_pod_builder_control()

static int spa_pod_builder_control ( struct spa_pod_builder * builder,
uint32_t offset,
uint32_t type )
inlinestatic

◆ spa_choice_from_id()

static uint32_t spa_choice_from_id ( char id)
inlinestatic

◆ spa_pod_builder_addv()

static int spa_pod_builder_addv ( struct spa_pod_builder * builder,
va_list args )
inlinestatic

◆ spa_pod_builder_add()

static int spa_pod_builder_add ( struct spa_pod_builder * builder,
... )
inlinestatic

◆ spa_pod_copy()

static struct spa_pod * spa_pod_copy ( const struct spa_pod * pod)
inlinestatic

Copy a pod structure.

◆ spa_pod_compare_value()

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

◆ spa_pod_compare()

static int spa_pod_compare ( const struct spa_pod * pod1,
const struct spa_pod * pod2 )
inlinestatic

◆ spa_pod_choice_fix_default()

static int spa_pod_choice_fix_default ( struct spa_pod_choice * choice)
inlinestatic

◆ spa_pod_filter_flags_value()

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

◆ spa_pod_filter_is_step_of()

static int spa_pod_filter_is_step_of ( uint32_t type,
const void * r1,
const void * r2,
uint32_t size 1 )
inlinestatic

◆ spa_pod_filter_prop()

static int spa_pod_filter_prop ( struct spa_pod_builder * b,
const struct spa_pod_prop * p1,
const struct spa_pod_prop * p2 )
inlinestatic

◆ spa_pod_filter_part()

static 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 )
inlinestatic

◆ spa_pod_filter()

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

◆ spa_pod_is_inside()

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

◆ spa_pod_next()

static void * spa_pod_next ( const void * iter)
inlinestatic

◆ spa_pod_prop_first()

static struct spa_pod_prop * spa_pod_prop_first ( const struct spa_pod_object_body * body)
inlinestatic

◆ spa_pod_prop_is_inside()

static bool spa_pod_prop_is_inside ( const struct spa_pod_object_body * body,
uint32_t size,
const struct spa_pod_prop * iter )
inlinestatic

◆ spa_pod_prop_next()

static struct spa_pod_prop * spa_pod_prop_next ( const struct spa_pod_prop * iter)
inlinestatic

◆ spa_pod_control_first()

static struct spa_pod_control * spa_pod_control_first ( const struct spa_pod_sequence_body * body)
inlinestatic

◆ spa_pod_control_is_inside()

static bool spa_pod_control_is_inside ( const struct spa_pod_sequence_body * body,
uint32_t size,
const struct spa_pod_control * iter )
inlinestatic

◆ spa_pod_control_next()

static struct spa_pod_control * spa_pod_control_next ( const struct spa_pod_control * iter)
inlinestatic

◆ spa_pod_from_data()

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

◆ spa_pod_is_none()

static int spa_pod_is_none ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_is_bool()

static int spa_pod_is_bool ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_bool()

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

◆ spa_pod_is_id()

static int spa_pod_is_id ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_id()

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

◆ spa_pod_is_int()

static int spa_pod_is_int ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_int()

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

◆ spa_pod_is_long()

static int spa_pod_is_long ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_long()

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

◆ spa_pod_is_float()

static int spa_pod_is_float ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_float()

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

◆ spa_pod_is_double()

static int spa_pod_is_double ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_double()

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

◆ spa_pod_is_string()

static int spa_pod_is_string ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_string()

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

◆ spa_pod_copy_string()

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

◆ spa_pod_is_bytes()

static int spa_pod_is_bytes ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_bytes()

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

◆ spa_pod_is_pointer()

static int spa_pod_is_pointer ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_pointer()

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

◆ spa_pod_is_fd()

static int spa_pod_is_fd ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_fd()

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

◆ spa_pod_is_rectangle()

static int spa_pod_is_rectangle ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_rectangle()

static int spa_pod_get_rectangle ( const struct spa_pod * pod,
struct spa_rectangle * value )
inlinestatic

◆ spa_pod_is_fraction()

static int spa_pod_is_fraction ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_fraction()

static int spa_pod_get_fraction ( const struct spa_pod * pod,
struct spa_fraction * value )
inlinestatic

◆ spa_pod_is_bitmap()

static int spa_pod_is_bitmap ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_is_array()

static int spa_pod_is_array ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_array()

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

◆ spa_pod_copy_array()

static uint32_t spa_pod_copy_array ( const struct spa_pod * pod,
uint32_t type,
void * values,
uint32_t max_values )
inlinestatic

◆ spa_pod_is_choice()

static int spa_pod_is_choice ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_get_values()

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

◆ spa_pod_is_struct()

static int spa_pod_is_struct ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_is_object()

static int spa_pod_is_object ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_is_object_type()

static bool spa_pod_is_object_type ( const struct spa_pod * pod,
uint32_t type )
inlinestatic

◆ spa_pod_is_object_id()

static bool spa_pod_is_object_id ( const struct spa_pod * pod,
uint32_t id )
inlinestatic

◆ spa_pod_is_sequence()

static int spa_pod_is_sequence ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_object_find_prop()

static 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 )
inlinestatic

◆ spa_pod_find_prop()

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

◆ spa_pod_object_fixate()

static int spa_pod_object_fixate ( struct spa_pod_object * pod)
inlinestatic

◆ spa_pod_fixate()

static int spa_pod_fixate ( struct spa_pod * pod)
inlinestatic

◆ spa_pod_object_is_fixated()

static int spa_pod_object_is_fixated ( const struct spa_pod_object * pod)
inlinestatic

◆ spa_pod_object_has_props()

static int spa_pod_object_has_props ( const struct spa_pod_object * pod)
inlinestatic

◆ spa_pod_is_fixated()

static int spa_pod_is_fixated ( const struct spa_pod * pod)
inlinestatic

◆ spa_pod_parser_init()

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

◆ spa_pod_parser_pod()

static void spa_pod_parser_pod ( struct spa_pod_parser * parser,
const struct spa_pod * pod )
inlinestatic

◆ spa_pod_parser_get_state()

static void spa_pod_parser_get_state ( struct spa_pod_parser * parser,
struct spa_pod_parser_state * state )
inlinestatic

◆ spa_pod_parser_reset()

static void spa_pod_parser_reset ( struct spa_pod_parser * parser,
struct spa_pod_parser_state * state )
inlinestatic

◆ spa_pod_parser_deref()

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

◆ spa_pod_parser_frame()

static struct spa_pod * spa_pod_parser_frame ( struct spa_pod_parser * parser,
struct spa_pod_frame * frame )
inlinestatic

◆ spa_pod_parser_push()

static void spa_pod_parser_push ( struct spa_pod_parser * parser,
struct spa_pod_frame * frame,
const struct spa_pod * pod,
uint32_t offset )
inlinestatic

◆ spa_pod_parser_current()

static struct spa_pod * spa_pod_parser_current ( struct spa_pod_parser * parser)
inlinestatic

◆ spa_pod_parser_advance()

static void spa_pod_parser_advance ( struct spa_pod_parser * parser,
const struct spa_pod * pod )
inlinestatic

◆ spa_pod_parser_next()

static struct spa_pod * spa_pod_parser_next ( struct spa_pod_parser * parser)
inlinestatic

◆ spa_pod_parser_pop()

static int spa_pod_parser_pop ( struct spa_pod_parser * parser,
struct spa_pod_frame * frame )
inlinestatic

◆ spa_pod_parser_get_bool()

static int spa_pod_parser_get_bool ( struct spa_pod_parser * parser,
bool * value )
inlinestatic

◆ spa_pod_parser_get_id()

static int spa_pod_parser_get_id ( struct spa_pod_parser * parser,
uint32_t * value )
inlinestatic

◆ spa_pod_parser_get_int()

static int spa_pod_parser_get_int ( struct spa_pod_parser * parser,
int32_t * value )
inlinestatic

◆ spa_pod_parser_get_long()

static int spa_pod_parser_get_long ( struct spa_pod_parser * parser,
int64_t * value )
inlinestatic

◆ spa_pod_parser_get_float()

static int spa_pod_parser_get_float ( struct spa_pod_parser * parser,
float * value )
inlinestatic

◆ spa_pod_parser_get_double()

static int spa_pod_parser_get_double ( struct spa_pod_parser * parser,
double * value )
inlinestatic

◆ spa_pod_parser_get_string()

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

◆ spa_pod_parser_get_bytes()

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

◆ spa_pod_parser_get_pointer()

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

◆ spa_pod_parser_get_fd()

static int spa_pod_parser_get_fd ( struct spa_pod_parser * parser,
int64_t * value )
inlinestatic

◆ spa_pod_parser_get_rectangle()

static int spa_pod_parser_get_rectangle ( struct spa_pod_parser * parser,
struct spa_rectangle * value )
inlinestatic

◆ spa_pod_parser_get_fraction()

static int spa_pod_parser_get_fraction ( struct spa_pod_parser * parser,
struct spa_fraction * value )
inlinestatic

◆ spa_pod_parser_get_pod()

static int spa_pod_parser_get_pod ( struct spa_pod_parser * parser,
struct spa_pod ** value )
inlinestatic

◆ spa_pod_parser_push_struct()

static int spa_pod_parser_push_struct ( struct spa_pod_parser * parser,
struct spa_pod_frame * frame )
inlinestatic

◆ spa_pod_parser_push_object()

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

◆ spa_pod_parser_can_collect()

static bool spa_pod_parser_can_collect ( const struct spa_pod * pod,
char type )
inlinestatic

◆ spa_pod_parser_getv()

static int spa_pod_parser_getv ( struct spa_pod_parser * parser,
va_list args )
inlinestatic

◆ spa_pod_parser_get()

static int spa_pod_parser_get ( struct spa_pod_parser * parser,
... )
inlinestatic