5#ifndef SPA_AUDIO_RAW_JSON_H
6#define SPA_AUDIO_RAW_JSON_H
23#ifndef SPA_API_AUDIO_RAW_JSON
25 #define SPA_API_AUDIO_RAW_JSON SPA_API_IMPL
27 #define SPA_API_AUDIO_RAW_JSON static inline
33 uint32_t *position, uint32_t max_position, uint32_t *n_channels)
37 uint32_t channels = 0;
43 if (channels < max_position)
47 *n_channels = channels;
53 uint32_t *position, uint32_t *n_channels)
74 const char *key,
const char *val,
bool force)
83 if (force || info->format == 0)
86 if (
spa_atou32(val, &v, 0) && (force || info->rate == 0))
89 if (
spa_atou32(val, &v, 0) && (force || info->channels == 0)) {
95 if (force || info->channels == 0) {
104 if (force || info->channels == 0) {
106 max_position, &v) > 0) {
107 if (v > max_position)
119 const char *key,
const char *val,
bool force)
134 memset(info, 0, size);
137 const char *val, *key;
138 while ((key = va_arg(
args,
const char *))) {
142 key, val,
true)) < 0)
150 it->key, it->value,
false)) < 0)
spa/param/audio/raw-types.h
uint32_t int int const char va_list args
Definition core.h:434
uint32_t int int res
Definition core.h:433
SPA_API_DICT const char * spa_dict_lookup(const struct spa_dict *dict, const char *key)
Definition dict.h:114
#define spa_dict_for_each(item, dict)
Definition dict.h:71
SPA_API_JSON_UTILS int spa_json_begin_array_relax(struct spa_json *iter, const char *data, size_t size)
Definition json.h:195
SPA_API_JSON_UTILS int spa_json_get_string(struct spa_json *iter, char *res, int maxlen)
Definition json.h:84
SPA_API_AUDIO_RAW_TYPES uint32_t spa_type_audio_format_from_short_name(const char *name)
Definition raw-types.h:149
SPA_API_AUDIO_RAW_JSON int spa_audio_info_raw_update(struct spa_audio_info_raw *info, const char *key, const char *val, bool force)
Definition raw-json.h:125
SPA_API_AUDIO_RAW_JSON int spa_audio_info_raw_ext_init_dict_keys_va(struct spa_audio_info_raw *info, size_t size, const struct spa_dict *defaults, const struct spa_dict *dict, va_list args)
Definition raw-json.h:132
#define SPA_KEY_AUDIO_POSITION
channel positions as comma separated list of channels ex.
Definition raw.h:325
#define SPA_AUDIO_FLAG_UNPOSITIONED
Definition raw.h:287
SPA_API_AUDIO_RAW_JSON int spa_audio_info_raw_init_dict_keys(struct spa_audio_info_raw *info, const struct spa_dict *defaults, const struct spa_dict *dict,...)
Definition raw-json.h:177
#define SPA_AUDIO_INFO_RAW_MAX_POSITION(size)
Definition raw.h:306
#define SPA_KEY_AUDIO_RATE
an audio sample rate as int
Definition raw.h:321
SPA_API_AUDIO_RAW_TYPES uint32_t spa_type_audio_channel_from_short_name(const char *name)
Definition raw-types.h:281
SPA_API_AUDIO_RAW_JSON int spa_audio_parse_position_n(const char *str, size_t len, uint32_t *position, uint32_t max_position, uint32_t *n_channels)
Definition raw-json.h:39
SPA_API_AUDIO_LAYOUT_TYPES int spa_audio_layout_info_parse_name(struct spa_audio_layout_info *layout, size_t size, const char *name)
Definition layout-types.h:89
#define SPA_KEY_AUDIO_CHANNELS
an audio channel count as int
Definition raw.h:319
SPA_API_AUDIO_RAW_JSON int spa_audio_info_raw_ext_update(struct spa_audio_info_raw *info, size_t size, const char *key, const char *val, bool force)
Definition raw-json.h:80
SPA_API_AUDIO_RAW_JSON int spa_audio_parse_position(const char *str, size_t len, uint32_t *position, uint32_t *n_channels)
Definition raw-json.h:59
#define SPA_API_AUDIO_RAW_JSON
Definition raw-json.h:34
#define SPA_KEY_AUDIO_FORMAT
an audio format as string, Ex.
Definition raw.h:313
spa_audio_format
Definition raw.h:33
#define SPA_KEY_AUDIO_LAYOUT
channel positions as predefined layout
Definition raw.h:323
#define SPA_AUDIO_INFO_RAW_VALID_SIZE(size)
Definition raw.h:309
#define SPA_AUDIO_MAX_CHANNELS
Definition raw.h:30
SPA_API_AUDIO_RAW_JSON int spa_audio_parse_layout(const char *str, uint32_t *position, uint32_t max_position, uint32_t *n_channels)
Definition raw-json.h:66
SPA_API_AUDIO_RAW_JSON int spa_audio_info_raw_ext_init_dict_keys(struct spa_audio_info_raw *info, size_t size, const struct spa_dict *defaults, const struct spa_dict *dict,...)
Definition raw-json.h:164
SPA_API_STRING bool spa_atou32(const char *str, uint32_t *val, int base)
Convert str to an uint32_t with the given base and store the result in val.
Definition string.h:139
SPA_API_STRING bool spa_streq(const char *s1, const char *s2)
Definition string.h:52
#define SPA_FLAG_SET(field, flag)
Definition defs.h:93
#define SPA_FLAG_CLEAR(field, flag)
Definition defs.h:94
#define SPA_SENTINEL
Definition defs.h:307
spa/param/audio/layout-types.h
Audio information description.
Definition raw.h:291
uint32_t position[SPA_AUDIO_MAX_CHANNELS]
Definition layout.h:28
uint32_t n_channels
Definition layout.h:27
Definition json-core.h:49