Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -194,6 +194,7 @@ #define FIX_1053_REVERB_RECONFIGURATION #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ #define FIX_1113_EXTREND_ISAR /* FhG: issue 1113: fix external renderer asserts for FOA/HOA2 and CLDFB config */ #define NONBE_1203_MDCT2DFT_SWITCHING /* VA: issue 1203: fix severe artifacts during MDCT to DFT stereo switching when MDCT ITD is not used */ /* #################### End BASOP porting switches ############################ */ Loading lib_enc/ivas_stereo_dft_td_itd.c +14 −0 Original line number Diff line number Diff line Loading @@ -399,6 +399,9 @@ void stereo_td_itd_mdct_stereo( float bin_nrgR[STEREO_DFT_N_32k_ENC]; float DFT[CPE_CHANNELS][STEREO_DFT_N_MAX_ENC]; STEREO_MDCT_ENC_DATA_HANDLE hStereoMdct; #ifdef NONBE_1203_MDCT2DFT_SWITCHING int16_t dft_ovl; #endif if ( hCPE->hStereoMdct != NULL && hCPE->hStereoMdct->hItd != NULL ) { Loading Loading @@ -427,6 +430,17 @@ void stereo_td_itd_mdct_stereo( stereo_td_itd( hStereoMdct->hItd, NULL, 1, hStereoMdct->hDft_ana->dft_ovl, hCPE->hCoreCoder, input_frame, hCPE->input_mem ); #endif } #ifdef NONBE_1203_MDCT2DFT_SWITCHING else if ( hCPE->input_mem[0] != NULL ) { dft_ovl = STEREO_DFT_OVL_MAX * input_frame / L_FRAME48k; for ( i = 0; i < CPE_CHANNELS; i++ ) { mvr2r( hCPE->hCoreCoder[i]->input + input_frame - dft_ovl, hCPE->input_mem[i], dft_ovl ); } } #endif return; } lib_enc/ivas_stereo_switching_enc.c +3 −0 Original line number Diff line number Diff line Loading @@ -625,6 +625,9 @@ void stereo_switching_enc( dft_ovl = STEREO_DFT_OVL_MAX * input_frame / L_FRAME48k; /* update DFT analysis overlap memory */ #ifdef NONBE_1203_MDCT2DFT_SWITCHING /* note: in MDCT stereo, the update is done in stereo_td_itd_mdct_stereo() */ #endif if ( hCPE->element_mode > IVAS_CPE_DFT && hCPE->input_mem[0] != NULL && hCPE->element_mode != IVAS_CPE_MDCT ) { for ( n = 0; n < CPE_CHANNELS; n++ ) Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -194,6 +194,7 @@ #define FIX_1053_REVERB_RECONFIGURATION #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ #define FIX_1113_EXTREND_ISAR /* FhG: issue 1113: fix external renderer asserts for FOA/HOA2 and CLDFB config */ #define NONBE_1203_MDCT2DFT_SWITCHING /* VA: issue 1203: fix severe artifacts during MDCT to DFT stereo switching when MDCT ITD is not used */ /* #################### End BASOP porting switches ############################ */ Loading
lib_enc/ivas_stereo_dft_td_itd.c +14 −0 Original line number Diff line number Diff line Loading @@ -399,6 +399,9 @@ void stereo_td_itd_mdct_stereo( float bin_nrgR[STEREO_DFT_N_32k_ENC]; float DFT[CPE_CHANNELS][STEREO_DFT_N_MAX_ENC]; STEREO_MDCT_ENC_DATA_HANDLE hStereoMdct; #ifdef NONBE_1203_MDCT2DFT_SWITCHING int16_t dft_ovl; #endif if ( hCPE->hStereoMdct != NULL && hCPE->hStereoMdct->hItd != NULL ) { Loading Loading @@ -427,6 +430,17 @@ void stereo_td_itd_mdct_stereo( stereo_td_itd( hStereoMdct->hItd, NULL, 1, hStereoMdct->hDft_ana->dft_ovl, hCPE->hCoreCoder, input_frame, hCPE->input_mem ); #endif } #ifdef NONBE_1203_MDCT2DFT_SWITCHING else if ( hCPE->input_mem[0] != NULL ) { dft_ovl = STEREO_DFT_OVL_MAX * input_frame / L_FRAME48k; for ( i = 0; i < CPE_CHANNELS; i++ ) { mvr2r( hCPE->hCoreCoder[i]->input + input_frame - dft_ovl, hCPE->input_mem[i], dft_ovl ); } } #endif return; }
lib_enc/ivas_stereo_switching_enc.c +3 −0 Original line number Diff line number Diff line Loading @@ -625,6 +625,9 @@ void stereo_switching_enc( dft_ovl = STEREO_DFT_OVL_MAX * input_frame / L_FRAME48k; /* update DFT analysis overlap memory */ #ifdef NONBE_1203_MDCT2DFT_SWITCHING /* note: in MDCT stereo, the update is done in stereo_td_itd_mdct_stereo() */ #endif if ( hCPE->element_mode > IVAS_CPE_DFT && hCPE->input_mem[0] != NULL && hCPE->element_mode != IVAS_CPE_MDCT ) { for ( n = 0; n < CPE_CHANNELS; n++ ) Loading