@ -2821,8 +2821,9 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
}
}
if ( ( err = frame_configure_elements ( avctx ) ) < 0 )
goto fail ;
if ( avctx - > channels )
if ( ( err = frame_configure_elements ( avctx ) ) < 0 )
goto fail ;
// The FF_PROFILE_AAC_* defines are all object_type - 1
// This may lead to an undefined profile being signaled
@ -2833,6 +2834,9 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
while ( ( elem_type = get_bits ( gb , 3 ) ) ! = TYPE_END ) {
elem_id = get_bits ( gb , 4 ) ;
if ( ! avctx - > channels & & elem_type ! = TYPE_PCE )
goto fail ;
if ( elem_type < TYPE_DSE ) {
if ( ! ( che = get_che ( ac , elem_type , elem_id ) ) ) {
av_log ( ac - > avctx , AV_LOG_ERROR , " channel element %d.%d is not allocated \n " ,
@ -2919,6 +2923,11 @@ static int aac_decode_frame_int(AVCodecContext *avctx, void *data,
}
}
if ( ! avctx - > channels ) {
* got_frame_ptr = 0 ;
return 0 ;
}
spectral_to_sample ( ac ) ;
multiplier = ( ac - > oc [ 1 ] . m4ac . sbr = = 1 ) ? ac - > oc [ 1 ] . m4ac . ext_sample_rate > ac - > oc [ 1 ] . m4ac . sample_rate : 0 ;