[FFmpeg-devel] [PATCH 1/2] avcodec/ac3dec: don't override existing downmix coefficient with default ones

James Almer jamrial at gmail.com
Thu Jan 16 03:20:11 EET 2025


With this, if the eac3 dependent frame doesn't have coded downmix values when
parsed by ff_eac3_parse_header(), it inherit the coded ones from the core ac3
frame instead of ignoring them.

Signed-off-by: James Almer <jamrial at gmail.com>
---
 libavcodec/ac3dec.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c
index a796ddf44e..eb5cfd9818 100644
--- a/libavcodec/ac3dec.c
+++ b/libavcodec/ac3dec.c
@@ -345,9 +345,11 @@ static int parse_frame_header(AC3DecodeContext *s)
     s->frame_size                   = hdr.frame_size;
     s->superframe_size             += hdr.frame_size;
     s->preferred_downmix            = AC3_DMIXMOD_NOTINDICATED;
-    s->center_mix_level             = hdr.center_mix_level;
+    if (hdr.bitstream_id <= 10) {
+        s->center_mix_level         = hdr.center_mix_level;
+        s->surround_mix_level       = hdr.surround_mix_level;
+    }
     s->center_mix_level_ltrt        = 4; // -3.0dB
-    s->surround_mix_level           = hdr.surround_mix_level;
     s->surround_mix_level_ltrt      = 4; // -3.0dB
     s->lfe_mix_level_exists         = 0;
     s->num_blocks                   = hdr.num_blocks;
-- 
2.48.1



More information about the ffmpeg-devel mailing list