diff --git a/lib_com/options.h b/lib_com/options.h index a38e20b6162111658f3a4afd0dbfa6abc6c41a4d..e551595cf5517369f8909a709caa2d3d7bbd8e34 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -99,6 +99,7 @@ #define FIX_ISSUE_2616_BOUNDARY_CONDITION /* FhG: basop issue 2616: Inconsistent boundary conditions in function stereo_dft_dequantize_res_gains*/ #define FIX_ISSUE_2613_WRONG_COMP_MACRO /* FhG: basop issue 2613: Inconsistent comparison macros in function tdm_SCh_LSF_intra_pred_fx*/ #define FIX_ISSUE_2611_WRONG_COMMENT /* FhG: basop issue 2611: Wrong Q value comment in fucntion stereo_dft_sg_recovery_fx()*/ +#define FIX_BASOP_2550_TCX_ENC_MEM_UPDATE /* FhG: fix condition in tcx_encoder_memory_update_*_fx(), bring inline with float */ /* #################### End BE switches ################################## */ diff --git a/lib_enc/tcx_utils_enc_fx.c b/lib_enc/tcx_utils_enc_fx.c index 628a06440c828ed19cad0d4cf4e5e2f5821e5835..4300ecc12638b609ab21c0f466cdb0269ac2f695 100644 --- a/lib_enc/tcx_utils_enc_fx.c +++ b/lib_enc/tcx_utils_enc_fx.c @@ -2406,7 +2406,11 @@ void tcx_encoder_memory_update_fx( Copy( synth + sub( L_frame_glob, L_SYN_MEM ), LPDmem->mem_syn_r, L_SYN_MEM ); test(); +#ifdef FIX_BASOP_2550_TCX_ENC_MEM_UPDATE + IF( st->tcxonly == 0 || EQ_16( L_frame_glob, L_FRAME16k ) ) +#else IF( st->tcxonly == 0 || LE_16( L_frame_glob, L_FRAME16k ) ) +#endif { /* Update excitation */ IF( LT_16( L_frame_glob, L_EXC_MEM ) ) @@ -2474,7 +2478,11 @@ void tcx_encoder_memory_update_ivas_fx( move16(); test(); +#ifdef FIX_BASOP_2550_TCX_ENC_MEM_UPDATE + IF( st->tcxonly == 0 || EQ_16( L_frame_glob, L_FRAME16k ) ) +#else IF( st->tcxonly == 0 || LE_16( L_frame_glob, L_FRAME16k ) ) +#endif { /* Update excitation */ IF( LT_16( L_frame_glob, L_EXC_MEM ) )