5 #ifndef SPA_PARAM_AUDIO_FORMAT_UTILS_H
6 #define SPA_PARAM_AUDIO_FORMAT_UTILS_H
41 #ifndef SPA_API_AUDIO_FORMAT_UTILS
43 #define SPA_API_AUDIO_FORMAT_UTILS SPA_API_IMPL
45 #define SPA_API_AUDIO_FORMAT_UTILS static inline
52 switch (media_subtype) {
57 #define _SPA_FORMAT_AUDIO_EXT_VALID_SIZE_CASE(format) \
58 case SPA_MEDIA_SUBTYPE_ ## format: \
59 return size >= offsetof(struct spa_audio_info, info.format) + sizeof(struct spa_audio_info_ ## format);
77 #undef _SPA_FORMAT_AUDIO_EXT_VALID_SIZE_CASE
86 uint32_t media_type, media_subtype;
100 switch (media_subtype) {
uint32_t int int res
Definition: core.h:433
SPA_API_AUDIO_EAC3_UTILS int spa_format_audio_eac3_parse(const struct spa_pod *format, struct spa_audio_info_eac3 *info)
Definition: eac3-utils.h:38
SPA_API_AUDIO_DTS_UTILS int spa_format_audio_dts_parse(const struct spa_pod *format, struct spa_audio_info_dts *info)
Definition: dts-utils.h:38
SPA_API_AUDIO_MP3_UTILS int spa_format_audio_mp3_parse(const struct spa_pod *format, struct spa_audio_info_mp3 *info)
Definition: mp3-utils.h:38
SPA_API_AUDIO_AC3_UTILS struct spa_pod * spa_format_audio_ac3_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_ac3 *info)
Definition: ac3-utils.h:49
SPA_API_AUDIO_AC3_UTILS int spa_format_audio_ac3_parse(const struct spa_pod *format, struct spa_audio_info_ac3 *info)
Definition: ac3-utils.h:38
SPA_API_AUDIO_DSP_UTILS int spa_format_audio_dsp_parse(const struct spa_pod *format, struct spa_audio_info_dsp *info)
Definition: dsp-utils.h:38
SPA_API_AUDIO_DSP_UTILS struct spa_pod * spa_format_audio_dsp_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_dsp *info)
Definition: dsp-utils.h:48
SPA_API_AUDIO_APE_UTILS int spa_format_audio_ape_parse(const struct spa_pod *format, struct spa_audio_info_ape *info)
Definition: ape-utils.h:38
SPA_API_AUDIO_FORMAT_UTILS struct spa_pod * spa_format_audio_ext_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info *info, size_t size)
Definition: format-utils.h:156
SPA_API_AUDIO_ALAC_UTILS int spa_format_audio_alac_parse(const struct spa_pod *format, struct spa_audio_info_alac *info)
Definition: alac-utils.h:39
SPA_API_AUDIO_RA_UTILS int spa_format_audio_ra_parse(const struct spa_pod *format, struct spa_audio_info_ra *info)
Definition: ra-utils.h:38
SPA_API_AUDIO_FORMAT_UTILS int spa_format_audio_parse(const struct spa_pod *format, struct spa_audio_info *info)
Definition: format-utils.h:150
SPA_API_AUDIO_DSD_UTILS struct spa_pod * spa_format_audio_dsd_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_dsd *info)
Definition: dsd-utils.h:64
SPA_API_AUDIO_FORMAT_UTILS bool spa_format_audio_ext_valid_size(uint32_t media_subtype, size_t size)
Definition: format-utils.h:57
SPA_API_AUDIO_EAC3_UTILS struct spa_pod * spa_format_audio_eac3_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_eac3 *info)
Definition: eac3-utils.h:49
SPA_API_AUDIO_DTS_UTILS struct spa_pod * spa_format_audio_dts_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_dts *info)
Definition: dts-utils.h:50
SPA_API_AUDIO_WMA_UTILS int spa_format_audio_wma_parse(const struct spa_pod *format, struct spa_audio_info_wma *info)
Definition: wma-utils.h:38
SPA_API_AUDIO_AMR_UTILS struct spa_pod * spa_format_audio_amr_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_amr *info)
Definition: amr-utils.h:51
SPA_API_AUDIO_TRUEHD_UTILS struct spa_pod * spa_format_audio_truehd_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_truehd *info)
Definition: truehd-utils.h:49
SPA_API_AUDIO_AAC_UTILS int spa_format_audio_aac_parse(const struct spa_pod *format, struct spa_audio_info_aac *info)
Definition: aac-utils.h:38
SPA_API_AUDIO_DSD_UTILS int spa_format_audio_dsd_parse(const struct spa_pod *format, struct spa_audio_info_dsd *info)
Definition: dsd-utils.h:39
SPA_API_AUDIO_RAW_UTILS struct spa_pod * spa_format_audio_raw_ext_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_raw *info, size_t size)
Definition: raw-utils.h:73
#define SPA_API_AUDIO_FORMAT_UTILS
Definition: format-utils.h:52
SPA_API_AUDIO_MP3_UTILS struct spa_pod * spa_format_audio_mp3_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_mp3 *info)
Definition: mp3-utils.h:50
SPA_API_AUDIO_TRUEHD_UTILS int spa_format_audio_truehd_parse(const struct spa_pod *format, struct spa_audio_info_truehd *info)
Definition: truehd-utils.h:38
SPA_API_AUDIO_ALAC_UTILS struct spa_pod * spa_format_audio_alac_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_alac *info)
Definition: alac-utils.h:50
SPA_API_AUDIO_VORBIS_UTILS struct spa_pod * spa_format_audio_vorbis_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_vorbis *info)
Definition: vorbis-utils.h:49
SPA_API_AUDIO_RA_UTILS struct spa_pod * spa_format_audio_ra_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_ra *info)
Definition: ra-utils.h:49
SPA_API_AUDIO_AMR_UTILS int spa_format_audio_amr_parse(const struct spa_pod *format, struct spa_audio_info_amr *info)
Definition: amr-utils.h:39
SPA_API_AUDIO_VORBIS_UTILS int spa_format_audio_vorbis_parse(const struct spa_pod *format, struct spa_audio_info_vorbis *info)
Definition: vorbis-utils.h:38
SPA_API_AUDIO_FORMAT_UTILS int spa_format_audio_ext_parse(const struct spa_pod *format, struct spa_audio_info *info, size_t size)
Definition: format-utils.h:90
SPA_API_AUDIO_IEC958_UTILS struct spa_pod * spa_format_audio_iec958_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_iec958 *info)
Definition: iec958-utils.h:49
SPA_API_AUDIO_FLAC_UTILS struct spa_pod * spa_format_audio_flac_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_flac *info)
Definition: flac-utils.h:49
SPA_API_AUDIO_FORMAT_UTILS struct spa_pod * spa_format_audio_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info *info)
Definition: format-utils.h:208
SPA_API_FORMAT_UTILS int spa_format_parse(const struct spa_pod *format, uint32_t *media_type, uint32_t *media_subtype)
Definition: format-utils.h:37
SPA_API_AUDIO_MPEGH_UTILS int spa_format_audio_mpegh_parse(const struct spa_pod *format, struct spa_audio_info_mpegh *info)
Definition: mpegh-utils.h:38
SPA_API_AUDIO_FLAC_UTILS int spa_format_audio_flac_parse(const struct spa_pod *format, struct spa_audio_info_flac *info)
Definition: flac-utils.h:38
SPA_API_AUDIO_MPEGH_UTILS struct spa_pod * spa_format_audio_mpegh_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_mpegh *info)
Definition: mpegh-utils.h:48
#define SPA_AUDIO_INFO_RAW_VALID_SIZE(size)
Definition: raw.h:310
SPA_API_AUDIO_WMA_UTILS struct spa_pod * spa_format_audio_wma_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_wma *info)
Definition: wma-utils.h:52
SPA_API_AUDIO_AAC_UTILS struct spa_pod * spa_format_audio_aac_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_aac *info)
Definition: aac-utils.h:52
SPA_API_AUDIO_APE_UTILS struct spa_pod * spa_format_audio_ape_build(struct spa_pod_builder *builder, uint32_t id, const struct spa_audio_info_ape *info)
Definition: ape-utils.h:49
SPA_API_AUDIO_IEC958_UTILS int spa_format_audio_iec958_parse(const struct spa_pod *format, struct spa_audio_info_iec958 *info)
Definition: iec958-utils.h:38
SPA_API_AUDIO_RAW_UTILS int spa_format_audio_raw_ext_parse(const struct spa_pod *format, struct spa_audio_info_raw *info, size_t size)
Definition: raw-utils.h:39
@ SPA_MEDIA_TYPE_audio
Definition: format.h:27
@ SPA_MEDIA_SUBTYPE_alac
Definition: format.h:56
@ SPA_MEDIA_SUBTYPE_ra
Definition: format.h:48
@ SPA_MEDIA_SUBTYPE_mp3
Definition: format.h:44
@ SPA_MEDIA_SUBTYPE_ac3
since 0.3.68
Definition: format.h:60
@ SPA_MEDIA_SUBTYPE_aac
Definition: format.h:45
@ SPA_MEDIA_SUBTYPE_iec958
Definition: format.h:40
@ SPA_MEDIA_SUBTYPE_ape
since 0.3.65
Definition: format.h:58
@ SPA_MEDIA_SUBTYPE_wma
Definition: format.h:47
@ SPA_MEDIA_SUBTYPE_truehd
since 1.5.1
Definition: format.h:62
@ SPA_MEDIA_SUBTYPE_amr
Definition: format.h:54
@ SPA_MEDIA_SUBTYPE_dsp
Definition: format.h:39
@ SPA_MEDIA_SUBTYPE_vorbis
Definition: format.h:46
@ SPA_MEDIA_SUBTYPE_raw
Definition: format.h:38
@ SPA_MEDIA_SUBTYPE_dts
since 1.5.1
Definition: format.h:63
@ SPA_MEDIA_SUBTYPE_eac3
since 1.5.1
Definition: format.h:61
@ SPA_MEDIA_SUBTYPE_mpegh
since 1.5.1
Definition: format.h:64
@ SPA_MEDIA_SUBTYPE_dsd
S/PDIF.
Definition: format.h:41
@ SPA_MEDIA_SUBTYPE_flac
since 0.3.65
Definition: format.h:57
struct spa_audio_info_dsd dsd
Definition: format.h:50
union spa_audio_info::@4 info
struct spa_audio_info_vorbis vorbis
Definition: format.h:53
struct spa_audio_info_dsp dsp
Definition: format.h:48
struct spa_audio_info_amr amr
Definition: format.h:56
struct spa_audio_info_dts dts
Definition: format.h:64
uint32_t media_subtype
Definition: format.h:45
struct spa_audio_info_mp3 mp3
Definition: format.h:51
struct spa_audio_info_ra ra
Definition: format.h:55
struct spa_audio_info_eac3 eac3
Definition: format.h:62
struct spa_audio_info_raw raw
Definition: format.h:47
struct spa_audio_info_truehd truehd
Definition: format.h:63
struct spa_audio_info_ape ape
Definition: format.h:59
struct spa_audio_info_aac aac
Definition: format.h:52
uint32_t media_type
Definition: format.h:44
struct spa_audio_info_iec958 iec958
Definition: format.h:49
struct spa_audio_info_mpegh mpegh
Definition: format.h:65
struct spa_audio_info_ac3 ac3
Definition: format.h:61
struct spa_audio_info_wma wma
Definition: format.h:54
struct spa_audio_info_alac alac
Definition: format.h:57
struct spa_audio_info_flac flac
Definition: format.h:58
uint32_t size
Definition: pod.h:58