diff --git a/lib_com/options.h b/lib_com/options.h index 0c26e4a5746eeb7c096e673ac1e3b366aef4f82f..43901759b7e9e6d150826e15c5567cf16cb51e3b 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -157,9 +157,9 @@ /*#define SPLIT_REND_WITH_HEAD_ROT */ /* Dlb,FhG: Split Rendering contributions 21 and 35 */ #define FIX_1033_MEMORY_LEAK_OMASA /* Nokia / Orange: issue #1033: Memory leak in OMASA to BINAURAL with HRTF with bitrate switching */ +#define FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI /* FhG: move setting of pointers for parameter decoding so they are skipped in lost frames when they are not needed */ #define FIX_1043_JBM_MD_BUFFER /* VA: issue 1043: JBM MD handle allocation is avoided in non-JBM EXT operations */ - /* #################### End BE switches ################################## */ /* #################### Start NON-BE switches ############################ */ diff --git a/lib_dec/dec_LPD.c b/lib_dec/dec_LPD.c index b23675f0aee64136ce83cf1f4cf4c41b4b3f6f29..331e93c3f9f28c1e28c9ae85378258907f98e099 100644 --- a/lib_dec/dec_LPD.c +++ b/lib_dec/dec_LPD.c @@ -604,12 +604,20 @@ void decoder_LPD( for ( k = 0; k < 2; k++ ) { +#ifndef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI /* Set pointer to parameters */ prm = param + ( k * DEC_NPRM_DIV ); /* Stability Factor */ +#endif if ( !bfi ) { +#ifdef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI + /* Set pointer to parameters */ + prm = param + ( k * DEC_NPRM_DIV ); + + /* Stability Factor */ +#endif st->stab_fac = lsf_stab( &lsf[( k + 1 ) * M], &lsf[k * M], 0, st->L_frame ); } diff --git a/lib_dec/dec_tcx.c b/lib_dec/dec_tcx.c index d0e6f59c1da2ed045fa6be20ff2b9585f2f35f9f..906baf35959db1ecd718257cce84f85ed8ad0f31 100644 --- a/lib_dec/dec_tcx.c +++ b/lib_dec/dec_tcx.c @@ -93,6 +93,9 @@ void decoder_tcx( tmp_concealment_method = 0; nf_seed = 0; fUseTns = 0; /* flag that is set if TNS data is present */ +#ifdef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI + prm_sqQ = NULL; +#endif set_f( xn_buf, 0, L_MDCT_OVLP_MAX + L_FRAME_PLUS + L_MDCT_OVLP_MAX ); @@ -730,7 +733,15 @@ void decoder_tcx_invQ( TCX_CONFIG_HANDLE hTcxCfg = st->hTcxCfg; tnsSize = 0; +#ifndef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI prm_target = NULL; /* just to suppress MSVC warnigs */ +#else + /* just to suppress MSVC warnigs */ + prm_target = NULL; + prm_ltp = NULL; + prm_tns = NULL; + prm_sqQ = NULL; +#endif /*-----------------------------------------------------------------* * Initializations @@ -750,8 +761,10 @@ void decoder_tcx_invQ( noiseFillingSize = st->hIGFDec->infoIGFStartLine; } +#ifndef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI prm_ltp = &prm[1 + NOISE_FILL_RANGES]; prm_tns = prm_ltp + LTPSIZE; +#endif /*-----------------------------------------------------------* * Read TCX parameters * @@ -762,6 +775,10 @@ void decoder_tcx_invQ( if ( !bfi ) { index = prm[0]; +#ifdef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI + prm_ltp = &prm[1 + NOISE_FILL_RANGES]; + prm_tns = prm_ltp + LTPSIZE; +#endif /* read noise level (fac_ns) */ st->hTcxDec->noise_filling_index[frame_cnt] = prm[1]; @@ -777,9 +794,11 @@ void decoder_tcx_invQ( *fUseTns = 0; } +#ifndef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI prm_hm = prm_tns + tnsSize; prm_sqQ = prm_hm + NPRM_CTX_HM; *prm_sqQ1 = prm_sqQ; +#endif /*-----------------------------------------------------------* * Spectrum data * @@ -787,6 +806,11 @@ void decoder_tcx_invQ( if ( !bfi ) { +#ifdef FIX_1038_OFFSET_TO_NULL_PTR_IN_EVS_TCX_BFI + prm_hm = prm_tns + tnsSize; + prm_sqQ = prm_hm + NPRM_CTX_HM; + *prm_sqQ1 = prm_sqQ; +#endif /*-----------------------------------------------------------* * Context HM * *-----------------------------------------------------------*/