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 <jamr...@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

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to