diff --git a/lib_dec/ivas_stereo_cng_dec.c b/lib_dec/ivas_stereo_cng_dec.c index deb3344f2ed051652cb0ab5d0ac55c0ce6d485ec..48bf1711b6c9980485325fae7ec91dae0e0a99af 100644 --- a/lib_dec/ivas_stereo_cng_dec.c +++ b/lib_dec/ivas_stereo_cng_dec.c @@ -1086,10 +1086,12 @@ static void stereo_dft_generate_comfort_noise_fx( ptr_tmp = cngNoiseLevel_upd + hFdCngCom->startBand; FOR( i = 0; i < shr( sub( st->last_L_frame, hFdCngCom->startBand ), 1 ); i++ ) { + q_sqrt = st->hFdCngDec->bandNoiseShape_exp; + move16(); tmp_16 = BASOP_Util_Divide1616_Scale( hStereoCng->xfade_frame_counter, hStereoCng->xfade_length, &q_div ); tmp_16 = shl( tmp_16, q_div ); tmp = Sqrt32( *ptr_cng++, &q_sqrt ); - tmp = L_shl( tmp, q_sqrt ); + tmp = L_shl( tmp, sub( add( q_cngNoiseLevel_upd, q_sqrt ), 31 ) ); *ptr_tmp = L_add( Mpy_32_16_1( *ptr_tmp, tmp_16 ), Mpy_32_16_1( Mpy_32_16_1( tmp, sub( MAX_16, tmp_16 ) ), hStereoDft->scale_fx ) ); move32(); ptr_tmp++;