@ -53,6 +53,11 @@
return AVERROR ( EINVAL ) ; \
}
# define WARN_IF(cond, ...) \
if ( cond ) { \
av_log ( avctx , AV_LOG_WARNING , __VA_ARGS__ ) ; \
}
float ff_aac_pow34sf_tab [ 428 ] ;
static const uint8_t swb_size_1024_96 [ ] = {
@ -102,7 +107,8 @@ static const uint8_t *swb_size_1024[] = {
swb_size_1024_96 , swb_size_1024_96 , swb_size_1024_64 ,
swb_size_1024_48 , swb_size_1024_48 , swb_size_1024_32 ,
swb_size_1024_24 , swb_size_1024_24 , swb_size_1024_16 ,
swb_size_1024_16 , swb_size_1024_16 , swb_size_1024_8
swb_size_1024_16 , swb_size_1024_16 , swb_size_1024_8 ,
swb_size_1024_8
} ;
static const uint8_t swb_size_128_96 [ ] = {
@ -131,7 +137,8 @@ static const uint8_t *swb_size_128[] = {
swb_size_128_96 , swb_size_128_96 , swb_size_128_96 ,
swb_size_128_48 , swb_size_128_48 , swb_size_128_48 ,
swb_size_128_24 , swb_size_128_24 , swb_size_128_16 ,
swb_size_128_16 , swb_size_128_16 , swb_size_128_8
swb_size_128_16 , swb_size_128_16 , swb_size_128_8 ,
swb_size_128_8
} ;
/** default channel configurations */
@ -754,14 +761,20 @@ static av_cold int aac_encode_init(AVCodecContext *avctx)
s - > channels = avctx - > channels ;
ERROR_IF ( i > = 12 ,
ERROR_IF ( i = = 16
| | i > = ( sizeof ( swb_size_1024 ) / sizeof ( * swb_size_1024 ) )
| | i > = ( sizeof ( swb_size_128 ) / sizeof ( * swb_size_128 ) ) ,
" Unsupported sample rate %d \n " , avctx - > sample_rate ) ;
ERROR_IF ( s - > channels > AAC_MAX_CHANNELS ,
" Unsupported number of channels: %d \n " , s - > channels ) ;
ERROR_IF ( avctx - > profile ! = FF_PROFILE_UNKNOWN & & avctx - > profile ! = FF_PROFILE_AAC_LOW ,
" Unsupported profile %d \n " , avctx - > profile ) ;
ERROR_IF ( 1024.0 * avctx - > bit_rate / avctx - > sample_rate > 6144 * s - > channels ,
" Too many bits per frame requested \n " ) ;
WARN_IF ( 1024.0 * avctx - > bit_rate / avctx - > sample_rate > 6144 * s - > channels ,
" Too many bits per frame requested, clamping to max \n " ) ;
avctx - > bit_rate = ( int ) FFMIN (
6144 * s - > channels / 1024.0 * avctx - > sample_rate ,
avctx - > bit_rate ) ;
s - > samplerate_index = i ;