[FFmpeg-cvslog] avformat/isom: don't drop the known layout when parsing AAC decSpecificInfo
James Almer
git at videolan.org
Wed Apr 3 02:34:09 EEST 2024
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Tue Apr 2 20:21:13 2024 -0300| [50458b7fa1fc9b22ae48d410954585780f1a44f7] | committer: James Almer
avformat/isom: don't drop the known layout when parsing AAC decSpecificInfo
Signed-off-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=50458b7fa1fc9b22ae48d410954585780f1a44f7
---
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)
More information about the ffmpeg-cvslog
mailing list