Commit b4aadafd authored by sbsarac's avatar sbsarac
Browse files

Merge branch 'main' into 922-use-precomputed-HRTF-average-LR-energies-and-IAC-in-all-renderers

parents aacd5903 557eabfd
Loading
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -1556,9 +1556,7 @@ typedef enum
#define MAX_SPLIT_MD_SUBFRAMES                  1
#define COMPLEX_MD_BAND_THRESH                  MAX_SPLIT_REND_MD_BANDS
#define COMPLEX_MD_BAND_THRESH_LOW              5
#ifdef SPLIT_REND_HF_TUNING
#define SPLIT_REND_RO_MD_BAND_THRESH            4
#endif

#define IVAS_SPLIT_REND_NUM_QUANT_STRATS        4
#define IVAS_SPLIT_REND_PRED_63QUANT_PNTS       63
+2 −6
Original line number Diff line number Diff line
@@ -161,6 +161,7 @@
#define FIX_958_667_DISABLE_INITIAL_PLC_SUPPRESSION     /* Ericsson: Fix related to issue 667 in IVAS BASOP. Handling of initial lost frame in IVAS causes non-BE on EVS BASOP 26.444 */ 
#define FIX_957_REMOVE_PANNING_DEAD_CODE                /* VA: Remove obsolete non-diegetic panning related code. */
#define FIX_956_DECODER_COMMAND_LINE_FIX                /* VA: Output correct error message when the decoder command-line has too many mandatory arguments. */
#define FIX_955_FASTCONV_REND_IN_ISM                    /* VA: put FastConv rendering call under DEBUGGING */

/* #################### End BE switches ################################## */

@@ -175,12 +176,7 @@
#define NONBE_FIX_944_FEC_OMASA_1SEP_OBJ_MASA                 /* Nokia: issue 944: fix FEC error in OMASA */
#define NONBE_FIX_935_EARLY_REFLECTIONS_WRONG_ORDER           /* Qualcomm: issue 953: fix order or ER channels in LC mode*/
#define NONBE_FIX_949_MC_5MS_FRAMING                          /* Dlb: issue 949: fix for issue 949, distorted output in MC mode with 5ms framing*/

#ifdef SPLIT_REND_WITH_HEAD_ROT
#define SPLIT_REND_HF_TUNING                                  /* Dlb: issue 950: split rendering MD tuning change at high frequencies*/
#define SPLIT_REND_MC_FIX_LFE                                 /* Dlb: issue 950: split rendering LFE fix for 7.1 and 5.1 MC mode*/
#define SPLIT_EXT_REND_FIX_LIMITER_POS                        /* Dlb: issue 950: fixing limiter position in split rendering mode in external renderer*/
#endif
#define NONBE_FIX_952_MC_PARAMUPMIX_5MS                       /* Dlb : issue 952 : Differences between 5ms and 20ms rendering for ParamUpmix*/

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

+0 −9
Original line number Diff line number Diff line
@@ -1539,9 +1539,7 @@ void ivas_binaural_add_LFE(
{
    int16_t render_lfe, idx_lfe;
    float gain;
#ifdef SPLIT_REND_MC_FIX_LFE
    float lfe_tc[L_FRAME48k];
#endif

    if ( st_ivas->hBinRenderer != NULL )
    {
@@ -1565,17 +1563,10 @@ void ivas_binaural_add_LFE(

        for ( idx_lfe = 0; idx_lfe < st_ivas->hIntSetup.num_lfe; idx_lfe++ )
        {
#ifdef SPLIT_REND_MC_FIX_LFE
            v_multc( input_f[st_ivas->hIntSetup.index_lfe[idx_lfe]], gain, lfe_tc, output_frame );
            /* copy LFE to left and right channels */
            v_add( output_f[0], lfe_tc, output_f[0], output_frame );
            v_add( output_f[1], lfe_tc, output_f[1], output_frame );
#else
            v_multc( input_f[st_ivas->hIntSetup.index_lfe[idx_lfe]], gain, input_f[st_ivas->hIntSetup.index_lfe[idx_lfe]], output_frame );
            /* copy LFE to left and right channels */
            v_add( output_f[0], input_f[st_ivas->hIntSetup.index_lfe[idx_lfe]], output_f[0], output_frame );
            v_add( output_f[1], input_f[st_ivas->hIntSetup.index_lfe[idx_lfe]], output_f[1], output_frame );
#endif
        }
    }

+12 −0
Original line number Diff line number Diff line
@@ -1062,11 +1062,23 @@ ivas_error ivas_jbm_dec_render(
            {
                ivas_apply_non_diegetic_panning( p_output, st_ivas->hDecoderConfig->non_diegetic_pan_gain, *nSamplesRendered );
            }
#ifdef FIX_955_FASTCONV_REND_IN_ISM
#ifdef DEBUGGING
            else if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV )
#else
            else if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC )
#endif
            {
                /* Convert to Ambisonics */
                ivas_ism2sba_sf( st_ivas->hTcBuffer->tc, p_output, st_ivas->hIsmRendererData, st_ivas->nchan_transport, *nSamplesRendered, st_ivas->hTcBuffer->n_samples_rendered, st_ivas->hIntSetup.ambisonics_order );
            }
#else
            else if ( st_ivas->renderer_type == RENDERER_SBA_LINEAR_ENC || st_ivas->renderer_type == RENDERER_BINAURAL_FASTCONV )
            {
                /* Convert to Ambisonics; used also for ISM->HOA3->binaural rendering */
                ivas_ism2sba_sf( st_ivas->hTcBuffer->tc, p_output, st_ivas->hIsmRendererData, st_ivas->nchan_transport, *nSamplesRendered, st_ivas->hTcBuffer->n_samples_rendered, st_ivas->hIntSetup.ambisonics_order );
            }
#endif

            /* Binaural rendering */
            if ( st_ivas->renderer_type == RENDERER_BINAURAL_OBJECTS_TD )
+32 −2
Original line number Diff line number Diff line
@@ -117,6 +117,15 @@ void ivas_mc_paramupmix_dec_read_BS(
                hMCParamUpmix->betas[i][k] = hMCParamUpmix->beta_prev[i][k];
            }
        }

#ifdef NONBE_FIX_952_MC_PARAMUPMIX_5MS
        for ( i = 0; i < MC_PARAMUPMIX_COMBINATIONS; i++ )
        {
            mvr2r( hMCParamUpmix->alpha_prev[i], hMCParamUpmix->alpha_sf[i], IVAS_MAX_NUM_BANDS );
            mvr2r( hMCParamUpmix->beta_prev[i], hMCParamUpmix->beta_sf[i], IVAS_MAX_NUM_BANDS );
        }
#endif

        hMCParamUpmix->first_frame = 1;
    }
    else /*  if (!st->bfi) */
@@ -135,6 +144,17 @@ void ivas_mc_paramupmix_dec_read_BS(
        st0->bits_frame = min( MAX_BITS_METADATA, last_bit_pos + 1 );
        st0->total_brate = st_ivas->hDecoderConfig->ivas_total_brate; /* to avoid BER detect */

#ifdef NONBE_FIX_952_MC_PARAMUPMIX_5MS
        if ( hMCParamUpmix->first_frame == 0 )
        {
            for ( i = 0; i < MC_PARAMUPMIX_COMBINATIONS; i++ )
            {
                mvr2r( hMCParamUpmix->alphas[i], hMCParamUpmix->alpha_prev[i], IVAS_MAX_NUM_BANDS );
                mvr2r( hMCParamUpmix->betas[i], hMCParamUpmix->beta_prev[i], IVAS_MAX_NUM_BANDS );
            }
        }
#endif

        for ( i = 0; i < MC_PARAMUPMIX_COMBINATIONS; i++ )
        {
            get_ec_data( st0, ALPHA, hMCParamUpmix->alpha_quant[i], alpha_quant, hMCParamUpmix->alphas[i] );
@@ -154,6 +174,14 @@ void ivas_mc_paramupmix_dec_read_BS(
            }
            hMCParamUpmix->first_frame = 0;
        }

#ifdef NONBE_FIX_952_MC_PARAMUPMIX_5MS
        for ( i = 0; i < MC_PARAMUPMIX_COMBINATIONS; i++ )
        {
            mvr2r( hMCParamUpmix->alpha_prev[i], hMCParamUpmix->alpha_sf[i], IVAS_MAX_NUM_BANDS );
            mvr2r( hMCParamUpmix->beta_prev[i], hMCParamUpmix->beta_sf[i], IVAS_MAX_NUM_BANDS );
        }
#endif
    }

    pop_wmops();
@@ -245,12 +273,13 @@ void ivas_mc_paramupmix_dec_render(
    assert( slots_to_render == 0 );
#endif
    {

#ifndef NONBE_FIX_952_MC_PARAMUPMIX_5MS
        for ( ch = 0; ch < MC_PARAMUPMIX_COMBINATIONS; ch++ )
        {
            mvr2r( hMCParamUpmix->alpha_prev[ch], hMCParamUpmix->alpha_sf[ch], IVAS_MAX_NUM_BANDS );
            mvr2r( hMCParamUpmix->beta_prev[ch], hMCParamUpmix->beta_sf[ch], IVAS_MAX_NUM_BANDS );
        }
#endif

#ifdef SPLIT_REND_WITH_HEAD_ROT
        slot_index_start = 0;
@@ -275,12 +304,13 @@ void ivas_mc_paramupmix_dec_render(
            /* update combined orientation access index */
            ivas_combined_orientation_update_index( st_ivas->hCombinedOrientationData, n_samples_sf );
        }

#ifndef NONBE_FIX_952_MC_PARAMUPMIX_5MS
        for ( ch = 0; ch < MC_PARAMUPMIX_COMBINATIONS; ch++ )
        {
            mvr2r( hMCParamUpmix->alphas[ch], hMCParamUpmix->alpha_prev[ch], IVAS_MAX_NUM_BANDS );
            mvr2r( hMCParamUpmix->betas[ch], hMCParamUpmix->beta_prev[ch], IVAS_MAX_NUM_BANDS );
        }
#endif
    }

    *nSamplesAvailable = ( st_ivas->hTcBuffer->num_slots - st_ivas->hTcBuffer->slots_rendered ) * slot_size;
Loading