Loading lib_com/lsf_tools_fx.c +18 −2 Original line number Diff line number Diff line Loading @@ -291,6 +291,13 @@ void E_LPC_a_isp_conversion( const Word16 a[], Word16 isp[], const Word16 old_is tmp = div_s( (Word16) 16383, tmp ); t0 = L_mult( x, tmp ); t0 = L_shr( t0, sub( 20, exp ) ); #ifdef NONBE_FIX_2493_CHECK_EXTRACT_L_E_LPC_a_isp_conversion /* Restore Sign */ if ( y < 0 ) t0 = L_negate( t0 ); t0 = Mpy_32_16_1( t0, ylow ); /* result in Q26 */ #else #ifdef FIX_2493_CHECK_EXTRACT_L tmp = extract_l2( t0 ); /* y = (xhigh-xlow)/(yhigh-ylow) in Q11 */ #else Loading @@ -302,6 +309,7 @@ void E_LPC_a_isp_conversion( const Word16 a[], Word16 isp[], const Word16 old_is tmp = negate( tmp ); t0 = L_mult( ylow, tmp ); /* result in Q26 */ #endif t0 = L_shr( t0, 11 ); /* result in Q15 */ #ifdef FIX_2493_CHECK_EXTRACT_L xlow = sub( xlow, extract_l2( t0 ) ); /* xint = xlow - ylow*y */ Loading Loading @@ -1157,6 +1165,13 @@ void E_LPC_a_lsp_conversion( tmp = div_s( (Word16) 16383 / 2, tmp ); t0 = L_mult( x, tmp ); t0 = L_shr( t0, sub( 20, exp ) ); #ifdef NONBE_FIX_2493_CHECK_EXTRACT_L_E_LPC_a_isp_conversion /* Restore Sign */ if ( y < 0 ) t0 = L_negate( t0 ); t0 = Mpy_32_16_1( t0, ylow ); /* result in Q26 */ #else #ifdef FIX_2493_CHECK_EXTRACT_L tmp = extract_l2( t0 ); /* y = (xhigh-xlow)/(yhigh-ylow) in Q11 */ #else Loading @@ -1168,6 +1183,7 @@ void E_LPC_a_lsp_conversion( tmp = negate( tmp ); t0 = L_mult( ylow, tmp ); /* result in Q26 */ #endif t0 = L_shr( t0, 11 ); /* result in Q15 */ #ifdef FIX_2493_CHECK_EXTRACT_L xlow = sub( xlow, extract_l2( t0 ) ); /* xint = xlow - ylow*y */ Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ #define NONBE_FIX_2493_CHECK_EXTRACT_L_WB_BWE_gain_pred_fx /* FhG: Fix extract_l overflow inside WB_BWE_gain_pred_fx() (EVS) */ #define NONBE_FIX_2493_CHECK_EXTRACT_L_cftmdl_16fx /* FhG: Fix extract_l overflow inside cftmdl_16fx() (EVS) */ #define NONBE_FIX_2493_EXTRACT_L_acelp_core_dec_fx /* FhG: Fix extract_l overflow inside acelp_core_dec_fx() */ #define NONBE_FIX_2493_CHECK_EXTRACT_L_E_LPC_a_isp_conversion /* FhG: Fix extract_l overflow inside E_LPC_a_isp_conversion() */ #define FIX_2493_FIX_ISSUE_1966_F0_32BIT /* Fhg: Fix saturation that popped up from FIX_ISSUE_1966_F0_32BIT */ #define FIX_2493_CHECK_EXTRACT_L_FIX_INSTRUMENTATION /* FhG: BE instrumentation fix */ #define FIX_2584_TD_SM_ISSUE /* VA: Fix inconsistencies in the SM part of the TD stereo */ Loading Loading
lib_com/lsf_tools_fx.c +18 −2 Original line number Diff line number Diff line Loading @@ -291,6 +291,13 @@ void E_LPC_a_isp_conversion( const Word16 a[], Word16 isp[], const Word16 old_is tmp = div_s( (Word16) 16383, tmp ); t0 = L_mult( x, tmp ); t0 = L_shr( t0, sub( 20, exp ) ); #ifdef NONBE_FIX_2493_CHECK_EXTRACT_L_E_LPC_a_isp_conversion /* Restore Sign */ if ( y < 0 ) t0 = L_negate( t0 ); t0 = Mpy_32_16_1( t0, ylow ); /* result in Q26 */ #else #ifdef FIX_2493_CHECK_EXTRACT_L tmp = extract_l2( t0 ); /* y = (xhigh-xlow)/(yhigh-ylow) in Q11 */ #else Loading @@ -302,6 +309,7 @@ void E_LPC_a_isp_conversion( const Word16 a[], Word16 isp[], const Word16 old_is tmp = negate( tmp ); t0 = L_mult( ylow, tmp ); /* result in Q26 */ #endif t0 = L_shr( t0, 11 ); /* result in Q15 */ #ifdef FIX_2493_CHECK_EXTRACT_L xlow = sub( xlow, extract_l2( t0 ) ); /* xint = xlow - ylow*y */ Loading Loading @@ -1157,6 +1165,13 @@ void E_LPC_a_lsp_conversion( tmp = div_s( (Word16) 16383 / 2, tmp ); t0 = L_mult( x, tmp ); t0 = L_shr( t0, sub( 20, exp ) ); #ifdef NONBE_FIX_2493_CHECK_EXTRACT_L_E_LPC_a_isp_conversion /* Restore Sign */ if ( y < 0 ) t0 = L_negate( t0 ); t0 = Mpy_32_16_1( t0, ylow ); /* result in Q26 */ #else #ifdef FIX_2493_CHECK_EXTRACT_L tmp = extract_l2( t0 ); /* y = (xhigh-xlow)/(yhigh-ylow) in Q11 */ #else Loading @@ -1168,6 +1183,7 @@ void E_LPC_a_lsp_conversion( tmp = negate( tmp ); t0 = L_mult( ylow, tmp ); /* result in Q26 */ #endif t0 = L_shr( t0, 11 ); /* result in Q15 */ #ifdef FIX_2493_CHECK_EXTRACT_L xlow = sub( xlow, extract_l2( t0 ) ); /* xint = xlow - ylow*y */ Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ #define NONBE_FIX_2493_CHECK_EXTRACT_L_WB_BWE_gain_pred_fx /* FhG: Fix extract_l overflow inside WB_BWE_gain_pred_fx() (EVS) */ #define NONBE_FIX_2493_CHECK_EXTRACT_L_cftmdl_16fx /* FhG: Fix extract_l overflow inside cftmdl_16fx() (EVS) */ #define NONBE_FIX_2493_EXTRACT_L_acelp_core_dec_fx /* FhG: Fix extract_l overflow inside acelp_core_dec_fx() */ #define NONBE_FIX_2493_CHECK_EXTRACT_L_E_LPC_a_isp_conversion /* FhG: Fix extract_l overflow inside E_LPC_a_isp_conversion() */ #define FIX_2493_FIX_ISSUE_1966_F0_32BIT /* Fhg: Fix saturation that popped up from FIX_ISSUE_1966_F0_32BIT */ #define FIX_2493_CHECK_EXTRACT_L_FIX_INSTRUMENTATION /* FhG: BE instrumentation fix */ #define FIX_2584_TD_SM_ISSUE /* VA: Fix inconsistencies in the SM part of the TD stereo */ Loading