Commit e22f1a9f authored by Devansh Kandpal's avatar Devansh Kandpal
Browse files

lib_rend header and .c with changes

parent 555f98cf
Loading
Loading
Loading
Loading
+270 −117
Original line number Diff line number Diff line
@@ -212,6 +212,9 @@ typedef struct hrtf_handles
    IVAS_DEC_HRTF_FASTCONV_HANDLE hHrtfFastConv;
    IVAS_DEC_HRTF_PARAMBIN_HANDLE hHrtfParambin;
    IVAS_DEC_HRTF_HANDLE hHrtfTD;
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    IVAS_DEC_HRTF_STATISTICS_HANDLE hHrtfStatistics;
#endif
} hrtf_handles;

struct IVAS_REND
@@ -251,8 +254,11 @@ struct IVAS_REND
/*-------------------------------------------------------------------*
 * Local function prototypes
 *-------------------------------------------------------------------*/

#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
static ivas_error initMasaExtRenderer( input_masa *inputMasa, const AUDIO_CONFIG outConfig, const RENDER_CONFIG_DATA *hRendCfg, hrtf_handles *hHrtfs );
#else
static ivas_error initMasaExtRenderer( input_masa *inputMasa, const AUDIO_CONFIG outConfig, hrtf_handles *hHrtfs );
#endif

static void freeMasaExtRenderer( MASA_EXT_REND_HANDLE *hMasaExtRendOut );
static void intermidiate_ext_dirac_render(
@@ -1522,8 +1528,11 @@ static ivas_error setRendInputActiveIsm(
#endif
    {
#ifndef SPLIT_REND_WITH_HEAD_ROT
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
        IF( NE_32( ( error = ivas_rend_openCrend( &inputIsm->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig, hRendCfg, hrtfs->hSetOfHRTF, hrtfs->hHrtfStatistics, *rendCtx.pOutSampleRate ) ), IVAS_ERR_OK ) )
#else
        IF( NE_32( ( error = ivas_rend_openCrend( &inputIsm->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig, hRendCfg, hrtfs->hSetOfHRTF, *rendCtx.pOutSampleRate ) ), IVAS_ERR_OK ) )
        {
#endif {
        return error;
    }
#else
@@ -1627,7 +1636,11 @@ static ivas_error setRendInputActiveIsm(

    IF( EQ_16( outConfig, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) )
    {
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
        IF( NE_32( ( error = ivas_reverb_open( &( inputIsm->hReverb ), hrtfs->hHrtfStatistics, hRendCfg, *rendCtx.pOutSampleRate ) ) IVAS_ERR_OK ) )
#else
        IF( NE_32( ( error = ivas_reverb_open_fx( &( inputIsm->hReverb ), outConfig, NULL, inputIsm->tdRendWrapper.hBinRendererTd->HrFiltSet_p->lr_energy_and_iac_fx, hRendCfg, *rendCtx.pOutSampleRate ) ), IVAS_ERR_OK ) )
#endif
        {
            return error;
        }
@@ -1665,14 +1678,22 @@ static ivas_error setRendInputActiveIsm(

        IF( EQ_16( outConfig, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) )
        {
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
            IF( NE_32( ( error = ivas_reverb_open( &( inputIsm->hReverb ), hrtfs->hHrtfStatistics, hRendCfg, *rendCtx.pOutSampleRate ) ), IVAS_ERR_OK ) )
#else
            IF( NE_32( ( error = ivas_reverb_open_fx( &( inputIsm->hReverb ), outConfig, NULL, inputIsm->tdRendWrapper.hBinRendererTd->HrFiltSet_p->lr_energy_and_iac_fx, hRendCfg, *rendCtx.pOutSampleRate ) ), IVAS_ERR_OK ) )
            {
#endif
            return error;
        }
    }
    ELSE IF( outConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR )
    {
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
        IF( NE_32( ( error = ivas_rend_openCrend( &inputIsm->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig, hRendCfg, hrtfs->hSetOfHRTF, hrtfs->hHrtfStatistics, *rendCtx.pOutSampleRate, rendCtx.pSplitRendWrapper->multiBinPoseData.num_poses ) ), IVAS_ERR_OK ) )
#else
            IF( NE_32( ( error = ivas_rend_openCrend( &inputIsm->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig, hRendCfg, hrtfs->hSetOfHRTF, *rendCtx.pOutSampleRate, rendCtx.pSplitRendWrapper->multiBinPoseData.num_poses ) ), IVAS_ERR_OK ) )
#endif
        {
            return error;
        }
@@ -2494,6 +2515,9 @@ static ivas_error initMcBinauralRendering(
    const AUDIO_CONFIG outConfig,
    RENDER_CONFIG_DATA *hRendCfg,
    IVAS_DEC_HRTF_CREND_HANDLE hMixconv,
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    HRTFS_STATISTICS_HANDLE hHrtfStatistics,
#endif
    uint8_t reconfigureFlag )
{
    ivas_error error;
@@ -2653,8 +2677,11 @@ static ivas_error initMcBinauralRendering(
        test();
        IF( EQ_32( outConfig, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) && inputMc->hReverb == NULL )
        {
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
            IF( NE_32( ( error = ivas_reverb_open( &( inputMc->hReverb ), hHrtfStatistics, hRendCfg, outSampleRate ) ), IVAS_ERR_OK ) )
#else
            IF( NE_32( ( error = ivas_reverb_open_fx( &( inputMc->hReverb ), outConfig, NULL, inputMc->tdRendWrapper.hBinRendererTd->HrFiltSet_p->lr_energy_and_iac_fx, hRendCfg, outSampleRate ) ), IVAS_ERR_OK ) )
            {
#endif {
            return error;
        }
    }
@@ -2663,15 +2690,25 @@ static ivas_error initMcBinauralRendering(
{
    /* open CREND */
#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    IF( NE_32( ( error = ivas_rend_openCrend( &inputMc->crendWrapper, ( inConfig == IVAS_AUDIO_CONFIG_LS_CUSTOM ) ? IVAS_AUDIO_CONFIG_7_1_4 : inConfig, outConfig, hRendCfg, hMixconv, hHrtfStatistics,
                                              outSampleRate, ( ( outConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) || ( outConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) ) ? inputMc->base.ctx.pSplitRendWrapper->multiBinPoseData.num_poses : 1 ) ),
               IVAS_ERR_OK ) )
#else
    IF( NE_32( ( error = ivas_rend_openCrend( &inputMc->crendWrapper, ( EQ_16( inConfig, IVAS_AUDIO_CONFIG_LS_CUSTOM ) ) ? IVAS_AUDIO_CONFIG_7_1_4 : inConfig, outConfig, hRendCfg,
                                              hMixconv,
                                              outSampleRate, ( ( outConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) || ( outConfig == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) ) ? inputMc->base.ctx.pSplitRendWrapper->multiBinPoseData.num_poses : 1 ) ),
               IVAS_ERR_OK ) )
#endif
#else
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    IF( NE_32( ( error = ivas_rend_openCrend( &inputMc->crendWrapper, ( inConfig == IVAS_AUDIO_CONFIG_LS_CUSTOM ) ? IVAS_AUDIO_CONFIG_7_1_4 : inConfig, outConfig, hRendCfg, hMixconv, hHrtfStatistics, outSampleRate ) ), IVAS_ERR_OK ) )
#else
    IF( NE_32( ( error = ivas_rend_openCrend( &inputMc->crendWrapper, ( EQ_16( inConfig, IVAS_AUDIO_CONFIG_LS_CUSTOM ) ) ? IVAS_AUDIO_CONFIG_7_1_4 : inConfig, outConfig, hRendCfg,
                                              hMixconv,
                                              outSampleRate ) ),
               IVAS_ERR_OK ) )
#endif
#endif
    {
        return error;
@@ -2893,10 +2930,15 @@ static ivas_error setRendInputActiveMc(
    IF( EQ_16( outConfig, IVAS_AUDIO_CONFIG_BINAURAL ) || EQ_16( outConfig, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) || EQ_16( outConfig, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) )
#endif
    {

#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
        IF( NE_32( ( error = initMcBinauralRendering( inputMc, inConfig, outConfig, hRendCfg, hrtfs->hSetOfHRTF, hrtfs->hHrtfStatistics, FALSE ) ), IVAS_ERR_OK ) )
#else
        IF( NE_32( ( error = initMcBinauralRendering( inputMc, inConfig, outConfig, hRendCfg,
                                                      hrtfs->hSetOfHRTF,
                                                      FALSE ) ),
                   IVAS_ERR_OK ) )
#endif
        {
            return error;
        }
@@ -3059,7 +3101,13 @@ static ivas_error updateSbaPanGains(
    input_sba *inputSba,
    const AUDIO_CONFIG outConfig,
    RENDER_CONFIG_DATA *hRendCfg,
    IVAS_DEC_HRTF_CREND_HANDLE hMixconv )
    IVAS_DEC_HRTF_CREND_HANDLE hMixconv
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    ,
    IVAS_DEC_HRTF_STATISTICS_HANDLE hHrtfStatistics
#endif

)
{
    ivas_error error;
    AUDIO_CONFIG inConfig;
@@ -3122,11 +3170,17 @@ static ivas_error updateSbaPanGains(
#endif
                    {
#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
                        IF( NE_32( ( error = ivas_rend_openCrend( &inputSba->crendWrapper, inConfig, outConfig, hRendCfg, hMixconv, hHrtfStatistics, *rendCtx.pOutSampleRate, rendCtx.pSplitRendWrapper->multiBinPoseData.num_poses ) ), IVAS_ERR_OK ) )
#else
                        IF( NE_32( ( error = ivas_rend_openCrend( &inputSba->crendWrapper, inConfig, outConfig, hRendCfg, hMixconv, *rendCtx.pOutSampleRate, rendCtx.pSplitRendWrapper->multiBinPoseData.num_poses ) ), IVAS_ERR_OK ) )

#endif
#else
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
                        IF( NE_32( ( error = ivas_rend_openCrend( &inputSba->crendWrapper, inConfig, outConfig, hRendCfg, hMixconv, hHrtfStatistics, *rendCtx.pOutSampleRate ) ), IVAS_ERR_OK ) )
#else
                        IF( NE_32( ( error = ivas_rend_openCrend( &inputSba->crendWrapper, inConfig, outConfig, hRendCfg, hMixconv, *rendCtx.pOutSampleRate ) ), IVAS_ERR_OK ) )

#endif
#endif
                        {
                            return error;
@@ -3141,9 +3195,17 @@ static ivas_error updateSbaPanGains(
                        return error;
                    }
#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
                    IF( NE_32( ( error = ivas_rend_openCrend( &inputSba->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig, hRendCfg, hMixconv, hHrtfStatistics, *rendCtx.pOutSampleRate, rendCtx.pSplitRendWrapper->multiBinPoseData.num_poses ) ), IVAS_ERR_OK ) )
#else
                    IF( NE_32( ( error = ivas_rend_openCrend( &inputSba->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig, hRendCfg, hMixconv, *rendCtx.pOutSampleRate, rendCtx.pSplitRendWrapper->multiBinPoseData.num_poses ) ), IVAS_ERR_OK ) )
#endif
#else
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
                    IF( NE_32( ( error = ivas_rend_openCrend( &inputSba->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig, hRendCfg, hMixconv, hHrtfStatistics, *rendCtx.pOutSampleRate ) ), IVAS_ERR_OK ) )
#else
                    IF( NE_32( ( error = ivas_rend_openCrend( &inputSba->crendWrapper, IVAS_AUDIO_CONFIG_7_1_4, outConfig, hRendCfg, hMixconv, *rendCtx.pOutSampleRate ) ), IVAS_ERR_OK ) )
#endif
#endif
                    {
                        return error;
@@ -3257,8 +3319,11 @@ static ivas_error setRendInputActiveSba(
            return error;
        }
    }
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    IF( NE_32( ( error = updateSbaPanGains( inputSba, outConfig, hRendCfg, hrtfs->hSetOfHRTF, hrtfs->hHrtfStatistics ) ), IVAS_ERR_OK ) )
#else
    IF( NE_32( ( error = updateSbaPanGains( inputSba, outConfig, hRendCfg, hrtfs->hSetOfHRTF ) ), IVAS_ERR_OK ) )
    {
#endif {
    return error;
}

@@ -3298,8 +3363,11 @@ static ivas_error setRendInputActiveMasa(
    const IVAS_REND_InputId id,
    RENDER_CONFIG_DATA *hRendCfg,
    hrtf_handles *hrtfs

#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
)
#else
    ) /* Todo: This is not used at all within MASA. Support might be better to do after refactoring. */
#endif
{
    ivas_error error;
    rendering_context rendCtx;
@@ -3311,7 +3379,9 @@ static ivas_error setRendInputActiveMasa(
    rendCtx = inputMasa->base.ctx;
    outConfig = *rendCtx.pOutConfig;
    move32();
#ifndef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    (void) hRendCfg; /* Suppress warning */
#endif

    IF( !isIoConfigPairSupported( inConfig, outConfig ) )
    {
@@ -3350,8 +3420,11 @@ static ivas_error setRendInputActiveMasa(
    }
    ELSE
    {
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
        IF( NE_32( ( error = initMasaExtRenderer( inputMasa, outConfig, hRendCfg, hrtfs ) ), IVAS_ERR_OK ) )
#else
        IF( NE_32( ( error = initMasaExtRenderer( inputMasa, outConfig, hrtfs ) ), IVAS_ERR_OK ) )
        {
#endif {
        return error;
    }
    inputMasa->metadataHasBeenFed = false;
@@ -3546,6 +3619,9 @@ ivas_error IVAS_REND_Open(
    hIvasRend->hHrtfs.hHrtfParambin = NULL;
    hIvasRend->hHrtfs.hHrtfTD = NULL;
    hIvasRend->hHrtfs.hSetOfHRTF = NULL;
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    hIvasRend->hHrtfs.hHrtfStatistics = NULL;
#endif
    IF( asHrtfBinary )
    {
        IF( NE_32( ( error = ivas_HRTF_binary_open_fx( &( hIvasRend->hHrtfs.hHrtfTD ) ) ), IVAS_ERR_OK ) )
@@ -3564,10 +3640,23 @@ ivas_error IVAS_REND_Open(
        {
            return error;
        }
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
        IF( NE_32( ( error = ivas_HRTF_statistics_binary_open( &( hIvasRend->hHrtfs.hHrtfStatistics ) ) ), IVAS_ERR_OK ) )
        {
            return error;
        }
#endif
    }
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    IF( NE_32( ( error = ivas_HRTF_statistics_init( &( hIvasRend->hHrtfs.hHrtfStatistics ), hIvasRend->sampleRateOut ) ), IVAS_ERR_OK ) )
    {
        return error;
    }
#endif

    return IVAS_ERR_OK;
}

static LSSETUP_CUSTOM_STRUCT makeCustomLsSetup(
    const IVAS_CUSTOM_LS_DATA rendCustomLsLayout )
{
@@ -3711,7 +3800,11 @@ ivas_error IVAS_REND_ConfigureCustomOutputLoudspeakerLayout(
            /* Input inactive, skip. */
            CONTINUE;
        }
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
        IF( NE_32( ( error = updateSbaPanGains( inputSba, hIvasRend->outputConfig, hIvasRend->hRendererConfig, NULL, NULL ) ), IVAS_ERR_OK ) )
#else
        IF( NE_32( ( error = updateSbaPanGains( inputSba, hIvasRend->outputConfig, hIvasRend->hRendererConfig, NULL ) ), IVAS_ERR_OK ) )
#endif
        {
            return error;
        }
@@ -4228,8 +4321,14 @@ ivas_error IVAS_REND_ConfigureCustomInputLoudspeakerLayout(
    IF( EQ_16( hIvasRend->outputConfig, IVAS_AUDIO_CONFIG_BINAURAL ) || EQ_16( hIvasRend->outputConfig, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) || EQ_16( hIvasRend->outputConfig, IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) )
#endif
    {
        IF( NE_32( ( error = initMcBinauralRendering( inputMc, inputMc->base.inConfig, hIvasRend->outputConfig, hIvasRend->hRendererConfig,
        IF( NE_32( ( error = initMcBinauralRendering( inputMc,
                                                      inputMc->base.inConfig,
                                                      hIvasRend->outputConfig,
                                                      hIvasRend->hRendererConfig,
                                                      hIvasRend->hHrtfs.hSetOfHRTF,
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
                                                      hIvasRend->hHrtfs.hHrtfStatistics,
#endif
                                                      FALSE ) ),
                   IVAS_ERR_OK ) )
        {
@@ -5062,8 +5161,14 @@ ivas_error IVAS_REND_SetHeadRotation(
    {
        IF( NE_32( hIvasRend->inputsMc[i].base.inConfig, IVAS_AUDIO_CONFIG_INVALID ) )
        {
            IF( NE_32( ( error = initMcBinauralRendering( &hIvasRend->inputsMc[i], hIvasRend->inputsMc[i].base.inConfig, hIvasRend->outputConfig, hIvasRend->hRendererConfig,
            IF( NE_32( ( error = initMcBinauralRendering( &hIvasRend->inputsMc[i],
                                                          hIvasRend->inputsMc[i].base.inConfig,
                                                          hIvasRend->outputConfig,
                                                          hIvasRend->hRendererConfig,
                                                          hIvasRend->hHrtfs.hSetOfHRTF,
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
                                                          hIvasRend->hHrtfs.hHrtfStatistics,
#endif
                                                          TRUE ) ),
                       IVAS_ERR_OK ) )
            {
@@ -5169,8 +5274,14 @@ ivas_error IVAS_REND_DisableHeadRotation(
        {
            IF( NE_32( hIvasRend->inputsMc[i].base.inConfig, IVAS_AUDIO_CONFIG_INVALID ) )
            {
                IF( NE_32( ( error = initMcBinauralRendering( &hIvasRend->inputsMc[i], hIvasRend->inputsMc[i].base.inConfig, hIvasRend->outputConfig, hIvasRend->hRendererConfig,
                IF( NE_32( ( error = initMcBinauralRendering( &hIvasRend->inputsMc[i],
                                                              hIvasRend->inputsMc[i].base.inConfig,
                                                              hIvasRend->outputConfig,
                                                              hIvasRend->hRendererConfig,
                                                              hIvasRend->hHrtfs.hSetOfHRTF,
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
                                                              hIvasRend->hHrtfs.hHrtfStatistics,
#endif
                                                              TRUE ) ),
                           IVAS_ERR_OK ) )
                {
@@ -9337,6 +9448,9 @@ void IVAS_REND_Close(
    ivas_HRTF_CRend_binary_close_fx( &( hIvasRend->hHrtfs.hSetOfHRTF ) );
    ivas_HRTF_fastconv_binary_close_fx( &( hIvasRend->hHrtfs.hHrtfFastConv ) );
    ivas_HRTF_parambin_binary_close_fx( &( hIvasRend->hHrtfs.hHrtfParambin ) );
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    ivas_HRTF_statistics_close( &( hIvasRend->hHrtfs.hHrtfStatistics ) );
#endif

    free( hIvasRend );
    *phIvasRend = NULL;
@@ -9569,6 +9683,30 @@ ivas_error IVAS_REND_GetHrtfParamBinHandle(
    return IVAS_ERR_OK;
}


#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
/*---------------------------------------------------------------------*
 * IVAS_REND_GetHrtfStatisticsHandle( )
 *
 *
 *---------------------------------------------------------------------*/

ivas_error IVAS_REND_GetHrtfStatisticsHandle(
    IVAS_REND_HANDLE hIvasRend,                       /* i/o: IVAS decoder handle     */
    IVAS_DEC_HRTF_STATISTICS_HANDLE **hHrtfStatistics /* o  : HRTF statistics handle  */
)
{
    if ( hIvasRend == NULL || hIvasRend->hHrtfs.hHrtfStatistics == NULL )
    {
        return IVAS_ERR_WRONG_PARAMS;
    }

    *hHrtfStatistics = &hIvasRend->hHrtfs.hHrtfStatistics;

    return IVAS_ERR_OK;
}
#endif

static ivas_error ivas_masa_ext_rend_dirac_rend_init(
    input_masa *inputMasa )
{
@@ -9998,7 +10136,13 @@ static ivas_error ivas_masa_ext_rend_dirac_rend_init(


static ivas_error ivas_masa_ext_rend_parambin_init(
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    input_masa *inputMasa,                  /* i/o: MASA external renderer structure        */
    const RENDER_CONFIG_DATA *hRendCfg,     /* i  : Renderer configuration data handle      */
    HRTFS_STATISTICS_HANDLE hHrtfStatistics /* i  : HRTF statistics                         */
#else
    input_masa *inputMasa /* i/o: MASA external renderer structure        */
#endif
)
{
    DIRAC_DEC_BIN_HANDLE hDiracDecBin;
@@ -10137,9 +10281,12 @@ static ivas_error ivas_masa_ext_rend_parambin_init(
        IF( hDiracDecBin->hReverb == NULL )
#endif
            {
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
                IF( NE_32( ( error = ivas_binaural_reverb_init( &hDiracDecBin->hReverb, hHrtfStatistics, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, &( hRendCfg->roomAcoustics ), output_Fs, hHrtfParambin->parametricReverberationTimes, hHrtfParambin->parametricReverberationEneCorrections ) ) , IVAS_ERR_OK ) )
#else
            /* Todo Philips: Room acoustics should be passed here once the underlying part works. In this case, it probably should come from render context or somewhere else suitable. */
            IF( NE_32( ( error = ivas_binaural_reverb_open_parambin( &hDiracDecBin->hReverb, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, NULL, output_Fs, hHrtfParambin ) ) , IVAS_ERR_OK ) )
                {
#endif {
                    return error;
                }
            }
@@ -10197,6 +10344,9 @@ static ivas_error ivas_masa_ext_rend_parambin_init(
static ivas_error initMasaExtRenderer(
    input_masa *inputMasa,
    const AUDIO_CONFIG outConfig,
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    const RENDER_CONFIG_DATA *hRendCfg,
#endif
    hrtf_handles *hrtfs )
{
    Word16 i;
@@ -10331,8 +10481,11 @@ static ivas_error initMasaExtRenderer(
                return error;
            }
        }

#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
        if( NE_32( ( error = ivas_masa_ext_rend_parambin_init( inputMasa, hRendCfg, hrtfs->hHrtfStatistics ) ) , IVAS_ERR_OK ) )
#else
        IF( NE_32( ( error = ivas_masa_ext_rend_parambin_init( inputMasa ) ), IVAS_ERR_OK ) )
#endif        
		{
            return error;
        }
+11 −4
Original line number Diff line number Diff line
@@ -193,26 +193,33 @@ ivas_error IVAS_REND_GetDelay(

/*! r: error code */
ivas_error IVAS_REND_GetHrtfHandle( 
    IVAS_REND_HANDLE hIvasRend,                   /* i/o: IVAS decoder handle                                                     */
    IVAS_REND_HANDLE hIvasRend,                   /* i/o: IVAS rendder handle                                                     */
    IVAS_DEC_HRTF_HANDLE **hHrtfTD              /* o  : HRTF handle              */
);

/*! r: error code */
ivas_error IVAS_REND_GetHrtfCRendHandle(
    IVAS_REND_HANDLE hIvasRend,                   /* i/o: IVAS decoder handle                                                     */
    IVAS_REND_HANDLE hIvasRend,                   /* i/o: IVAS render handle                                                     */
    IVAS_DEC_HRTF_CREND_HANDLE **hSetOfHRTF      /* o  : Set of HRTF handle                                                      */
);

ivas_error IVAS_REND_GetHrtfFastConvHandle(
    IVAS_REND_HANDLE hIvasRend,                    /* i/o: IVAS decoder handle                                                    */
    IVAS_REND_HANDLE hIvasRend,                    /* i/o: IVAS render handle                                                    */
    IVAS_DEC_HRTF_FASTCONV_HANDLE **hHrtfFastConv /* o  : FASTCONV HRTF handle                                                   */
);

ivas_error IVAS_REND_GetHrtfParamBinHandle(
    IVAS_REND_HANDLE hIvasRend,                    /* i/o: IVAS decoder handle                                                    */
    IVAS_REND_HANDLE hIvasRend,                    /* i/o: IVAS render handle                                                    */
    IVAS_DEC_HRTF_PARAMBIN_HANDLE **hHrtfParambin /* o  : Parametric binauralizer HRTF handle                                    */
);

#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
ivas_error IVAS_REND_GetHrtfStatisticsHandle(
    IVAS_REND_HANDLE hIvasRend,                     /* i/o: IVAS renderer handle                                */
    IVAS_DEC_HRTF_STATISTICS_HANDLE **hHrtfStatistics     /* o  : HRTF statistics handle                              */
);
#endif

/* Functions to be called during rendering */

ivas_error IVAS_REND_FeedInputAudio_fx(
+0 −1
Original line number Diff line number Diff line
@@ -2359,7 +2359,6 @@ void destroy_SetOfHRTF(
    return;
}


#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
/*---------------------------------------------------------------------*
 * destroy_hrtf_statistics()