Commit 86c9d3a0 authored by Jan Brouwer's avatar Jan Brouwer
Browse files

add hrtf statistics initialization to ROM tables

parent 2add7af1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1105,7 +1105,7 @@ ivas_error ivas_init_decoder_front(
        }

#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
        if ( ( error = ivas_HRTF_statistics_binary_open( &st_ivas->hHrtfStatistics ) ) != IVAS_ERR_OK )
        if ( ( error = ivas_HRTF_statistics_binary_open( &st_ivas->hHrtfStatistics, st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK )
        {
            return error;
        }
+0 −2
Original line number Diff line number Diff line
@@ -1122,8 +1122,6 @@ typedef struct Decoder_Struct
    HRTFS_PARAMBIN_HANDLE hHrtfParambin;                       /* HRTF tables for parametric binauralizer */
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    HRTFS_STATISTICS_HANDLE hHrtfStatistics;                   /* HRTF statistics handle */
#else
    float *lr_energy_and_iac[3];
#endif
    LSSETUP_CUSTOM_HANDLE hLsSetupCustom;                      /* Custom LS configuration handle */
    float *hoa_dec_mtx;                                        /* Pointer to decoder matrix for SBA */
+31 −1
Original line number Diff line number Diff line
@@ -37,6 +37,9 @@
#include "ivas_error.h"
#include "wmc_auto.h"
#include "ivas_prot.h"
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
#include "ivas_rom_binaural_crend_head.h"
#endif

/*-----------------------------------------------------------------------*
 * ivas_HRTF_binary_open()
@@ -244,7 +247,8 @@ void ivas_HRTF_parambin_binary_close(
 *-----------------------------------------------------------------------*/

ivas_error ivas_HRTF_statistics_binary_open(
    HRTFS_STATISTICS **hHrtfStatistics )
    HRTFS_STATISTICS **hHrtfStatistics,
    int32_t sampleRate)
{
    *hHrtfStatistics = (HRTFS_STATISTICS *) malloc( sizeof( HRTFS_STATISTICS ) );
    if ( *hHrtfStatistics == NULL )
@@ -252,6 +256,32 @@ ivas_error ivas_HRTF_statistics_binary_open(
        return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "Can not allocate memory for statistics HRTF tables!" );
    }

#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
    switch ( sampleRate )
    {
        case 48000:
            (*hHrtfStatistics)->average_energy_l = defaultHRIR_left_avg_power_48kHz;
            (*hHrtfStatistics)->average_energy_r = defaultHRIR_right_avg_power_48kHz;
            (*hHrtfStatistics)->inter_aural_coherence = defaultHRIR_coherence_48kHz;
            break;
        case 32000:
            (*hHrtfStatistics)->average_energy_l = defaultHRIR_left_avg_power_32kHz;
            (*hHrtfStatistics)->average_energy_r = defaultHRIR_right_avg_power_32kHz;
            (*hHrtfStatistics)->inter_aural_coherence = defaultHRIR_coherence_32kHz;
            break;
        case 16000:
            (*hHrtfStatistics)->average_energy_l = defaultHRIR_left_avg_power_16kHz;
            (*hHrtfStatistics)->average_energy_r = defaultHRIR_right_avg_power_16kHz;
            (*hHrtfStatistics)->inter_aural_coherence = defaultHRIR_coherence_16kHz;
            break;
        default:
            (*hHrtfStatistics)->average_energy_l = NULL;
            (*hHrtfStatistics)->average_energy_r = NULL;
            (*hHrtfStatistics)->inter_aural_coherence = NULL;
            break;
    }
#endif

    return IVAS_ERR_OK;
}

+2 −1
Original line number Diff line number Diff line
@@ -619,7 +619,8 @@ void ivas_HRTF_parambin_binary_close(

#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
ivas_error ivas_HRTF_statistics_binary_open(
    HRTFS_STATISTICS **hHrtfStatistics                          /* i/o: HRTF statistics structure               */
    HRTFS_STATISTICS **hHrtfStatistics,
    int32_t sampleRate
);

void ivas_HRTF_statistics_binary_close(
+1 −1
Original line number Diff line number Diff line
@@ -3474,7 +3474,7 @@ ivas_error IVAS_REND_Open(
            return error;
        }
#ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES
        if ( ( error = ivas_HRTF_statistics_binary_open( &( hIvasRend->hHrtfs.hHrtfStatistics ) ) ) != IVAS_ERR_OK )
        if ( ( error = ivas_HRTF_statistics_binary_open( &( hIvasRend->hHrtfs.hHrtfStatistics ), outputSampleRate ) ) != IVAS_ERR_OK )
        {
            return error;
        }