From ef16882e8f95e99ba44e7d27f01bbc8d4572ea92 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Mon, 6 May 2024 11:43:06 +0200 Subject: [PATCH] avcodec/aac/aacdec: Move channel number check out of init_dsp() Also move initializing random_state. Reviewed-by: Lynne Signed-off-by: Andreas Rheinhardt --- libavcodec/aac/aacdec.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libavcodec/aac/aacdec.c b/libavcodec/aac/aacdec.c index 64ac0ff88b..0d4daeeebd 100644 --- a/libavcodec/aac/aacdec.c +++ b/libavcodec/aac/aacdec.c @@ -1152,13 +1152,6 @@ static av_cold int init_dsp(AVCodecContext *avctx) const float *const scalep = is_fixed ? &scale_fixed : &scale_float; enum AVTXType tx_type = is_fixed ? AV_TX_INT32_MDCT : AV_TX_FLOAT_MDCT; - if (avctx->ch_layout.nb_channels > MAX_CHANNELS) { - av_log(avctx, AV_LOG_ERROR, "Too many channels\n"); - return AVERROR_INVALIDDATA; - } - - ac->random_state = 0x1f2e3d4c; - #define MDCT_INIT(s, fn, len, sval) \ scale_fixed = (sval) * 128.0f; \ scale_float = (sval) / 32768.0f; \ @@ -1241,6 +1234,13 @@ static av_cold int aac_decode_init_internal(AVCodecContext *avctx) } } + if (avctx->ch_layout.nb_channels > MAX_CHANNELS) { + av_log(avctx, AV_LOG_ERROR, "Too many channels\n"); + return AVERROR_INVALIDDATA; + } + + ac->random_state = 0x1f2e3d4c; + return init_dsp(avctx); }