Commit 2a0985e3 authored by Jouni Paulus's avatar Jouni Paulus
Browse files

Merge remote-tracking branch 'origin/main' into 156-refactor-dirac-rendering

parents 4f4212a4 65440ad3
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -111,12 +111,20 @@ ivas_error ivas_dirac_config(
        if ( ( (Encoder_Struct *) st_ivas )->hSpar != NULL )
        {
            hFbMdft = ( (Encoder_Struct *) st_ivas )->hSpar->hFbMixer;
#ifdef FIX_613_DIRAC_NULL_PTR_USAN
            dirac_to_spar_md_bands = ( (Encoder_Struct *) st_ivas )->hSpar->dirac_to_spar_md_bands;
#endif
        }
        else
        {
            hFbMdft = NULL;
#ifdef FIX_613_DIRAC_NULL_PTR_USAN
            dirac_to_spar_md_bands = NULL;
#endif
        }
#ifndef FIX_613_DIRAC_NULL_PTR_USAN
        dirac_to_spar_md_bands = ( (Encoder_Struct *) st_ivas )->hSpar->dirac_to_spar_md_bands;
#endif
    }
    else
    {
@@ -131,13 +139,21 @@ ivas_error ivas_dirac_config(
        if ( ( (Decoder_Struct *) st_ivas )->hSpar != NULL )
        {
            hFbMdft = ( (Decoder_Struct *) st_ivas )->hSpar->hFbMixer;
#ifdef FIX_613_DIRAC_NULL_PTR_USAN
            dirac_to_spar_md_bands = ( (Decoder_Struct *) st_ivas )->hSpar->dirac_to_spar_md_bands;
#endif
        }
        else
        {
            hFbMdft = NULL;
#ifdef FIX_613_DIRAC_NULL_PTR_USAN
            dirac_to_spar_md_bands = NULL;
#endif
        }
        ( (Decoder_Struct *) st_ivas )->hDirAC->hFbMdft = hFbMdft;
#ifndef FIX_613_DIRAC_NULL_PTR_USAN
        dirac_to_spar_md_bands = ( (Decoder_Struct *) st_ivas )->hSpar->dirac_to_spar_md_bands;
#endif
    }

    if ( ivas_format == SBA_FORMAT )
+24 −0
Original line number Diff line number Diff line
@@ -4090,6 +4090,10 @@ void ivas_sba_mix_matrix_determiner(
    const int16_t bfi,                                          /* i  : BFI flag                                */
    const int16_t nchan_remapped,                               /* i  : num channels after remapping of TCs     */
    const int16_t output_frame                                  /* i  : output frame length                     */
#ifdef VLBR_20MS_MD
    ,
    const int16_t num_md_sub_frames                             /* i : number of subframes in mixing matrix  */
#endif
);

/* AGC */
@@ -4392,7 +4396,23 @@ void ivas_get_spar_md_from_dirac(
int16_t ivas_get_spar_dec_md_num_subframes(
    const int16_t sba_order,                                    /* i  : Ambisonic (SBA) order                   */
    const int32_t ivas_total_brate                              /* i  : IVAS total bitrate                      */
#ifdef VLBR_20MS_MD
    ,
    const int32_t ivas_last_active_brate /* i  : IVAS last active bitrate           */
#endif
);
#ifdef VLBR_20MS_MD

ivas_error ivas_spar_md_dec_matrix_open(
    ivas_spar_md_dec_state_t *hMdDec, /* i/o: SPAR MD decoder handle       */
    const int16_t num_channels,       /* i  : number of internal channels  */
    const int16_t num_md_sub_frames );

void ivas_spar_md_dec_matrix_close(
    ivas_spar_md_dec_state_t *hMdDecoder, /* i/o: SPAR MD decoder handle      */
    const int16_t num_channels );            /* i  : number of internal channels */
    
#endif

ivas_error ivas_spar_md_dec_open(
    ivas_spar_md_dec_state_t **hMdDec_out,                      /* i/o: SPAR MD decoder handle                  */
@@ -4400,6 +4420,10 @@ ivas_error ivas_spar_md_dec_open(
    const int16_t num_channels,                                 /* i  : number of internal channels             */
	const int16_t sba_order,                                    /* i  : SBA order                               */
    const int16_t sid_format                                    /* i  : SID format                              */
#ifdef VLBR_20MS_MD
    ,
    const int32_t last_active_ivas_total_brate /* i  : IVAS last active bitrate           */
#endif
);

void ivas_spar_md_dec_close(
+4 −0
Original line number Diff line number Diff line
@@ -1766,7 +1766,11 @@ void ivas_get_spar_md_from_dirac(
    {
        for ( band = start_band; band < end_band; band++ )
        {
#ifdef FIX_615_UBSAN_SPAR_TO_DIRAC
            ndm = hSpar_md_cfg->num_dmx_chans_per_band[band];
#else
            ndm = hSpar_md_cfg->num_dmx_chans_per_band[band - 1];
#endif

            /*SPAR from DirAC*/
            set_f( response_avg, 0.0f, MAX_OUTPUT_CHANNELS );
+6 −2
Original line number Diff line number Diff line
@@ -2072,9 +2072,13 @@ void dec_FDCNG_MSVQ_stage1(

    for ( col = 0; col < cdk1_ivas_cols_per_segment[segm_ind]; col++ )
    {
#ifdef FIX_612_MSVQ_UBSAN_LEFTSHIFT
        dct_vec[col] = (float) shl( (Word16) cbpW8[col], dct_col_shift_tab[col] );
#else
        dct_vec[col] = (float) ( ( (Word16) cbpW8[col] ) << dct_col_shift_tab[col] );
        /* LOGIC( 1 ); SHIFT( 1 );  ADD( 1 );
           in BASOP:   s_and(for W8->W16), shl(), sub()
#endif
        /*             LOGIC( 1 )        , SHIFT( 1 );
           in BASOP:   s_and(for W8->W16), shl()
         */
    }
    dctT2_N_apply_matrix( (const float *) dct_vec, idct_vec, cdk1_ivas_cols_per_segment[segm_ind], n, invTrfMatrix, FDCNG_VQ_DCT_MAXTRUNC, idcttype );
+8 −0
Original line number Diff line number Diff line
@@ -149,6 +149,8 @@
/* only BE switches wrt operation points tested in selection */

/*#define FIX_I4_OL_PITCH*/                             /* fix open-loop pitch used for EVS core switching */

#define VLBR_20MS_MD                                    /* Dlb: SBA VLBR 20ms Optimization*/
#define SBA_MODE_CLEANUP_2                              /* Dlb : changes part of fix issue #523 for unused signaling bit in SBA SID*/
#define FIX_137_SID_MD_BITS                             /* Dlb: Fix issue #137 , SID bitrate mismatch correction */
#define FIX_563_PARAMMC_LIMITER                         /* FhG: issue 563: fix ILD limiter when coming from silence w/o transient set             */
@@ -189,6 +191,11 @@
#define JBM_PARAMUPMIX                                  /* Dlb: Issue 471: Integrate the Multichannel Parametric Upmix into the JBM path */
#define FIX_582_INDEX_OUT_OF_BOUNDS_SNS_AVQ_DEC         /* FhG: fix an undefined behaviour error in SNS AVQ decoding */
#define FIX_614_ADD_TO_NULL_PTR_DIRAC_SETUP             /* FhG: Issue 614: prevent adding to a null pointer in dirac setup code */
#define UPDATE_REVERB_UTILS                             /* Use CLDFB HRTFs of the appropriate SBA order in get_IR_from_filter_taps() */
#define FIX_612_MSVQ_UBSAN_LEFTSHIFT                    /* Eri: Issue 612 :  UBSAN: left shift of negative values in 1st stage of MSVQ  */
#define FIX_621_MSVQ_UBSAN_NULL_PTR_OFFSET              /* Eri: Issue 621 :  UBSAN:  applying non-zero offset 7200 to null pointer in lsf_msvq_ma_enc.c  */
#define FIX_600_CLEANUP_OF_MANUAL_INSTRUMENTATION       /* Eri: Issue 600 :  removed manual WMCtool instrumentation outside of WMC_TOOL_SKIP defines     */
#define NONBE_FIX_539_MASA_384K_CHIRP                   /* Nokia: issue 539, puts the normalization of the energy ratios at the correct place, affect MASA 384k only */

/* Fixes for bugs found during split rendering contribution development */
#define REND_STATIC_MEM_OPT                             /* Dlb: Static memory optimisation for external renderer */
@@ -203,6 +210,7 @@
#define FIX_619_ADD_UNDEF_VAL_FOR_CONCEALMENT_MODE      /* FhG: fix usan error */
#define FIX_622_SILENCE_USAN_WARNING                    /* FhG: silenceusan warning in ifft code */

#define FIX_615_UBSAN_SPAR_TO_DIRAC                     /*Dlb : Fix for UBSAN issue 615*/
/* ################## End BE DEVELOPMENT switches ######################### */


Loading