Commit 71fb38d2 authored by emerit's avatar emerit
Browse files

add switch USE_NEW_HRTF_BINARY_FILE_FORMAT

parent 5efa2936
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -187,7 +187,9 @@
#define USE_NEW_HRTF_BINARY_FILE_FORMAT                 /* Orange: to activate when decided to change the hrtf binary file format */
#ifdef USE_NEW_HRTF_BINARY_FILE_FORMAT
#define FIX_638_ENERGIE_IAC_ROM_TABLES                  /* Orange: Missing left/right and coherence late reverb tables in binary format*/
#ifdef FIX_638_ENERGIE_IAC_ROM_TABLES
#define NONBE_FIX_AVG_IAC_CLDFB_REVERB
#endif
#define FIX_OLD_BINARY_FORMAT      
#endif
#define NONBE_FIX_944_FEC_OMASA_1SEP_OBJ_MASA                 /* Nokia: issue 944: fix FEC error in OMASA */
+0 −2
Original line number Diff line number Diff line
@@ -1326,9 +1326,7 @@ typedef struct ivas_hrtfs_parambin_struct
    float parametricReverberationEneCorrections[CLDFB_NO_CHANNELS_MAX];
    float parametricEarlyPartEneCorrection[CLDFB_NO_CHANNELS_MAX];

#ifdef NONBE_FIX_BINARY_BINAURAL_READING
    int16_t allocatedFromFile;
#endif

} HRTFS_PARAMBIN, *HRTFS_PARAMBIN_HANDLE;

+21 −12
Original line number Diff line number Diff line
@@ -1342,7 +1342,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata(

    hrtf_data_rptr = hrtf_data;

#ifndef NONBE_FIX_BINARY_BINAURAL_READING
#if !defined NONBE_FIX_BINARY_BINAURAL_READING || !defined USE_NEW_HRTF_BINARY_FILE_FORMAT
    /* BINAURAL_CONVBANDS */
    if ( BINAURAL_CONVBANDS != *( (uint16_t *) ( hrtf_data_rptr ) ) )
    {
@@ -1361,7 +1361,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata(
        ( *hHRTF )->FASTCONV_HRIR_latency_s = *( (float *) ( hrtf_data_rptr ) );
        hrtf_data_rptr += sizeof( float );

#ifdef NONBE_FIX_BINARY_BINAURAL_READING
#if defined NONBE_FIX_BINARY_BINAURAL_READING && defined USE_NEW_HRTF_BINARY_FILE_FORMAT
        if ( BINAURAL_CONVBANDS != *( (uint16_t *) ( hrtf_data_rptr ) ) )
        {
            return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_CONVBANDS)" );
@@ -1424,7 +1424,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata(
        ( *hHRTF )->FASTCONV_HOA3_latency_s = *( (float *) ( hrtf_data_rptr ) );
        hrtf_data_rptr += sizeof( float );

#ifdef NONBE_FIX_BINARY_BINAURAL_READING
#if defined NONBE_FIX_BINARY_BINAURAL_READING && defined USE_NEW_HRTF_BINARY_FILE_FORMAT
        if ( BINAURAL_CONVBANDS != *( (uint16_t *) ( hrtf_data_rptr ) ) )
        {
            return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_CONVBANDS)" );
@@ -1485,19 +1485,21 @@ static ivas_error create_fastconv_HRTF_from_rawdata(
        /* HRIR_HOA2 */
        ( *hHRTF )->FASTCONV_HOA2_latency_s = *( (float *) ( hrtf_data_rptr ) );
        hrtf_data_rptr += sizeof( float );
        if ( HOA2_CHANNELS != *( (uint16_t *) ( hrtf_data_rptr ) ) )
        {
            return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (HOA2_CHANNELS)" );
        }
        hrtf_data_rptr += sizeof( uint16_t );

#ifdef NONBE_FIX_BINARY_BINAURAL_READING
#if defined NONBE_FIX_BINARY_BINAURAL_READING && defined USE_NEW_HRTF_BINARY_FILE_FORMAT
        if ( BINAURAL_CONVBANDS != *( (uint16_t *) ( hrtf_data_rptr ) ) )
        {
            return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_CONVBANDS)" );
        }
        hrtf_data_rptr += sizeof( uint16_t );
#endif

        if ( HOA2_CHANNELS != *( (uint16_t *) ( hrtf_data_rptr ) ) )
        {
            return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (HOA2_CHANNELS)" );
        }
        hrtf_data_rptr += sizeof( uint16_t );

        if ( BINAURAL_NTAPS_SBA != *( (uint16_t *) ( hrtf_data_rptr ) ) )
        {
            return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_NTAPS_SBA)" );
@@ -1547,7 +1549,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata(
        ( *hHRTF )->FASTCONV_FOA_latency_s = *( (float *) ( hrtf_data_rptr ) );
        hrtf_data_rptr += sizeof( float );

#ifdef NONBE_FIX_BINARY_BINAURAL_READING
#if defined NONBE_FIX_BINARY_BINAURAL_READING && defined USE_NEW_HRTF_BINARY_FILE_FORMAT
        if ( BINAURAL_CONVBANDS != *( (uint16_t *) ( hrtf_data_rptr ) ) )
        {
            return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_CONVBANDS)" );
@@ -1611,7 +1613,7 @@ static ivas_error create_fastconv_HRTF_from_rawdata(
        ( *hHRTF )->FASTCONV_BRIR_latency_s = *( (float *) ( hrtf_data_rptr ) );
        hrtf_data_rptr += sizeof( float );

#ifdef NONBE_FIX_BINARY_BINAURAL_READING
#if defined NONBE_FIX_BINARY_BINAURAL_READING && defined USE_NEW_HRTF_BINARY_FILE_FORMAT
        if ( BINAURAL_CONVBANDS != *( (uint16_t *) ( hrtf_data_rptr ) ) )
        {
            return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "HRTF binary file not compliant (BINAURAL_CONVBANDS)" );
@@ -1671,11 +1673,18 @@ static ivas_error create_fastconv_HRTF_from_rawdata(
        }
        hrtf_data_rptr += sizeof( uint16_t );

#ifdef USE_NEW_HRTF_BINARY_FILE_FORMAT
        memcpy( ( *hHRTF )->fastconvReverberationTimes, hrtf_data_rptr, CLDFB_NO_CHANNELS_MAX * sizeof( float ) );
        hrtf_data_rptr += CLDFB_NO_CHANNELS_MAX * sizeof( float );

        memcpy( ( *hHRTF )->fastconvReverberationEneCorrections, hrtf_data_rptr, CLDFB_NO_CHANNELS_MAX * sizeof( float ) );
        hrtf_data_rptr += CLDFB_NO_CHANNELS_MAX * sizeof( float );
#else // old binary file is wrong
#include "ivas_rom_binauralRenderer.h"
        memcpy( ( *hHRTF )->fastconvReverberationEneCorrections, hrtf_data_rptr, CLDFB_NO_CHANNELS_MAX * sizeof( float ) );
        hrtf_data_rptr += CLDFB_NO_CHANNELS_MAX * sizeof( float );
        memcpy( ( *hHRTF )->fastconvReverberationTimes, fastconvReverberationTimes, CLDFB_NO_CHANNELS_MAX * sizeof( float ) );
        hrtf_data_rptr += CLDFB_NO_CHANNELS_MAX * sizeof( float );
#endif
    }

    return IVAS_ERR_OK;