Unified · Split
| @@ -165,6 +165,20 @@ struct IAMFSoundSystemMap { · 164 unmodified lines | ||
| 165 | 165 | extern const AVChannelLayout ff_iamf_scalable_ch_layouts[10]; |
| 166 | 166 | extern const struct IAMFSoundSystemMap ff_iamf_sound_system_map[13]; |
| 167 | 167 | |
| 168 | +static inline IAMFParamDefinition *ff_iamf_get_param_definition(const IAMFContext *iamf, | |
| 169 | + unsigned int parameter_id) | |
| 170 | +{ | |
| 171 | + IAMFParamDefinition *param_definition = NULL; | |
| 172 | + | |
| 173 | + for (int i = 0; i < iamf->nb_param_definitions; i++) | |
| 174 | + if (iamf->param_definitions[i]->param->parameter_id == parameter_id) { | |
| 175 | + param_definition = iamf->param_definitions[i]; | |
| 176 | + break; | |
| 177 | + } | |
| 178 | + | |
| 179 | + return param_definition; | |
| 180 | +} | |
| 181 | + | |
| 168 | 182 | void ff_iamf_free_audio_element(IAMFAudioElement **paudio_element); |
| 169 | 183 | void ff_iamf_free_mix_presentation(IAMFMixPresentation **pmix_presentation); |
| 170 | 184 | void ff_iamf_uninit_context(IAMFContext *c); |
| @@ -98,22 +98,6 @@ static int audio_frame_obu(AVFormatContext *s, const IAMFDemuxContext *c, · 97 unmodified lines | ||
| 98 | 98 | return 0; |
| 99 | 99 | } |
| 100 | 100 | |
| 101 | −static const IAMFParamDefinition *get_param_definition(AVFormatContext *s, | |
| 102 | − const IAMFDemuxContext *c, | |
| 103 | − unsigned int parameter_id) | |
| 104 | −{ | |
| 105 | − const IAMFContext *const iamf = &c->iamf; | |
| 106 | − const IAMFParamDefinition *param_definition = NULL; | |
| 107 | − | |
| 108 | − for (int i = 0; i < iamf->nb_param_definitions; i++) | |
| 109 | − if (iamf->param_definitions[i]->param->parameter_id == parameter_id) { | |
| 110 | − param_definition = iamf->param_definitions[i]; | |
| 111 | − break; | |
| 112 | − } | |
| 113 | − | |
| 114 | − return param_definition; | |
| 115 | −} | |
| 116 | − | |
| 117 | 101 | static int parameter_block_obu(AVFormatContext *s, IAMFDemuxContext *c, |
| 118 | 102 | AVIOContext *pbc, int len) |
| 119 | 103 | { |
| @@ -144,7 +128,7 @@ static int parameter_block_obu(AVFormatContext *s, IAMFDemuxContext *c, · 24 unmodified lines | ||
| 144 | 128 | pb = &b.pub; |
| 145 | 129 | |
| 146 | 130 | parameter_id = ffio_read_leb(pb); |
| 147 | − param_definition = get_param_definition(s, c, parameter_id); | |
| 131 | + param_definition = ff_iamf_get_param_definition(&c->iamf, parameter_id); | |
| 148 | 132 | if (!param_definition) { |
| 149 | 133 | av_log(s, AV_LOG_VERBOSE, "Non existant parameter_id %d referenced in a parameter block. Ignoring\n", |
| 150 | 134 | parameter_id); |
| @@ -29,20 +29,6 @@ · 28 unmodified lines | ||
| 29 | 29 | #include "avio.h" |
| 30 | 30 | #include "iamf.h" |
| 31 | 31 | |
| 32 | −static inline IAMFParamDefinition *ff_iamf_get_param_definition(const IAMFContext *iamf, | |
| 33 | − unsigned int parameter_id) | |
| 34 | −{ | |
| 35 | − IAMFParamDefinition *param_definition = NULL; | |
| 36 | − | |
| 37 | − for (int i = 0; i < iamf->nb_param_definitions; i++) | |
| 38 | − if (iamf->param_definitions[i]->param->parameter_id == parameter_id) { | |
| 39 | − param_definition = iamf->param_definitions[i]; | |
| 40 | − break; | |
| 41 | − } | |
| 42 | − | |
| 43 | − return param_definition; | |
| 44 | −} | |
| 45 | − | |
| 46 | 32 | int ff_iamf_add_audio_element(IAMFContext *iamf, const AVStreamGroup *stg, void *log_ctx); |
| 47 | 33 | int ff_iamf_add_mix_presentation(IAMFContext *iamf, const AVStreamGroup *stg, void *log_ctx); |
| 48 | 34 | |