@ -151,6 +151,16 @@ 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 ;
case 8 :
sce = 2 ;
cpe = 3 ;
if ( avctx - > channel_layout = = AV_CH_LAYOUT_7POINT1_WIDE_BACK ) {
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 ;
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 ) ;
@ -384,6 +394,8 @@ 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 ,
AV_CH_LAYOUT_7POINT1_WIDE ,
AV_CH_LAYOUT_7POINT1_WIDE_BACK ,
0 ,
0 ,
} ;
} ;