aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/iamf_parse.c
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2024-02-29 14:41:21 -0300
committerJames Almer <jamrial@gmail.com>2024-03-04 21:14:05 -0300
commit56d630e6c2ae3033a124133c42308b5edbd0fc98 (patch)
tree34689231795bfa8d198b5a8558d26187028fa74c /libavformat/iamf_parse.c
parent97e1480c8cb8a7e94f89589b58d3246e578a976b (diff)
downloadffmpeg-56d630e6c2ae3033a124133c42308b5edbd0fc98.tar.gz
avformat/iamf_writer: update extradata from packet side data
Some encoders, like flac, propagate updated extradata at the end of encoding as packet side data. Use it to update the relevant codec_config. Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat/iamf_parse.c')
-rw-r--r--libavformat/iamf_parse.c12
1 files changed, 1 insertions, 11 deletions
diff --git a/libavformat/iamf_parse.c b/libavformat/iamf_parse.c
index 50b53aa5e9..cb49cf0a57 100644
--- a/libavformat/iamf_parse.c
+++ b/libavformat/iamf_parse.c
@@ -580,16 +580,6 @@ static int param_parse(void *s, IAMFContext *c, AVIOContext *pb,
return 0;
}
-static IAMFCodecConfig *get_codec_config(IAMFContext *c, unsigned int codec_config_id)
-{
- for (int i = 0; i < c->nb_codec_configs; i++) {
- if (c->codec_configs[i]->codec_config_id == codec_config_id)
- return c->codec_configs[i];
- }
-
- return NULL;
-}
-
static int audio_element_obu(void *s, IAMFContext *c, AVIOContext *pb, int len)
{
const IAMFCodecConfig *codec_config;
@@ -627,7 +617,7 @@ static int audio_element_obu(void *s, IAMFContext *c, AVIOContext *pb, int len)
audio_element_type = avio_r8(pbc) >> 5;
codec_config_id = ffio_read_leb(pbc);
- codec_config = get_codec_config(c, codec_config_id);
+ codec_config = ff_iamf_get_codec_config(c, codec_config_id);
if (!codec_config) {
av_log(s, AV_LOG_ERROR, "Non existant codec config id %d referenced in an audio element\n", codec_config_id);
ret = AVERROR_INVALIDDATA;