Loading lib_dec/ivas_stereo_switching_dec.c +7 −1 Original line number Diff line number Diff line Loading @@ -1471,20 +1471,24 @@ void stereo_switching_dec( { sts[1]->last_core = sts[0]->last_core; sts[1]->last_coder_type = sts[0]->last_coder_type; #ifndef FIX_221_BR_SWITCH_STEREO sts[1]->hTcxCfg->last_aldo = sts[0]->hTcxCfg->last_aldo; sts[1]->hTcxCfg->tcx_curr_overlap_mode = sts[0]->hTcxCfg->tcx_curr_overlap_mode; #endif mvr2r( sts[0]->hHQ_core->old_out, sts[1]->hHQ_core->old_out, L_FRAME48k ); 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 ); /* Todo: apply panning to buffers instead of simply using dmx in left and right channel */ #ifndef FIX_221_BR_SWITCH_STEREO sts[1]->fscale = sts[0]->fscale; sts[1]->hTcxCfg->tcx_mdct_window_length = sts[0]->hTcxCfg->tcx_mdct_window_length; sts[1]->pit_res_max = sts[0]->pit_res_max; sts[1]->pit_res_max_past = sts[0]->pit_res_max_past; sts[1]->hTcxDec->L_frameTCX = sts[0]->hTcxDec->L_frameTCX; sts[1]->hTcxDec->conceal_eof_gain = sts[0]->hTcxDec->conceal_eof_gain; #endif } } else if ( hCPE->element_mode == IVAS_CPE_TD && hCPE->last_element_mode == IVAS_CPE_MDCT ) Loading @@ -1492,8 +1496,10 @@ void stereo_switching_dec( set_f( sts[0]->old_exc, 0.0f, L_EXC_MEM_DEC ); set_f( sts[1]->old_exc, 0.0f, L_EXC_MEM_DEC ); } #ifdef FIX_221_BR_SWITCH_STEREO else if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->last_element_mode == IVAS_CPE_TD ) /* TD/DFT -> MDCT stereo switching (there is no TCX in the TD stereo secondary channel, or DFT stereo) */ if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->last_element_mode != IVAS_CPE_MDCT ) { sts[1]->hTcxCfg->last_aldo = sts[0]->hTcxCfg->last_aldo; sts[1]->hTcxCfg->tcx_curr_overlap_mode = sts[0]->hTcxCfg->tcx_curr_overlap_mode; Loading lib_enc/ivas_stereo_switching_enc.c +6 −1 Original line number Diff line number Diff line Loading @@ -818,8 +818,10 @@ void stereo_switching_enc( sts[1]->last_core = sts[0]->last_core; sts[1]->last_coder_type = sts[0]->last_coder_type; sts[1]->last_bwidth = sts[0]->last_bwidth; #ifndef FIX_221_BR_SWITCH_STEREO sts[1]->hTcxCfg->last_aldo = sts[0]->hTcxCfg->last_aldo; sts[1]->hTcxCfg->tcx_curr_overlap_mode = sts[0]->hTcxCfg->tcx_curr_overlap_mode; #endif } } else if ( hCPE->element_mode == IVAS_CPE_TD && hCPE->last_element_mode == IVAS_CPE_MDCT ) Loading @@ -827,12 +829,15 @@ void stereo_switching_enc( set_f( sts[0]->hLPDmem->old_exc, 0.0f, L_EXC_MEM ); set_f( sts[1]->hLPDmem->old_exc, 0.0f, L_EXC_MEM ); } #ifdef FIX_221_BR_SWITCH_STEREO else if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->last_element_mode == IVAS_CPE_TD ) /* TD/DFT -> MDCT stereo switching (there is no TCX in the TD stereo secondary channel, or DFT stereo) */ if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->last_element_mode != IVAS_CPE_MDCT ) { sts[1]->hTcxCfg->last_aldo = sts[0]->hTcxCfg->last_aldo; sts[1]->hTcxCfg->tcx_curr_overlap_mode = sts[0]->hTcxCfg->tcx_curr_overlap_mode; } #endif return; } Loading
lib_dec/ivas_stereo_switching_dec.c +7 −1 Original line number Diff line number Diff line Loading @@ -1471,20 +1471,24 @@ void stereo_switching_dec( { sts[1]->last_core = sts[0]->last_core; sts[1]->last_coder_type = sts[0]->last_coder_type; #ifndef FIX_221_BR_SWITCH_STEREO sts[1]->hTcxCfg->last_aldo = sts[0]->hTcxCfg->last_aldo; sts[1]->hTcxCfg->tcx_curr_overlap_mode = sts[0]->hTcxCfg->tcx_curr_overlap_mode; #endif mvr2r( sts[0]->hHQ_core->old_out, sts[1]->hHQ_core->old_out, L_FRAME48k ); 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 ); /* Todo: apply panning to buffers instead of simply using dmx in left and right channel */ #ifndef FIX_221_BR_SWITCH_STEREO sts[1]->fscale = sts[0]->fscale; sts[1]->hTcxCfg->tcx_mdct_window_length = sts[0]->hTcxCfg->tcx_mdct_window_length; sts[1]->pit_res_max = sts[0]->pit_res_max; sts[1]->pit_res_max_past = sts[0]->pit_res_max_past; sts[1]->hTcxDec->L_frameTCX = sts[0]->hTcxDec->L_frameTCX; sts[1]->hTcxDec->conceal_eof_gain = sts[0]->hTcxDec->conceal_eof_gain; #endif } } else if ( hCPE->element_mode == IVAS_CPE_TD && hCPE->last_element_mode == IVAS_CPE_MDCT ) Loading @@ -1492,8 +1496,10 @@ void stereo_switching_dec( set_f( sts[0]->old_exc, 0.0f, L_EXC_MEM_DEC ); set_f( sts[1]->old_exc, 0.0f, L_EXC_MEM_DEC ); } #ifdef FIX_221_BR_SWITCH_STEREO else if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->last_element_mode == IVAS_CPE_TD ) /* TD/DFT -> MDCT stereo switching (there is no TCX in the TD stereo secondary channel, or DFT stereo) */ if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->last_element_mode != IVAS_CPE_MDCT ) { sts[1]->hTcxCfg->last_aldo = sts[0]->hTcxCfg->last_aldo; sts[1]->hTcxCfg->tcx_curr_overlap_mode = sts[0]->hTcxCfg->tcx_curr_overlap_mode; Loading
lib_enc/ivas_stereo_switching_enc.c +6 −1 Original line number Diff line number Diff line Loading @@ -818,8 +818,10 @@ void stereo_switching_enc( sts[1]->last_core = sts[0]->last_core; sts[1]->last_coder_type = sts[0]->last_coder_type; sts[1]->last_bwidth = sts[0]->last_bwidth; #ifndef FIX_221_BR_SWITCH_STEREO sts[1]->hTcxCfg->last_aldo = sts[0]->hTcxCfg->last_aldo; sts[1]->hTcxCfg->tcx_curr_overlap_mode = sts[0]->hTcxCfg->tcx_curr_overlap_mode; #endif } } else if ( hCPE->element_mode == IVAS_CPE_TD && hCPE->last_element_mode == IVAS_CPE_MDCT ) Loading @@ -827,12 +829,15 @@ void stereo_switching_enc( set_f( sts[0]->hLPDmem->old_exc, 0.0f, L_EXC_MEM ); set_f( sts[1]->hLPDmem->old_exc, 0.0f, L_EXC_MEM ); } #ifdef FIX_221_BR_SWITCH_STEREO else if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->last_element_mode == IVAS_CPE_TD ) /* TD/DFT -> MDCT stereo switching (there is no TCX in the TD stereo secondary channel, or DFT stereo) */ if ( hCPE->element_mode == IVAS_CPE_MDCT && hCPE->last_element_mode != IVAS_CPE_MDCT ) { sts[1]->hTcxCfg->last_aldo = sts[0]->hTcxCfg->last_aldo; sts[1]->hTcxCfg->tcx_curr_overlap_mode = sts[0]->hTcxCfg->tcx_curr_overlap_mode; } #endif return; }