diff --git a/lib_com/options.h b/lib_com/options.h index 52131a213f87ffab54e9980864f23802b0680ca8..996116824009c80f1a0a862040eb4c033d5f4b3b 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -139,6 +139,7 @@ #define FIX_2297_SBA_SCALING_32KHZ /* VA: basop issue 2297: Fix scaling factor before the SBA decoder for output_Fs = 32 or 16 */ #define FIX_2315_AGC_MEMORY_RESET /* VA: basop issue 2315: fix reset of the AGC memory */ #define FIX_2312_CONDITION_MISSING_GSC_DEC_LR /* VA: basop issue 2297: addition of condition missing in the GSC gain decoder at low-rate */ +#define FIX_2313_HF_RESET_16KHZ /* VA: basop issue 2313: Call hf_synth_reset_fx() also for 16 kHz output_Fs */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_dec/core_switching_dec_fx.c b/lib_dec/core_switching_dec_fx.c index 52a6d976f09b8673aa092590ea096cc28540a84d..1e3ea8846c9d9d63ba3825dfadf9c16b979d7da8 100644 --- a/lib_dec/core_switching_dec_fx.c +++ b/lib_dec/core_switching_dec_fx.c @@ -2246,7 +2246,11 @@ ivas_error core_switching_pre_dec_ivas_fx( move16(); test(); +#ifdef FIX_2313_HF_RESET_16KHZ + IF( GE_32( st->output_Fs, 16000 ) && st->hBWE_zero != NULL ) +#else IF( GT_32( st->output_Fs, 16000 ) && st->hBWE_zero != NULL ) +#endif { hf_synth_reset_fx( st->hBWE_zero ); set16_fx( st->hBWE_zero->mem_hp400_fx, 0, 6 ); @@ -2574,7 +2578,11 @@ ivas_error core_switching_pre_dec_ivas_fx( } test(); +#ifdef FIX_2313_HF_RESET_16KHZ + IF( GE_32( st->output_Fs, 16000 ) && st->hBWE_zero != NULL ) +#else IF( GT_32( st->output_Fs, 16000 ) && st->hBWE_zero != NULL ) +#endif { hf_synth_reset_fx( st->hBWE_zero ); set16_fx( st->hBWE_zero->mem_hp400_fx, 0, 6 ); @@ -2624,7 +2632,11 @@ ivas_error core_switching_pre_dec_ivas_fx( move16(); test(); +#ifdef FIX_2313_HF_RESET_16KHZ + IF( GE_32( st->output_Fs, 16000 ) && st->hBWE_zero != NULL ) +#else IF( GT_32( st->output_Fs, 16000 ) && st->hBWE_zero != NULL ) +#endif { hf_synth_reset_fx( st->hBWE_zero ); set16_fx( st->hBWE_zero->mem_hp400_fx, 0, 6 );