Commit 61489d8f authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

Merge branch 'main' into...

Merge branch 'main' into 987-parammc-and-paramupmix-binaural-room-reverb-with-head-rotation-energy-not-correct
parents 4864891a 224a8269
Loading
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -155,9 +155,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 */

#define FIX_998_UNUSED_FUNCTION                         /* FhG: issue 998: delete unused funtion ivas_dirac_dec_get_response_split_order */ 
#define FIX_1009_ISM_NONDIEGETIC_PANNING                /* FhG: issue #1009: use correct object buffer for ISM1 non-diegetic pan      */


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

/* #################### Start NON-BE switches ############################ */
@@ -167,7 +167,7 @@
#define NONBE_FIX_864_JBM_RENDER_FRAMESIZE                    /* FhG: issue #864: fix different behaviour of JBM TSM with different render frame sizes */
#define NONBE_FIX_1012_1013_JBM_FLUSH_BUFFER                  /* FhG: issues #1012, 1013: JBM flush function uses wrong output buffer */
#define NONBE_FIX_1004_USAN_DTX_MASA_NO_DIRS                  /* Nokia: fix USAN error caused by non-setting of correctly the number of MASA directions in DTX */

#define NONBE_FIX_1014_1015_1016_OSBA_JBM_STEREO              /* FhG: issues #1014, #1015, #1016: fix tc buffer info update in the discrete ism renderer */
#define NONBE_FIX_987_PARAMC_BINAURAL_REVERB_RENDERING       /* FhG: issue 987: solution b: downmix HOA3 to stereo a input for the reverberator */

/* ##################### End NON-BE switches ########################### */
+29 −0
Original line number Diff line number Diff line
@@ -1840,6 +1840,7 @@ void ivas_dirac_dec_render_sf(
                set_zero( surCohRatio, hSpatParamRendCom->num_freq_bands );
            }
        }
#ifndef FIX_998_UNUSED_FUNCTION

        if ( st_ivas->hCombinedOrientationData && st_ivas->hCombinedOrientationData->enableCombinedOrientation[st_ivas->hCombinedOrientationData->subframe_idx] && st_ivas->hCombinedOrientationData->shd_rot_max_order == 1 )
        {
@@ -1871,6 +1872,18 @@ void ivas_dirac_dec_render_sf(
                                                          NULL,
                                                          hodirac_flag );
        }
#else
        ivas_dirac_dec_compute_directional_responses( hSpatParamRendCom,
                                                      hDirACRend,
                                                      st_ivas->hVBAPdata,
                                                      st_ivas->hMasa == NULL ? NULL : st_ivas->hMasa->data.band_mapping,
                                                      st_ivas->hMasaIsmData,
                                                      azimuth,
                                                      elevation,
                                                      md_idx,
                                                      surCohRatio,
                                                      hodirac_flag );
#endif
    }

    if ( st_ivas->ivas_format == MASA_ISM_FORMAT && nchan_transport == 2 )
@@ -2200,6 +2213,7 @@ void ivas_dirac_dec_render_sf(
        }

        /*Compute PSDs*/
#ifndef FIX_998_UNUSED_FUNCTION
        if ( st_ivas->hCombinedOrientationData && st_ivas->hCombinedOrientationData->enableCombinedOrientation[st_ivas->hCombinedOrientationData->subframe_idx] && st_ivas->hCombinedOrientationData->shd_rot_max_order > 0 )
        {
            ivas_dirac_dec_output_synthesis_process_slot( reference_power,
@@ -2236,6 +2250,21 @@ void ivas_dirac_dec_render_sf(
                                                          hodirac_flag,
                                                          hDirAC->hConfig->dec_param_estim );
        }
#else
        ivas_dirac_dec_output_synthesis_process_slot( reference_power,
                                                      p_onset_filter,
                                                      azimuth,
                                                      elevation,
                                                      hSpatParamRendCom->diffuseness_vector[md_idx],
                                                      hSpatParamRendCom,
                                                      hDirACRend,
                                                      st_ivas->hVBAPdata,
                                                      hDirACRend->hOutSetup,
                                                      nchan_transport,
                                                      md_idx,
                                                      hodirac_flag,
                                                      hDirAC->hConfig->dec_param_estim );
#endif

        if ( hDirAC->hConfig->dec_param_estim )
        {
+10 −0
Original line number Diff line number Diff line
@@ -168,6 +168,10 @@ void ivas_ism_render_sf(
        slots_to_render -= st_ivas->hTcBuffer->subframe_nbslots[last_sf];
        last_sf++;
    }
#ifdef DEBUGGING
    assert( slots_to_render == 0 );
    assert( last_sf <= st_ivas->hTcBuffer->nb_subframes );
#endif

    num_objects = st_ivas->nchan_transport;
    if ( st_ivas->ivas_format == SBA_ISM_FORMAT )
@@ -276,7 +280,13 @@ void ivas_ism_render_sf(
        ivas_combined_orientation_update_index( st_ivas->hCombinedOrientationData, n_samples_in_subframe );

        n_samples_rendered_loop += n_samples_in_subframe;
#ifdef NONBE_FIX_1014_1015_1016_OSBA_JBM_STEREO
        /* update rendered subframe and slots info for all cases apart from a following crend call, the update will
           then happen in the crend call*/
        if ( st_ivas->renderer_type != RENDERER_BINAURAL_MIXER_CONV_ROOM )
#else
        if ( st_ivas->renderer_type == RENDERER_TD_PANNING )
#endif
        {
            st_ivas->hTcBuffer->subframes_rendered += 1;
            st_ivas->hTcBuffer->slots_rendered += st_ivas->hTcBuffer->subframe_nbslots[subframe_idx];
+16 −4
Original line number Diff line number Diff line
@@ -542,8 +542,10 @@ void ivas_dirac_dec_output_synthesis_process_slot(
    const float *diffuseness,
    SPAT_PARAM_REND_COMMON_DATA_HANDLE hSpatParamRendCom, /* i/o: common spatial renderer data handle         */
    DIRAC_REND_HANDLE hDirACRend,                         /* i/o: DirAC renderer handle                       */
#ifndef FIX_998_UNUSED_FUNCTION
    const int16_t sh_rot_max_order,
    const float *p_Rmat, /* i  : rotation matrix             */
#endif
    const VBAP_HANDLE hVBAPdata,       /* i  : VBAP structure              */
    const IVAS_OUTPUT_SETUP hOutSetup, /* i  : output setup structure      */
    const int16_t nchan_transport,     /* i  : number of transport channels*/
@@ -590,8 +592,10 @@ void ivas_dirac_dec_output_synthesis_process_slot(
                                                      elevation,
                                                      md_idx,
                                                      NULL,
#ifndef FIX_998_UNUSED_FUNCTION
                                                      2,
                                                      p_Rmat,
#endif
                                                      hodirac_flag );
    }

@@ -638,8 +642,10 @@ void ivas_dirac_dec_output_synthesis_process_slot(
                                                      elevation,
                                                      md_idx,
                                                      NULL,
#ifndef FIX_998_UNUSED_FUNCTION
                                                      sh_rot_max_order,
                                                      p_Rmat,
#endif
                                                      hodirac_flag );

        if ( hDirACRend->synthesisConf == DIRAC_SYNTHESIS_GAIN_SHD )
@@ -1570,7 +1576,7 @@ void ivas_dirac_dec_output_synthesis_process_subframe_psd_ls(
    return;
}


#ifndef FIX_998_UNUSED_FUNCTION
/*-------------------------------------------------------------------------
 * ivas_dirac_dec_get_response_split_order()
 *
@@ -1732,7 +1738,7 @@ static void ivas_dirac_dec_get_response_split_order(

    return;
}

#endif

/*-------------------------------------------------------------------------
 * ivas_dirac_dec_compute_directional_responses()
@@ -1750,8 +1756,10 @@ void ivas_dirac_dec_compute_directional_responses(
    const int16_t *elevation,
    const int16_t md_idx,
    const float *surCohRatio,
#ifndef FIX_998_UNUSED_FUNCTION
    const int16_t shd_rot_max_order, /* i  : split-order rotation method    */
    const float *p_Rmat,             /* i  : rotation matrix                */
#endif
    const int16_t hodirac_flag /* i  : flag to indicate HO-DirAC mode */
)
{
@@ -1822,6 +1830,7 @@ void ivas_dirac_dec_compute_directional_responses(
                set_f( direct_response_hoa, 1.0f, MAX_OUTPUT_CHANNELS );
                set_f( direct_response_dir2, 1.0f, MAX_OUTPUT_CHANNELS );

#ifndef FIX_998_UNUSED_FUNCTION
                if ( p_Rmat != 0 )
                {
                    ivas_dirac_dec_get_response_split_order( azimuth[k], elevation[k], direct_response_hoa, shd_rot_max_order, p_Rmat );
@@ -1833,13 +1842,16 @@ void ivas_dirac_dec_compute_directional_responses(
                }
                else
                {
#endif
                    ivas_dirac_dec_get_response( azimuth[k], elevation[k], direct_response_hoa, hDirACRend->hOutSetup.ambisonics_order );

                    if ( hodirac_flag )
                    {
                        ivas_dirac_dec_get_response( azimuth2[k], elevation2[k], direct_response_dir2, hDirACRend->hOutSetup.ambisonics_order );
                    }
#ifndef FIX_998_UNUSED_FUNCTION
                }
#endif

                if ( masa_band_mapping == NULL && hDirACRend->synthesisConf == DIRAC_SYNTHESIS_GAIN_SHD )
                {
+4 −0
Original line number Diff line number Diff line
@@ -2216,8 +2216,10 @@ static void ivas_masa_ext_dirac_render_sf(
                                                  elevation,
                                                  md_idx,
                                                  surCohRatio,
#ifndef FIX_998_UNUSED_FUNCTION
                                                  0,
                                                  NULL,
#endif
                                                  0 );


@@ -2372,8 +2374,10 @@ static void ivas_masa_ext_dirac_render_sf(
                                                      hSpatParamRendCom->diffuseness_vector[md_idx],
                                                      hSpatParamRendCom,
                                                      hDirACRend,
#ifndef FIX_998_UNUSED_FUNCTION
                                                      0,
                                                      0,
#endif
                                                      hMasaExtRend->hVBAPdata,
                                                      hDirACRend->hOutSetup,
                                                      nchan_transport,
Loading