Loading .gitlab-ci.yml +30 −29 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ variables: TESTV_DIR: "/usr/local/testv" LTV_DIR: "/usr/local/ltv" EVS_BE_TEST_DIR_BASOP: "/usr/local/be_2_evs_basop" REFERENCE_TAG: "20231128_Update_Ittiam" REFERENCE_BRANCH: "ivas-float-update" BUILD_OUTPUT: "build_output.txt" SCRIPTS_DIR: "/usr/local/scripts" EXIT_CODE_NON_BE: 123 Loading Loading @@ -92,7 +92,8 @@ stages: .setup-codec: &setup-codec - current_commit_sha=$(git rev-parse HEAD) ### build reference binaries - git checkout $REFERENCE_TAG - git checkout $REFERENCE_BRANCH - git pull - make clean - make -j - mv ./IVAS_cod ./IVAS_cod_ref Loading Loading @@ -328,15 +329,15 @@ build-codec-linux-instrumented-make: # Short test jobs # --------------------------------------------------------------- ivas-pytest-mld-enc-dec: extends: - .rules-pytest-mld - .test-job-linux before_script: - USE_LTV=0 - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor #ivas-pytest-mld-enc-dec: # extends: # - .rules-pytest-mld # - .test-job-linux # before_script: # - USE_LTV=0 # - TEST_SUITE="$SHORT_TEST_SUITE" # - LEVEL_SCALING=1.0 # <<: *ivas-pytest-mld-anchor ivas-pytest-mld-dec: extends: Loading @@ -349,15 +350,15 @@ ivas-pytest-mld-dec: - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor ivas-pytest-mld-enc-dec-lev-10: extends: - .rules-pytest-mld - .test-job-linux before_script: - USE_LTV=0 - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor #ivas-pytest-mld-enc-dec-lev-10: # extends: # - .rules-pytest-mld # - .test-job-linux # before_script: # - USE_LTV=0 # - TEST_SUITE="$SHORT_TEST_SUITE" # - LEVEL_SCALING=0.3162 # <<: *ivas-pytest-mld-anchor ivas-pytest-mld-dec-lev-10: extends: Loading @@ -370,15 +371,15 @@ ivas-pytest-mld-dec-lev-10: - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor ivas-pytest-mld-enc-dec-lev+10: extends: - .rules-pytest-mld - .test-job-linux before_script: - USE_LTV=0 - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor #ivas-pytest-mld-enc-dec-lev+10: # extends: # - .rules-pytest-mld # - .test-job-linux # before_script: # - USE_LTV=0 # - TEST_SUITE="$SHORT_TEST_SUITE" # - LEVEL_SCALING=3.162 # <<: *ivas-pytest-mld-anchor ivas-pytest-mld-dec-lev+10: extends: Loading Workspace_msvc/lib_dec.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -297,6 +297,7 @@ <ClCompile Include="..\lib_dec\ivas_lfe_dec.c" /> <ClCompile Include="..\lib_dec\ivas_lfe_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_lfe_plc.c" /> <ClCompile Include="..\lib_dec\ivas_lfe_plc_fx.c" /> <ClCompile Include="..\lib_dec\ivas_ls_custom_dec.c" /> <ClCompile Include="..\lib_dec\ivas_masa_dec.c" /> <ClCompile Include="..\lib_dec\ivas_mcmasa_dec.c" /> Loading apps/renderer.c +105 −3 Original line number Diff line number Diff line Loading @@ -643,6 +643,7 @@ int main( #ifdef IVAS_FLOAT_FIXED Word32 *outInt32Buffer; Word32 *inInt32Buffer; Word32 gain_fx; #endif float *outFloatBuffer; IVAS_REND_AudioBuffer inBuffer; Loading Loading @@ -933,7 +934,9 @@ int main( } IVAS_REND_LfePanMtx lfePanMatrix; #ifdef IVAS_FLOAT_FIXED IVAS_REND_LfePanMtx_fx lfePanMatrix_fx; #endif /* parse input LFE panning matrix */ if ( args.lfeCustomRoutingEnabled && !isEmptyString( args.inLfePanningMatrixFile ) ) { Loading Loading @@ -968,6 +971,7 @@ int main( for ( i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) { #ifndef IVAS_FLOAT_FIXED if ( ( error = IVAS_REND_AddInput( hIvasRend, args.inConfig.multiChannelBuses[i].audioConfig, &mcIds[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); Loading @@ -979,6 +983,21 @@ int main( fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #else IF( ( error = IVAS_REND_AddInput_fx( hIvasRend, args.inConfig.multiChannelBuses[i].audioConfig, &mcIds[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } gain_fx = (Word32) ( ( args.inputGainGlobal * dBToLin( args.inConfig.multiChannelBuses[i].gain_dB ) ) * ( 1u << 30 ) ); IF ((error = IVAS_REND_SetInputGain_fx(hIvasRend, mcIds[i], gain_fx)) != IVAS_ERR_OK) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #endif if ( args.inConfig.multiChannelBuses[i].audioConfig == IVAS_AUDIO_CONFIG_LS_CUSTOM ) { Loading @@ -998,7 +1017,16 @@ int main( args.lfePanningEnabled = false; } #ifdef IVAS_FLOAT_FIXED FOR( Word16 k = 0; k < IVAS_MAX_OUTPUT_CHANNELS; k++ ) { ( *lfePanMatrix_fx )[k] = (Word32) ( ( *lfePanMatrix )[k] * ( 1u << 31 ) ); } IF ( ( error = IVAS_REND_SetInputLfeMtx_fx( hIvasRend, mcIds[i], (const IVAS_REND_LfePanMtx_fx *) &lfePanMatrix_fx ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_REND_SetInputLfeMtx( hIvasRend, mcIds[i], (const IVAS_REND_LfePanMtx *) &lfePanMatrix ) ) != IVAS_ERR_OK ) #endif // IVAS_FLOAT_FIXED { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); Loading @@ -1007,7 +1035,12 @@ int main( /* set panning gains for input LFE */ else if ( args.lfePanningEnabled ) { #ifdef IVAS_FLOAT_FIXED Word32 inputGain = (Word32) ( args.lfeConfigGain * ( 1u << 31 ) ); IF( ( error = IVAS_REND_SetInputLfePos_fx( hIvasRend, mcIds[i], inputGain, (Word16) args.lfeConfigAzimuth, (Word16) args.lfeConfigElevation ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_REND_SetInputLfePos( hIvasRend, mcIds[i], args.lfeConfigGain, args.lfeConfigAzimuth, args.lfeConfigElevation ) ) != IVAS_ERR_OK ) #endif // IVAS_FLOAT_FIXED { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); Loading @@ -1027,7 +1060,16 @@ int main( exit( -1 ); } #ifdef IVAS_FLOAT_FIXED FOR( Word16 k = 0; k < IVAS_MAX_OUTPUT_CHANNELS; k++ ) { ( *lfePanMatrix_fx )[k] = (Word32) ( ( *lfePanMatrix )[k] * ( 1u << 31 ) ); } if ( ( error = IVAS_REND_SetInputLfeMtx_fx( hIvasRend, mcIds[i], (const IVAS_REND_LfePanMtx_fx *) &lfePanMatrix_fx ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_REND_SetInputLfeMtx( hIvasRend, mcIds[i], (const IVAS_REND_LfePanMtx *) &lfePanMatrix ) ) != IVAS_ERR_OK ) #endif // IVAS_FLOAT_FIXED { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); Loading @@ -1036,7 +1078,12 @@ int main( /* set position based gains */ else { #ifdef IVAS_FLOAT_FIXED Word32 inputGain = (Word32) ( lfeRoutingConfigs[i]->lfe_gain_dB * ( 1u << 31 ) ); IF( ( error = IVAS_REND_SetInputLfePos_fx( hIvasRend, mcIds[i], inputGain, (Word16) lfeRoutingConfigs[i]->lfe_azi, (Word16) lfeRoutingConfigs[i]->lfe_ele ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_REND_SetInputLfePos( hIvasRend, mcIds[i], lfeRoutingConfigs[i]->lfe_gain_dB, lfeRoutingConfigs[i]->lfe_azi, lfeRoutingConfigs[i]->lfe_ele ) ) != IVAS_ERR_OK ) #endif // IVAS_FLOAT_FIXED { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); Loading @@ -1046,6 +1093,7 @@ int main( } } #ifndef IVAS_FLOAT_FIXED for ( i = 0; i < args.inConfig.numAudioObjects; ++i ) { if ( ( error = IVAS_REND_AddInput( hIvasRend, IVAS_AUDIO_CONFIG_OBA, &ismIds[i] ) ) != IVAS_ERR_OK ) Loading Loading @@ -1082,7 +1130,6 @@ int main( } } for ( i = 0; i < args.inConfig.numMasaBuses; ++i ) { if ( ( error = IVAS_REND_AddInput( hIvasRend, args.inConfig.masaBuses[i].audioConfig, &masaIds[i] ) ) != IVAS_ERR_OK ) Loading @@ -1097,6 +1144,61 @@ int main( exit( -1 ); } } #else FOR ( i = 0; i < args.inConfig.numAudioObjects; ++i ) { IF( ( error = IVAS_REND_AddInput_fx( hIvasRend, IVAS_AUDIO_CONFIG_OBA, &ismIds[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } gain_fx = (Word32) ( args.inputGainGlobal * dBToLin( args.inConfig.audioObjects[i].gain_dB ) * ( 1u << 30 ) ); IF( ( error = IVAS_REND_SetInputGain_fx( hIvasRend, ismIds[i], gain_fx) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } /* With MASA output, all objects are handled at once, so add only one input having all objects in it */ IF ( EQ_32(args.outConfig.audioConfig, IVAS_AUDIO_CONFIG_MASA1) || EQ_32(args.outConfig.audioConfig, IVAS_AUDIO_CONFIG_MASA2) ) { BREAK; } } FOR ( i = 0; i < args.inConfig.numAmbisonicsBuses; ++i ) { IF( ( error = IVAS_REND_AddInput_fx( hIvasRend, args.inConfig.ambisonicsBuses[i].audioConfig, &sbaIds[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } gain_fx = (Word32) ( args.inputGainGlobal * dBToLin( args.inConfig.ambisonicsBuses[i].gain_dB ) * ( 1u << 30 ) ); IF ( ( error = IVAS_REND_SetInputGain_fx( hIvasRend, sbaIds[i], gain_fx ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } } FOR ( i = 0; i < args.inConfig.numMasaBuses; ++i ) { IF( ( error = IVAS_REND_AddInput_fx( hIvasRend, args.inConfig.masaBuses[i].audioConfig, &masaIds[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } gain_fx = (Word32) ( ( args.inputGainGlobal * dBToLin( args.inConfig.masaBuses[i].gain_dB ) ) * ( 1u << 30 ) ); IF ( ( error = IVAS_REND_SetInputGain_fx( hIvasRend, masaIds[i], gain_fx) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } } #endif // !IVAS_FLOAT_FIXED const int16_t totalNumInChannels = getTotalNumInChannels( hIvasRend, mcIds, ismIds, sbaIds, masaIds ); Loading lib_com/arith_coder_fx.c +1 −1 Original line number Diff line number Diff line Loading @@ -87,7 +87,7 @@ Word32 expfp( /* o: Q31 */ * Returns: *pout1 = ( (base/65536)^(2*exp - 1) ) * 65536 * *pout2 = ( (base/65536)^(2*exp + 1) ) * 65536 * * NOTE: This function must be in sync with ari_decode_14bits_pow() */ * NOTE: This function must be in sync with ari_decode_14bits_pow_fx() */ void powfp_odd2( const Word16 base, /* Q15 */ const Word16 exp, /* Q0 */ Loading lib_com/basop32.h +1 −0 Original line number Diff line number Diff line Loading @@ -239,6 +239,7 @@ Word32 L_abs( Word32 L_var1 ); /* Word32 DEPR_L_sat_co( Word32 L_var1, Flag Overflow, Flag Carry ); /* Long saturation, 4 */ Word16 norm_s( Word16 var1 ); /* Short norm, 1 */ Word16 div_s( Word16 var1, Word16 var2 ); /* Short division, 18 */ Word32 div_w(Word32 L_num, Word32 L_den); Word16 norm_l( Word32 L_var1 ); /* Long norm, 1 */ #endif /* BASOP_NOGLOB */ Loading Loading
.gitlab-ci.yml +30 −29 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ variables: TESTV_DIR: "/usr/local/testv" LTV_DIR: "/usr/local/ltv" EVS_BE_TEST_DIR_BASOP: "/usr/local/be_2_evs_basop" REFERENCE_TAG: "20231128_Update_Ittiam" REFERENCE_BRANCH: "ivas-float-update" BUILD_OUTPUT: "build_output.txt" SCRIPTS_DIR: "/usr/local/scripts" EXIT_CODE_NON_BE: 123 Loading Loading @@ -92,7 +92,8 @@ stages: .setup-codec: &setup-codec - current_commit_sha=$(git rev-parse HEAD) ### build reference binaries - git checkout $REFERENCE_TAG - git checkout $REFERENCE_BRANCH - git pull - make clean - make -j - mv ./IVAS_cod ./IVAS_cod_ref Loading Loading @@ -328,15 +329,15 @@ build-codec-linux-instrumented-make: # Short test jobs # --------------------------------------------------------------- ivas-pytest-mld-enc-dec: extends: - .rules-pytest-mld - .test-job-linux before_script: - USE_LTV=0 - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor #ivas-pytest-mld-enc-dec: # extends: # - .rules-pytest-mld # - .test-job-linux # before_script: # - USE_LTV=0 # - TEST_SUITE="$SHORT_TEST_SUITE" # - LEVEL_SCALING=1.0 # <<: *ivas-pytest-mld-anchor ivas-pytest-mld-dec: extends: Loading @@ -349,15 +350,15 @@ ivas-pytest-mld-dec: - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor ivas-pytest-mld-enc-dec-lev-10: extends: - .rules-pytest-mld - .test-job-linux before_script: - USE_LTV=0 - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor #ivas-pytest-mld-enc-dec-lev-10: # extends: # - .rules-pytest-mld # - .test-job-linux # before_script: # - USE_LTV=0 # - TEST_SUITE="$SHORT_TEST_SUITE" # - LEVEL_SCALING=0.3162 # <<: *ivas-pytest-mld-anchor ivas-pytest-mld-dec-lev-10: extends: Loading @@ -370,15 +371,15 @@ ivas-pytest-mld-dec-lev-10: - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor ivas-pytest-mld-enc-dec-lev+10: extends: - .rules-pytest-mld - .test-job-linux before_script: - USE_LTV=0 - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor #ivas-pytest-mld-enc-dec-lev+10: # extends: # - .rules-pytest-mld # - .test-job-linux # before_script: # - USE_LTV=0 # - TEST_SUITE="$SHORT_TEST_SUITE" # - LEVEL_SCALING=3.162 # <<: *ivas-pytest-mld-anchor ivas-pytest-mld-dec-lev+10: extends: Loading
Workspace_msvc/lib_dec.vcxproj +1 −0 Original line number Diff line number Diff line Loading @@ -297,6 +297,7 @@ <ClCompile Include="..\lib_dec\ivas_lfe_dec.c" /> <ClCompile Include="..\lib_dec\ivas_lfe_dec_fx.c" /> <ClCompile Include="..\lib_dec\ivas_lfe_plc.c" /> <ClCompile Include="..\lib_dec\ivas_lfe_plc_fx.c" /> <ClCompile Include="..\lib_dec\ivas_ls_custom_dec.c" /> <ClCompile Include="..\lib_dec\ivas_masa_dec.c" /> <ClCompile Include="..\lib_dec\ivas_mcmasa_dec.c" /> Loading
apps/renderer.c +105 −3 Original line number Diff line number Diff line Loading @@ -643,6 +643,7 @@ int main( #ifdef IVAS_FLOAT_FIXED Word32 *outInt32Buffer; Word32 *inInt32Buffer; Word32 gain_fx; #endif float *outFloatBuffer; IVAS_REND_AudioBuffer inBuffer; Loading Loading @@ -933,7 +934,9 @@ int main( } IVAS_REND_LfePanMtx lfePanMatrix; #ifdef IVAS_FLOAT_FIXED IVAS_REND_LfePanMtx_fx lfePanMatrix_fx; #endif /* parse input LFE panning matrix */ if ( args.lfeCustomRoutingEnabled && !isEmptyString( args.inLfePanningMatrixFile ) ) { Loading Loading @@ -968,6 +971,7 @@ int main( for ( i = 0; i < args.inConfig.numMultiChannelBuses; ++i ) { #ifndef IVAS_FLOAT_FIXED if ( ( error = IVAS_REND_AddInput( hIvasRend, args.inConfig.multiChannelBuses[i].audioConfig, &mcIds[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); Loading @@ -979,6 +983,21 @@ int main( fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #else IF( ( error = IVAS_REND_AddInput_fx( hIvasRend, args.inConfig.multiChannelBuses[i].audioConfig, &mcIds[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } gain_fx = (Word32) ( ( args.inputGainGlobal * dBToLin( args.inConfig.multiChannelBuses[i].gain_dB ) ) * ( 1u << 30 ) ); IF ((error = IVAS_REND_SetInputGain_fx(hIvasRend, mcIds[i], gain_fx)) != IVAS_ERR_OK) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } #endif if ( args.inConfig.multiChannelBuses[i].audioConfig == IVAS_AUDIO_CONFIG_LS_CUSTOM ) { Loading @@ -998,7 +1017,16 @@ int main( args.lfePanningEnabled = false; } #ifdef IVAS_FLOAT_FIXED FOR( Word16 k = 0; k < IVAS_MAX_OUTPUT_CHANNELS; k++ ) { ( *lfePanMatrix_fx )[k] = (Word32) ( ( *lfePanMatrix )[k] * ( 1u << 31 ) ); } IF ( ( error = IVAS_REND_SetInputLfeMtx_fx( hIvasRend, mcIds[i], (const IVAS_REND_LfePanMtx_fx *) &lfePanMatrix_fx ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_REND_SetInputLfeMtx( hIvasRend, mcIds[i], (const IVAS_REND_LfePanMtx *) &lfePanMatrix ) ) != IVAS_ERR_OK ) #endif // IVAS_FLOAT_FIXED { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); Loading @@ -1007,7 +1035,12 @@ int main( /* set panning gains for input LFE */ else if ( args.lfePanningEnabled ) { #ifdef IVAS_FLOAT_FIXED Word32 inputGain = (Word32) ( args.lfeConfigGain * ( 1u << 31 ) ); IF( ( error = IVAS_REND_SetInputLfePos_fx( hIvasRend, mcIds[i], inputGain, (Word16) args.lfeConfigAzimuth, (Word16) args.lfeConfigElevation ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_REND_SetInputLfePos( hIvasRend, mcIds[i], args.lfeConfigGain, args.lfeConfigAzimuth, args.lfeConfigElevation ) ) != IVAS_ERR_OK ) #endif // IVAS_FLOAT_FIXED { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); Loading @@ -1027,7 +1060,16 @@ int main( exit( -1 ); } #ifdef IVAS_FLOAT_FIXED FOR( Word16 k = 0; k < IVAS_MAX_OUTPUT_CHANNELS; k++ ) { ( *lfePanMatrix_fx )[k] = (Word32) ( ( *lfePanMatrix )[k] * ( 1u << 31 ) ); } if ( ( error = IVAS_REND_SetInputLfeMtx_fx( hIvasRend, mcIds[i], (const IVAS_REND_LfePanMtx_fx *) &lfePanMatrix_fx ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_REND_SetInputLfeMtx( hIvasRend, mcIds[i], (const IVAS_REND_LfePanMtx *) &lfePanMatrix ) ) != IVAS_ERR_OK ) #endif // IVAS_FLOAT_FIXED { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); Loading @@ -1036,7 +1078,12 @@ int main( /* set position based gains */ else { #ifdef IVAS_FLOAT_FIXED Word32 inputGain = (Word32) ( lfeRoutingConfigs[i]->lfe_gain_dB * ( 1u << 31 ) ); IF( ( error = IVAS_REND_SetInputLfePos_fx( hIvasRend, mcIds[i], inputGain, (Word16) lfeRoutingConfigs[i]->lfe_azi, (Word16) lfeRoutingConfigs[i]->lfe_ele ) ) != IVAS_ERR_OK ) #else if ( ( error = IVAS_REND_SetInputLfePos( hIvasRend, mcIds[i], lfeRoutingConfigs[i]->lfe_gain_dB, lfeRoutingConfigs[i]->lfe_azi, lfeRoutingConfigs[i]->lfe_ele ) ) != IVAS_ERR_OK ) #endif // IVAS_FLOAT_FIXED { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); Loading @@ -1046,6 +1093,7 @@ int main( } } #ifndef IVAS_FLOAT_FIXED for ( i = 0; i < args.inConfig.numAudioObjects; ++i ) { if ( ( error = IVAS_REND_AddInput( hIvasRend, IVAS_AUDIO_CONFIG_OBA, &ismIds[i] ) ) != IVAS_ERR_OK ) Loading Loading @@ -1082,7 +1130,6 @@ int main( } } for ( i = 0; i < args.inConfig.numMasaBuses; ++i ) { if ( ( error = IVAS_REND_AddInput( hIvasRend, args.inConfig.masaBuses[i].audioConfig, &masaIds[i] ) ) != IVAS_ERR_OK ) Loading @@ -1097,6 +1144,61 @@ int main( exit( -1 ); } } #else FOR ( i = 0; i < args.inConfig.numAudioObjects; ++i ) { IF( ( error = IVAS_REND_AddInput_fx( hIvasRend, IVAS_AUDIO_CONFIG_OBA, &ismIds[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } gain_fx = (Word32) ( args.inputGainGlobal * dBToLin( args.inConfig.audioObjects[i].gain_dB ) * ( 1u << 30 ) ); IF( ( error = IVAS_REND_SetInputGain_fx( hIvasRend, ismIds[i], gain_fx) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } /* With MASA output, all objects are handled at once, so add only one input having all objects in it */ IF ( EQ_32(args.outConfig.audioConfig, IVAS_AUDIO_CONFIG_MASA1) || EQ_32(args.outConfig.audioConfig, IVAS_AUDIO_CONFIG_MASA2) ) { BREAK; } } FOR ( i = 0; i < args.inConfig.numAmbisonicsBuses; ++i ) { IF( ( error = IVAS_REND_AddInput_fx( hIvasRend, args.inConfig.ambisonicsBuses[i].audioConfig, &sbaIds[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } gain_fx = (Word32) ( args.inputGainGlobal * dBToLin( args.inConfig.ambisonicsBuses[i].gain_dB ) * ( 1u << 30 ) ); IF ( ( error = IVAS_REND_SetInputGain_fx( hIvasRend, sbaIds[i], gain_fx ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } } FOR ( i = 0; i < args.inConfig.numMasaBuses; ++i ) { IF( ( error = IVAS_REND_AddInput_fx( hIvasRend, args.inConfig.masaBuses[i].audioConfig, &masaIds[i] ) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } gain_fx = (Word32) ( ( args.inputGainGlobal * dBToLin( args.inConfig.masaBuses[i].gain_dB ) ) * ( 1u << 30 ) ); IF ( ( error = IVAS_REND_SetInputGain_fx( hIvasRend, masaIds[i], gain_fx) ) != IVAS_ERR_OK ) { fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) ); exit( -1 ); } } #endif // !IVAS_FLOAT_FIXED const int16_t totalNumInChannels = getTotalNumInChannels( hIvasRend, mcIds, ismIds, sbaIds, masaIds ); Loading
lib_com/arith_coder_fx.c +1 −1 Original line number Diff line number Diff line Loading @@ -87,7 +87,7 @@ Word32 expfp( /* o: Q31 */ * Returns: *pout1 = ( (base/65536)^(2*exp - 1) ) * 65536 * *pout2 = ( (base/65536)^(2*exp + 1) ) * 65536 * * NOTE: This function must be in sync with ari_decode_14bits_pow() */ * NOTE: This function must be in sync with ari_decode_14bits_pow_fx() */ void powfp_odd2( const Word16 base, /* Q15 */ const Word16 exp, /* Q0 */ Loading
lib_com/basop32.h +1 −0 Original line number Diff line number Diff line Loading @@ -239,6 +239,7 @@ Word32 L_abs( Word32 L_var1 ); /* Word32 DEPR_L_sat_co( Word32 L_var1, Flag Overflow, Flag Carry ); /* Long saturation, 4 */ Word16 norm_s( Word16 var1 ); /* Short norm, 1 */ Word16 div_s( Word16 var1, Word16 var2 ); /* Short division, 18 */ Word32 div_w(Word32 L_num, Word32 L_den); Word16 norm_l( Word32 L_var1 ); /* Long norm, 1 */ #endif /* BASOP_NOGLOB */ Loading