Commit a873d42b authored by Jan Kiene's avatar Jan Kiene
Browse files

Merge branch 'main' into float-1537-make-clang-the-default-compiler-in-makefile-and-cmakelists-txt

parents 540660c0 08cd8642
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -3371,6 +3371,8 @@ static ivas_error decodeVoIP(

            *phIvasDec = hIvasDec; /* Update for main()' s free */
            ivasRtp.restartNeeded = false;
            bitstreamReadDone = false;
            parametersAvailableForEditing = false;
        }

        /* reference vector */
@@ -3619,6 +3621,8 @@ static ivas_error decodeVoIP(
                        goto cleanup;
                    }
                    *phIvasDec = hIvasDec; /* Update for main()' s free */
                    bitstreamReadDone = false;
                    parametersAvailableForEditing = false;
                }

                /* Placeholder for memory reallocation */
@@ -4377,12 +4381,6 @@ static ivas_error restartDecoder(
        }
    }

    if ( ( error = IVAS_DEC_PrintConfig( hIvasDec, 1, arg->voipMode ) ) != IVAS_ERR_OK )
    {
        fprintf( stderr, "\nIVAS_DEC_PrintConfig failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
        goto cleanup;
    }

    /* ISAR frame size is set from command line, not renderer config file.
     * This will be ignored if output format is not split rendering. */
    if ( renderConfig != NULL )
+6 −6
Original line number Diff line number Diff line
@@ -7,15 +7,13 @@ TEST_TYPES = ["sanitizers"]


def main(args):

    test = args.test
    file = args.console_out_file
    if test == "sanitizers":
        collect_for_sanitizer_test(file)


def find_failed_files_for_sanitizer_test(console_log: list) -> dict():

def find_failed_files_for_sanitizer_test(console_log: list) -> dict:
    pattern_line = r"(CLANG.) reports . error\(s\) for (.*)"

    files_found = dict()
@@ -33,13 +31,15 @@ def find_failed_files_for_sanitizer_test(console_log: list) -> dict():


def collect_for_sanitizer_test(file):

    with open(file) as f:
        console_log = f.readlines()

    start_indicators = ["Adding config" in l for l in console_log]
    start_indicators = ["Adding config CLANG1" in line for line in console_log]
    assert sum(start_indicators) == 2

    idx_first_run = start_indicators.index(True)
    idx_second_run = start_indicators[idx_first_run + 1:].index(True) + idx_first_run + 1
    idx_second_run = start_indicators.index(True, idx_first_run + 1)

    no_plc_part = console_log[idx_first_run:idx_second_run]
    plc_part = console_log[idx_second_run:]

+2 −2
Original line number Diff line number Diff line
@@ -161,13 +161,13 @@
/*#define FIX_I4_OL_PITCH*/                             /* fix open-loop pitch used for EVS core switching */
#define TMP_1342_WORKAROUND_DEC_FLUSH_BROKEN_IN_SR      /* FhG: Temporary workaround for incorrect implementation of decoder flush with split rendering */
#define NONBE_1122_KEEP_EVS_MODE_UNCHANGED              /* FhG: Disables fix for issue 1122 in EVS mode to keep BE tests green. This switch should be removed once the 1122 fix is added to EVS via a CR.  */
#define FIX_FLOAT_1535_ARI_RES_Q_CLEANUP                /* FhG: remove dead code from tcx_ari_res_Q_spec() */


/* #################### End BE switches ################################## */

/* #################### Start NON-BE switches ############################ */
/* any switch which is non-be wrt. TS 26.258 V3.0 */
#define FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE    /* Nokia: float issue 1493: Improves float decision stability in MASA encoding by adjusting reduction code */


/* ##################### End NON-BE switches ########################### */

+1 −0
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@ void core_encode_twodiv(
    set_s( tnsSize, 0, 2 );
    set_s( tnsBits, 0, 2 );
    ltpBits = 0;
    no_param_lpc = 0;

    for ( i = 0; i < 3; i++ )
    {
+1 −24
Original line number Diff line number Diff line
@@ -82,9 +82,7 @@ static void masa_metadata_direction_alignment( MASA_ENCODER_HANDLE hMasa );
#define LOWBITRATE_ONSET_BETA  0.92f
#define LOWBITRATE_ONSET_GAIN  1.4f
#define LOWBITRATE_NUM_BANDS   5
#ifdef FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE
#define IMPORTANCE_MIN_STEP    0.000244140625f /* 2^-12 to match BASOP */
#endif


/*-----------------------------------------------------------------------*
@@ -984,11 +982,7 @@ static void combine_freqbands_and_subframes(
    MASA_ENCODER_HANDLE hMasa )
{
    int16_t i, j, k, m;
#ifdef FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE
    volatile float aziRad, eleRad; /* Using volatile to reduce numerically unstable optimization */
#else
    float aziRad, eleRad;
#endif
    float x[MASA_MAXIMUM_DIRECTIONS][MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];
    float y[MASA_MAXIMUM_DIRECTIONS][MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];
    float z[MASA_MAXIMUM_DIRECTIONS][MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];
@@ -1074,14 +1068,9 @@ static void combine_freqbands_and_subframes(
                        energySum += hMasa->data.energy[j][m];
                    }

#ifdef FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE
                    /* Using atan2 instead of atan2f to reduce platform difference */
                    aziRad = (float) atan2( ySum, xSum );
                    eleRad = (float) atan2( zSum, sqrtf( xSum * xSum + ySum * ySum ) );
#else
                    aziRad = atan2f( ySum, xSum );
                    eleRad = atan2f( zSum, sqrtf( xSum * xSum + ySum * ySum ) );
#endif

                    hMeta->directional_meta[i].azimuth[j][k] = aziRad / EVS_PI * 180.0f;
                    hMeta->directional_meta[i].elevation[j][k] = eleRad / EVS_PI * 180.0f;
@@ -1189,13 +1178,8 @@ void ivas_masa_combine_directions(
    uint8_t computeCoherence;
    MASA_METADATA_HANDLE hMeta;

#ifdef FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE
    volatile float aziRad; /* Using volatile to reduce numerically unstable optimization */
    volatile float eleRad;
#else
    float aziRad;
    float eleRad;
#endif
    float x[MASA_MAXIMUM_DIRECTIONS][MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];
    float y[MASA_MAXIMUM_DIRECTIONS][MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];
    float z[MASA_MAXIMUM_DIRECTIONS][MAX_PARAM_SPATIAL_SUBFRAMES][MASA_FREQUENCY_BANDS];
@@ -1265,13 +1249,11 @@ void ivas_masa_combine_directions(
            }
            importance[i] /= (float) numSf;
            importance[i] *= hMasa->data.importanceWeight[i];
#ifdef FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE
            /* Setting close to zero values to zero to reduce decision differences */
            if ( importance[i] < IMPORTANCE_MIN_STEP )
            {
                importance[i] = 0.0f;
            }
#endif
        }

        /* Determine bands where to use two directions */
@@ -1295,14 +1277,9 @@ void ivas_masa_combine_directions(
        {
            for ( j = 0; j < numSf; j++ )
            {
#ifdef FIX_FLOAT_1493_MASA_ENCODE_STABILITY_IMPROVE
                /* Using atan2 instead of atan2f to reduce platform difference */
                aziRad = (float) atan2( ySum[j][i], xSum[j][i] );
                eleRad = (float) atan2( zSum[j][i], sqrtf( xSum[j][i] * xSum[j][i] + ySum[j][i] * ySum[j][i] ) );
#else
                aziRad = atan2f( ySum[j][i], xSum[j][i] );
                eleRad = atan2f( zSum[j][i], sqrtf( xSum[j][i] * xSum[j][i] + ySum[j][i] * ySum[j][i] ) );
#endif

                hMeta->directional_meta[0].azimuth[j][i] = aziRad / EVS_PI * 180.0f;
                hMeta->directional_meta[0].elevation[j][i] = eleRad / EVS_PI * 180.0f;
Loading