Commit 7db5ca7a authored by Devansh Kandpal's avatar Devansh Kandpal
Browse files

All remaining headers and functions from lib_rend

parent 06917878
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -1669,7 +1669,11 @@ ivas_error ivas_rend_openMultiBinCrend(
    ivas_error error;

#ifdef SPLIT_REND_WITH_HEAD_ROT
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    if ( ( error = ivas_rend_openCrend( pCrend, inConfig, outConfig, NULL /*hRendCfg*/, NULL, NULL /* hHrtfStatistics */, output_Fs, pMultiBinPoseData->num_poses ) ) != IVAS_ERR_OK )
#else
    if ( ( error = ivas_rend_openCrend( pCrend, inConfig, outConfig, NULL /*hRendCfg*/, NULL, output_Fs, pMultiBinPoseData->num_poses ) ) != IVAS_ERR_OK )
#endif
#else
    if ( ( error = ivas_rend_openCrend( pCrend, inConfig, outConfig, NULL /*hRendCfg*/, NULL, output_Fs ) ) != IVAS_ERR_OK )
#endif
@@ -1693,6 +1697,9 @@ ivas_error ivas_rend_openCrend(
    const AUDIO_CONFIG outConfig,
    RENDER_CONFIG_DATA *hRendCfg,
    HRTFS_CREND_HANDLE hSetOfHRTF,
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    HRTFS_STATISTICS_HANDLE hHrtfStatistics,
#endif
#ifdef SPLIT_REND_WITH_HEAD_ROT
    const Word32 output_Fs,
    const Word16 num_poses
@@ -1867,7 +1874,11 @@ ivas_error ivas_rend_openCrend(

            IF( outConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB )
            {
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
                if( ( NE_32( error = ivas_reverb_open( &( hCrend->hReverb ), hHrtfStatistics, hRendCfg, output_Fs ) ) , IVAS_ERR_OK ) )
#else
                IF( NE_32( ( error = ivas_reverb_open_fx( &( hCrend->hReverb ), inConfig, ( *pCrend )->hHrtfCrend, NULL, hRendCfg, output_Fs ) ), IVAS_ERR_OK ) )
#endif               
				{
                    return error;
                }
+8 −3
Original line number Diff line number Diff line
@@ -315,8 +315,13 @@ ivas_error ivas_dirac_dec_init_binaural_data_fx(
        IF( hDiracDecBin->hReverb == NULL )
#endif
            {

#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
                if ( ( error = ivas_binaural_reverb_init( &hDiracDecBin->hReverb, st_ivas->hHrtfStatistics, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, &( st_ivas->hRenderConfig->roomAcoustics ), output_Fs, st_ivas->hHrtfParambin->parametricReverberationTimes, st_ivas->hHrtfParambin->parametricReverberationEneCorrections ) ) != IVAS_ERR_OK )
#else
            /* Todo Philips: Room acoustics should be passed here once the underlying part works. Probably enough to pick it from st_ivas but you know best. */
                IF( NE_32( ( error = ivas_binaural_reverb_open_parambin( &hDiracDecBin->hReverb, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, NULL, output_Fs, st_ivas->hHrtfParambin ) ), IVAS_ERR_OK ) )
            if ( ( error = ivas_binaural_reverb_open_parambin( &hDiracDecBin->hReverb, nBins, CLDFB_NO_COL_MAX / MAX_PARAM_SPATIAL_SUBFRAMES, NULL, output_Fs, st_ivas->hHrtfParambin ) ) != IVAS_ERR_OK )
#endif 
				{
                    return error;
                }
+98 −0
Original line number Diff line number Diff line
@@ -33,6 +33,9 @@
#include <stdint.h>
#include "options.h"
#include "prot_fx.h"
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
#include "ivas_rom_binaural_crend_head.h"
#endif
#include "ivas_prot_rend_fx.h"
#include "ivas_error.h"
#include "wmc_auto.h"
@@ -212,3 +215,98 @@ void ivas_HRTF_parambin_binary_close_fx(

    return;
}

#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
/*-----------------------------------------------------------------------*
 * ivas_HRTF_statistics_binary_open()
 *
 * Allocate HRTF binary handle for statistics handler
 *-----------------------------------------------------------------------*/

ivas_error ivas_HRTF_statistics_binary_open(
    HRTFS_STATISTICS **hHrtfStatistics )
{
    *hHrtfStatistics = (HRTFS_STATISTICS *) malloc( sizeof( HRTFS_STATISTICS ) );
    if ( *hHrtfStatistics == NULL )
    {
        return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for statistics HRTF tables!" );
    }

    return IVAS_ERR_OK;
}


/*-----------------------------------------------------------------------*
 * ivas_HRTF_statistics_close()
 *
 * Close HRTF binary handle for statistics handler
 *-----------------------------------------------------------------------*/

void ivas_HRTF_statistics_close(
    HRTFS_STATISTICS **hHrtfStatistics )
{
    if ( hHrtfStatistics == NULL || *hHrtfStatistics == NULL )
    {
        return;
    }

    free( *hHrtfStatistics );
    *hHrtfStatistics = NULL;

    return;
}

/*-----------------------------------------------------------------------*
 * ivas_HRTF_statistics_init()
 *
 * Allocates HRTF statistics handle and initializes from ROM
 *-----------------------------------------------------------------------*/

ivas_error ivas_HRTF_statistics_init(
    HRTFS_STATISTICS_HANDLE *hHrtfStatistics,
    int32_t sampleRate )
{
    HRTFS_STATISTICS *HrtfStatistics;

    if ( hHrtfStatistics != NULL && *hHrtfStatistics != NULL )
    {
        /* Tables already loaded from file */
        return IVAS_ERR_OK;
    }

    /* Initialise tables from ROM */
    if ( ( HrtfStatistics = (HRTFS_STATISTICS *) malloc( sizeof( HRTFS_STATISTICS ) ) ) == NULL )
    {
        return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for statistics HRTF tables!" );
    }

    HrtfStatistics->average_energy_l = NULL;
    HrtfStatistics->average_energy_r = NULL;
    HrtfStatistics->inter_aural_coherence = NULL;

    switch ( sampleRate )
    {
        case 48000:
            HrtfStatistics->average_energy_l = defaultHRIR_left_avg_power_48kHz;
            HrtfStatistics->average_energy_r = defaultHRIR_right_avg_power_48kHz;
            HrtfStatistics->inter_aural_coherence = defaultHRIR_coherence_48kHz;
            break;
        case 32000:
            HrtfStatistics->average_energy_l = defaultHRIR_left_avg_power_32kHz;
            HrtfStatistics->average_energy_r = defaultHRIR_right_avg_power_32kHz;
            HrtfStatistics->inter_aural_coherence = defaultHRIR_coherence_32kHz;
            break;
        case 16000:
            HrtfStatistics->average_energy_l = defaultHRIR_left_avg_power_16kHz;
            HrtfStatistics->average_energy_r = defaultHRIR_right_avg_power_16kHz;
            HrtfStatistics->inter_aural_coherence = defaultHRIR_coherence_16kHz;
            break;
    }
    HrtfStatistics->fromROM = TRUE;

    *hHrtfStatistics = HrtfStatistics;


    return IVAS_ERR_OK;
}
#endif
 No newline at end of file
+3 −0
Original line number Diff line number Diff line
@@ -409,6 +409,8 @@ static ivas_error DefaultBSplineModel_fx(
    model = &( HrFiltSet_p->ModelParams );
    modelITD = &( HrFiltSet_p->ModelParamsITD );

#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
#else
    SWITCH( output_Fs )
    {
        case 48000:
@@ -444,6 +446,7 @@ static ivas_error DefaultBSplineModel_fx(
#endif
            BREAK;
    }
#endif

    /* Set ROM flag for correct deallocation */
    model->modelROM = TRUE;
+53 −1
Original line number Diff line number Diff line
@@ -620,6 +620,21 @@ void ivas_HRTF_CRend_binary_close_fx(
    HRTFS_CREND **hSetOfHRTF                                    /* i/o: Set of HRTF handle                      */
);

#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
ivas_error ivas_HRTF_statistics_init(
    HRTFS_STATISTICS_HANDLE *hHrtfStatistics,                   /* i/o: HRTF statistics structure               */
    int32_t sampleRate                                          /* i  : Sample rate                             */
);

void ivas_HRTF_statistics_close(
    HRTFS_STATISTICS **hHrtfStatistics                          /* i/o: HRTF statistics structure               */
);

ivas_error ivas_HRTF_statistics_binary_open(
    HRTFS_STATISTICS **hHrtfStatistics                          /* i/o: HRTF statistics structure               */
);

#endif

/*----------------------------------------------------------------------------------*
 * TD object renderer
@@ -865,6 +880,9 @@ ivas_error ivas_rend_openCrend(
    const AUDIO_CONFIG outConfig,
    RENDER_CONFIG_DATA *hRendCfg,
    HRTFS_CREND_HANDLE hSetOfHRTF,
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    HRTFS_STATISTICS_HANDLE hHrtfStatistics,
#endif
#ifdef SPLIT_REND_WITH_HEAD_ROT
    const Word32 output_Fs,
    const Word16 num_poses
@@ -919,16 +937,35 @@ ivas_error ivas_rend_crendProcessSubframe(
 * Reverberator
 *----------------------------------------------------------------------------------*/

#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
ivas_error ivas_binaural_reverb_init(
#else
ivas_error ivas_binaural_reverb_open_fastconv_fx(
#endif
    REVERB_STRUCT_HANDLE *hReverbPr,                /* i/o: binaural reverb handle               */
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    const HRTFS_STATISTICS_HANDLE hHrtfStatistics,              /* i  : HRTF statistics handle                  */
#else
#endif
    const Word16 numBins,                          /* i  : number of CLDFB bins                 */
    const Word16 numCldfbSlotsPerFrame,            /* i  : number of CLDFB slots per frame      */
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    const IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics,       /* i/o: room acoustics parameters               */
#else
    IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics, /* i/o: room acoustics parameters            */
    const AUDIO_CONFIG internal_config,             /* i  : internal audio config for FastConv   */
#endif
    const Word32 sampling_rate,                    /* i  : sampling rate                        */
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    const float *defaultTimes,                                  /* i  : default reverberation times             */
    const float *defaultEne                                     /* i  : default reverberation energies          */
#else
    const HRTFS_FASTCONV_HANDLE hHrtfFastConv       /* i  : FastConv HRTF handle                 */
#endif
);


#ifndef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
ivas_error ivas_binaural_reverb_open_parambin(
    REVERB_STRUCT_HANDLE *hReverbPr,                            /* i/o: binaural reverb handle                  */
    const Word16 numBins,                                      /* i  : number of CLDFB bins Q0                    */
@@ -937,6 +974,7 @@ ivas_error ivas_binaural_reverb_open_parambin(
    const Word32 sampling_rate,                                /* i  : sampling rate Q0                           */
    const HRTFS_PARAMBIN_HANDLE hHrtfParambin                   /* i  : Parametric binauralizer HRTF handle     */
);
#endif

void ivas_binaural_reverb_close_fx(
    REVERB_STRUCT_HANDLE *hReverb                               /* i/o: binaural reverb handle                  */
@@ -957,9 +995,13 @@ void ivas_binaural_reverb_processSubframe_fx(

ivas_error ivas_reverb_open_fx(
    REVERB_HANDLE *hReverb,                /* i/o: Reverberator handle               */
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    const HRTFS_STATISTICS_HANDLE hHrtfStatistics,                    /* i  : HRTF statistics handle                  */
#else
    const AUDIO_CONFIG input_audio_config, /* i  : reverb. input audio configuration */
    const HRTFS_HANDLE hHrtf,              /* i  : HRTF handle                       */
    const Word32 *lr_energy_and_iac_fx[],      /* i  : precomuputed lr energies and iac  */
#endif
    RENDER_CONFIG_HANDLE hRenderConfig,    /* i  : Renderer configuration handle     */
    const Word32 output_Fs                /* i  : output sampling rate              */
);
@@ -1105,6 +1147,14 @@ void ivas_reverb_calc_color_levels_fx(
  const Word32 *pT60_filter_coeff, //input in Q31
  Word32 *pTarget_color_L, //output in Q30
  Word32 *pTarget_color_R); //output in Q30
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
ivas_error ivas_reverb_prepare_cldfb_params(
    const IVAS_ROOM_ACOUSTICS_CONFIG_DATA *pInput_params,
    const HRTFS_STATISTICS_HANDLE hHrtfStatistics,
    const int32_t output_Fs,
    float *pOutput_t60,
    float *pOutput_ene );
#else
ivas_error ivas_reverb_prepare_cldfb_params(
    IVAS_ROOM_ACOUSTICS_CONFIG_DATA *pInput_params,
    const HRTFS_FASTCONV_HANDLE hHrtfFastConv,
@@ -1113,6 +1163,7 @@ ivas_error ivas_reverb_prepare_cldfb_params(
    const int32_t output_Fs,
    float *pOutput_t60,
    float *pOutput_ene );
#endif
void ivas_reverb_interpolate_acoustic_data_fx(
  const Word16 input_table_size,
  const Word32 *pInput_fc, //input in Q16
@@ -1125,6 +1176,7 @@ void ivas_reverb_interpolate_acoustic_data_fx(
  Word16 *pOutput_t60_e, //output e
  Word16 *pOutput_dsr_e  //output e
);
#ifndef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
void ivas_reverb_get_hrtf_set_properties_fx(
  Word32 **ppHrtf_set_L_re,
  Word32 **ppHrtf_set_L_im,
@@ -1138,7 +1190,7 @@ void ivas_reverb_get_hrtf_set_properties_fx(
  Word32 *pOut_avg_pwr_R, //output in Q23
  Word32 *out_i_a_coherence //output in Q27
);

#endif
/*---------------------------------------------------------------------------------*
 * Shoebox Prototypes
 *-----------------------------------------------------------------------------------*/