Loading lib_basop/basop32.c +46 −0 Original line number Diff line number Diff line Loading @@ -1210,6 +1210,52 @@ Word16 extract_l( Word32 L_var1 ) return ( var_out ); } #ifdef FIX_2493_CHECK_EXTRACT_L /*___________________________________________________________________________ | | | Function Name : extract_l2 | | | | Purpose : | | | | Return the 16 LSB of L_var1. Check range. | | | | Complexity weight : 1 | | | | Inputs : | | | | L_var1 | | 32 bit long signed integer (Word32 ) whose value falls in the | | range : 0xffff 8000 <= L_var1 <= 0x0000 7fff. | | | | Outputs : | | | | none | | | | Return Value : | | | | var_out | | 16 bit short signed integer (Word16) whose value falls in the | | range : 0xffff 8000 <= var_out <= 0x0000 7fff. | |___________________________________________________________________________| */ Word16 extract_l2( Word32 L_var1 ) { Word16 var_out; assert( L_var1 <=(Word32)MAX_16 && L_var1 >= (Word32)(Word16)MIN_16 ); var_out = (Word16) L_var1; #ifdef WMOPS multiCounter[currCounter].extract_l++; #endif BASOP_CHECK(); return ( var_out ); } #endif /*___________________________________________________________________________ | | Loading lib_basop/basop32.h +3 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,9 @@ Word32 L_mult( Word16 var1, Word16 var2 ); /* Word16 negate( Word16 var1 ); /* Short negate, 1 */ Word16 extract_h( Word32 L_var1 ); /* Extract high, 1 */ Word16 extract_l( Word32 L_var1 ); /* Extract low, 1 */ #ifdef FIX_2493_CHECK_EXTRACT_L Word16 extract_l2( Word32 L_var1 ); /* Extract low and check range 1 */ #endif Word16 round_fx( Word32 L_var1 ); /* Round, 1 */ Word32 L_mac( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac, 1 */ Word32 L_msu( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu, 1 */ Loading lib_basop/enh64.c +46 −0 Original line number Diff line number Diff line Loading @@ -868,6 +868,52 @@ Word32 W_extract_l( Word64 L64_var1 ) return ( L_var_out ); } #ifdef FIX_2493_CHECK_EXTRACT_L #include <assert.h> /*__________________________________________________________________________________ | | | Function Name : W_extract_l | | | | Purpose : | | | | Return the 32 LSB of L64_var1 and check the range | | | | Complexity weight : 1 | | | | Inputs : | | | | L64_var1 | | 64 bit long long signed integer (Word64) whose value falls in | | range : 0x00000000 80000000LL <= L64_var1 <= 0xffffffff 7fffffffLL. | | | | Outputs : | | | | none | | | | Return Value : | | | | L_var_out | | 32 bit long signed integer (Word32) whose value falls in the | | range : 0x8000 0000 <= L_var_out <= 0x7fff 0000. | |__________________________________________________________________________________| */ Word32 W_extract_l2( Word64 L64_var1 ) { Word32 L_var_out; assert( L64_var1 <=(Word64)MAX_32 && L64_var1 >= (Word64)(Word32)MIN_32 ); L_var_out = (Word32) L64_var1; #ifdef WMOPS multiCounter[currCounter].W_extract_l++; #endif /* if WMOPS */ return ( L_var_out ); } #endif /*__________________________________________________________________________________ | | Loading lib_basop/enh64.h +3 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,9 @@ Word32 W_sat_m( Word64 L64_var ); Word32 W_shl_sat_l( Word64 L64_var, Word16 n ); Word32 W_extract_l( Word64 L64_var1 ); #ifdef FIX_2493_CHECK_EXTRACT_L Word32 W_extract_l2( Word64 L64_var1 ); #endif Word32 W_extract_h( Word64 L64_var1 ); Word32 W_round48_L( Word64 L64_var1 ); Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ #define FIX_2480_HARM_TONALMDCT /* FhG: basop issue 2480: Harmonize TonalMDCTConceal_Detect_fx() and TonalMDCTConceal_Detect_ivas_fx() */ #define FIX_2479_HARM_PITCH_GAIN /* FhG: basop issue 2479: Harmonize tcx_ltp_pitch_search_*(), tcx_ltp_find_gain_*fx() */ #define HARMONIZE_2481_EXTEND_SHRINK /* FhG: basop issue 2481: Harmonize extend_frm_*fx() and shrink_frm_*fx() */ #define FIX_2493_CHECK_EXTRACT_L /* FhG: Verify that extract_l, W_extract_l etc. do not encounter an overflow. */ /* #################### End BE switches ################################## */ Loading Loading
lib_basop/basop32.c +46 −0 Original line number Diff line number Diff line Loading @@ -1210,6 +1210,52 @@ Word16 extract_l( Word32 L_var1 ) return ( var_out ); } #ifdef FIX_2493_CHECK_EXTRACT_L /*___________________________________________________________________________ | | | Function Name : extract_l2 | | | | Purpose : | | | | Return the 16 LSB of L_var1. Check range. | | | | Complexity weight : 1 | | | | Inputs : | | | | L_var1 | | 32 bit long signed integer (Word32 ) whose value falls in the | | range : 0xffff 8000 <= L_var1 <= 0x0000 7fff. | | | | Outputs : | | | | none | | | | Return Value : | | | | var_out | | 16 bit short signed integer (Word16) whose value falls in the | | range : 0xffff 8000 <= var_out <= 0x0000 7fff. | |___________________________________________________________________________| */ Word16 extract_l2( Word32 L_var1 ) { Word16 var_out; assert( L_var1 <=(Word32)MAX_16 && L_var1 >= (Word32)(Word16)MIN_16 ); var_out = (Word16) L_var1; #ifdef WMOPS multiCounter[currCounter].extract_l++; #endif BASOP_CHECK(); return ( var_out ); } #endif /*___________________________________________________________________________ | | Loading
lib_basop/basop32.h +3 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,9 @@ Word32 L_mult( Word16 var1, Word16 var2 ); /* Word16 negate( Word16 var1 ); /* Short negate, 1 */ Word16 extract_h( Word32 L_var1 ); /* Extract high, 1 */ Word16 extract_l( Word32 L_var1 ); /* Extract low, 1 */ #ifdef FIX_2493_CHECK_EXTRACT_L Word16 extract_l2( Word32 L_var1 ); /* Extract low and check range 1 */ #endif Word16 round_fx( Word32 L_var1 ); /* Round, 1 */ Word32 L_mac( Word32 L_var3, Word16 var1, Word16 var2 ); /* Mac, 1 */ Word32 L_msu( Word32 L_var3, Word16 var1, Word16 var2 ); /* Msu, 1 */ Loading
lib_basop/enh64.c +46 −0 Original line number Diff line number Diff line Loading @@ -868,6 +868,52 @@ Word32 W_extract_l( Word64 L64_var1 ) return ( L_var_out ); } #ifdef FIX_2493_CHECK_EXTRACT_L #include <assert.h> /*__________________________________________________________________________________ | | | Function Name : W_extract_l | | | | Purpose : | | | | Return the 32 LSB of L64_var1 and check the range | | | | Complexity weight : 1 | | | | Inputs : | | | | L64_var1 | | 64 bit long long signed integer (Word64) whose value falls in | | range : 0x00000000 80000000LL <= L64_var1 <= 0xffffffff 7fffffffLL. | | | | Outputs : | | | | none | | | | Return Value : | | | | L_var_out | | 32 bit long signed integer (Word32) whose value falls in the | | range : 0x8000 0000 <= L_var_out <= 0x7fff 0000. | |__________________________________________________________________________________| */ Word32 W_extract_l2( Word64 L64_var1 ) { Word32 L_var_out; assert( L64_var1 <=(Word64)MAX_32 && L64_var1 >= (Word64)(Word32)MIN_32 ); L_var_out = (Word32) L64_var1; #ifdef WMOPS multiCounter[currCounter].W_extract_l++; #endif /* if WMOPS */ return ( L_var_out ); } #endif /*__________________________________________________________________________________ | | Loading
lib_basop/enh64.h +3 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,9 @@ Word32 W_sat_m( Word64 L64_var ); Word32 W_shl_sat_l( Word64 L64_var, Word16 n ); Word32 W_extract_l( Word64 L64_var1 ); #ifdef FIX_2493_CHECK_EXTRACT_L Word32 W_extract_l2( Word64 L64_var1 ); #endif Word32 W_extract_h( Word64 L64_var1 ); Word32 W_round48_L( Word64 L64_var1 ); Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ #define FIX_2480_HARM_TONALMDCT /* FhG: basop issue 2480: Harmonize TonalMDCTConceal_Detect_fx() and TonalMDCTConceal_Detect_ivas_fx() */ #define FIX_2479_HARM_PITCH_GAIN /* FhG: basop issue 2479: Harmonize tcx_ltp_pitch_search_*(), tcx_ltp_find_gain_*fx() */ #define HARMONIZE_2481_EXTEND_SHRINK /* FhG: basop issue 2481: Harmonize extend_frm_*fx() and shrink_frm_*fx() */ #define FIX_2493_CHECK_EXTRACT_L /* FhG: Verify that extract_l, W_extract_l etc. do not encounter an overflow. */ /* #################### End BE switches ################################## */ Loading