Commit 6055cbe3 authored by Vidhya VP's avatar Vidhya VP
Browse files

Merge branch 'split_rendering_merging_sub_switches' into 'main'

Modifying the switches related to split rendering

See merge request !1141
parents a2dd1afe 62551289
Loading
Loading
Loading
Loading
Loading
+0 −15
Original line number Diff line number Diff line
@@ -1492,9 +1492,7 @@ typedef enum
    PITCH_ONLY,
    ANY_ROLL,
    PRED_ONLY,
#ifdef SPLIT_REND_PRED_QUANT_63_PNTS
    PRED_ROLL_ONLY,
#endif
    COM_GAIN_ONLY,
    LR_GAIN_ONLY
} IVAS_SPLIT_REND_POSE_TYPE;
@@ -1566,18 +1564,10 @@ typedef enum
#define COMPLEX_MD_BAND_THRESH                  MAX_SPLIT_REND_MD_BANDS
#define COMPLEX_MD_BAND_THRESH_LOW              5

#ifndef SPLIT_REND_PRED_QUANT_63_PNTS
#define IVAS_SPLIT_REND_NUM_QUANT_STRATS        3
#else
#define IVAS_SPLIT_REND_NUM_QUANT_STRATS        4
#endif
#ifdef SPLIT_REND_PRED_QUANT_63_PNTS
#define IVAS_SPLIT_REND_PRED_63QUANT_PNTS       63
#define IVAS_SPLIT_REND_PRED_31QUANT_PNTS       31
#define IVAS_SPLIT_REND_ROLL_PRED_QUANT_PNTS    31
#else
#define IVAS_SPLIT_REND_PRED_QUANT_PNTS         31
#endif
#define IVAS_SPLIT_REND_D_QUANT_PNTS            15
#define IVAS_SPLIT_REND_PRED_MIN_VAL            -1.4f
#define IVAS_SPLIT_REND_PRED_MAX_VAL            1.4f
@@ -1588,17 +1578,12 @@ typedef enum
#define IVAS_SPLIT_REND_D_MIN_VAL               0.0f
#define IVAS_SPLIT_REND_D_MAX_VAL               1.0f

#ifdef SPLIT_REND_PRED_QUANT_63_PNTS
#define IVAS_SPLIT_REND_PRED_ROLL_Q_STEP        (( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL ) / ( IVAS_SPLIT_REND_ROLL_PRED_QUANT_PNTS - 1 ))
#define IVAS_SPLIT_REND_PRED_ROLL_1BYQ_STEP     (( IVAS_SPLIT_REND_ROLL_PRED_QUANT_PNTS - 1 )/( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL )) 
#define IVAS_SPLIT_REND_PRED31_Q_STEP           (( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL ) / ( IVAS_SPLIT_REND_PRED_31QUANT_PNTS - 1 ))
#define IVAS_SPLIT_REND_PRED31_1BYQ_STEP        (( IVAS_SPLIT_REND_PRED_31QUANT_PNTS - 1 )/( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL )) 
#define IVAS_SPLIT_REND_PRED63_Q_STEP           (( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL ) / ( IVAS_SPLIT_REND_PRED_63QUANT_PNTS - 1 ))
#define IVAS_SPLIT_REND_PRED63_1BYQ_STEP        (( IVAS_SPLIT_REND_PRED_63QUANT_PNTS - 1 )/( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL )) 
#else
#define IVAS_SPLIT_REND_PRED_Q_STEP             (( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL ) / ( IVAS_SPLIT_REND_PRED_QUANT_PNTS - 1 ))
#define IVAS_SPLIT_REND_PRED_1BYQ_STEP          (( IVAS_SPLIT_REND_PRED_QUANT_PNTS - 1 )/( IVAS_SPLIT_REND_PRED_MAX_VAL - IVAS_SPLIT_REND_PRED_MIN_VAL )) 
#endif

#define IVAS_SPLIT_REND_D_Q_STEP                (( IVAS_SPLIT_REND_D_MAX_VAL - IVAS_SPLIT_REND_D_MIN_VAL ) / ( IVAS_SPLIT_REND_D_QUANT_PNTS - 1 ))
#define IVAS_SPLIT_REND_D_1BYQ_STEP             (( IVAS_SPLIT_REND_D_QUANT_PNTS - 1 )/( IVAS_SPLIT_REND_D_MAX_VAL - IVAS_SPLIT_REND_D_MIN_VAL )) 
+0 −9
Original line number Diff line number Diff line
@@ -150,18 +150,9 @@
/*#define FIX_I4_OL_PITCH*/                             /* fix open-loop pitch used for EVS core switching */

/*#define SPLIT_REND_WITH_HEAD_ROT*/                    /* Dlb,FhG: Split Rendering contributions 21 and 35 */
#ifdef SPLIT_REND_WITH_HEAD_ROT
#define SPLIT_REND_PRED_QUANT_63_PNTS
#define SPLIT_REND_WITH_HEAD_ROT_PARAMBIN               /* Nokia: Issue 623: Split rendering support for parambin renderer */
#define FIX_658_SPLIT_REND_MASA                         /*Dlb : Fix for issue 658, uninitialized memory access in MASA in Split rendering 0DOF mode*/
#define OSBA_SPLIT_RENDERING
#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 */
#define FIX_847_OUTPUT_PCM_BUFFER                       /* VA: issue 847: Allocate decoder output PCM buffer dynamically */
+9 −9
Original line number Diff line number Diff line
@@ -809,7 +809,7 @@ ivas_error ivas_dirac_dec_config(

    if ( !need_parambin )
    {
#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
        ivas_dirac_dec_close_binaural_data( st_ivas->hDiracDecBin );
#else
        ivas_dirac_dec_close_binaural_data( &st_ivas->hDiracDecBin );
@@ -865,7 +865,7 @@ ivas_error ivas_dirac_dec_config(
                }
            }

#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
            if ( st_ivas->hDiracDecBin[0] == NULL )
#else
            if ( st_ivas->hDiracDecBin == NULL )
@@ -879,20 +879,20 @@ ivas_error ivas_dirac_dec_config(
            else
            {
                /* This is required to keep BE in rate switching. This probably means that 1TC and 2TC MASA perform differently. */
#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
                if ( st_ivas->hDiracDecBin[0]->h_freq_domain_decorr_ap_params != NULL && !( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nSCE > 0 ) )
#else
                if ( st_ivas->hDiracDecBin->h_freq_domain_decorr_ap_params != NULL && !( st_ivas->ivas_format == MASA_FORMAT && st_ivas->nSCE > 0 ) )
#endif
                {
#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
                    ivas_dirac_dec_decorr_close( &st_ivas->hDiracDecBin[0]->h_freq_domain_decorr_ap_params, &st_ivas->hDiracDecBin[0]->h_freq_domain_decorr_ap_state );
#else
                    ivas_dirac_dec_decorr_close( &st_ivas->hDiracDecBin->h_freq_domain_decorr_ap_params, &st_ivas->hDiracDecBin->h_freq_domain_decorr_ap_state );
#endif
                }

#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
                if ( ( error = ivas_td_decorr_reconfig_dec( st_ivas->ivas_format, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->nchan_transport, st_ivas->hDecoderConfig->output_Fs, &( st_ivas->hDiracDecBin[0]->hTdDecorr ), &( st_ivas->hDiracDecBin[0]->useTdDecorr ) ) ) != IVAS_ERR_OK )
#else
                if ( ( error = ivas_td_decorr_reconfig_dec( st_ivas->ivas_format, st_ivas->hDecoderConfig->ivas_total_brate, st_ivas->nchan_transport, st_ivas->hDecoderConfig->output_Fs, &( st_ivas->hDiracDecBin->hTdDecorr ), &( st_ivas->hDiracDecBin->useTdDecorr ) ) ) != IVAS_ERR_OK )
@@ -901,7 +901,7 @@ ivas_error ivas_dirac_dec_config(
                    return error;
                }

#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
                /* copy td-decorr flag to split renderer side rendereres */
                for ( int16_t pos_idx = 1; pos_idx < st_ivas->hSplitBinRend.splitrend.multiBinPoseData.num_poses; pos_idx++ )
                {
@@ -914,7 +914,7 @@ ivas_error ivas_dirac_dec_config(
#endif

                {
#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
                    if ( st_ivas->hDiracDecBin[0]->h_freq_domain_decorr_ap_params == NULL )
#else
                    if ( st_ivas->hDiracDecBin->h_freq_domain_decorr_ap_params == NULL )
@@ -924,7 +924,7 @@ ivas_error ivas_dirac_dec_config(

                        ivas_dirac_dec_get_frequency_axis( frequency_axis, st_ivas->hDecoderConfig->output_Fs, st_ivas->hSpatParamRendCom->num_freq_bands );

#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
                        if ( ( error = ivas_dirac_dec_decorr_open( &( st_ivas->hDiracDecBin[0]->h_freq_domain_decorr_ap_params ), &( st_ivas->hDiracDecBin[0]->h_freq_domain_decorr_ap_state ), st_ivas->hSpatParamRendCom->num_freq_bands, BINAURAL_CHANNELS, BINAURAL_CHANNELS,
#else
                        if ( ( error = ivas_dirac_dec_decorr_open( &( st_ivas->hDiracDecBin->h_freq_domain_decorr_ap_params ), &( st_ivas->hDiracDecBin->h_freq_domain_decorr_ap_state ), st_ivas->hSpatParamRendCom->num_freq_bands, BINAURAL_CHANNELS, BINAURAL_CHANNELS,
@@ -936,7 +936,7 @@ ivas_error ivas_dirac_dec_config(
                    }
                }

#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
                for ( int16_t pos_idx = 0; pos_idx < st_ivas->hSplitBinRend.splitrend.multiBinPoseData.num_poses; pos_idx++ )
                {
                    st_ivas->hDiracDecBin[pos_idx]->reqularizationFactor = configure_reqularization_factor( st_ivas->ivas_format, st_ivas->hDecoderConfig->ivas_total_brate );
+13 −13
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ static ivas_error ivas_dec_reconfig_split_rend(
    ivas_error error;
    int16_t cldfb_in_flag, num_ch, ch, isCldfbNeeded, i, pcm_out_flag;
    SPLIT_REND_WRAPPER *hSplitRendWrapper;
#ifndef OSBA_SPLIT_RENDERING
#ifndef SPLIT_REND_WITH_HEAD_ROT
    CLDFB_TYPE cldfbMode;
#endif

@@ -93,7 +93,7 @@ static ivas_error ivas_dec_reconfig_split_rend(
    ivas_renderSplitGetMultiBinPoseData( &st_ivas->hRenderConfig->split_rend_config, &hSplitRendWrapper->multiBinPoseData, st_ivas->hHeadTrackData->sr_pose_pred_axis );

    isCldfbNeeded = 0;
#ifndef OSBA_SPLIT_RENDERING
#ifndef SPLIT_REND_WITH_HEAD_ROT
    cldfbMode = CLDFB_ANALYSIS;
#else
    if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV && st_ivas->ivas_format == SBA_ISM_FORMAT )
@@ -107,21 +107,21 @@ static ivas_error ivas_dec_reconfig_split_rend(
        if ( cldfb_in_flag == 0 )
        {
            isCldfbNeeded = 1;
#ifndef OSBA_SPLIT_RENDERING
#ifndef SPLIT_REND_WITH_HEAD_ROT
            cldfbMode = CLDFB_ANALYSIS;
#endif
        }
        else if ( st_ivas->hRenderConfig->split_rend_config.codec == IVAS_SPLIT_REND_CODEC_LC3PLUS && cldfb_in_flag )
        {
            isCldfbNeeded = 1;
#ifndef OSBA_SPLIT_RENDERING
#ifndef SPLIT_REND_WITH_HEAD_ROT
            cldfbMode = CLDFB_SYNTHESIS;
#endif
        }
        else if ( pcm_out_flag && cldfb_in_flag )
        {
            isCldfbNeeded = 1;
#ifndef OSBA_SPLIT_RENDERING
#ifndef SPLIT_REND_WITH_HEAD_ROT
            cldfbMode = CLDFB_SYNTHESIS;
#endif
        }
@@ -144,7 +144,7 @@ static ivas_error ivas_dec_reconfig_split_rend(

        for ( ch = 0; ch < num_ch; ch++ )
        {
#ifndef OSBA_SPLIT_RENDERING
#ifndef SPLIT_REND_WITH_HEAD_ROT
            if ( ( error = openCldfb( &( hSplitRendWrapper->hCldfbHandles->cldfbAna[ch] ), cldfbMode, st_ivas->hDecoderConfig->output_Fs, CLDFB_PROTOTYPE_5_00MS ) ) != IVAS_ERR_OK )
#else
            if ( ( error = openCldfb( &( hSplitRendWrapper->hCldfbHandles->cldfbAna[ch] ), CLDFB_ANALYSIS, st_ivas->hDecoderConfig->output_Fs, CLDFB_PROTOTYPE_5_00MS ) ) != IVAS_ERR_OK )
@@ -155,7 +155,7 @@ static ivas_error ivas_dec_reconfig_split_rend(
            }
        }

#ifdef OSBA_SPLIT_RENDERING
#ifdef SPLIT_REND_WITH_HEAD_ROT
        for ( ch = 0; ch < BINAURAL_CHANNELS; ch++ )
        {
            if ( ( error = openCldfb( &( hSplitRendWrapper->hCldfbHandles->cldfbSyn[ch] ), CLDFB_SYNTHESIS, st_ivas->hDecoderConfig->output_Fs, CLDFB_PROTOTYPE_5_00MS ) ) != IVAS_ERR_OK )
@@ -177,7 +177,7 @@ static ivas_error ivas_dec_reconfig_split_rend(
            }
        }

#ifdef OSBA_SPLIT_RENDERING
#ifdef SPLIT_REND_WITH_HEAD_ROT
        for ( ch = 0; ch < BINAURAL_CHANNELS; ch++ )
        {
            if ( hSplitRendWrapper->hCldfbHandles->cldfbSyn[ch] != NULL )
@@ -192,7 +192,7 @@ static ivas_error ivas_dec_reconfig_split_rend(
        hSplitRendWrapper->hCldfbHandles = NULL;
    }

#ifdef OSBA_SPLIT_RENDERING
#ifdef SPLIT_REND_WITH_HEAD_ROT
    if ( ( st_ivas->renderer_type != RENDERER_BINAURAL_OBJECTS_TD ) &&
         ( st_ivas->renderer_type != RENDERER_BINAURAL_FASTCONV || st_ivas->ivas_format != SBA_ISM_FORMAT ) )
#else
@@ -252,7 +252,7 @@ static ivas_error ivas_dec_init_split_rend(
        return error;
    }

#ifdef OSBA_SPLIT_RENDERING
#ifdef SPLIT_REND_WITH_HEAD_ROT
    if ( st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV && st_ivas->ivas_format == SBA_ISM_FORMAT )
    {
        cldfb_in_flag = 0;
@@ -2459,7 +2459,7 @@ void ivas_initialize_handles_dec(

    /* rendering handles */
    st_ivas->hBinRenderer = NULL;
#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
    for ( i = 0; i < MAX_HEAD_ROT_POSES; i++ )
    {
        st_ivas->hDiracDecBin[i] = NULL;
@@ -2653,7 +2653,7 @@ void ivas_destroy_dec(
#endif

    /* Parametric binaural renderer handle */
#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
    ivas_dirac_dec_close_binaural_data( st_ivas->hDiracDecBin );
#else
    ivas_dirac_dec_close_binaural_data( &st_ivas->hDiracDecBin );
@@ -2812,7 +2812,7 @@ void ivas_init_dec_get_num_cldfb_instances(
                    *numCldfbAnalyses = st_ivas->nchan_transport + 1;
                }
            }
#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
            if ( st_ivas->hDiracDecBin[0]->useTdDecorr )
#else
            if ( st_ivas->hDiracDecBin->useTdDecorr )
+2 −2
Original line number Diff line number Diff line
@@ -196,7 +196,7 @@ static ivas_error ivas_ism_bitrate_switching_dec(
        )
        {
            /* close the parametric binaural renderer */
#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
            ivas_dirac_dec_close_binaural_data( st_ivas->hDiracDecBin );
#else
            ivas_dirac_dec_close_binaural_data( &st_ivas->hDiracDecBin );
@@ -231,7 +231,7 @@ static ivas_error ivas_ism_bitrate_switching_dec(
        if ( st_ivas->hOutSetup.output_config == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR )
        {
            /* close the parametric binaural renderer */
#ifdef SPLIT_REND_WITH_HEAD_ROT_PARAMBIN
#ifdef SPLIT_REND_WITH_HEAD_ROT
            ivas_dirac_dec_close_binaural_data( st_ivas->hDiracDecBin );
#else
            ivas_dirac_dec_close_binaural_data( &st_ivas->hDiracDecBin );
Loading