Loading lib_com/ari_hm_fx.c +15 −2 Original line number Diff line number Diff line Loading @@ -258,7 +258,12 @@ void tcx_hm_modify_envelope( Word16 L_frame /* i: number of spectral lines Q0 */ ) { #ifdef FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI Word32 k, h, x; Word16 l1, l2, L_frame_m1, L_frame_for_loop; #else Word16 k, h, x, l1, l2, L_frame_m1, L_frame_for_loop; #endif Word16 inv_shape[2 * kTcxHmParabolaHalfWidth + 1]; IF( gain == 0 ) Loading @@ -275,7 +280,11 @@ void tcx_hm_modify_envelope( h = 1; move16(); #ifdef FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI k = L_shr( lag, fract_res ); /* Q0 */ #else k = extract_l( L_shr( lag, fract_res ) ); /* Q0 */ #endif L_frame_m1 = sub( L_frame, 1 ); /* Q0 */ L_frame_for_loop = add( L_frame, kTcxHmParabolaHalfWidth - 1 ); /* Q0 */ Loading @@ -291,7 +300,11 @@ void tcx_hm_modify_envelope( } h = add( h, 1 ); /* Q0 */ #ifdef FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI k = L_shr( W_extract_l( W_mult_32_32( lag, h ) ), fract_res ); /* Q0 */ #else k = extract_l( L_shr( imult3216( lag, h ), fract_res ) ); /* Q0 */ #endif } } Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,7 @@ #define NONBE_FIX_951_MCMASA_5MS_RENDERING /* Nokia: issue #951: Differences for 5ms and 20ms rendering for McMASA at 13.2 kbps to BINAURAL */ #define NONBE_FIX_979_OSBA_STEREO_5MS /* FhG : issue #979 : 5ms and 20ms output different for OSBA and stereo */ #define FIX_983_DISC_ISM_DIGEST_NUM_OBJS /* FhG: issue #983: the discrete ISM digest function uses the wrong number of objects */ #define FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI /* FhG: fix and undef behaviour bug in the harmonic TCX model arithmetic coder */ /* #################### End BASOP porting switches ############################ */ Loading Loading
lib_com/ari_hm_fx.c +15 −2 Original line number Diff line number Diff line Loading @@ -258,7 +258,12 @@ void tcx_hm_modify_envelope( Word16 L_frame /* i: number of spectral lines Q0 */ ) { #ifdef FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI Word32 k, h, x; Word16 l1, l2, L_frame_m1, L_frame_for_loop; #else Word16 k, h, x, l1, l2, L_frame_m1, L_frame_for_loop; #endif Word16 inv_shape[2 * kTcxHmParabolaHalfWidth + 1]; IF( gain == 0 ) Loading @@ -275,7 +280,11 @@ void tcx_hm_modify_envelope( h = 1; move16(); #ifdef FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI k = L_shr( lag, fract_res ); /* Q0 */ #else k = extract_l( L_shr( lag, fract_res ) ); /* Q0 */ #endif L_frame_m1 = sub( L_frame, 1 ); /* Q0 */ L_frame_for_loop = add( L_frame, kTcxHmParabolaHalfWidth - 1 ); /* Q0 */ Loading @@ -291,7 +300,11 @@ void tcx_hm_modify_envelope( } h = add( h, 1 ); /* Q0 */ #ifdef FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI k = L_shr( W_extract_l( W_mult_32_32( lag, h ) ), fract_res ); /* Q0 */ #else k = extract_l( L_shr( imult3216( lag, h ), fract_res ) ); /* Q0 */ #endif } } Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,7 @@ #define NONBE_FIX_951_MCMASA_5MS_RENDERING /* Nokia: issue #951: Differences for 5ms and 20ms rendering for McMASA at 13.2 kbps to BINAURAL */ #define NONBE_FIX_979_OSBA_STEREO_5MS /* FhG : issue #979 : 5ms and 20ms output different for OSBA and stereo */ #define FIX_983_DISC_ISM_DIGEST_NUM_OBJS /* FhG: issue #983: the discrete ISM digest function uses the wrong number of objects */ #define FIX_966_VAR_OVERFLOW_IN_HARM_MODEL_ARI /* FhG: fix and undef behaviour bug in the harmonic TCX model arithmetic coder */ /* #################### End BASOP porting switches ############################ */ Loading