Commit 2b6dc1f3 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Merge branch '906-lf-discontinuity-when-going-from-hq-core-to-acelp-core' into 'main'

Add missing rescaling of mem_syn2_fx and mem_deemph_fx in case of HQ-ACELP switch

Closes #906

See merge request !650
parents 61355038 8d662279
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -957,13 +957,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();