diff --git a/lib_com/options.h b/lib_com/options.h index 2361ee2184c9e80c2abf8ca7f10589281bb5fe3c..ab59819f738b83f34431a668c8b773d3bd88e9cf 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -154,6 +154,10 @@ #define FIX_802_1137_1137_GSC_IVAS_FXFLT_DECODING /* VA: ISSUES 802 and 1137 Made sure that float and fixed point GCS bit allocation is the same during IVAS modes */ #define FIX_810_PREVENT_UNECESSARY_SAT_IN_TC /* VA : Prevent an unnecessary saturation that can happen in TC, have a minimal impact on most cases. Significant improvement for the last segment of LTV when TC is triggered */ #define FIX_826_PRECISION_LOST_AND_COMPL /* VA : Fix lost of precision that leads to unnecessary high noise floor and to some framing artifacts */ +#ifdef FIX_826_PRECISION_LOST_AND_COMPL +#define FIX_833_CORRECTION_to_826 /* VA : fix indexing error introduced in 826 */ +#endif + /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ diff --git a/lib_dec/ivas_stereo_icbwe_dec.c b/lib_dec/ivas_stereo_icbwe_dec.c index d5acccc7a47daf615b92c266d4f8da55523ad0f0..89faf3559193ee32776072164ada2fa0a06615d3 100644 --- a/lib_dec/ivas_stereo_icbwe_dec.c +++ b/lib_dec/ivas_stereo_icbwe_dec.c @@ -2145,13 +2145,13 @@ void stereo_icBWE_decproc_fx( #endif } -#ifndef FIX_826_PRECISION_LOST_AND_COMPL +#if !defined FIX_826_PRECISION_LOST_AND_COMPL || defined FIX_833_CORRECTION_to_826 FOR( i = 0; j < dftOvlLen; i++ ) #else FOR( i = 0; i < dftOvlLen; i++ ) #endif { -#ifndef FIX_826_PRECISION_LOST_AND_COMPL +#if !defined FIX_826_PRECISION_LOST_AND_COMPL || defined FIX_833_CORRECTION_to_826 Word16 tmp_mul = mult0( STEREO_DFT32MS_STEP, ( sub( dftOvlLen, add( 1, j ) ) ) ); hStereoICBWE->memTransitionHB_fx[0][memOffset + i] = Mpy_32_16_1( outputHB[0][output_frame - i - 1], win_dft_fx[tmp_mul] ); move32();