|
|
|
@@ -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, |
|
|
|
}; |
|
|
|
|
|
|
|
|