Loading...
Searching...
No Matches
POD
SPA

## 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)
#define | SPA_POD_BODY_LOAD_FIELD_ONCE(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)
#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_copy_array(pod, type, values, max_values)
#define | SPA_POD_PARSER_INIT(buffer, size)
#define | SPA_POD_PARSER_COLLECT_BODY(_pod, _body, _type, args)
#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_OPT_PodBody(val, body)
#define | SPA_POD_OPT_PodBodyObject(val, body)
#define | SPA_POD_OPT_PodBodyStruct(val, body)
#define | SPA_POD_OPT_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, ...)
#define | spa_pod_body_parse_struct(pod, body, ...)
#define | spa_pod_parse_struct(pod, ...)
#define | SPA_POD_ALIGN 8
#define | SPA_POD_MAX_SIZE (1u<<20)
#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_IS_VALID(pod)
#define | SPA_POD_CHECK_TYPE(pod, _type)
#define | SPA_POD_CHECK(pod, _type, _size)
#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_STRUCT_BODY(pod)
#define | SPA_POD_STRUCT_BODY_CONST(pod)
#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, 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)
#define | SPA_POD_Prop(key, ...)
#define | SPA_POD_Propf(key, flags, ...)
#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, def, alt1, ...)
#define | SPA_CHOICE_FLAGS(flags)
#define | SPA_CHOICE_FEATURES(features)
#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_CHOICE_FEATURES_Int(features)
#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_CHOICE_FEATURES_LONG(features)
#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)
#define | SPA_POD_PodBody(val, body)
#define | SPA_POD_PodBodyObject(val, body)
#define | SPA_POD_PodBodyStruct(val, body)
#define | SPA_POD_PodBodyChoice(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_pod * | spa_pod_builder_deref_fallback (struct spa_pod_builder *builder, uint32_t offset, struct spa_pod *fallback)
SPA_API_POD_BUILDER struct spa_pod * | spa_pod_builder_deref (struct spa_pod_builder *builder, uint32_t offset)
SPA_API_POD_BUILDER struct spa_pod * | spa_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_pod * | spa_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_prop * | spa_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_prop * | spa_pod_prop_next (const struct spa_pod_prop *iter)
SPA_API_POD_ITER struct spa_pod_control * | spa_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_control * | spa_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_pod * | spa_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_prop * | spa_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_prop * | spa_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_pod * | spa_pod_parser_deref (struct spa_pod_parser *parser, uint32_t offset, uint32_t size)
SPA_API_POD_PARSER struct spa_pod * | spa_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_pod * | spa_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_pod * | spa_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

See: SPA POD

Binary data serialization format.

## Enumeration Type Documentation

## spa_choice_type

enum 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,
|  |  | b )

Value:
(*(a) = SPA_LOAD_ONCE(*(__typeof__(a))(b)))

## SPA_POD_BODY_LOAD_FIELD_ONCE

#define SPA_POD_BODY_LOAD_FIELD_ONCE | ( |  | a,
|  |  | b,
|  |  | field )

Value:
((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

#define SPA_POD_BUILDER_INIT | ( |  | buffer,
|  |  | size )

Value:
((struct spa_pod_builder){ (buffer), (size), 0, {0,0,NULL},{NULL,NULL}})
spa_pod_builder
Definition builder.h:63

Examples
  audio-capture.c, audio-dsp-filter.c, audio-src-ring.c, audio-src-ring2.c, audio-src.c, local-v4l2.c, spa/examples/local-libcamera.c, spa/examples/local-v4l2.c, spa/examples/local-videotestsrc.c, tutorial4.c, tutorial5.c, tutorial7.c, video-dsp-src.c, video-play-fixate.c, video-play-pull.c, video-play-reneg.c, video-play-sync.c, video-play.c, video-src-alloc.c, video-src-fixate.c, video-src-reneg.c, video-src-sync.c, and video-src.c.

## SPA_POD_INIT

#define SPA_POD_INIT | ( |  | size,
|  |  | type )

Value:
((struct spa_pod) { (size), (type) })
spa_pod
Definition pod.h:57

## SPA_POD_INIT_None

#define SPA_POD_INIT_None | ( |  | ) |

Value:
SPA_POD_INIT(0, SPA_TYPE_None)
SPA_POD_INIT
#define SPA_POD_INIT(size, type)
Definition builder.h:257
SPA_TYPE_None
@ SPA_TYPE_None
Definition type.h:42

## 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
@ SPA_TYPE_Bool
Definition type.h:43
spa_pod_bool
Definition pod.h:65

## 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
@ SPA_TYPE_Id
Definition type.h:44
spa_pod_id
Definition pod.h:71

## 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
@ SPA_TYPE_Int
Definition type.h:45
spa_pod_int
Definition pod.h:77

## 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
@ SPA_TYPE_Long
Definition type.h:46
spa_pod_long
Definition pod.h:83

## 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
@ SPA_TYPE_Float
Definition type.h:47
spa_pod_float
Definition pod.h:88

## SPA_POD_INIT_Double

#define SPA_POD_INIT_Double | ( |  | val | ) |

Value:
((struct spa_pod_double){ { sizeof(double), SPA_TYPE_Double }, (val) })
SPA_TYPE_Double
@ SPA_TYPE_Double
Definition type.h:48
spa_pod_double
Definition pod.h:94

## SPA_POD_INIT_String

#define SPA_POD_INIT_String | ( |  | len | ) |

Value:
((struct spa_pod_string){ { (len), SPA_TYPE_String } })
SPA_TYPE_String
@ SPA_TYPE_String
Definition type.h:49
spa_pod_string
Definition pod.h:99

## SPA_POD_INIT_Bytes

#define SPA_POD_INIT_Bytes | ( |  | len | ) |

Value:
((struct spa_pod_bytes){ { (len), SPA_TYPE_Bytes } })
SPA_TYPE_Bytes
@ SPA_TYPE_Bytes
Definition type.h:50
spa_pod_bytes
Definition pod.h:104

## 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
@ SPA_TYPE_Pointer
Definition type.h:58
spa_pod_pointer_body
Definition pod.h:207
spa_pod_pointer
Definition pod.h:213

## 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
@ SPA_TYPE_Fd
Definition type.h:59
spa_pod_fd
Definition pod.h:218

## 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
@ SPA_TYPE_Rectangle
Definition type.h:51
spa_pod_rectangle
Definition pod.h:109
spa_rectangle
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
@ SPA_TYPE_Fraction
Definition type.h:52
spa_fraction
Definition defs.h:137
spa_pod_fraction
Definition pod.h:114

## 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) }})
spa_pod_choice_body
Definition pod.h:168

## 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
@ SPA_TYPE_Struct
Definition type.h:55
spa_pod_struct
Definition pod.h:186

## 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
@ SPA_TYPE_Object
Definition type.h:56
spa_pod_object
Definition pod.h:202

## SPA_POD_INIT_Prop

#define SPA_POD_INIT_Prop | ( |  | key,
|  |  | flags,
|  |  | size,
|  |  | type )

Value:
((struct spa_pod_prop){ (key), (flags), { (size), (type) } })
spa_pod_prop
Definition pod.h:227

## 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
@ SPA_TYPE_Sequence
Definition type.h:57
spa_pod_sequence
a sequence of timed controls
Definition pod.h:271

## SPA_POD_BUILDER_COLLECT

#define SPA_POD_BUILDER_COLLECT | ( |  | builder,
|  |  | type,
|  |  | args )

## spa_pod_builder_add_object

#define spa_pod_builder_add_object | ( |  | b,
|  |  | type,
|  |  | id,
|  |  | ... )

Examples
  audio-dsp-sink2.c, export-sink.c, export-source.c, local-v4l2.c, midi-src.c, spa/examples/adapter-control.c, spa/examples/example-control.c, spa/examples/local-v4l2.c, spa/examples/local-videotestsrc.c, tutorial5.c, video-dsp-src.c, video-play-fixate.c, video-play-pull.c, video-play-reneg.c, video-play-sync.c, video-play.c, video-src-alloc.c, video-src-fixate.c, video-src-reneg.c, video-src-sync.c, and video-src.c.

## 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:
SPA_POD_ARRAY_BODY_FOREACH(&(obj)->body, SPA_POD_BODY_SIZE(obj), iter)
SPA_POD_BODY_SIZE
#define SPA_POD_BODY_SIZE(pod)
Definition pod.h:31
SPA_POD_ARRAY_BODY_FOREACH
#define SPA_POD_ARRAY_BODY_FOREACH(body, _size, iter)
Definition iter.h:89

## 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:
SPA_POD_CHOICE_BODY_FOREACH(&(obj)->body, SPA_POD_BODY_SIZE(obj), iter)
SPA_POD_CHOICE_BODY_FOREACH
#define SPA_POD_CHOICE_BODY_FOREACH(body, _size, iter)
Definition iter.h:97

## SPA_POD_FOREACH

#define SPA_POD_FOREACH | ( |  | pod,
|  |  | size,
|  |  | iter )

## SPA_POD_STRUCT_FOREACH

#define SPA_POD_STRUCT_FOREACH | ( |  | obj,
|  |  | iter )

Value:
SPA_POD_FOREACH(SPA_POD_STRUCT_BODY(obj), SPA_POD_BODY_SIZE(obj), iter)
SPA_POD_FOREACH
#define SPA_POD_FOREACH(pod, size, iter)
Definition iter.h:105
SPA_POD_STRUCT_BODY
#define SPA_POD_STRUCT_BODY(pod)
Definition pod.h:182

## 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:
SPA_POD_OBJECT_BODY_FOREACH(&(obj)->body, SPA_POD_BODY_SIZE(obj), iter)
SPA_POD_OBJECT_BODY_FOREACH
#define SPA_POD_OBJECT_BODY_FOREACH(body, size, iter)
Definition iter.h:113

## 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:
SPA_POD_SEQUENCE_BODY_FOREACH(&(seq)->body, SPA_POD_BODY_SIZE(seq), iter)
seq
uint32_t int seq
Definition core.h:432
SPA_POD_SEQUENCE_BODY_FOREACH
#define SPA_POD_SEQUENCE_BODY_FOREACH(body, size, iter)
Definition iter.h:121

## spa_pod_copy_array

#define spa_pod_copy_array | ( |  | pod,
|  |  | type,
|  |  | values,
|  |  | max_values )

Value:
spa_pod_copy_array_full(pod,type,sizeof(values[0]),values,max_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)
Definition iter.h:214

## SPA_POD_PARSER_INIT

#define SPA_POD_PARSER_INIT | ( |  | buffer,
|  |  | size )

Value:
((struct spa_pod_parser){ (buffer), (size), 0, {0,0,NULL}})
spa_pod_parser
Definition parser.h:44

## 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 )

Value:
SPA_POD_PARSER_COLLECT_BODY(pod, SPA_POD_BODY_CONST(pod),_type,args)
args
uint32_t int int const char va_list args
Definition core.h:434
SPA_POD_PARSER_COLLECT_BODY
#define SPA_POD_PARSER_COLLECT_BODY(_pod, _body, _type, args)
Definition parser.h:585
SPA_POD_BODY_CONST
#define SPA_POD_BODY_CONST(pod)
Definition pod.h:46

## 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)
SPA_POD_Bool
#define SPA_POD_Bool(val)
Definition vararg.h:48

## SPA_POD_OPT_Id

#define SPA_POD_OPT_Id | ( |  | val | ) |

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

## SPA_POD_OPT_Int

#define SPA_POD_OPT_Int | ( |  | val | ) |

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

## SPA_POD_OPT_Long

#define SPA_POD_OPT_Long | ( |  | val | ) |

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

## SPA_POD_OPT_Float

#define SPA_POD_OPT_Float | ( |  | val | ) |

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

## SPA_POD_OPT_Double

#define SPA_POD_OPT_Double | ( |  | val | ) |

Value:
"?" SPA_POD_Double(val)
SPA_POD_Double
#define SPA_POD_Double(val)
Definition vararg.h:93

## SPA_POD_OPT_String

#define SPA_POD_OPT_String | ( |  | val | ) |

Value:
"?" SPA_POD_String(val)
SPA_POD_String
#define SPA_POD_String(val)
Definition vararg.h:102

## SPA_POD_OPT_Stringn

#define SPA_POD_OPT_Stringn | ( |  | val,
|  |  | len )

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

## SPA_POD_OPT_Bytes

#define SPA_POD_OPT_Bytes | ( |  | val,
|  |  | len )

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

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

## SPA_POD_OPT_Rectangle

#define SPA_POD_OPT_Rectangle | ( |  | val | ) |

Value:
"?" SPA_POD_Rectangle(val)
SPA_POD_Rectangle
#define SPA_POD_Rectangle(val)
Definition vararg.h:110

## SPA_POD_OPT_Fraction

#define SPA_POD_OPT_Fraction | ( |  | val | ) |

Value:
"?" SPA_POD_Fraction(val)
SPA_POD_Fraction
#define SPA_POD_Fraction(val)
Definition vararg.h:119

## SPA_POD_OPT_Array

#define SPA_POD_OPT_Array | ( |  | csize,
|  |  | ctype,
|  |  | n_vals,
|  |  | vals )

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

## SPA_POD_OPT_Pointer

#define SPA_POD_OPT_Pointer | ( |  | type,
|  |  | val )

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

## SPA_POD_OPT_Fd

#define SPA_POD_OPT_Fd | ( |  | val | ) |

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

## SPA_POD_OPT_Pod

#define SPA_POD_OPT_Pod | ( |  | val | ) |

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

## SPA_POD_OPT_PodObject

#define SPA_POD_OPT_PodObject | ( |  | val | ) |

Value:
"?" SPA_POD_PodObject(val)
SPA_POD_PodObject
#define SPA_POD_PodObject(val)
Definition vararg.h:138

## SPA_POD_OPT_PodStruct

#define SPA_POD_OPT_PodStruct | ( |  | val | ) |

Value:
"?" SPA_POD_PodStruct(val)
SPA_POD_PodStruct
#define SPA_POD_PodStruct(val)
Definition vararg.h:140

## SPA_POD_OPT_PodChoice

#define SPA_POD_OPT_PodChoice | ( |  | val | ) |

Value:
"?" SPA_POD_PodChoice(val)
SPA_POD_PodChoice
#define SPA_POD_PodChoice(val)
Definition vararg.h:142

## SPA_POD_OPT_PodBody

#define SPA_POD_OPT_PodBody | ( |  | val,
|  |  | body )

Value:
"?" SPA_POD_PodBody(val,body)
SPA_POD_PodBody
#define SPA_POD_PodBody(val, body)
Definition vararg.h:145

## SPA_POD_OPT_PodBodyObject

#define SPA_POD_OPT_PodBodyObject | ( |  | val,
|  |  | body )

Value:
"?" SPA_POD_PodBodyObject(val,body)
SPA_POD_PodBodyObject
#define SPA_POD_PodBodyObject(val, body)
Definition vararg.h:147

## SPA_POD_OPT_PodBodyStruct

#define SPA_POD_OPT_PodBodyStruct | ( |  | val,
|  |  | body )

Value:
"?" SPA_POD_PodBodyStruct(val,body)
SPA_POD_PodBodyStruct
#define SPA_POD_PodBodyStruct(val, body)
Definition vararg.h:149

## SPA_POD_OPT_PodBodyChoice

#define SPA_POD_OPT_PodBodyChoice | ( |  | val,
|  |  | body )

Value:
"?" SPA_POD_PodBodyChoice(val,body)
SPA_POD_PodBodyChoice
#define SPA_POD_PodBodyChoice(val, body)
Definition vararg.h:151

## 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,
|  |  | ... )

Value:
spa_pod_body_parse_object(pod,SPA_POD_BODY_CONST(pod),type,id,##__VA_ARGS__)
spa_pod_body_parse_object
#define spa_pod_body_parse_object(pod, body, type, id,...)
Definition parser.h:928

Examples
  spa/examples/adapter-control.c, video-play-fixate.c, and video-src-fixate.c.

## spa_pod_body_parse_struct

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

## spa_pod_parse_struct

#define spa_pod_parse_struct | ( |  | pod,
|  |  | ... )

Value:
spa_pod_body_parse_struct(pod,SPA_POD_BODY_CONST(pod),##__VA_ARGS__)
spa_pod_body_parse_struct
#define spa_pod_body_parse_struct(pod, body,...)
Definition parser.h:938

## 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 | ) |

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))
SPA_POD_SIZE
#define SPA_POD_SIZE(pod)
Definition pod.h:35

## SPA_POD_CONTENTS

#define SPA_POD_CONTENTS | ( |  | type,
|  |  | pod )

Value:
SPA_PTROFF((pod),sizeof(type),void)
SPA_PTROFF
#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_IS_VALID

#define SPA_POD_IS_VALID | ( |  | pod | ) |

Value:
(SPA_POD_BODY_SIZE(pod) < SPA_POD_MAX_SIZE)
SPA_POD_MAX_SIZE
#define SPA_POD_MAX_SIZE
Definition pod.h:28

## SPA_POD_CHECK_TYPE

#define SPA_POD_CHECK_TYPE | ( |  | pod,
|  |  | _type )

## SPA_POD_CHECK

#define SPA_POD_CHECK | ( |  | pod,
|  |  | _type,
|  |  | _size )

Value:
(SPA_POD_CHECK_TYPE(pod,_type) && (pod)->size >= (_size))
SPA_POD_CHECK_TYPE
#define SPA_POD_CHECK_TYPE(pod, _type)
Definition pod.h:50

## 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)
spa_pod_array
Definition pod.h:140

## SPA_POD_ARRAY_VALUE_TYPE

#define SPA_POD_ARRAY_VALUE_TYPE | ( |  | arr | ) |

Value:
(SPA_POD_ARRAY_CHILD(arr)->type)
SPA_POD_ARRAY_CHILD
#define SPA_POD_ARRAY_CHILD(arr)
Definition pod.h:125

## SPA_POD_ARRAY_VALUE_SIZE

#define SPA_POD_ARRAY_VALUE_SIZE | ( |  | arr | ) |

Value:
(SPA_POD_ARRAY_CHILD(arr)->size)

## SPA_POD_ARRAY_N_VALUES

#define SPA_POD_ARRAY_N_VALUES | ( |  | arr | ) |

Value:
(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_VALUE_SIZE
#define SPA_POD_ARRAY_VALUE_SIZE(arr)
Definition pod.h:129
spa_pod_array_body
Definition pod.h:135

## SPA_POD_ARRAY_VALUES

#define SPA_POD_ARRAY_VALUES | ( |  | arr | ) |

Value:
SPA_POD_CONTENTS(struct spa_pod_array, arr)
SPA_POD_CONTENTS
#define SPA_POD_CONTENTS(type, pod)
Definition pod.h:40

## SPA_POD_CHOICE_CHILD

#define SPA_POD_CHOICE_CHILD | ( |  | choice | ) |

Value:
(&((struct spa_pod_choice*)(choice))->body.child)
spa_pod_choice
Definition pod.h:176

## 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:
(SPA_POD_CHOICE_CHILD(choice)->type)
SPA_POD_CHOICE_CHILD
#define SPA_POD_CHOICE_CHILD(choice)
Definition pod.h:146

## SPA_POD_CHOICE_VALUE_SIZE

#define SPA_POD_CHOICE_VALUE_SIZE | ( |  | choice | ) |

Value:
(SPA_POD_CHOICE_CHILD(choice)->size)

## 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)
SPA_POD_CHOICE_VALUE_SIZE
#define SPA_POD_CHOICE_VALUE_SIZE(choice)
Definition pod.h:154

Examples
  video-src-fixate.c.

## SPA_POD_CHOICE_VALUES

#define SPA_POD_CHOICE_VALUES | ( |  | choice | ) |

Value:
(SPA_POD_CONTENTS(struct spa_pod_choice, choice))

Examples
  video-src-fixate.c.

## SPA_POD_STRUCT_BODY

#define SPA_POD_STRUCT_BODY | ( |  | pod | ) |

Value:
SPA_PTROFF((pod),sizeof(struct spa_pod),struct spa_pod)

## SPA_POD_STRUCT_BODY_CONST

#define SPA_POD_STRUCT_BODY_CONST | ( |  | pod | ) |

Value:
SPA_PTROFF((pod),sizeof(struct spa_pod),const struct spa_pod)

## 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)

## 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 | ) |

Value:
(sizeof(struct spa_pod_control) + (ev)->value.size)
spa_pod_control
Definition pod.h:257

## SPA_POD_Prop

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

Value:
key, ##__VA_ARGS__

## SPA_POD_Propf

#define SPA_POD_Propf | ( |  | key,
|  |  | flags,
|  |  | ... )

Value:
SPA_ID_INVALID, key, flags, ##__VA_ARGS__
SPA_ID_INVALID
#define SPA_ID_INVALID
Definition defs.h:250

## 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,
|  |  | def,
|  |  | alt1,
|  |  | ... )

Value:
(n_vals),(def),(alt1),##__VA_ARGS__

## SPA_CHOICE_FLAGS

#define SPA_CHOICE_FLAGS | ( |  | flags | ) |

Value:
1, (flags)

## SPA_CHOICE_FEATURES

#define SPA_CHOICE_FEATURES | ( |  | features | ) |

Value:
1, (features)

## SPA_CHOICE_BOOL

#define SPA_CHOICE_BOOL | ( |  | def | ) |

Value:
3,(def),(def),!(def)

## SPA_POD_Bool

#define SPA_POD_Bool | ( |  | val | ) |

Value:
"b", val

Examples
  spa/examples/adapter-control.c, and spa/examples/example-control.c.

## SPA_POD_CHOICE_Bool

#define SPA_POD_CHOICE_Bool | ( |  | def | ) |

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

## SPA_POD_Id

#define SPA_POD_Id | ( |  | val | ) |

Value:
"I", val

Examples
  export-sink.c, export-source.c, spa/examples/adapter-control.c, tutorial5.c, video-dsp-src.c, video-play-fixate.c, video-play-pull.c, video-play-reneg.c, video-play-sync.c, video-play.c, video-src-alloc.c, video-src-fixate.c, video-src-reneg.c, video-src-sync.c, and video-src.c.

## SPA_POD_CHOICE_ENUM_Id

#define SPA_POD_CHOICE_ENUM_Id | ( |  | n_vals,
|  |  | ... )

Value:
"?eI", SPA_CHOICE_ENUM(n_vals, __VA_ARGS__)
SPA_CHOICE_ENUM
#define SPA_CHOICE_ENUM(n_vals, def, alt1,...)
Definition vararg.h:39

Examples
  export-source.c, and tutorial5.c.

## SPA_POD_Int

#define SPA_POD_Int | ( |  | val | ) |

Value:
"i", val

Examples
  audio-dsp-sink2.c, export-sink.c, export-source.c, midi-src.c, spa/examples/adapter-control.c, spa/examples/example-control.c, spa/examples/local-videotestsrc.c, video-dsp-src.c, video-play-fixate.c, video-play-pull.c, video-play-reneg.c, video-play-sync.c, video-play.c, video-src-alloc.c, video-src-fixate.c, video-src-reneg.c, video-src-sync.c, and video-src.c.

## 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 )

Value:
"?ri", SPA_CHOICE_RANGE(def, min, max)
SPA_CHOICE_RANGE
#define SPA_CHOICE_RANGE(def, min, max)
Definition vararg.h:35

Examples
  audio-dsp-sink2.c, export-sink.c, export-source.c, midi-src.c, video-dsp-src.c, video-play-fixate.c, video-play-pull.c, video-play-reneg.c, video-play-sync.c, video-play.c, video-src-alloc.c, video-src-fixate.c, video-src-reneg.c, video-src-sync.c, and video-src.c.

## SPA_POD_CHOICE_STEP_Int

#define SPA_POD_CHOICE_STEP_Int | ( |  | def,
|  |  | min,
|  |  | max,
|  |  | step )

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

## SPA_POD_CHOICE_FLAGS_Int

#define SPA_POD_CHOICE_FLAGS_Int | ( |  | flags | ) |

Value:
"?fi", SPA_CHOICE_FLAGS(flags)
SPA_CHOICE_FLAGS
#define SPA_CHOICE_FLAGS(flags)
Definition vararg.h:41

Examples
  audio-dsp-sink2.c, video-play-fixate.c, video-play-pull.c, video-play-reneg.c, video-play-sync.c, video-play.c, video-src-alloc.c, video-src-fixate.c, video-src-reneg.c, and video-src-sync.c.

## SPA_POD_CHOICE_FEATURES_Int

#define SPA_POD_CHOICE_FEATURES_Int | ( |  | features | ) |

Value:
"?Fi", SPA_CHOICE_FEATURES(features)
SPA_CHOICE_FEATURES
#define SPA_CHOICE_FEATURES(features)
Definition vararg.h:43

## 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_CHOICE_FEATURES_LONG

#define SPA_POD_CHOICE_FEATURES_LONG | ( |  | features | ) |

Value:
"?Fl", SPA_CHOICE_FEATURES(features)

## SPA_POD_Float

#define SPA_POD_Float | ( |  | val | ) |

Value:
"f", val

Examples
  spa/examples/adapter-control.c, and spa/examples/example-control.c.

## 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

#define SPA_POD_String | ( |  | val | ) |

Value:
"s",val

Examples
  local-v4l2.c, spa/examples/adapter-control.c, spa/examples/example-control.c, and spa/examples/local-v4l2.c.

## 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 )

Value:
"?rR", SPA_CHOICE_RANGE((def),(min),(max))

Examples
  tutorial5.c, video-play-fixate.c, video-src-alloc.c, video-src-fixate.c, video-src-reneg.c, video-src-sync.c, and video-src.c.

## 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 | ) |

Value:
"F",val

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

## 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

## SPA_POD_PodBody

#define SPA_POD_PodBody | ( |  | val,
|  |  | body )

Value:
"Q", val, body

## SPA_POD_PodBodyObject

#define SPA_POD_PodBodyObject | ( |  | val,
|  |  | body )

Value:
"N", val, body

## SPA_POD_PodBodyStruct

#define SPA_POD_PodBodyStruct | ( |  | val,
|  |  | body )

Value:
"U", val, body

## SPA_POD_PodBodyChoice

#define SPA_POD_PodBodyChoice | ( |  | val,
|  |  | body )

Value:
"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_API_POD_BUILDER void spa_pod_builder_init | ( | struct spa_pod_builder * | builder,
|  | void * | data,
|  | uint32_t | size )

Examples
  audio-dsp-sink2.c, export-sink.c, export-source.c, local-v4l2.c, midi-src.c, spa/examples/adapter-control.c, spa/examples/example-control.c, spa/examples/local-libcamera.c, spa/examples/local-v4l2.c, and spa/examples/local-videotestsrc.c.

## 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_API_POD_BUILDER void * spa_pod_builder_pop | ( | struct spa_pod_builder * | builder,
|  | struct spa_pod_frame * | frame )

Examples
  export-sink.c, export-source.c, midi-src.c, spa/examples/adapter-control.c, spa/examples/example-control.c, video-play-fixate.c, video-play-sync.c, video-src-fixate.c, and video-src-sync.c.

## 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 )

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

## spa_pod_builder_long()

SPA_API_POD_BUILDER int spa_pod_builder_long | ( | struct spa_pod_builder * | builder,
|  | int64_t | val )

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

## spa_pod_builder_float()

SPA_API_POD_BUILDER int spa_pod_builder_float | ( | struct spa_pod_builder * | builder,
|  | float | val )

Examples
  export-sink.c, export-source.c, and spa/examples/example-control.c.

## 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 )

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

## 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 )

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

## 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 )

Examples
  export-sink.c, export-source.c, spa/examples/example-control.c, video-play-fixate.c, video-play-sync.c, video-src-fixate.c, and video-src-sync.c.

## spa_pod_builder_prop()

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

Examples
  export-sink.c, export-source.c, spa/examples/example-control.c, video-play-fixate.c, video-play-sync.c, video-src-fixate.c, and video-src-sync.c.

## 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 )

Examples
  export-sink.c, export-source.c, midi-src.c, spa/examples/adapter-control.c, and spa/examples/example-control.c.

## spa_pod_builder_control()

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

Examples
  export-sink.c, export-source.c, midi-src.c, spa/examples/adapter-control.c, and spa/examples/example-control.c.

## 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,
|  |  | ... )

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

## 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 )

Examples
  export-sink.c, and export-source.c.

## 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 )

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

## 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 | ) |

Examples
  spa/examples/adapter-control.c.

## 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 )