You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
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@martin.st>
This commit is contained in:
committed by
Martin Storsjö
parent
9580818c5d
commit
15fa856b82
@@ -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 4: mode = MODE_1_2_1; sce = 2; cpe = 1; break;
|
||||||
case 5: mode = MODE_1_2_2; sce = 1; cpe = 2; 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;
|
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:
|
default:
|
||||||
av_log(avctx, AV_LOG_ERROR,
|
av_log(avctx, AV_LOG_ERROR,
|
||||||
"Unsupported number of channels %d\n", avctx->channels);
|
"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_4POINT0,
|
||||||
AV_CH_LAYOUT_5POINT0_BACK,
|
AV_CH_LAYOUT_5POINT0_BACK,
|
||||||
AV_CH_LAYOUT_5POINT1_BACK,
|
AV_CH_LAYOUT_5POINT1_BACK,
|
||||||
|
#ifdef AACENCODER_LIB_VL0
|
||||||
|
AV_CH_LAYOUT_7POINT1_WIDE_BACK,
|
||||||
|
AV_CH_LAYOUT_7POINT1,
|
||||||
|
#endif
|
||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user