Loading apps/decoder.c +1 −1 Original line number Diff line number Diff line Loading @@ -3195,7 +3195,7 @@ static ivas_error decodeVoIP( #ifdef SUPPORT_JBM_TRACEFILE if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, (void *) pcmBuf, writeJbmTraceFileFrameWrapper, jbmTraceWriter, &bitstreamReadDone, &nSamplesRendered, ¶metersAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, (void *) pcmBuf, &bitstreamReadDone, &nSamplesRendered, ¶metersAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK ) if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, (void *) pcmBuf, &bitstreamReadDone, ¶metersAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "\nError in IVAS_DEC_VoIP_GetSamples: %s\n", IVAS_DEC_GetErrorMessage( error ) ); Loading lib_basop/basop32.c +46 −0 Original line number Diff line number Diff line Loading @@ -1224,6 +1224,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 +74 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ #include <stdlib.h> #include "stl.h" #ifdef FIX_2493_CHECK_64BIT #include <assert.h> #endif #define WMC_TOOL_SKIP /***************************************************************************** Loading Loading @@ -74,7 +78,9 @@ Word64 W_add_nosat( Word64 L64_var1, Word64 L64_var2 ) { Word64 L64_var_out; #ifdef FIX_2493_CHECK_64BIT assert( W_abs( ( ( L64_var1 + L64_var2 ) >> 1 ) - ( ( L64_var1 >> 1 ) + ( L64_var2 >> 1 ) ) ) < 2 ); #endif L64_var_out = L64_var1 + L64_var2; #ifdef WMOPS Loading Loading @@ -117,7 +123,9 @@ Word64 W_add_nosat( Word64 L64_var1, Word64 L64_var2 ) Word64 W_sub_nosat( Word64 L64_var1, Word64 L64_var2 ) { Word64 L64_var_out; #ifdef FIX_2493_CHECK_64BIT assert( W_abs( ( ( L64_var1 - L64_var2 ) >> 1 ) - ( ( L64_var1 >> 1 ) - ( L64_var2 >> 1 ) ) ) < 2 ); #endif L64_var_out = L64_var1 - L64_var2; #ifdef WMOPS Loading Loading @@ -316,6 +324,9 @@ Word64 W_shl_nosat( Word64 L64_var1, Word16 var2 ) } else { #ifdef FIX_2493_CHECK_64BIT assert( ( ( L64_var1 << var2 ) >> var2 ) == L64_var1 ); #endif L64_var_out = L64_var1 << var2; } #ifdef WMOPS Loading Loading @@ -369,6 +380,9 @@ Word64 W_shr_nosat( Word64 L64_var1, Word16 var2 ) if ( var2 < 0 ) { var2 = -var2; #ifdef FIX_2493_CHECK_64BIT assert( ( ( L64_var1 << var2 ) >> var2 ) == L64_var1 ); #endif L64_var_out = L64_var1 << var2; } else Loading Loading @@ -423,6 +437,9 @@ Word64 W_shr_nosat( Word64 L64_var1, Word16 var2 ) Word64 W_mac_32_16( Word64 L64_var1, Word32 L_var2, Word16 var3 ) { Word64 L64_var_out = ( (Word64) L_var2 * var3 ) << 1; #ifdef FIX_2493_CHECK_64BIT assert( W_abs( ( ( L64_var_out + L64_var1 ) >> 1 ) - ( ( L64_var_out >> 1 ) + ( L64_var1 >> 1 ) ) ) < 2 ); #endif L64_var_out += L64_var1; #ifdef WMOPS multiCounter[currCounter].W_mac_32_16++; Loading Loading @@ -470,6 +487,9 @@ Word64 W_mac_32_16( Word64 L64_var1, Word32 L_var2, Word16 var3 ) Word64 W_msu_32_16( Word64 L64_var1, Word32 L_var2, Word16 var3 ) { Word64 L64_var_out = ( (Word64) L_var2 * var3 ) << 1; #ifdef FIX_2493_CHECK_64BIT assert( W_abs( ( ( L64_var1 - L64_var_out ) >> 1 ) - ( ( L64_var1 >> 1 ) - ( L64_var_out >> 1 ) ) ) < 2 ); #endif L64_var_out = L64_var1 - L64_var_out; #ifdef WMOPS multiCounter[currCounter].W_msu_32_16++; Loading Loading @@ -596,6 +616,9 @@ Word64 W_mult0_16_16( Word16 var1, Word16 var2 ) Word64 W_mac0_16_16( Word64 L64_var1, Word16 var2, Word16 var3 ) { Word64 L64_var_out = (Word64) var2 * var3; #ifdef FIX_2493_CHECK_64BIT assert( W_abs( ( ( L64_var_out + L64_var1 ) >> 1 ) - ( ( L64_var_out >> 1 ) + ( L64_var1 >> 1 ) ) ) < 2 ); #endif L64_var_out += L64_var1; #ifdef WMOPS multiCounter[currCounter].W_mac0_16_16++; Loading Loading @@ -642,6 +665,9 @@ Word64 W_mac0_16_16( Word64 L64_var1, Word16 var2, Word16 var3 ) Word64 W_msu0_16_16( Word64 L64_var1, Word16 var2, Word16 var3 ) { Word64 L64_var_out = (Word64) var2 * var3; #ifdef FIX_2493_CHECK_64BIT assert( W_abs( ( ( L64_var1 - L64_var_out ) >> 1 ) - ( ( L64_var1 >> 1 ) - ( L64_var_out >> 1 ) ) ) < 2 ); #endif L64_var_out = L64_var1 - L64_var_out; #ifdef WMOPS multiCounter[currCounter].W_msu0_16_16++; Loading Loading @@ -868,6 +894,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 Loading
apps/decoder.c +1 −1 Original line number Diff line number Diff line Loading @@ -3195,7 +3195,7 @@ static ivas_error decodeVoIP( #ifdef SUPPORT_JBM_TRACEFILE if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, (void *) pcmBuf, writeJbmTraceFileFrameWrapper, jbmTraceWriter, &bitstreamReadDone, &nSamplesRendered, ¶metersAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, (void *) pcmBuf, &bitstreamReadDone, &nSamplesRendered, ¶metersAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK ) if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, (void *) pcmBuf, &bitstreamReadDone, ¶metersAvailableForEditing, systemTime_ms ) ) != IVAS_ERR_OK ) #endif { fprintf( stderr, "\nError in IVAS_DEC_VoIP_GetSamples: %s\n", IVAS_DEC_GetErrorMessage( error ) ); Loading
lib_basop/basop32.c +46 −0 Original line number Diff line number Diff line Loading @@ -1224,6 +1224,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 +74 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ #include <stdlib.h> #include "stl.h" #ifdef FIX_2493_CHECK_64BIT #include <assert.h> #endif #define WMC_TOOL_SKIP /***************************************************************************** Loading Loading @@ -74,7 +78,9 @@ Word64 W_add_nosat( Word64 L64_var1, Word64 L64_var2 ) { Word64 L64_var_out; #ifdef FIX_2493_CHECK_64BIT assert( W_abs( ( ( L64_var1 + L64_var2 ) >> 1 ) - ( ( L64_var1 >> 1 ) + ( L64_var2 >> 1 ) ) ) < 2 ); #endif L64_var_out = L64_var1 + L64_var2; #ifdef WMOPS Loading Loading @@ -117,7 +123,9 @@ Word64 W_add_nosat( Word64 L64_var1, Word64 L64_var2 ) Word64 W_sub_nosat( Word64 L64_var1, Word64 L64_var2 ) { Word64 L64_var_out; #ifdef FIX_2493_CHECK_64BIT assert( W_abs( ( ( L64_var1 - L64_var2 ) >> 1 ) - ( ( L64_var1 >> 1 ) - ( L64_var2 >> 1 ) ) ) < 2 ); #endif L64_var_out = L64_var1 - L64_var2; #ifdef WMOPS Loading Loading @@ -316,6 +324,9 @@ Word64 W_shl_nosat( Word64 L64_var1, Word16 var2 ) } else { #ifdef FIX_2493_CHECK_64BIT assert( ( ( L64_var1 << var2 ) >> var2 ) == L64_var1 ); #endif L64_var_out = L64_var1 << var2; } #ifdef WMOPS Loading Loading @@ -369,6 +380,9 @@ Word64 W_shr_nosat( Word64 L64_var1, Word16 var2 ) if ( var2 < 0 ) { var2 = -var2; #ifdef FIX_2493_CHECK_64BIT assert( ( ( L64_var1 << var2 ) >> var2 ) == L64_var1 ); #endif L64_var_out = L64_var1 << var2; } else Loading Loading @@ -423,6 +437,9 @@ Word64 W_shr_nosat( Word64 L64_var1, Word16 var2 ) Word64 W_mac_32_16( Word64 L64_var1, Word32 L_var2, Word16 var3 ) { Word64 L64_var_out = ( (Word64) L_var2 * var3 ) << 1; #ifdef FIX_2493_CHECK_64BIT assert( W_abs( ( ( L64_var_out + L64_var1 ) >> 1 ) - ( ( L64_var_out >> 1 ) + ( L64_var1 >> 1 ) ) ) < 2 ); #endif L64_var_out += L64_var1; #ifdef WMOPS multiCounter[currCounter].W_mac_32_16++; Loading Loading @@ -470,6 +487,9 @@ Word64 W_mac_32_16( Word64 L64_var1, Word32 L_var2, Word16 var3 ) Word64 W_msu_32_16( Word64 L64_var1, Word32 L_var2, Word16 var3 ) { Word64 L64_var_out = ( (Word64) L_var2 * var3 ) << 1; #ifdef FIX_2493_CHECK_64BIT assert( W_abs( ( ( L64_var1 - L64_var_out ) >> 1 ) - ( ( L64_var1 >> 1 ) - ( L64_var_out >> 1 ) ) ) < 2 ); #endif L64_var_out = L64_var1 - L64_var_out; #ifdef WMOPS multiCounter[currCounter].W_msu_32_16++; Loading Loading @@ -596,6 +616,9 @@ Word64 W_mult0_16_16( Word16 var1, Word16 var2 ) Word64 W_mac0_16_16( Word64 L64_var1, Word16 var2, Word16 var3 ) { Word64 L64_var_out = (Word64) var2 * var3; #ifdef FIX_2493_CHECK_64BIT assert( W_abs( ( ( L64_var_out + L64_var1 ) >> 1 ) - ( ( L64_var_out >> 1 ) + ( L64_var1 >> 1 ) ) ) < 2 ); #endif L64_var_out += L64_var1; #ifdef WMOPS multiCounter[currCounter].W_mac0_16_16++; Loading Loading @@ -642,6 +665,9 @@ Word64 W_mac0_16_16( Word64 L64_var1, Word16 var2, Word16 var3 ) Word64 W_msu0_16_16( Word64 L64_var1, Word16 var2, Word16 var3 ) { Word64 L64_var_out = (Word64) var2 * var3; #ifdef FIX_2493_CHECK_64BIT assert( W_abs( ( ( L64_var1 - L64_var_out ) >> 1 ) - ( ( L64_var1 >> 1 ) - ( L64_var_out >> 1 ) ) ) < 2 ); #endif L64_var_out = L64_var1 - L64_var_out; #ifdef WMOPS multiCounter[currCounter].W_msu0_16_16++; Loading Loading @@ -868,6 +894,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