From 50458b7fa1fc9b22ae48d410954585780f1a44f7 Mon Sep 17 00:00:00 2001 From: James Almer Date: Tue, 2 Apr 2024 20:21:13 -0300 Subject: [PATCH] avformat/isom: don't drop the known layout when parsing AAC decSpecificInfo Signed-off-by: James Almer --- libavformat/isom.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavformat/isom.c b/libavformat/isom.c index c5930bd4d8..74bb13dc96 100644 --- a/libavformat/isom.c +++ b/libavformat/isom.c @@ -359,9 +359,11 @@ int ff_mp4_read_dec_config_descr(AVFormatContext *fc, AVStream *st, AVIOContext st->codecpar->extradata_size, 1, fc); if (ret < 0) return ret; - av_channel_layout_uninit(&st->codecpar->ch_layout); - st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; - st->codecpar->ch_layout.nb_channels = cfg.channels; + if (cfg.channels != st->codecpar->ch_layout.nb_channels) { + av_channel_layout_uninit(&st->codecpar->ch_layout); + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = cfg.channels; + } if (cfg.object_type == 29 && cfg.sampling_index < 3) // old mp3on4 st->codecpar->sample_rate = ff_mpa_freq_tab[cfg.sampling_index]; else if (cfg.ext_sample_rate)