Commit 5161b851 authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

Merge branch 'main' of forge.3gpp.org:ivas-codec-pc/ivas-codec into...

Merge branch 'main' of forge.3gpp.org:ivas-codec-pc/ivas-codec into 640-split-rendering-remove-dev-lc3plus-defines
parents e5d72ec0 6fbbc600
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -158,6 +158,9 @@
#define ROM_TO_RAM                                     /*Dlb : ROM optimization in SR mode*/     
#define FIX_712_713_SPLIT_REND_MASA_MC                 /*Dlb : Fix for issue 712 and 713*/
#endif
#define REMOVE_UNUSED_FUNCTION                          /* Dlb: Remove functions that are unhit/unused */
#define FIX_MSAN_USAN_ERROR_JBM                         /* Dlb: Resolve MSAN and USAN errors in the SBA-JBM test case added*/


#define FIX_818_DOUBLE_PREC_KERNEL_SW                   /* FhG: Issue 818: Avoid double precision in kernel switching */
#define FIX_822_REFACTOR_BIN_REVERB_OPEN                /* Nokia: Addresses first step of issue 822 by refactoring ivas_binaural_reverb_open */
@@ -181,6 +184,7 @@
#define NONBE_FIX_841_MC_RS_TDOBJ_RENDERER                    /* FhG: Issue #841: [Non-BE] Resolve "MC RS HRFT handle not set to NULL" */
#define NONBE_FIX_840_PARAMMC_RS                              /* FhG: Issue #840: Resolve "MC RS ParamMC hoa encoder wrongly set to zero" */
#define NONBE_FIX_826_JBM_MASA_CNA_CNG                        /* FhG: issue #826:  Resolve "JBM MASA: CNA and CNG not in sync with non-JBM decoding" */
#define NONBE_FIX_835_JBM_PARAMUPMIX_HEADROT                  /* FhG: issue #835: Resolve "JBM: ParamUpmix head rotation broken" */

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

+4 −0
Original line number Diff line number Diff line
@@ -1615,7 +1615,11 @@ void ivas_spar_param_to_masa_param_mapping(
    for ( slot_idx = 0; slot_idx < hSpar->subframe_nbslots[subframe]; slot_idx++ )
    {
        sf = hSpar->render_to_md_map[slot_idx + slot_idx_start] / JBM_CLDFB_SLOTS_IN_SUBFRAME;
#ifndef FIX_MSAN_USAN_ERROR_JBM
        if ( subframe < SPAR_META_DELAY_SUBFRAMES )
#else
        if ( ( sf < SPAR_META_DELAY_SUBFRAMES ) )
#endif
        {
            mixer_mat_index = sf + MAX_PARAM_SPATIAL_SUBFRAMES - SPAR_META_DELAY_SUBFRAMES + 1;
            for ( band = 0; band < SPAR_DIRAC_SPLIT_START_BAND; band++ )
+24 −0
Original line number Diff line number Diff line
@@ -1020,6 +1020,17 @@ static void ivas_mc_paramupmix_dec_sf(
    int16_t noparamupmix_delay, n_samples_rendered;
    MC_PARAMUPMIX_DEC_HANDLE hMCParamUpmix;
    int16_t subframeIdx, idx_in, maxBand;
#ifdef NONBE_FIX_835_JBM_PARAMUPMIX_HEADROT
    float Cldfb_RealBuffer_subfr[MAX_INTERN_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
    float Cldfb_ImagBuffer_subfr[MAX_INTERN_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
#ifdef SPLIT_REND_WITH_HEAD_ROT
    float Cldfb_RealBuffer_Binaural[MAX_HEAD_ROT_POSES][BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
    float Cldfb_ImagBuffer_Binaural[MAX_HEAD_ROT_POSES][BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
#else
    float Cldfb_RealBuffer_Binaural[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
    float Cldfb_ImagBuffer_Binaural[BINAURAL_CHANNELS][MAX_PARAM_SPATIAL_SUBFRAMES][CLDFB_NO_CHANNELS_MAX];
#endif
#else
#ifdef SPLIT_REND_WITH_HEAD_ROT
    float Cldfb_RealBuffer_subfr[MC_PARAMUPMIX_MAX_INPUT_CHANS][JBM_CLDFB_SLOTS_IN_SUBFRAME][CLDFB_NO_CHANNELS_MAX];
    float Cldfb_ImagBuffer_subfr[MC_PARAMUPMIX_MAX_INPUT_CHANS][JBM_CLDFB_SLOTS_IN_SUBFRAME][CLDFB_NO_CHANNELS_MAX];
@@ -1031,6 +1042,7 @@ static void ivas_mc_paramupmix_dec_sf(
    float Cldfb_ImagBuffer_subfr[3 + MC_PARAMUPMIX_MAX_TRANSPORT_CHANS][JBM_CLDFB_SLOTS_IN_SUBFRAME][CLDFB_NO_CHANNELS_MAX];
    float Cldfb_RealBuffer_Binaural[BINAURAL_CHANNELS][JBM_CLDFB_SLOTS_IN_SUBFRAME][CLDFB_NO_CHANNELS_MAX];
    float Cldfb_ImagBuffer_Binaural[BINAURAL_CHANNELS][JBM_CLDFB_SLOTS_IN_SUBFRAME][CLDFB_NO_CHANNELS_MAX];
#endif
#endif

    hMCParamUpmix = st_ivas->hMCParamUpmix;
@@ -1119,10 +1131,21 @@ static void ivas_mc_paramupmix_dec_sf(
            idx_in += 2;
        }

#ifdef NONBE_FIX_835_JBM_PARAMUPMIX_HEADROT
        if ( st_ivas->hCombinedOrientationData && st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV )
        {
            for ( slot_idx = 0; slot_idx < st_ivas->hTcBuffer->subframe_nbslots[st_ivas->hTcBuffer->subframes_rendered]; slot_idx++ )
            {
                ivas_param_mc_mc2sba_cldfb( st_ivas->hTransSetup, hMCParamUpmix->hoa_encoder, slot_idx, Cldfb_RealBuffer_subfr, Cldfb_ImagBuffer_subfr, maxBand, GAIN_LFE );
            }
        }
#endif

#ifdef SPLIT_REND_WITH_HEAD_ROT
        /*LFE handling for split rendering cases*/
        if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED || st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM )
        {
#ifndef NONBE_FIX_835_JBM_PARAMUPMIX_HEADROT
            for ( idx_lfe = 0; idx_lfe < st_ivas->hIntSetup.num_lfe; idx_lfe++ )
            {
                ch = st_ivas->hIntSetup.index_lfe[idx_lfe];
@@ -1132,6 +1155,7 @@ static void ivas_mc_paramupmix_dec_sf(
                }
                idx_in++;
            }
#endif

#ifdef SPLIT_REND_WITH_HEAD_ROT
            if ( st_ivas->hSplitBinRend.hCldfbDataOut != NULL )
+4 −1
Original line number Diff line number Diff line
@@ -205,8 +205,11 @@ int16_t JB4_JMF_PushPacket(
        h->lastRtpTimeStamp = rtpTimeStamp;
        return 0;
    }

#ifndef FIX_MSAN_USAN_ERROR_JBM
    rtpTimeDiff = rtpTimeStamp - h->lastRtpTimeStamp;
#else
    rtpTimeDiff = (int32_t) ( rtpTimeStamp - h->lastRtpTimeStamp );
#endif
    sysTimeDiff = sysTime - h->lastSysTime;
    offset = sysTime - rtpTimeStamp;

+5 −0
Original line number Diff line number Diff line
@@ -1254,6 +1254,11 @@ networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP HOA3 32 netsimoutput testv/stv3OA32c.wav_SBA_80000_32-32_HOA3_JBM5.tst

// SBA at 13.2 kbps, 48kHz in, 48kHz out, BINAURAL out, JBM Prof 5
../IVAS_cod -sba 1 13200 48 testv/stvFOA48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
../IVAS_dec -Tracefile tracefile_dec -VOIP BINAURAL 48 netsimoutput testv/stvFOA32c.wav_SBA_13200_48-48_BINAURAL_JBM5.tst

// Multi-channel 5_1 at 384 kbps, 48kHz in, 48kHz out, 7_1_4 out, JBM Prof 5
../IVAS_cod -mc 5_1 384000 48 testv/stv51MC48c.wav bit
networkSimulator_g192 ../scripts/dly_error_profiles/dly_error_profile_5.dat bit netsimoutput tracefile_sim 2 0
Loading