[FFmpeg-cvslog] avcodec/ac3dec: don't override existing downmix coefficient with default ones
James Almer
git at videolan.org
Sun Jan 19 20:16:27 EET 2025
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Wed Jan 15 22:12:28 2025 -0300| [4563cf95caeaa1f1bcb263b1ef6bb16932357903] | committer: James Almer
avcodec/ac3dec: don't override existing downmix coefficient with default ones
With this, if the eac3 dependent frame doesn't have coded downmix values when
parsed by ff_eac3_parse_header(), it will inherit the coded ones from the core
ac3 frame instead of ignoring them.
Signed-off-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4563cf95caeaa1f1bcb263b1ef6bb16932357903
---
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;
More information about the ffmpeg-cvslog
mailing list