Loading lib_dec/ivas_mct_dec.c +16 −2 Original line number Diff line number Diff line Loading @@ -87,6 +87,9 @@ ivas_error ivas_mct_dec( STnsData tnsData[MCT_MAX_BLOCKS][CPE_CHANNELS][NB_DIV]; Decoder_State **sts; float synth[CPE_CHANNELS][L_FRAME_PLUS]; #ifdef NONBE_FIX_1087_OOB_SBA_DTX_RS float *p_output_orig[2]; #endif float output_lfe_ch[L_FRAME48k]; int32_t ivas_total_brate; ivas_error error; Loading Loading @@ -149,12 +152,12 @@ ivas_error ivas_mct_dec( ivas_mct_side_bits( hMCT, st_ivas->hCPE, nCPE, st_ivas->hCPE[0]->hCoreCoder[0], st_ivas->bfi, st_ivas->hCPE[0]->hCoreCoder[0]->bit_stream, ivas_total_brate, nb_bits_metadata ); #ifdef NONBE_FIX_1087_OOB_SBA_DTX_RS /* in case of switching from an SID frame (with ACELP core) to MCT, buffer of 1200 samples is needed -> use synth[] as a temporary buffer */ /* the pointers are moved back when calling ivas_mdct_core_reconstruct() */ /* in case of switching from an SID frame (with ACELP core) to MCT, buffer of L_FRAME_PLUS samples is needed -> use synth[] as a temporary buffer */ if ( st_ivas->hCPE[0]->hCoreCoder[0]->last_core == ACELP_CORE ) { for ( n = 0; n < CPE_CHANNELS; n++ ) { p_output_orig[n] = output[n]; output[n] = synth[n]; } } Loading Loading @@ -244,6 +247,17 @@ ivas_error ivas_mct_dec( ivas_mdct_core_reconstruct( hCPE, x, synth, fUseTns[cpe_id], 1 ); #ifdef NONBE_FIX_1087_OOB_SBA_DTX_RS /* set pointers back */ if ( cpe_id == 0 && st_ivas->hCPE[0]->hCoreCoder[0]->last_core == ACELP_CORE ) { for ( n = 0; n < CPE_CHANNELS; n++ ) { output[n] = p_output_orig[n]; } } #endif /*----------------------------------------------------------------* * CoreCoder Post-processing and updates *----------------------------------------------------------------*/ Loading Loading
lib_dec/ivas_mct_dec.c +16 −2 Original line number Diff line number Diff line Loading @@ -87,6 +87,9 @@ ivas_error ivas_mct_dec( STnsData tnsData[MCT_MAX_BLOCKS][CPE_CHANNELS][NB_DIV]; Decoder_State **sts; float synth[CPE_CHANNELS][L_FRAME_PLUS]; #ifdef NONBE_FIX_1087_OOB_SBA_DTX_RS float *p_output_orig[2]; #endif float output_lfe_ch[L_FRAME48k]; int32_t ivas_total_brate; ivas_error error; Loading Loading @@ -149,12 +152,12 @@ ivas_error ivas_mct_dec( ivas_mct_side_bits( hMCT, st_ivas->hCPE, nCPE, st_ivas->hCPE[0]->hCoreCoder[0], st_ivas->bfi, st_ivas->hCPE[0]->hCoreCoder[0]->bit_stream, ivas_total_brate, nb_bits_metadata ); #ifdef NONBE_FIX_1087_OOB_SBA_DTX_RS /* in case of switching from an SID frame (with ACELP core) to MCT, buffer of 1200 samples is needed -> use synth[] as a temporary buffer */ /* the pointers are moved back when calling ivas_mdct_core_reconstruct() */ /* in case of switching from an SID frame (with ACELP core) to MCT, buffer of L_FRAME_PLUS samples is needed -> use synth[] as a temporary buffer */ if ( st_ivas->hCPE[0]->hCoreCoder[0]->last_core == ACELP_CORE ) { for ( n = 0; n < CPE_CHANNELS; n++ ) { p_output_orig[n] = output[n]; output[n] = synth[n]; } } Loading Loading @@ -244,6 +247,17 @@ ivas_error ivas_mct_dec( ivas_mdct_core_reconstruct( hCPE, x, synth, fUseTns[cpe_id], 1 ); #ifdef NONBE_FIX_1087_OOB_SBA_DTX_RS /* set pointers back */ if ( cpe_id == 0 && st_ivas->hCPE[0]->hCoreCoder[0]->last_core == ACELP_CORE ) { for ( n = 0; n < CPE_CHANNELS; n++ ) { output[n] = p_output_orig[n]; } } #endif /*----------------------------------------------------------------* * CoreCoder Post-processing and updates *----------------------------------------------------------------*/ Loading