diff --git a/lib_com/options.h b/lib_com/options.h index d50152dd9d1dd044d3a9b3c386cdbd1f80f54821..556b5ceb9d59142900f5b398740a02aae94a5f54 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -174,7 +174,7 @@ #define FIX_1543_MID_LSF_BITS /* VA: float issue 1543: Resolve "MSAN: use-of-uninitialized-value in lib_enc/lsf_enc.c:262:5 for EVS encoder" */ #define FIX_1547_ISMDTX_HANDLE /* VA: float issue 1547: fix use of 'hISMDTX' handle */ #define FIX_1540_EXPOSE_PT_IN_RTP_HEADER_API /* Expose Payload Type setting in RTP Header */ - +#define FIX_1563_FIX_STEREO_SW /* VA: float issue 1563: fix clicks in stereo switching */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_dec/ivas_stereo_switching_dec.c b/lib_dec/ivas_stereo_switching_dec.c index 6db673082a685f833b71b1f5128e1c95f597ee37..a06345d0eb0c8c0d508ab59e93e040c03bd9482c 100644 --- a/lib_dec/ivas_stereo_switching_dec.c +++ b/lib_dec/ivas_stereo_switching_dec.c @@ -1563,6 +1563,12 @@ void stereo_switching_dec( mvr2r( sts[0]->delay_buf_out, sts[1]->delay_buf_out, HQ_DELTA_MAX * HQ_DELAY_COMP ); mvr2r( sts[0]->hTcxDec->old_syn_Overl, sts[1]->hTcxDec->old_syn_Overl, 256 ); } +#ifdef FIX_1563_FIX_STEREO_SW + else if ( hCPE->element_mode == IVAS_CPE_TD ) + { + sts[1]->last_core = ACELP_CORE; + } +#endif } else if ( hCPE->element_mode == IVAS_CPE_TD && hCPE->last_element_mode == IVAS_CPE_MDCT ) { diff --git a/lib_enc/ivas_stereo_switching_enc.c b/lib_enc/ivas_stereo_switching_enc.c index 0768fab9495cb19f7f9109cc689649466003b85c..318cd9375330f4bd22380b1d96247c985906a430 100644 --- a/lib_enc/ivas_stereo_switching_enc.c +++ b/lib_enc/ivas_stereo_switching_enc.c @@ -821,6 +821,12 @@ void stereo_switching_enc( sts[1]->last_coder_type = sts[0]->last_coder_type; sts[1]->last_bwidth = sts[0]->last_bwidth; } +#ifdef FIX_1563_FIX_STEREO_SW + else if ( hCPE->element_mode == IVAS_CPE_TD ) + { + sts[1]->last_core = ACELP_CORE; + } +#endif } else if ( hCPE->element_mode == IVAS_CPE_TD && hCPE->last_element_mode == IVAS_CPE_MDCT ) {