diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c index 5740d6cd71..0cae1550fa 100644 --- a/libavcodec/aacdec.c +++ b/libavcodec/aacdec.c @@ -589,10 +589,11 @@ static av_cold int aac_decode_init(AVCodecContext *avctx) ac->m4ac.chan_config = i; if (ac->m4ac.chan_config) { - if (set_default_channel_config(avctx, new_che_pos, ac->m4ac.chan_config) < 0 && - avctx->error_recognition >= FF_ER_EXPLODE) - return AVERROR_INVALIDDATA; - output_configure(ac, ac->che_pos, new_che_pos, ac->m4ac.chan_config, OC_GLOBAL_HDR); + int ret = set_default_channel_config(avctx, new_che_pos, ac->m4ac.chan_config); + if (!ret) + output_configure(ac, ac->che_pos, new_che_pos, ac->m4ac.chan_config, OC_GLOBAL_HDR); + else if (avctx->error_recognition >= FF_ER_EXPLODE) + return AVERROR_INVALIDDATA; } }