Commit 55d37f95 authored by vaclav's avatar vaclav
Browse files

Framework improvements

parent 43a6b2d3
Loading
Loading
Loading
Loading
Loading
+62 −52
Original line number Diff line number Diff line
@@ -103,7 +103,7 @@ typedef struct
    char *outputWavFilename;
    IVAS_DEC_MODE decMode;
    int32_t output_Fs;
    IVAS_DEC_AUDIO_CONFIG outputFormat;
    IVAS_DEC_AUDIO_CONFIG outputConfig;
    bool quietModeEnabled;
    bool delayCompensationEnabled;
    bool voipMode;
@@ -119,12 +119,10 @@ typedef struct
    char *jbmTraceFilename;
#endif
    char *jbmOffsetFilename;
    char *FEPatterFileName;
    char *FEPatternFileName;
    float FER;
    bool hrtfReaderEnabled;
    char *hrtfFileName;
    bool hrtfCRendReaderEnabled;
    char *hrtfCRendFileName;
    IVAS_DEC_INPUT_FORMAT inputFormat;
    bool customLsOutputEnabled;
    char *customLsSetupFilename;
@@ -281,7 +279,7 @@ int main(
    if ( arg.hrtfReaderEnabled )
    {
        /* sanity check */
        if ( arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL && arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM_IR && arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM_REVERB )
        if ( arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL && arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL_ROOM_IR && arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL_ROOM_REVERB )
        {
            arg.hrtfReaderEnabled = false;
            fprintf( stderr, "\nError: HRTF binary file cannot be used in this output configuration.\n\n" );
@@ -303,9 +301,9 @@ int main(
    if ( arg.enableHeadRotation )
    {
        /* sanity check */
        if ( arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL && arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM_IR && arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM_REVERB
        if ( arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL && arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL_ROOM_IR && arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL_ROOM_REVERB
#ifdef SPLIT_REND_WITH_HEAD_ROT
             && arg.outputFormat != IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED && arg.outputFormat != IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM
             && arg.outputConfig != IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED && arg.outputConfig != IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM
#endif
        )
        {
@@ -327,7 +325,7 @@ int main(
    if ( arg.enableReferenceRotation )
    {
        /* sanity check */
        if ( arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL && arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM_IR && arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM_REVERB )
        if ( arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL && arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL_ROOM_IR && arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL_ROOM_REVERB )
        {
            fprintf( stderr, "\nError: Reference rotation file cannot be used in this output configuration.\n\n" );
            goto cleanup;
@@ -354,7 +352,7 @@ int main(
    if ( arg.enableReferenceVectorTracking )
    {
        /* sanity check */
        if ( arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL && arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM_IR && arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM_REVERB )
        if ( arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL && arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL_ROOM_IR && arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL_ROOM_REVERB )
        {
            fprintf( stderr, "\nError: Reference vector trajectory file cannot be used in this output configuration.\n\n" );
            goto cleanup;
@@ -407,9 +405,9 @@ int main(
    if ( arg.renderConfigEnabled )
    {
        /* sanity check */
        if ( arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL && arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM_IR && arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM_REVERB
        if ( arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL && arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL_ROOM_IR && arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL_ROOM_REVERB
#ifdef SPLIT_REND_WITH_HEAD_ROT
             && arg.outputFormat != IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED && arg.outputFormat != IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM
             && arg.outputConfig != IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED && arg.outputConfig != IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM
#endif
        )
        {
@@ -427,13 +425,15 @@ int main(
    /*------------------------------------------------------------------------------------------*
     * Configure the decoder
     *------------------------------------------------------------------------------------------*/

#ifdef SPLIT_REND_WITH_HEAD_ROT
    if ( arg.outputFormat == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED || arg.outputFormat == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM )
    if ( arg.outputConfig == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED || arg.outputConfig == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM )
    {
        arg.enableHeadRotation = true;
    }
#endif
    if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.enableExternalOrientation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK )

    if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputConfig, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.enableExternalOrientation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK )
    {
        fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
        goto cleanup;
@@ -538,9 +538,9 @@ int main(
     * Open Error pattern file for simulation
     *-----------------------------------------------------------------*/

    if ( arg.FEPatterFileName != NULL )
    if ( arg.FEPatternFileName != NULL )
    {
        if ( ( FEC_pattern = fopen( arg.FEPatterFileName, "rb" ) ) == NULL )
        if ( ( FEC_pattern = fopen( arg.FEPatternFileName, "rb" ) ) == NULL )
        {
            fprintf( stderr, "Error: Missing or incorrect FEC filename specification\n\n" );
            usage_dec();
@@ -556,11 +556,11 @@ int main(
     * Print information about FEC
     *-----------------------------------------------------------------*/

    if ( !arg.voipMode && ( arg.FEPatterFileName != NULL || arg.FER > 0 ) )
    if ( !arg.voipMode && ( arg.FEPatternFileName != NULL || arg.FER > 0 ) )
    {
        if ( arg.FEPatterFileName != NULL )
        if ( arg.FEPatternFileName != NULL )
        {
            fprintf( stdout, "FEC:                    %s\n", arg.FEPatterFileName );
            fprintf( stdout, "FEC:                    %s\n", arg.FEPatternFileName );
        }
        else
        {
@@ -581,9 +581,9 @@ int main(

        /* sanity check */
#ifdef SPLIT_REND_WITH_HEAD_ROT
        if ( arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL && arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM_IR && arg.outputFormat != IVAS_DEC_OUTPUT_BINAURAL_ROOM_REVERB &&
             arg.outputFormat != IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED &&
             arg.outputFormat != IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM )
        if ( arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL && arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL_ROOM_IR && arg.outputConfig != IVAS_DEC_OUTPUT_BINAURAL_ROOM_REVERB &&
             arg.outputConfig != IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED &&
             arg.outputConfig != IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM )
        {
            fprintf( stderr, "\nExternal Renderer Config is supported only when binaural output configurations is used as output OR when Split rendering mode is enabled. Exiting. \n" );
            exit( -1 );
@@ -653,28 +653,41 @@ int main(
            goto cleanup;
        }


        IVAS_DEC_HRTF_CREND_HANDLE hSetOfHRTF = NULL;
        IVAS_DEC_GetHrtfCRendHandle( hIvasDec, &hSetOfHRTF );
        if ( ( error = IVAS_DEC_GetHrtfCRendHandle( hIvasDec, &hSetOfHRTF ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nIVAS_DEC_GetHrtfCRendHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
            goto cleanup;
        }

        if ( ( error = create_SetOfHRTF_from_binary( hSetOfHRTF, hrtfReader, arg.output_Fs ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nError in loading HRTF binary file %s for CRend \n\n", arg.hrtfCRendFileName );
            fprintf( stderr, "\nError in loading HRTF binary file %s for CRend \n\n", arg.hrtfFileName );
            goto cleanup;
        }

        IVAS_DEC_HRTF_FASTCONV_HANDLE hHrtfFastConv = NULL;
        IVAS_DEC_GetHrtfFastConvHandle( hIvasDec, &hHrtfFastConv );
        if ( ( error = IVAS_DEC_GetHrtfFastConvHandle( hIvasDec, &hHrtfFastConv ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nIVAS_DEC_GetHrtfFastConvHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
            goto cleanup;
        }

        if ( ( error = load_fastconv_HRTF_from_binary( hHrtfFastConv, hrtfReader ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nError in loading HRTF binary file %s for FastConv \n\n", arg.hrtfCRendFileName );
            fprintf( stderr, "\nError in loading HRTF binary file %s for FastConv \n\n", arg.hrtfFileName );
        }

        IVAS_DEC_HRTF_PARAMBIN_HANDLE hHrtfParambin = NULL;
        IVAS_DEC_GetHrtfParamBinHandle( hIvasDec, &hHrtfParambin );
        if ( ( error = IVAS_DEC_GetHrtfParamBinHandle( hIvasDec, &hHrtfParambin ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nIVAS_DEC_GetHrtfParamBinHandle failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
            goto cleanup;
        }

        if ( ( error = load_parambin_HRTF_from_binary( hHrtfParambin, hrtfReader ) ) != IVAS_ERR_OK )
        {
            fprintf( stderr, "\nError in loading HRTF binary file %s for parametric binauralizer \n\n", arg.hrtfCRendFileName );
            fprintf( stderr, "\nError in loading HRTF binary file %s for parametric binauralizer \n\n", arg.hrtfFileName );
        }
    }

@@ -903,7 +916,7 @@ static bool parseCmdlIVAS_dec(
#endif
#endif
    arg->output_Fs = 48000;
    arg->outputFormat = IVAS_DEC_OUTPUT_MONO;
    arg->outputConfig = IVAS_DEC_OUTPUT_MONO;
    arg->decMode = IVAS_DEC_MODE_IVAS;
    arg->quietModeEnabled = false;
    arg->delayCompensationEnabled = true;
@@ -926,14 +939,11 @@ static bool parseCmdlIVAS_dec(
    arg->jbmOffsetFilename = NULL;

    arg->FER = 0.f;
    arg->FEPatterFileName = NULL;
    arg->FEPatternFileName = NULL;

    arg->hrtfReaderEnabled = false;
    arg->hrtfFileName = NULL;

    arg->hrtfCRendReaderEnabled = false;
    arg->hrtfCRendFileName = NULL;

    arg->customLsOutputEnabled = false;
    arg->customLsSetupFilename = NULL;

@@ -1057,7 +1067,7 @@ static bool parseCmdlIVAS_dec(
            ftmp = 0.0f;
            if ( sscanf( argv[i + 1], "%f", &ftmp ) != 1 )
            {
                arg->FEPatterFileName = argv[i + 1];
                arg->FEPatternFileName = argv[i + 1];
            }
            else
            {
@@ -1344,14 +1354,14 @@ static bool parseCmdlIVAS_dec(

    if ( i < argc - 3 )
    {
        arg->outputFormat = cmdline2config( argv[i] );
        if ( arg->outputFormat == IVAS_DEC_OUTPUT_LS_CUSTOM )
        arg->outputConfig = cmdline2config( argv[i] );
        if ( arg->outputConfig == IVAS_DEC_OUTPUT_LS_CUSTOM )
        {
            arg->customLsOutputEnabled = true;
            arg->customLsSetupFilename = argv[i];
        }
        i++;
        if ( ( arg->Opt_non_diegetic_pan ) && ( arg->outputFormat != IVAS_DEC_OUTPUT_STEREO ) )
        if ( ( arg->Opt_non_diegetic_pan ) && ( arg->outputConfig != IVAS_DEC_OUTPUT_STEREO ) )
        {
            fprintf( stderr, "Error: non-diegetic panning is supported in stereo only\n\n" );
            usage_dec();
@@ -1360,11 +1370,11 @@ static bool parseCmdlIVAS_dec(
    }
    else
    {
        arg->outputFormat = IVAS_DEC_OUTPUT_MONO;
        arg->outputConfig = IVAS_DEC_OUTPUT_MONO;
        arg->decMode = IVAS_DEC_MODE_EVS;
        if ( ( arg->Opt_non_diegetic_pan ) )
        {
            arg->outputFormat = IVAS_DEC_OUTPUT_STEREO;
            arg->outputConfig = IVAS_DEC_OUTPUT_STEREO;
        }
    }

@@ -1562,8 +1572,8 @@ static ivas_error initOnFirstGoodFrame(
        return error;
    }
#ifdef SPLIT_REND_WITH_HEAD_ROT
    if ( ( arg.outputFormat == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM ) ||
         ( arg.outputFormat == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED ) )
    if ( ( arg.outputConfig == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM ) ||
         ( arg.outputConfig == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED ) )
    {
        pFullDelayNumSamples[0] = 0;
    }
@@ -1590,7 +1600,7 @@ static ivas_error initOnFirstGoodFrame(
    }

#ifdef SPLIT_REND_WITH_HEAD_ROT
    if ( arg.outputFormat == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED )
    if ( arg.outputConfig == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED )
    {
        int16_t delayNumSamples_temp[3];
        int32_t delayTimeScale_temp;
@@ -1605,7 +1615,7 @@ static ivas_error initOnFirstGoodFrame(
    }
    else
    {
        if ( arg.outputFormat == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM )
        if ( arg.outputConfig == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM )
        {
            int16_t delayNumSamples_temp[3];
            int32_t delayTimeScale_temp;
@@ -1673,7 +1683,7 @@ static ivas_error initOnFirstGoodFrame(
    free( zeroBuf );

    /* Open other output files if EXT output config - now details about ISM or MASA are known */
    if ( arg.outputFormat == IVAS_DEC_OUTPUT_EXT )
    if ( arg.outputConfig == IVAS_DEC_OUTPUT_EXT )
    {
        if ( ( error = IVAS_DEC_GetFormat( hIvasDec, pBsFormat ) ) != IVAS_ERR_OK )
        {
@@ -2036,7 +2046,7 @@ static ivas_error decodeG192(
        if ( decodedGoodFrame )
        {
#ifdef SPLIT_REND_WITH_HEAD_ROT
            if ( ( hSplitRendFileReadWrite != NULL ) && ( arg.outputFormat == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED ) )
            if ( ( hSplitRendFileReadWrite != NULL ) && ( arg.outputConfig == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_CODED ) )
            {
                if ( split_rend_write_bitstream_to_file( hSplitRendFileReadWrite, splitRendBits.bits_buf, &splitRendBits.bits_read, &splitRendBits.bits_written,
                                                         splitRendBits.codec, splitRendBits.pose_correction ) != IVAS_ERR_OK )
@@ -2047,7 +2057,7 @@ static ivas_error decodeG192(
            }
            else
            {
                if ( ( hSplitRendFileReadWrite != NULL ) && ( arg.outputFormat == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM ) )
                if ( ( hSplitRendFileReadWrite != NULL ) && ( arg.outputConfig == IVAS_DEC_OUTPUT_SPLIT_BINAURAL_PCM ) )
                {
                    if ( split_rend_write_bitstream_to_file( hSplitRendFileReadWrite, splitRendBits.bits_buf, &splitRendBits.bits_read, &splitRendBits.bits_written,
                                                             splitRendBits.codec, splitRendBits.pose_correction ) != IVAS_ERR_OK )
@@ -2076,7 +2086,7 @@ static ivas_error decodeG192(
        }

        /* Write ISM metadata to external file(s) */
        if ( decodedGoodFrame && arg.outputFormat == IVAS_DEC_OUTPUT_EXT )
        if ( decodedGoodFrame && arg.outputConfig == IVAS_DEC_OUTPUT_EXT )
        {
            if ( bsFormat == IVAS_DEC_BS_OBJ )
            {
@@ -2176,7 +2186,7 @@ static ivas_error decodeG192(
    }

    /* Print output metadata file name(s) */
    if ( arg.outputFormat == IVAS_DEC_OUTPUT_EXT )
    if ( arg.outputConfig == IVAS_DEC_OUTPUT_EXT )
    {
        if ( bsFormat == IVAS_DEC_BS_OBJ )
        {
@@ -2651,7 +2661,7 @@ static ivas_error decodeVoIP(
            }

            /* Write ISM metadata to external file(s) */
            if ( decodedGoodFrame && arg.outputFormat == IVAS_DEC_OUTPUT_EXT )
            if ( decodedGoodFrame && arg.outputConfig == IVAS_DEC_OUTPUT_EXT )
            {
                int16_t i;

@@ -3082,7 +3092,7 @@ static ivas_error decodeVariableSpeed(
        }

        /* Write ISm metadata to external file(s) */
        if ( decodedGoodFrame && arg.outputFormat == IVAS_DEC_OUTPUT_EXT )
        if ( decodedGoodFrame && arg.outputConfig == IVAS_DEC_OUTPUT_EXT )
        {
            if ( bsFormat == IVAS_DEC_BS_OBJ )
            {
@@ -3261,7 +3271,7 @@ static ivas_error decodeVariableSpeed(
        }

        /* Write ISm metadata to external file(s) */
        if ( decodedGoodFrame && arg.outputFormat == IVAS_DEC_OUTPUT_EXT )
        if ( decodedGoodFrame && arg.outputConfig == IVAS_DEC_OUTPUT_EXT )
        {
            if ( bsFormat == IVAS_DEC_BS_OBJ )
            {
@@ -3338,7 +3348,7 @@ static ivas_error decodeVariableSpeed(
    }

    /* Print output metadata file name(s) */
    if ( arg.outputFormat == IVAS_DEC_OUTPUT_EXT )
    if ( arg.outputConfig == IVAS_DEC_OUTPUT_EXT )
    {
        if ( bsFormat == IVAS_DEC_BS_OBJ )
        {
+25 −2
Original line number Diff line number Diff line
@@ -40,7 +40,12 @@
#include "wmc_auto.h"
#include "prot.h"

/*-----------------------------------------------------------------------------------------*
 * Local constants
 *-----------------------------------------------------------------------------------------*/

#define BAND_SMOOTH_REST_START_IDX ( 2 )

#ifndef CODE_CLEAN_UP_DIRAC
/*-----------------------------------------------------------------------------------------*
 * Function ivas_set_up_cov_smoothing()
@@ -147,24 +152,36 @@ static void ivas_set_up_cov_smoothing(
 * To calculate the update factor
 *-----------------------------------------------------------------------------------------*/

static float ivas_calculate_update_factor( float *p_bin_to_band, int16_t active_bins )
static float ivas_calculate_update_factor(
    float *p_bin_to_band,
    int16_t active_bins )
{
    float update_factor_temp = 0.0f;
    int16_t k;

    for ( k = 0; k < active_bins; k++ )
    {
        update_factor_temp += p_bin_to_band[k];
    }

    return update_factor_temp;
}


/*-----------------------------------------------------------------------------------------*
 * Function ivas_calculate_smoothning_factor()
 *
 * To calculate the Smoothning factor
 *-----------------------------------------------------------------------------------------*/

static void ivas_calculate_smoothning_factor( float *Smoothing_factor, float update_factor, const int16_t min_pool_size, const float max_update_rate, const COV_SMOOTHING_TYPE smooth_mode, const int32_t ivas_total_brate, int16_t j )
static void ivas_calculate_smoothning_factor(
    float *Smoothing_factor,
    float update_factor,
    const int16_t min_pool_size,
    const float max_update_rate,
    const COV_SMOOTHING_TYPE smooth_mode,
    const int32_t ivas_total_brate,
    int16_t j )
{
    float smooth_fact;
    *Smoothing_factor = update_factor / min_pool_size;
@@ -180,12 +197,16 @@ static void ivas_calculate_smoothning_factor( float *Smoothing_factor, float upd
        }
        *Smoothing_factor *= ( j + 1 ) * smooth_fact;
    }

    if ( *Smoothing_factor > max_update_rate )
    {
        *Smoothing_factor = max_update_rate;
    }

    return;
}


/*-----------------------------------------------------------------------------------------*
 * Function ivas_set_up_cov_smoothing()
 *
@@ -223,6 +244,8 @@ static void ivas_set_up_cov_smoothing(
    }

    hCovState->prior_bank_idx = -1;

    return;
}

#endif
+2 −2
Original line number Diff line number Diff line
@@ -603,8 +603,8 @@ static void ivas_fb_mixer_cross_fading(

    if ( hFbMixer->first_frame[ch] == 0 )
    {
        fade_start_offset = (int16_t) hFbMixer->cross_fade_start_offset;
        fade_end_offset = (int16_t) hFbMixer->cross_fade_end_offset;
        fade_start_offset = hFbMixer->cross_fade_start_offset;
        fade_end_offset = hFbMixer->cross_fade_end_offset;

        for ( k = 0; k < fade_start_offset; k++ )
        {
+2 −1
Original line number Diff line number Diff line
@@ -2604,7 +2604,7 @@ void sns_avq_dec(
void sns_avq_dec_stereo(
    int16_t *indexl,                                            /* i  : Quantization indices (left channel)     */
    int16_t *indexr,                                            /* i  : Quantization indices (right channe)     */
    const int16_t L_frame,
    const int16_t L_frame,                                      /* i  : frame length                            */
    float *SNS_Ql,                                              /* o  : Quantized SNS vectors (left channel)    */
    float *SNS_Qr                                               /* o  : Quantized SNS vectors (right channe)    */
);
@@ -3469,6 +3469,7 @@ void ivas_sba_getTCs(
    const int16_t input_frame                                   /* i  : frame length                            */
);

/*! r: SBA DirAC stereo flag */
int16_t ivas_sba_remapTCs(
    float sba_data[][L_FRAME48k],                               /* i/o: SBA signals                             */
    Decoder_Struct *st_ivas,                                    /* i/o: decoder struct                          */
+145 −110

File changed.

Preview size limit exceeded, changes collapsed.

Loading