[SCM] libav/experimental: libfdk-aacenc: Enable 7.1 channel encoding

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Aug 10 16:03:05 UTC 2014


The following commit has been merged in the experimental branch:
commit 15fa856b82ea7dbbf69edc1074eb13dd00b0fa84
Author: Jean First <jeanfirst at gmail.com>
Date:   Sun Jan 26 01:31:53 2014 +0100

    libfdk-aacenc: Enable 7.1 channel encoding
    
    7.1(wide) and 7.1(wide-side) channel layouts are supported in
    fdk-aac since the 0.1.3 release.
    
    The earlier versions of fdk-aac didn't include any library
    version defines in the public headers, thus checking for
    the AACENCODER_LIB_VL0 define is enough to know that we're
    building against a new enough version of fdk-aac.
    
    This change includes contributions by Tim Walker,
    Michael Niedermayer and Timothy Gu.
    
    Signed-off-by: Martin Storsjö <martin at martin.st>

diff --git a/libavcodec/libfdk-aacenc.c b/libavcodec/libfdk-aacenc.c
index 4827169..0cd7e94 100644
--- a/libavcodec/libfdk-aacenc.c
+++ b/libavcodec/libfdk-aacenc.c
@@ -151,6 +151,20 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
     case 4: mode = MODE_1_2_1;   sce = 2; cpe = 1; break;
     case 5: mode = MODE_1_2_2;   sce = 1; cpe = 2; break;
     case 6: mode = MODE_1_2_2_1; sce = 2; cpe = 2; break;
+/* The version macro is introduced the same time as the 7.1 support, so this
+   should suffice. */
+#ifdef AACENCODER_LIB_VL0
+    case 8:
+        sce = 2;
+        cpe = 3;
+        if (avctx->channel_layout == AV_CH_LAYOUT_7POINT1) {
+            mode = MODE_7_1_REAR_SURROUND;
+        } else {
+            // MODE_1_2_2_2_1 and MODE_7_1_FRONT_CENTER use the same channel layout
+            mode = MODE_7_1_FRONT_CENTER;
+        }
+        break;
+#endif
     default:
         av_log(avctx, AV_LOG_ERROR,
                "Unsupported number of channels %d\n", avctx->channels);
@@ -386,6 +400,10 @@ static const uint64_t aac_channel_layout[] = {
     AV_CH_LAYOUT_4POINT0,
     AV_CH_LAYOUT_5POINT0_BACK,
     AV_CH_LAYOUT_5POINT1_BACK,
+#ifdef AACENCODER_LIB_VL0
+    AV_CH_LAYOUT_7POINT1_WIDE_BACK,
+    AV_CH_LAYOUT_7POINT1,
+#endif
     0,
 };
 

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list