From 8d662279df258e9e752ca860d97bbaf507d14057 Mon Sep 17 00:00:00 2001 From: Erik Norvell Date: Fri, 11 Oct 2024 09:55:26 +0200 Subject: [PATCH] Add missing rescaling of mem_syn2_fx and mem_deemph_fx in case of HQ-ACELP switch --- lib_dec/acelp_core_dec_ivas_fx.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib_dec/acelp_core_dec_ivas_fx.c b/lib_dec/acelp_core_dec_ivas_fx.c index ef8670388..323f98f8e 100644 --- a/lib_dec/acelp_core_dec_ivas_fx.c +++ b/lib_dec/acelp_core_dec_ivas_fx.c @@ -953,13 +953,14 @@ ivas_error acelp_core_dec_ivas_fx( /* Prepare ACB memory from last HQ frame */ old_exc_s_fx = st->old_exc_fx + sub( L_EXC_MEM_DEC, st->L_frame ); tmpF_fx = *old_exc_s_fx; - st->mem_deemph_fx = old_exc_s_fx[sub( st->L_frame, 1 )]; + st->mem_deemph_fx = shl_sat( old_exc_s_fx[sub( st->L_frame, 1 )], st->Q_syn ); /* Q0 -> Q_syn */ move16(); PREEMPH_FX( old_exc_s_fx, st->preemph_fac, L_FRAME16k, &tmpF_fx ); Copy( old_exc_s_fx + sub( st->L_frame, M ), st->mem_syn2_fx, M ); + Scale_sig( st->mem_syn2_fx, M, st->Q_syn ); /* Q0 -> Q_syn */ Residu3_fx( Aq_fx, old_exc_s_fx, old_exc_fx + sub( L_EXC_MEM_DEC, st->L_frame ), st->L_frame, 0 ); #ifdef FIX_737_HQ_ACELP_SWITCH_SCALING_ERROR - Scale_sig( old_exc_fx + sub( L_EXC_MEM_DEC, st->L_frame ), st->L_frame, st->Q_exc ); + Scale_sig( old_exc_fx + sub( L_EXC_MEM_DEC, st->L_frame ), st->L_frame, st->Q_exc ); /* Q0 -> Q_exc */ #endif } test(); -- GitLab