Skip to content
Commits on Source (13)
......@@ -2527,6 +2527,10 @@ static ivas_error decodeG192(
goto cleanup;
}
#ifdef FIX_CREND_SIMPLIFY_CODE
/* Load HRTF binary file data */
if ( arg.hrtfReaderEnabled )
{
/* Read main parameters from the bitstream to set-up the decoder */
hHrtfBinary->binaural_renderer_old = hHrtfBinary->binaural_renderer;
hHrtfBinary->binaural_renderer_sec_old = hHrtfBinary->binaural_renderer_sec;
......@@ -2538,9 +2542,6 @@ static ivas_error decodeG192(
/* Placeholder for memory reallocation */
/* ... */
/* Load HRTF binary file data */
if ( arg.hrtfReaderEnabled )
{
if ( ( error = load_hrtf_from_file( hHrtfBinary, hIvasDec, arg.outputConfig, arg.output_Fs ) ) != IVAS_ERR_OK )
{
fprintf( stderr, "\nIVAS_DEC_LoadHrtfFromFile failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
......@@ -3404,6 +3405,9 @@ static ivas_error decodeVoIP(
}
#ifdef FIX_CREND_SIMPLIFY_CODE
if ( bitstreamReadDone == true )
{
/* Load HRTF binary file data */
if ( arg.hrtfReaderEnabled )
{
/* Read main parameters from the bitstream to set-up the decoder */
hHrtf->binaural_renderer_old = hHrtf->binaural_renderer;
......@@ -3416,9 +3420,6 @@ static ivas_error decodeVoIP(
/* Placeholder for memory reallocation */
/* ... */
/* Load HRTF binary file data */
if ( arg.hrtfReaderEnabled )
{
if ( ( error = load_hrtf_from_file( hHrtf, hIvasDec, arg.outputConfig, arg.output_Fs ) ) != IVAS_ERR_OK )
{
fprintf( stderr, "\nIVAS_DEC_LoadHrtfFromFile failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
......
......@@ -526,6 +526,9 @@ enum
#define L_FRAME_MAX L_FRAME48k /* Max 20ms frame size @48kHz */
#define L_FRAME_PLUS 1200 /* Max frame size (long TCX frame) */
#define L_MDCT_OVLP_MAX NS2SA( 48000, ACELP_LOOK_NS ) /* = Max mdct overlap */
#ifdef FIX_1320_STACK_CPE_DECODER
#define L_FRAME_PLUS_INTERNAL 800 /* Max frame size (long TCX frame) at maximum internal sampling rate */
#endif
#define N_TCX10_MAX 480 /* Max size of TCX10 MDCT spectrum */
#define BITS_TEC 1 /* number of bits for TEC */
#define BITS_TFA 1 /* number of bits for TTF */
......
......@@ -163,7 +163,10 @@
#ifdef FIX_CREND_SIMPLIFY_CODE
#define FIX_989_TD_REND_ROM /* Eri: Clean-up for TD renderer and completion of ROM generation tool */
#endif
#define FIX_1320_STACK_CPE_DECODER /* VA: issue 1320: Optimize the stack memory consumption in the CPE decoder */
#define NONBE_1328_FIX_NON_LINEARITY /* VA: Fix possible issue when computing bwe_exc_extended and previous frame were almost 0 */
#define FIX_1320_STACK_CPE_DECODER /* VA: issue 1320: Optimize the stack memory consumption in the CPE decoder */
#define NONBE_1302_FIX_OMASA_JBM_FLUSH /* VA: issue 1302: fix OMASA JBM bitrate switching flush in binaural output */
#define FIX_1319_STACK_SBA_DECODER /* VA: issue 1319: Optimize the definition of buffer lengths in the SBA decoder */
/* #################### End BASOP porting switches ############################ */
......
......@@ -71,7 +71,11 @@ void decoder_LPD(
{
int16_t *prm;
int16_t param_lpc[NPRM_LPC_NEW];
#ifdef FIX_1320_STACK_CPE_DECODER
float synth_buf[OLD_SYNTH_INTERNAL_DEC + L_FRAME_PLUS_INTERNAL + M];
#else
float synth_buf[OLD_SYNTH_SIZE_DEC + L_FRAME_PLUS + M];
#endif
float *synth;
float synth_bufFB[OLD_SYNTH_SIZE_DEC + L_FRAME_PLUS + M];
float *synthFB;
......@@ -124,7 +128,11 @@ void decoder_LPD(
synthFB = synth_bufFB + st->hTcxDec->old_synth_lenFB;
mvr2r( st->hTcxDec->old_synth, synth_buf, st->hTcxDec->old_synth_len );
mvr2r( st->hTcxDec->old_synthFB, synth_bufFB, st->hTcxDec->old_synth_lenFB );
#ifdef FIX_1320_STACK_CPE_DECODER
set_zero( synth, L_FRAME_PLUS_INTERNAL + M );
#else
set_zero( synth, L_FRAME_PLUS + M );
#endif
set_zero( synthFB, L_FRAME_PLUS + M );
......
......@@ -75,7 +75,12 @@ ivas_error ivas_core_dec(
float synth[CPE_CHANNELS][L_FRAME48k];
float tmp_buffer[L_FRAME48k];
int16_t tmps, incr;
#ifdef FIX_1320_STACK_CPE_DECODER
float *bwe_exc_extended[CPE_CHANNELS] = { NULL, NULL };
int16_t flag_bwe_bws;
#else
float bwe_exc_extended[CPE_CHANNELS][L_FRAME32k + NL_BUFF_OFFSET];
#endif
float voice_factors[CPE_CHANNELS][NB_SUBFR16k];
int16_t core_switching_flag[CPE_CHANNELS];
float old_syn_12k8_16k[CPE_CHANNELS][L_FRAME16k];
......@@ -200,6 +205,9 @@ ivas_error ivas_core_dec(
set_f( voice_factors[n], 0.f, NB_SUBFR16k );
set_f( hb_synth[n], 0.0f, L_FRAME48k );
#ifdef FIX_1320_STACK_CPE_DECODER
bwe_exc_extended[n] = hb_synth[n]; /* note: reuse the buffer */
#endif
/*------------------------------------------------------------------*
* Decision matrix (selection of technologies)
......@@ -510,6 +518,10 @@ ivas_error ivas_core_dec(
* SWB(FB) BWE decoding
*---------------------------------------------------------------------*/
#ifdef FIX_1320_STACK_CPE_DECODER
flag_bwe_bws = ( output_Fs >= 32000 && st->core == ACELP_CORE && st->bwidth > NB && st->bws_cnt > 0 && st->bfi == 0 );
#endif
if ( st->extl == SWB_TBE || st->extl == FB_TBE || ( st->coder_type != AUDIO && st->coder_type != INACTIVE && st->core_brate >= SID_2k40 && st->core == ACELP_CORE && !st->con_tcx && output_Fs >= 32000 && st->bwidth > NB && st->bws_cnt > 0 ) )
{
/* SWB TBE decoder */
......@@ -521,12 +533,24 @@ ivas_error ivas_core_dec(
fb_tbe_dec( st, tmp_buffer /*fb_exc*/, hb_synth[n], tmp_buffer /*fb_synth_ref*/, output_frame );
}
}
#ifdef FIX_1320_STACK_CPE_DECODER
else if ( st->extl == SWB_BWE || st->extl == FB_BWE || flag_bwe_bws )
#else
else if ( st->extl == SWB_BWE || st->extl == FB_BWE || ( output_Fs >= 32000 && st->core == ACELP_CORE && st->bwidth > NB && st->bws_cnt > 0 && !st->ppp_mode_dec && !( st->nelp_mode_dec == 1 && st->bfi == 1 ) ) )
#endif
{
/* SWB BWE decoder */
swb_bwe_dec( st, output[n], synth[n], hb_synth[n], use_cldfb_for_dft, output_frame );
}
#ifdef FIX_1320_STACK_CPE_DECODER
if ( ( st->core == ACELP_CORE && ( st->extl == -1 || st->extl == SWB_CNG ) ) && flag_bwe_bws == 0 )
{
set_f( hb_synth[n], 0.0f, L_FRAME48k );
}
#endif
/*---------------------------------------------------------------------*
* FEC - recovery after lost HQ core (smoothing of the BWE component)
*---------------------------------------------------------------------*/
......@@ -560,6 +584,7 @@ ivas_error ivas_core_dec(
stereo_icBWE_dec( hCPE, hb_synth[0], hb_synth[1], tmp_buffer /*fb_synth_ref*/, voice_factors[0], output_frame );
}
#ifndef FIX_1320_STACK_CPE_DECODER
if ( st->element_mode == EVS_MONO )
{
/*----------------------------------------------------------------*
......@@ -575,7 +600,7 @@ ivas_error ivas_core_dec(
st->hPlcInfo->Pitch = 0;
}
}
#endif
/*----------------------------------------------------------------*
* Transition and synchronization of BWE components
*----------------------------------------------------------------*/
......@@ -590,6 +615,7 @@ ivas_error ivas_core_dec(
}
else
{
#ifndef FIX_1320_STACK_CPE_DECODER
if ( st->extl == SWB_BWE_HIGHRATE || st->extl == FB_BWE_HIGHRATE )
{
/* HR SWB BWE on top of ACELP@16kHz */
......@@ -597,9 +623,12 @@ ivas_error ivas_core_dec(
}
else
{
#endif
/* TBE on top of ACELP@16kHz */
tmps = NS2SA( output_Fs, MAX_DELAY_TBE_NS - DELAY_SWB_TBE_16k_NS );
#ifndef FIX_1320_STACK_CPE_DECODER
}
#endif
}
/* Smooth transitions when switching between different technologies */
......@@ -733,11 +762,9 @@ ivas_error ivas_core_dec(
} /* n_channels loop */
#ifdef DEBUG_MODE_INFO
output_debug_mode_info_dec( sts, n_channels, output_frame, pitch_buf );
#endif
pop_wmops();
return error;
}
......
......@@ -54,6 +54,10 @@ static void read_stereo_mode_and_bwidth( CPE_DEC_HANDLE hCPE, const Decoder_Stru
static void stereo_mode_combined_format_dec( const Decoder_Struct *st_ivas, CPE_DEC_HANDLE hCPE );
#ifdef FIX_1320_STACK_CPE_DECODER
static ivas_error stereo_dft_dec_main( CPE_DEC_HANDLE hCPE, const int32_t ivas_total_brate, const int16_t n_channels, float *p_res_buf, float *output[], float outputHB[][L_FRAME48k], const int16_t output_frame );
#endif
/*--------------------------------------------------------------------------*
* ivas_cpe_dec()
......@@ -74,7 +78,11 @@ ivas_error ivas_cpe_dec(
int16_t last_bwidth;
int16_t tdm_ratio_idx;
float outputHB[CPE_CHANNELS][L_FRAME48k]; /* 'float' buffer for output HB synthesis, both channels */
#ifdef FIX_1320_STACK_CPE_DECODER
float *res_buf = NULL;
#else
float res_buf[STEREO_DFT_N_8k];
#endif
CPE_DEC_HANDLE hCPE;
STEREO_DFT_CONFIG_DATA_HANDLE hConfigDft;
Decoder_State **sts;
......@@ -265,6 +273,11 @@ ivas_error ivas_cpe_dec(
}
else
{
#ifdef FIX_1320_STACK_CPE_DECODER
res_buf = outputHB[0]; /* note: temporarily reused buffer */
#endif
if ( st_ivas->ivas_format == MASA_FORMAT || st_ivas->ivas_format == MASA_ISM_FORMAT )
{
nb_bits -= nb_bits_metadata;
......@@ -447,6 +460,12 @@ ivas_error ivas_cpe_dec(
if ( hCPE->element_mode == IVAS_CPE_DFT && !( hCPE->nchan_out == 1 && hConfigDft->res_cod_mode == STEREO_DFT_RES_COD_OFF ) )
{
#ifdef FIX_1320_STACK_CPE_DECODER
if ( ( error = stereo_dft_dec_main( hCPE, ivas_total_brate, n_channels, res_buf, output, outputHB, output_frame ) ) != IVAS_ERR_OK )
{
return error;
}
#else
float DFT[CPE_CHANNELS][STEREO_DFT_BUF_MAX];
/* core decoder */
......@@ -481,6 +500,7 @@ ivas_error ivas_cpe_dec(
{
stereo_dft_dec_synthesize( hCPE, DFT, n, output[n], output_frame );
}
#endif
}
else if ( hCPE->element_mode == IVAS_CPE_TD )
{
......@@ -605,6 +625,74 @@ ivas_error ivas_cpe_dec(
return error;
}
#ifdef FIX_1320_STACK_CPE_DECODER
/*-------------------------------------------------------------------------
* stereo_dft_dec_main()
*
* DFT decoder main function
*-------------------------------------------------------------------------*/
static ivas_error stereo_dft_dec_main(
CPE_DEC_HANDLE hCPE, /* i/o: CPE decoder structure */
const int32_t ivas_total_brate, /* i : IVAS total bitrate */
const int16_t n_channels, /* i : number of channels to be decoded */
float *p_res_buf, /* i : DFT stereo residual S signal */
float *output[], /* o : output synthesis signal */
float outputHB[][L_FRAME48k], /* o : output HB synthesis signal */
const int16_t output_frame /* i : output frame length per channel */
)
{
float DFT[CPE_CHANNELS][STEREO_DFT_BUF_MAX];
int16_t n;
Decoder_State *st0;
ivas_error error;
st0 = hCPE->hCoreCoder[0];
/* copy from temporary buffer */
if ( hCPE->hStereoDft->res_cod_band_max > 0 && !st0->bfi )
{
mvr2r( p_res_buf, DFT[1], STEREO_DFT_N_8k );
}
/* core decoder */
if ( ( error = ivas_core_dec( NULL, NULL, hCPE, NULL, n_channels, output, outputHB, DFT, 0 ) ) != IVAS_ERR_OK )
{
return error;
}
/* DFT Stereo residual decoding */
if ( hCPE->hStereoDft->res_cod_band_max > 0 && !st0->bfi )
{
stereo_dft_dec_res( hCPE, DFT[1] /*res_buf*/, output[1] );
stereo_dft_dec_analyze( hCPE, output[1], DFT, 1, L_FRAME8k, output_frame, DFT_STEREO_DEC_ANA_LB, 0, 0 );
}
/* DFT stereo CNG */
stereo_dtf_cng( hCPE, ivas_total_brate, DFT, output_frame );
/* decoding */
if ( hCPE->nchan_out == 1 )
{
stereo_dft_unify_dmx( hCPE->hStereoDft, st0, DFT, hCPE->input_mem[1], hCPE->hStereoCng->prev_sid_nodata );
}
else
{
stereo_dft_dec( hCPE->hStereoDft, st0, DFT, hCPE->input_mem[1], hCPE->hStereoCng, 0, 0, 0, 0, 0, 0, MAX_PARAM_SPATIAL_SUBFRAMES );
}
/* synthesis iFFT */
for ( n = 0; n < hCPE->nchan_out; n++ )
{
stereo_dft_dec_synthesize( hCPE, DFT, n, output[n], output_frame );
}
return IVAS_ERR_OK;
}
#endif
/*-------------------------------------------------------------------------
* create_cpe_dec()
......
......@@ -968,6 +968,14 @@ static ivas_error ivas_read_format(
if ( st_ivas->sba_order == 0 )
{
st_ivas->ivas_format = SBA_ISM_FORMAT;
#ifdef FIX_CREND_SIMPLIFY_CODE
/* read the real Ambisonic order when the above bits are used to signal OSBA format */
if ( ivas_total_brate < IVAS_24k4 )
{
st_ivas->sba_order = st_ivas->bit_stream[*num_bits_read + 2 + SBA_PLANAR_BITS + SBA_ORDER_BITS];
st_ivas->sba_order += 2 * st_ivas->bit_stream[*num_bits_read + 1 + SBA_PLANAR_BITS + SBA_ORDER_BITS];
}
#endif
}
}
( *num_bits_read )++;
......@@ -1207,6 +1215,7 @@ ivas_error ivas_init_decoder_front(
}
}
#ifndef FIX_CREND_SIMPLIFY_CODE
/*-------------------------------------------------------------------*
* Allocate HRTF binary handle
*--------------------------------------------------------------------*/
......@@ -1241,7 +1250,7 @@ ivas_error ivas_init_decoder_front(
return error;
}
}
#endif
/*-------------------------------------------------------------------*
* Allocate and initialize Binaural Renderer configuration handle
*--------------------------------------------------------------------*/
......
......@@ -1646,17 +1646,54 @@ ivas_error ivas_jbm_dec_flush_renderer(
if ( ism_mode_old == ISM_MASA_MODE_DISC )
{
float *tc_local[MAX_NUM_OBJECTS];
#ifdef NONBE_1302_FIX_OMASA_JBM_FLUSH
int16_t last_dirac_md_idx;
uint16_t nSamplesAvailableNext;
ISM_MODE ism_mode_orig;
RENDERER_TYPE renderer_type_orig;
int32_t ivas_total_brate;
#endif
/* copy from ISM delay buffer to the correct place in TCs */
for ( ch_idx = 0; ch_idx < st_ivas->nchan_ism; ch_idx++ )
{
tc_local[ch_idx] = &st_ivas->hTcBuffer->tc[ch_idx + 2][hTcBuffer->n_samples_rendered];
mvr2r( st_ivas->hMasaIsmData->delayBuffer[ch_idx], tc_local[ch_idx], st_ivas->hMasaIsmData->delayBuffer_size );
}
#ifdef NONBE_1302_FIX_OMASA_JBM_FLUSH
/* to render flushed samples, use configuration from the last received frame */
ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate;
renderer_type_orig = st_ivas->renderer_type;
ism_mode_orig = st_ivas->ism_mode;
st_ivas->ism_mode = ism_mode_old;
st_ivas->renderer_type = renderer_type_old;
st_ivas->hDecoderConfig->ivas_total_brate = st_ivas->hDecoderConfig->last_ivas_total_brate;
last_dirac_md_idx = st_ivas->hSpatParamRendCom->render_to_md_map[st_ivas->hSpatParamRendCom->slots_rendered - 1];
/* transfer adapted sf info from hTcBuffer to DirAC */
st_ivas->hSpatParamRendCom->nb_subframes = 1;
st_ivas->hSpatParamRendCom->subframes_rendered = 0;
st_ivas->hSpatParamRendCom->subframe_nbslots[0] = JBM_CLDFB_SLOTS_IN_SUBFRAME;
st_ivas->hSpatParamRendCom->slots_rendered = 0;
st_ivas->hSpatParamRendCom->num_slots = JBM_CLDFB_SLOTS_IN_SUBFRAME;
set_s( st_ivas->hSpatParamRendCom->render_to_md_map, last_dirac_md_idx, n_slots_still_available );
if ( ( error = ivas_omasa_dirac_td_binaural_jbm( st_ivas, (uint16_t) hTcBuffer->n_samples_granularity, nSamplesRendered, &nSamplesAvailableNext, CPE_CHANNELS, p_output ) ) != IVAS_ERR_OK )
{
return error;
}
/* restore original configuration */
st_ivas->ism_mode = ism_mode_orig;
st_ivas->renderer_type = renderer_type_orig;
st_ivas->hDecoderConfig->ivas_total_brate = ivas_total_brate;
#else
if ( ( error = ivas_td_binaural_renderer_sf( st_ivas, p_output, hTcBuffer->n_samples_granularity ) ) != IVAS_ERR_OK )
{
return error;
}
#endif
}
}
else if ( st_ivas->ivas_format == SBA_ISM_FORMAT )
......@@ -1666,12 +1703,14 @@ ivas_error ivas_jbm_dec_flush_renderer(
int16_t last_dirac_md_idx;
uint16_t nSamplesAvailableNext;
/* to render flushed samples, use configuration from the last received frame */
last_spar_md_idx = st_ivas->hSpar->render_to_md_map[st_ivas->hSpar->slots_rendered - 1];
last_dirac_md_idx = st_ivas->hSpatParamRendCom->render_to_md_map[st_ivas->hSpatParamRendCom->slots_rendered - 1];
#ifdef DEBUGGING
assert( ism_mode_old == ISM_SBA_MODE_DISC && st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV );
#endif
/* copy from ISM delay buffer to the correct place in tcs */
/* copy from ISM delay buffer to the correct place in TCs */
for ( ch_idx = 0; ch_idx < st_ivas->nchan_ism; ch_idx++ )
{
tc_local[ch_idx] = &st_ivas->hTcBuffer->tc[ch_idx + 2][hTcBuffer->n_samples_rendered];
......@@ -1699,6 +1738,8 @@ ivas_error ivas_jbm_dec_flush_renderer(
{
return error;
}
/* restore original configuration */
}
else
{
......
......@@ -154,9 +154,24 @@ ivas_error ivas_masa_decode(
if ( ivas_format == MASA_FORMAT )
{
/* re-read the number of objects, needed in case of bad frame */
#ifdef FIX_CREND_SIMPLIFY_CODE
ch = 5 - ( st_ivas->bit_stream[( ivas_total_brate / FRAMES_PER_SEC ) - 3] + 2 * st_ivas->bit_stream[( ivas_total_brate / FRAMES_PER_SEC ) - 2] );
if ( ch == 5 )
{
ch = 0;
}
st_ivas->nchan_ism = ch;
#else
st_ivas->nchan_ism = 5 - ( st_ivas->bit_stream[( ivas_total_brate / FRAMES_PER_SEC ) - 3] + 2 * st_ivas->bit_stream[( ivas_total_brate / FRAMES_PER_SEC ) - 2] );
#endif
}
#ifdef FIX_CREND_SIMPLIFY_CODE
if ( ivas_format == MASA_FORMAT && st_ivas->nchan_ism > 0 )
#else
if ( ivas_format == MASA_FORMAT && st_ivas->nchan_ism != 5 )
#endif
{
/* there was OMASA in the input */
hMasa->config.input_ivas_format = MASA_ISM_FORMAT;
......
......@@ -804,7 +804,11 @@ void ivas_mdct_core_reconstruct(
int16_t L_frame[CPE_CHANNELS], L_frameTCX[CPE_CHANNELS], nSubframes[CPE_CHANNELS];
int16_t L_frame_global[CPE_CHANNELS], L_frame_globalTCX[CPE_CHANNELS];
/* Synth */
#ifdef FIX_1320_STACK_CPE_DECODER
float synth_buf[OLD_SYNTH_INTERNAL_DEC + L_FRAME_PLUS_INTERNAL + M];
#else
float synth_buf[OLD_SYNTH_SIZE_DEC + L_FRAME_PLUS + M];
#endif
float *synth;
float synth_bufFB[OLD_SYNTH_SIZE_DEC + L_FRAME_PLUS + M];
float *synthFB;
......@@ -841,7 +845,11 @@ void ivas_mdct_core_reconstruct(
synthFB = synth_bufFB + st->hTcxDec->old_synth_lenFB;
mvr2r( st->hTcxDec->old_synth, synth_buf, st->hTcxDec->old_synth_len );
mvr2r( st->hTcxDec->old_synthFB, synth_bufFB, st->hTcxDec->old_synth_lenFB );
#ifdef FIX_1320_STACK_CPE_DECODER
set_zero( synth, L_FRAME_PLUS_INTERNAL + M );
#else
set_zero( synth, L_FRAME_PLUS + M );
#endif
set_zero( synthFB, L_FRAME_PLUS + M );
if ( st->core != ACELP_CORE )
......
......@@ -156,7 +156,9 @@ void stereo_mdct_core_dec(
float *x[CPE_CHANNELS][NB_DIV];
/*needed to allocate N_MAX to prevent stereo switching crash */
#ifndef FIX_1320_STACK_CPE_DECODER
float x_0_buf[CPE_CHANNELS][N_MAX];
#endif
float *x_0[CPE_CHANNELS][NB_DIV];
/* Concealment */
......@@ -202,9 +204,15 @@ void stereo_mdct_core_dec(
x[ch][0] = &signal_out_tmp[ch][0];
x[ch][1] = &signal_out_tmp[ch][0] + L_FRAME_PLUS / 2;
#ifdef FIX_1320_STACK_CPE_DECODER
set_zero( signal_outFB_tmp[ch], N_MAX ); /* length of N_MAX is needed to prevent stereo switching crash -> reuse buffer signal_outFB_tmp[][] */
x_0[ch][0] = &signal_outFB_tmp[ch][0];
x_0[ch][1] = &signal_outFB_tmp[ch][0] + L_FRAME48k / 2;
#else
set_zero( x_0_buf[ch], N_MAX );
x_0[ch][0] = &x_0_buf[ch][0];
x_0[ch][1] = &x_0_buf[ch][0] + L_FRAME48k / 2;
#endif
nTnsBitsTCX10[ch][0] = 0;
nTnsBitsTCX10[ch][1] = 0;
......
......@@ -179,7 +179,11 @@ void stereo_tcx_core_dec(
Word16 Aind[M + 1], lspind[M];
/*Synth*/
#ifdef FIX_1320_STACK_CPE_DECODER
float synth_buf[OLD_SYNTH_INTERNAL_DEC + L_FRAME_PLUS_INTERNAL + M];
#else
float synth_buf[OLD_SYNTH_SIZE_DEC + L_FRAME_PLUS + M];
#endif
float *synth;
float synth_bufFB[OLD_SYNTH_SIZE_DEC + L_FRAME_PLUS + M];
float *synthFB;
......@@ -246,7 +250,11 @@ void stereo_tcx_core_dec(
synthFB = synth_bufFB + hTcxDec->old_synth_lenFB;
mvr2r( hTcxDec->old_synth, synth_buf, hTcxDec->old_synth_len );
mvr2r( hTcxDec->old_synthFB, synth_bufFB, hTcxDec->old_synth_lenFB );
#ifdef FIX_1320_STACK_CPE_DECODER
set_zero( synth, L_FRAME_PLUS_INTERNAL + M );
#else
set_zero( synth, L_FRAME_PLUS + M );
#endif
set_zero( synthFB, L_FRAME_PLUS + M );
#ifdef DEBUG_MODE_INFO_PLC
......