Commit 03fe22ae authored by Marek Szczerba's avatar Marek Szczerba
Browse files

Merge branch 'main' into philips/contribution-38-control-metadata-reverb

parents 38903e53 343bb6a7
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -412,12 +412,20 @@ int main(
    /*------------------------------------------------------------------------------------------*
     * Configure the decoder
     *------------------------------------------------------------------------------------------*/

#ifdef FIX_356_ISM_METADATA_SYNC
#ifdef FIX_439_OTR_PARAMS
    if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK )
#else
    if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain, arg.delayCompensationEnabled ) ) != IVAS_ERR_OK )
#endif
#else
#ifdef FIX_439_OTR_PARAMS
    if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.orientation_tracking, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain ) ) != IVAS_ERR_OK )
#else
    if ( ( error = IVAS_DEC_Configure( hIvasDec, arg.output_Fs, arg.outputFormat, arg.customLsOutputEnabled, arg.hrtfReaderEnabled, arg.enableHeadRotation, arg.renderConfigEnabled, arg.Opt_non_diegetic_pan, arg.non_diegetic_pan_gain ) ) != IVAS_ERR_OK )
#endif
#endif

    {
        fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) );
        goto cleanup;
+8 −0
Original line number Diff line number Diff line
@@ -2240,5 +2240,13 @@ enum
    VOIP_RTPDUMP
};

#ifdef FIX_489_COV_SMOOTHING
typedef enum _COV_SMOOTHING_TYPE
{
    COV_SMOOTH_SPAR,
    COV_SMOOTH_MC
} COV_SMOOTHING_TYPE;
#endif

/* clang-format on */
#endif /* CNST_H */
+0 −14
Original line number Diff line number Diff line
@@ -69,17 +69,10 @@ int32_t get_delay(
        {
            delay = IVAS_ENC_DELAY_NS;

#ifdef FIX_356_ISM_METADATA_SYNC
            if ( ivas_format == ISM_FORMAT || ivas_format == MASA_FORMAT )
            {
                delay = 0; /* All delay is compensated in the decoder with MASA/ISM */
            }
#else
            if ( ivas_format == MASA_FORMAT )
            {
                delay = 0; /* All delay is compensated in the decoder with MASA */
            }
#endif
        }

        if ( ivas_format == SBA_FORMAT )
@@ -111,17 +104,10 @@ int32_t get_delay(
                delay += IVAS_FB_DEC_DELAY_NS;
            }

#ifdef FIX_356_ISM_METADATA_SYNC
            if ( ivas_format == ISM_FORMAT || ivas_format == MASA_FORMAT )
            {
                delay += IVAS_ENC_DELAY_NS; /* Compensate also the encoder delay in the decoder with ISM/MASA */
            }
#else
            if ( ivas_format == MASA_FORMAT )
            {
                delay += IVAS_ENC_DELAY_NS; /* Compensate also the encoder delay in the decoder with MASA */
            }
#endif
        }
    }

+41 −1
Original line number Diff line number Diff line
@@ -35,6 +35,9 @@
#ifdef DEBUGGING
#include "debug.h"
#endif
#ifdef FIX_489_COV_SMOOTHING
#include "cnst.h"
#endif
#include "ivas_prot.h"
#include "wmc_auto.h"
#include "prot.h"
@@ -50,7 +53,12 @@ static void ivas_set_up_cov_smoothing(
    ivas_cov_smooth_state_t *hCovState,
    ivas_filterbank_t *pFb,
    const float max_update_rate,
    const int16_t min_pool_size,
    const int16_t min_pool_size
#ifdef FIX_489_COV_SMOOTHING
    ,
    const COV_SMOOTHING_TYPE smooth_mode /* i  : flag multichannel vs SPAR       */
#endif
    ,
    const int32_t ivas_total_brate )
{
    int16_t j, k;
@@ -88,7 +96,30 @@ static void ivas_set_up_cov_smoothing(
            }
        }
    }
#ifdef FIX_489_COV_SMOOTHING
    else if ( smooth_mode == COV_SMOOTH_MC )
    {
        for ( j = 0; j < pFb->filterbank_num_bands; j++ )
        {
            float update_factor;
            update_factor = 0.0f;

            for ( k = 0; k < pFb->fb_bin_to_band.pFb_active_bins_per_band[j]; k++ )
            {
                update_factor += pFb->fb_bin_to_band.pFb_bin_to_band[j][k];
            }

            hCovState->pSmoothing_factor[j] = update_factor / min_pool_size;

            if ( hCovState->pSmoothing_factor[j] > max_update_rate )
            {
                hCovState->pSmoothing_factor[j] = max_update_rate;
            }
        }
    }
#endif
    else
    {
        for ( j = 0; j < pFb->filterbank_num_bands; j++ )
        {
            float update_factor;
@@ -108,6 +139,8 @@ static void ivas_set_up_cov_smoothing(
                hCovState->pSmoothing_factor[j] = max_update_rate;
            }
        }
    }

    hCovState->prior_bank_idx = -1;

    return;
@@ -126,6 +159,9 @@ ivas_error ivas_spar_covar_smooth_enc_open(
    ivas_filterbank_t *pFb,                      /* i/o: FB handle                      */
    const int16_t nchan_inp                      /* i  : number of input channels       */
    ,
#ifdef FIX_489_COV_SMOOTHING
    COV_SMOOTHING_TYPE smooth_mode, /* i : Smooth covariance for SPAR or MC */
#endif
    const int32_t ivas_total_brate /* i  : IVAS total bitrate             */
)
{
@@ -155,7 +191,11 @@ ivas_error ivas_spar_covar_smooth_enc_open(
    }


#ifdef FIX_489_COV_SMOOTHING
    ivas_set_up_cov_smoothing( hCovState, pFb, cov_smooth_cfg->max_update_rate, cov_smooth_cfg->min_pool_size, smooth_mode, ivas_total_brate );
#else
    ivas_set_up_cov_smoothing( hCovState, pFb, cov_smooth_cfg->max_update_rate, cov_smooth_cfg->min_pool_size, ivas_total_brate );
#endif

    *hCovState_out = hCovState;

+6 −0
Original line number Diff line number Diff line
@@ -4733,6 +4733,9 @@ ivas_error ivas_spar_covar_enc_open(
    const int32_t input_Fs,                                     /* i  : input sampling rate                     */
    const int16_t nchan_inp                                     /* i  : number of input channels                */
	,
#ifdef FIX_489_COV_SMOOTHING
    COV_SMOOTHING_TYPE smooth_mode,                    /* i : Smooth covariance for SPAR or MC*/
#endif
	const int32_t ivas_total_brate                              /* i  : IVAS total bitrate                      */
);

@@ -4763,6 +4766,9 @@ ivas_error ivas_spar_covar_smooth_enc_open(
    ivas_filterbank_t *pFb,                                     /* i/o: FB handle                               */
    const int16_t nchan_inp                                     /* i  : number of input channels                */
    ,
#ifdef FIX_489_COV_SMOOTHING
    COV_SMOOTHING_TYPE smooth_mode,                    /* i : Smooth covariance for SPAR or MC*/
#endif
    const int32_t ivas_total_brate                              /* i  : IVAS total bitrate             */
);

Loading