From d6078d98eb7a9aad302cc18d97daa39fce06fcc1 Mon Sep 17 00:00:00 2001 From: Sandesh Venkatesh Date: Mon, 28 Oct 2024 21:24:45 +0530 Subject: [PATCH] Fix for 3GPP issue 966: Decoder crash for OMASA ISM3_1TC with bitrate switching and FER in perform_noise_estimation_dec_ivas_fx() --- lib_dec/fd_cng_dec_fx.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib_dec/fd_cng_dec_fx.c b/lib_dec/fd_cng_dec_fx.c index b6ba82895..51c2c4643 100644 --- a/lib_dec/fd_cng_dec_fx.c +++ b/lib_dec/fd_cng_dec_fx.c @@ -2800,9 +2800,10 @@ void perform_noise_estimation_dec_ivas_fx( } ELSE { - Copy32( msPeriodog, msNoiseEst, npart ); - scale_sig32( &msNoiseEst[npart], sub( NPART_SHAPING, npart ), sub( hFdCngDec->msNoiseEst_exp, hFdCngDec->msPeriodog_exp ) ); - hFdCngDec->msNoiseEst_exp = hFdCngDec->msPeriodog_exp; + Word16 tmp = s_max( sub( hFdCngDec->msNoiseEst_exp, getScaleFactor32( msPeriodog, npart ) ), sub( hFdCngDec->msPeriodog_exp, getScaleFactor32( &msNoiseEst[npart], sub( NPART_SHAPING, npart ) ) ) ); + Copy_Scale_sig32( msPeriodog, msNoiseEst, npart, sub( hFdCngDec->msPeriodog_exp, tmp ) ); + scale_sig32( &msNoiseEst[npart], sub( NPART_SHAPING, npart ), sub( hFdCngDec->msNoiseEst_exp, tmp ) ); + hFdCngDec->msNoiseEst_exp = tmp; move16(); } -- GitLab