Loading lib_dec/ivas_stereo_mdct_stereo_dec.c +18 −0 Original line number Diff line number Diff line Loading @@ -565,12 +565,30 @@ void updateBuffersForDmxMdctStereo( sts[0] = hCPE->hCoreCoder[0]; sts[1] = hCPE->hCoreCoder[1]; #ifdef NONBE_FIX_MDCT_STEREO_DTX_MONO_OUT if ( is_DTXrate( hCPE->last_element_brate ) ) { /* synch output buffers for inactive frames, but not for transition frames */ mvr2r( output[0], output[1], output_frame ); mvr2r( synth[0], synth[1], output_frame ); /* synchronize previous synthesis buffer in first active frame to avoid discontinuities in TCX LTP filtering (performed in synchro_synthesis()) */ if ( !is_DTXrate( hCPE->element_brate ) ) { int16_t delay_comp_TD; delay_comp_TD = NS2SA( sts[0]->output_Fs, IVAS_DEC_DELAY_NS - DELAY_CLDFB_NS ); mvr2r( sts[0]->prev_synth_buffer, sts[1]->prev_synth_buffer, delay_comp_TD ); } } #else /* synch buffers for inactive frames, but not for transition frames */ if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) { mvr2r( output[0], output[1], output_frame ); mvr2r( synth[0], synth[1], output_frame ); } #endif if ( hCPE->element_brate == IVAS_SID_5k2 && hCPE->last_element_brate > IVAS_SID_5k2 ) { Loading lib_dec/ivas_stereo_switching_dec.c +0 −7 Original line number Diff line number Diff line Loading @@ -1302,13 +1302,6 @@ void synchro_synthesis( } } #ifdef NONBE_FIX_MDCT_STEREO_DTX_MONO_OUT if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->nchan_out == 1 && !is_DTXrate( hCPE->element_brate ) && is_DTXrate( hCPE->last_element_brate ) ) { mvr2r( sts[0]->prev_synth_buffer, sts[1]->prev_synth_buffer, delay_comp_DFT + delay_diff ); } #endif nChannels = ( hCPE->element_mode == IVAS_CPE_MDCT ) ? 2 : hCPE->nchan_out; for ( n = 0; n < nChannels; n++ ) { Loading Loading
lib_dec/ivas_stereo_mdct_stereo_dec.c +18 −0 Original line number Diff line number Diff line Loading @@ -565,12 +565,30 @@ void updateBuffersForDmxMdctStereo( sts[0] = hCPE->hCoreCoder[0]; sts[1] = hCPE->hCoreCoder[1]; #ifdef NONBE_FIX_MDCT_STEREO_DTX_MONO_OUT if ( is_DTXrate( hCPE->last_element_brate ) ) { /* synch output buffers for inactive frames, but not for transition frames */ mvr2r( output[0], output[1], output_frame ); mvr2r( synth[0], synth[1], output_frame ); /* synchronize previous synthesis buffer in first active frame to avoid discontinuities in TCX LTP filtering (performed in synchro_synthesis()) */ if ( !is_DTXrate( hCPE->element_brate ) ) { int16_t delay_comp_TD; delay_comp_TD = NS2SA( sts[0]->output_Fs, IVAS_DEC_DELAY_NS - DELAY_CLDFB_NS ); mvr2r( sts[0]->prev_synth_buffer, sts[1]->prev_synth_buffer, delay_comp_TD ); } } #else /* synch buffers for inactive frames, but not for transition frames */ if ( hCPE->last_element_brate <= IVAS_SID_5k2 ) { mvr2r( output[0], output[1], output_frame ); mvr2r( synth[0], synth[1], output_frame ); } #endif if ( hCPE->element_brate == IVAS_SID_5k2 && hCPE->last_element_brate > IVAS_SID_5k2 ) { Loading
lib_dec/ivas_stereo_switching_dec.c +0 −7 Original line number Diff line number Diff line Loading @@ -1302,13 +1302,6 @@ void synchro_synthesis( } } #ifdef NONBE_FIX_MDCT_STEREO_DTX_MONO_OUT if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->nchan_out == 1 && !is_DTXrate( hCPE->element_brate ) && is_DTXrate( hCPE->last_element_brate ) ) { mvr2r( sts[0]->prev_synth_buffer, sts[1]->prev_synth_buffer, delay_comp_DFT + delay_diff ); } #endif nChannels = ( hCPE->element_mode == IVAS_CPE_MDCT ) ? 2 : hCPE->nchan_out; for ( n = 0; n < nChannels; n++ ) { Loading