Commit 273a9dc6 authored by janssontoftg's avatar janssontoftg
Browse files

Fix for issue 310 under define FIX_310_TD_REND_DELAY.

HR filter latency added to ROM tables and binary file for TD renderer. Delay changes compared to main going from 0 to 1 sample delay (at 48 kHz).
Changed NS2SA() to roundf() in IVAS_REND_GetDelay(), as done for get_delay() in decoder.
parent 83e659b5
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1412,7 +1412,9 @@ typedef enum
#define MAX_ANGULAR_STEP                        (15.0f)
#define MAX_ANGULAR_STEP_INV                    ( 1.0f / MAX_ANGULAR_STEP )
#define MAX_INTERPOLATION_STEPS                 12
#ifndef FIX_310_TD_REND_DELAY
#define BINAURAL_TD_LATENCY_S                   0.0f                        /* ITD fix removes TD renderer delay -- should be cleaned out */
#endif

/* ----- Enums - TD Renderer ----- */

+1 −0
Original line number Diff line number Diff line
@@ -153,6 +153,7 @@
#define FIX_FOR_TEST                                    /* allows tests to pass using old TD binary file, to be removed after merge*/
#define FIX_301_PLC                                     /* FhG: issue 301 - fix bug of missing update of overlap buffer for DFT-stereo PLC*/

#define FIX_310_TD_REND_DELAY                           /* Adding HRTF delay being read from ROM/Binary file, fix rounding for delay compensation in renderer */

/* ################## End DEVELOPMENT switches ######################### */
/* clang-format on */
+3 −0
Original line number Diff line number Diff line
@@ -211,6 +211,9 @@ void DefaultBSplineModel(

    HRTF_model_precalc( model );

#ifdef FIX_310_TD_REND_DELAY
    HrFiltSet_p->latency_s = TdRendBin_HRIR_latency_s;
#endif
    HrFiltSet_p->SampleRate = output_Fs;
    HrFiltSet_p->FiltLength = HrFiltSet_p->ModelParams.K;
    BSplineModelEvalAlloc( &HrFiltSet_p->ModelParams, &HrFiltSet_p->ModelEval );
+8 −1
Original line number Diff line number Diff line
@@ -188,8 +188,11 @@ ivas_error ivas_td_binaural_open(
    }

    st_ivas->hBinRendererTd = hBinRendererTd;

#ifdef FIX_310_TD_REND_DELAY
    st_ivas->binaural_latency_ns = (int32_t) ( hBinRendererTd->HrFiltSet_p->latency_s * 1000000000.f );
#else
    st_ivas->binaural_latency_ns = (int32_t) ( BINAURAL_TD_LATENCY_S * 1000000000.f );
#endif

    return error;
}
@@ -630,7 +633,11 @@ ivas_error ivas_rend_TDObjRendOpen(

    pTDRend->hBinRendererTd = hBinRendererTd;

#ifdef FIX_310_TD_REND_DELAY
    pTDRend->binaural_latency_ns = (int32_t) ( hBinRendererTd->HrFiltSet_p->latency_s * 1000000000.f );
#else
    pTDRend->binaural_latency_ns = (int32_t) ( BINAURAL_TD_LATENCY_S * 1000000000.f );
#endif

    return IVAS_ERR_OK;
}
+3 −0
Original line number Diff line number Diff line
@@ -46,6 +46,9 @@
 * TD Binaural rendering related ROM tables
 *------------------------------------------------------------------------*/
/* TD renderer HRTF default model Orange53 */
#ifdef FIX_310_TD_REND_DELAY
const float orange53_rom_latency_s = 0.000020834f;
#endif
const int16_t orange53_rom_azimDim2[18] = { 
1, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 1, 
 };
Loading