Commit 624ff282 authored by norvell's avatar norvell
Browse files

Merge with main

parents 904e60ff 639d93d1
Loading
Loading
Loading
Loading
Loading
+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 */
+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             */
);

+5 −1
Original line number Diff line number Diff line
@@ -203,8 +203,12 @@
#define FIX_HBR_MASAMETA                                /* Nokia: Fixes to HBR MASA metadata at 384 and 512 kbps. Addresses issues 438 and 477 as well. */
#define FIX_482_DUMMYDEC_INIT                           /* Nokia: fix issue #428: missing inits for dummyDec in IVAS_rend */
#define FIX_468_16KHZ_PUPMIX                            /* Dlb: Fix issue 468 for Param Upmix at 16kHz sampling rate */
#define FIX_489_COV_SMOOTHING                           /* Dlb: Fix covariance smoothing for ParamUpmix */


#define FIX_485_STATIC_BUFFERS                          /* FhG: move static buffers in DirAC parameter estimator to the DirAC struct */
#define FIX_I503_ASAN_ERROR_IND_LIST                    /* VA: fix issue #503: address sanitizer error with IND_LIST_DYN */
#define FIX_473_JITTER_NONDIEGETIC_PANNING              /* FhG,Orange: add missing non-diegetic panning to JITTER */

                                                        /* ################## End DEVELOPMENT switches ######################### */
/* clang-format on */
+4 −0
Original line number Diff line number Diff line
@@ -269,7 +269,11 @@ void ivas_ism_render_sf(
    {

        /* Head rotation: rotate the object positions depending the head's orientation */
#ifdef FIX_473_JITTER_NONDIEGETIC_PANNING
        if ( st_ivas->hHeadTrackData != NULL && st_ivas->hHeadTrackData->num_quaternions >= 0 && !st_ivas->hIsmMetaData[i]->non_diegetic_flag )
#else
        if ( st_ivas->hHeadTrackData != NULL && st_ivas->hHeadTrackData->num_quaternions >= 0 )
#endif
        {
            rotateAziEle( st_ivas->hIsmMetaData[i]->azimuth, st_ivas->hIsmMetaData[i]->elevation, &azimuth, &elevation, Rmat, st_ivas->hIntSetup.is_planar_setup );
            if ( st_ivas->hEFAPdata != NULL )
Loading