diff --git a/lib_com/options.h b/lib_com/options.h index 1fbc63cc6f82990df3cd96c6213706e646ce6b2e..6d94a23e797d334d19177c3563ace81d06c24bb0 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -159,8 +159,8 @@ #define FIX_833_CORRECTION_to_826 /* VA : fix indexing error introduced in 826 */ #endif #define NONE_BE_FIX_816_LFE_PLC_FLOAT /* DLB: issue 816: reduce required precision to float for LFE-PLC*/ +#define FIX_844_Q_SYN_INIT /* VA : proposed fix to 844, initializing q_old_synth when switching to MDCT*/ #define FIX_839_FB_CONTENT_SOMETIME_MISSING /* VA : Fix scaling error for FB TB BWE */ - /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_core_dec.c b/lib_dec/ivas_core_dec.c index 95839cc7a60422a11bc0f2b1bc46a2cc74dbf9c4..af36897c5cbf8c6d45f21b13de8d5c2a86abb080 100644 --- a/lib_dec/ivas_core_dec.c +++ b/lib_dec/ivas_core_dec.c @@ -748,6 +748,7 @@ ivas_error ivas_core_dec_fx( move16(); #endif st->prev_Q_syn = st->Q_syn; + move16(); Scale_sig( st->hHQ_core->old_out_LB_fx, L_FRAME32k, sub( st->Q_syn, st->hHQ_core->Q_old_wtda_LB ) ); diff --git a/lib_dec/ivas_stereo_switching_dec.c b/lib_dec/ivas_stereo_switching_dec.c index 1e3198b0e07e291d34503b008c67b85da62e0fa3..eb231f065409df0114aa65662aea55fdf79784d9 100644 --- a/lib_dec/ivas_stereo_switching_dec.c +++ b/lib_dec/ivas_stereo_switching_dec.c @@ -1693,7 +1693,10 @@ ivas_error stereo_memory_dec_fx( Copy32( tmpF_buff, st->hTcxDec->old_syn_Overl_32, L_FRAME16k / 2 ); Copy_Scale_sig32_16( st->hTcxDec->old_syn_Overl_32, st->hTcxDec->old_syn_Overl, L_FRAME16k / 2, add( st->Q_syn, 5 ) ); //(st->Qsyn - (11 - 16)) } - +#ifdef FIX_844_Q_SYN_INIT + st->hTcxDec->q_old_synth = st->Q_syn; + move16(); +#endif set16_fx( st->hTcxDec->FBTCXdelayBuf, 0, 111 ); set32_fx( st->hTcxDec->FBTCXdelayBuf_32, 0, 111 ); st->hTcxDec->old_synthFB_fx = st->hTcxDec->synth_history_fx + NS2SA_FX2( st->output_Fs, PH_ECU_MEM_NS );