diff --git a/lib_com/ari_hm.c b/lib_com/ari_hm.c index afcdf52ad67c27b23a11034f2d5b7e20a97a2068..3e83529bbb44ad387c3eb534eb322d987a54f92b 100644 --- a/lib_com/ari_hm.c +++ b/lib_com/ari_hm.c @@ -273,8 +273,7 @@ void tcx_hm_modify_envelope( ) { #ifdef FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI - int16_t h, x; - int32_t k; + int32_t h, x, k; #else int16_t k, h, x; #endif @@ -295,25 +294,12 @@ void tcx_hm_modify_envelope( while ( k <= L_frame + kTcxHmParabolaHalfWidth - 1 ) { -#ifdef FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI - int32_t tmp; -#endif - -#ifdef FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI - for ( x = (int16_t) max( 0, k - kTcxHmParabolaHalfWidth ); x <= (int16_t) min( k + kTcxHmParabolaHalfWidth, L_frame - 1 ); ++x ) -#else for ( x = max( 0, k - kTcxHmParabolaHalfWidth ); x <= min( k + kTcxHmParabolaHalfWidth, L_frame - 1 ); ++x ) -#endif { env[x] = Mpy_32_16( env[x], inv_shape[x - k + kTcxHmParabolaHalfWidth] ); } ++h; -#ifdef FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI - tmp = ( h * lag ); - k = tmp >> fract_res; -#else k = ( h * lag ) >> fract_res; -#endif } return; diff --git a/lib_com/options.h b/lib_com/options.h index 2841eb66b10c53c7b012e09e7ad7d963268f76ad..1e139198591a02de8ec45dce93e71796ba8560ed 100755 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -156,7 +156,7 @@ #define FIX_963_USAN_ERROR /* Eri: Issue 963: USAN error in Stereo CNG, division by zero */ #define FIX_971_LOG2_IDX_GAIN_0 /* VA: prevent -Inf due to log2(ratio==0) */ #define FIX_ACCESS_WITHIN_NULL_STRUCT_MC_BW_SWITCHING /* FhG: fix usan error in MCT with bw swicthing */ -// #define FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI /* FhG: fix and undef behaviour bug in the harmonic TCX model arithmetic coder */ +#define FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI /* FhG: fix and undef behaviour bug in the harmonic TCX model arithmetic coder */ #define FIX_983_DISC_ISM_DIGEST_NUM_OBJS /* FhG: issue #983: the discrete ISM digest function uses the wrong number of objects */