From fbe9b0c8f3ee1ff1d36c6a6cd7fe6fc0c6a9e80d Mon Sep 17 00:00:00 2001 From: KM Date: Tue, 16 Feb 2021 23:19:19 +0100 Subject: [PATCH] lavc/aacdec_template: Fix 7.1 decoding with default strictness. Broken in 4d9b9c5e Fixes ticket #9057. --- libavcodec/aacdec_template.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c index e5d311141f..aa89f7cbb8 100644 --- a/libavcodec/aacdec_template.c +++ b/libavcodec/aacdec_template.c @@ -639,11 +639,14 @@ static int set_default_channel_config(AACContext *ac, AVCodecContext *avctx, * As actual intended 7.1(wide) streams are very rare, default to assuming a * 7.1 layout was intended. */ - if (channel_config == 7 && avctx->strict_std_compliance < FF_COMPLIANCE_STRICT && (!ac || !ac->warned_71_wide++)) { - av_log(avctx, AV_LOG_INFO, "Assuming an incorrectly encoded 7.1 channel layout" - " instead of a spec-compliant 7.1(wide) layout, use -strict %d to decode" - " according to the specification instead.\n", FF_COMPLIANCE_STRICT); + if (channel_config == 7 && avctx->strict_std_compliance < FF_COMPLIANCE_STRICT) { layout_map[2][2] = AAC_CHANNEL_SIDE; + + if (!ac || !ac->warned_71_wide++) { + av_log(avctx, AV_LOG_INFO, "Assuming an incorrectly encoded 7.1 channel layout" + " instead of a spec-compliant 7.1(wide) layout, use -strict %d to decode" + " according to the specification instead.\n", FF_COMPLIANCE_STRICT); + } } return 0;