[FFmpeg-cvslog] lavc/aacdec_template: Fix 7.1 decoding with default strictness.

KM git at videolan.org
Wed Feb 17 00:37:46 EET 2021


ffmpeg | branch: master | KM <the.real.laplace at gmail.com> | Tue Feb 16 23:19:19 2021 +0100| [fbe9b0c8f3ee1ff1d36c6a6cd7fe6fc0c6a9e80d] | committer: Carl Eugen Hoyos

lavc/aacdec_template: Fix 7.1 decoding with default strictness.

Broken in 4d9b9c5e
Fixes ticket #9057.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fbe9b0c8f3ee1ff1d36c6a6cd7fe6fc0c6a9e80d
---

 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;



More information about the ffmpeg-cvslog mailing list