diff --git a/lib_com/options.h b/lib_com/options.h index 5dddf236eaf2fef2cab58d1b8f98a53e29b27029..a5b56970e7feb6857ac37b0c1e7aff972015bbbc 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -166,7 +166,7 @@ #define FIX_309_PREMPH_MEM_SCE /* FhG: issue 309 - fix overwriting of mem_preemph_enc in ivas preprocessing for SCE and tcxonly modes*/ #define FIX_317 /* FhG: issue 317 - address sanitizer error in MDCT-Stereo PLC */ - +#define FIX_301_PLC /* FhG: issue 301 - fix bug of missing update of overlap buffer for DFT-stereo PLC*/ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/core_dec_init.c b/lib_dec/core_dec_init.c index ec673cd19c31c2921b689d3bd782a8e05efeca76..511eedc53f17c9f3cb8b79e63767af38274aa2bb 100644 --- a/lib_dec/core_dec_init.c +++ b/lib_dec/core_dec_init.c @@ -279,7 +279,11 @@ void open_decoder_LPD( st->last_core_bfi = ACELP_CORE; } +#ifdef FIX_301_PLC + if ( ( ( st->element_mode != IVAS_CPE_DFT ) || ( st->element_mode == IVAS_CPE_DFT && st->prev_bfi ) ) && st->last_codec_mode == MODE1 && st->last_core == ACELP_CORE ) +#else if ( st->element_mode != IVAS_CPE_DFT && st->last_codec_mode == MODE1 && st->last_core == ACELP_CORE ) +#endif { /* Switching from Mode 1 ACELP */ st->last_core_bfi = ACELP_CORE;