Commit 1477705e authored by Jan Kiene's avatar Jan Kiene
Browse files

Merge branch 'main' into ci/enforce-warning-free-builds

parents 43affee3 d16a2c90
Loading
Loading
Loading
Loading
Loading
+30 −29
Original line number Diff line number Diff line
@@ -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
@@ -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
@@ -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:
@@ -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:
@@ -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:
+1 −0
Original line number Diff line number Diff line
@@ -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" />
+105 −3
Original line number Diff line number Diff line
@@ -643,6 +643,7 @@ int main(
#ifdef IVAS_FLOAT_FIXED
    Word32 *outInt32Buffer;
    Word32 *inInt32Buffer;
    Word32 gain_fx;
#endif
    float *outFloatBuffer;
    IVAS_REND_AudioBuffer inBuffer;
@@ -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 ) )
    {
@@ -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 ) );
@@ -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 )
        {
@@ -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 );
@@ -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 );
@@ -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 );
@@ -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 );
@@ -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 )
@@ -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 )
@@ -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 );

+1 −1
Original line number Diff line number Diff line
@@ -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  */
+1 −0
Original line number Diff line number Diff line
@@ -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