Loading lib_util/hrtf_file_reader.c +113 −16 Original line number Diff line number Diff line Loading @@ -37,6 +37,10 @@ #include "ivas_prot.h" #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES #include "ivas_rom_binaural_crend_head.h" #endif /*---------------------------------------------------------------------* * Local structures *---------------------------------------------------------------------*/ Loading Loading @@ -457,7 +461,73 @@ static ivas_error LoadBSplineBinary( #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES /*-------------------------------------------------------------------* * LoadBReverbBinary() * set_default_reverb_iac_energy() * * Loads reverb data from file. --------------------------------------------------------------------*/ static ivas_error set_default_reverb_iac_energy( IVAS_DEC_HRTF_HANDLE HrFiltSet_p /* i/o: HR filter model parameter structure */ ) { ivas_error error = IVAS_ERR_OK; int16_t i; if ( HrFiltSet_p == NULL ) { return IVAS_ERR_UNEXPECTED_NULL_POINTER; } if ( HrFiltSet_p->ModelParams.modelROM == 0 ) { for ( i = 0; i < 3; i++ ) { HrFiltSet_p->lr_energy_and_iac_dyn[i] = (float *) malloc( LR_IAC_LENGTH_NR_FC * sizeof( float ) ); } switch ( HrFiltSet_p->SampleRate ) { case 48000: mvr2r( defaultHRIR_left_avg_power_48kHz, HrFiltSet_p->lr_energy_and_iac_dyn[0], LR_IAC_LENGTH_NR_FC ); mvr2r( defaultHRIR_right_avg_power_48kHz, HrFiltSet_p->lr_energy_and_iac_dyn[1], LR_IAC_LENGTH_NR_FC ); mvr2r( defaultHRIR_coherence_48kHz, HrFiltSet_p->lr_energy_and_iac_dyn[2], LR_IAC_LENGTH_NR_FC ); break; case 32000: mvr2r( defaultHRIR_left_avg_power_32kHz, HrFiltSet_p->lr_energy_and_iac_dyn[0], LR_IAC_LENGTH_NR_FC ); mvr2r( defaultHRIR_right_avg_power_32kHz, HrFiltSet_p->lr_energy_and_iac_dyn[1], LR_IAC_LENGTH_NR_FC ); mvr2r( defaultHRIR_coherence_32kHz, HrFiltSet_p->lr_energy_and_iac_dyn[2], LR_IAC_LENGTH_NR_FC ); break; case 16000: mvr2r( defaultHRIR_left_avg_power_16kHz, HrFiltSet_p->lr_energy_and_iac_dyn[0], LR_IAC_LENGTH_NR_FC ); mvr2r( defaultHRIR_right_avg_power_16kHz, HrFiltSet_p->lr_energy_and_iac_dyn[1], LR_IAC_LENGTH_NR_FC ); mvr2r( defaultHRIR_coherence_16kHz, HrFiltSet_p->lr_energy_and_iac_dyn[2], LR_IAC_LENGTH_NR_FC ); break; } } else { switch ( HrFiltSet_p->SampleRate ) { case 48000: HrFiltSet_p->lr_energy_and_iac[0] = defaultHRIR_left_avg_power_48kHz; HrFiltSet_p->lr_energy_and_iac[1] = defaultHRIR_right_avg_power_48kHz; HrFiltSet_p->lr_energy_and_iac[2] = defaultHRIR_coherence_48kHz; break; case 32000: HrFiltSet_p->lr_energy_and_iac[0] = defaultHRIR_left_avg_power_32kHz; HrFiltSet_p->lr_energy_and_iac[1] = defaultHRIR_right_avg_power_32kHz; HrFiltSet_p->lr_energy_and_iac[2] = defaultHRIR_coherence_32kHz; break; case 16000: HrFiltSet_p->lr_energy_and_iac[0] = defaultHRIR_left_avg_power_16kHz; HrFiltSet_p->lr_energy_and_iac[1] = defaultHRIR_right_avg_power_16kHz; HrFiltSet_p->lr_energy_and_iac[2] = defaultHRIR_coherence_16kHz; break; } } return error; } /*-------------------------------------------------------------------* * load_reverb_from_binary() * * Loads reverb data from file. --------------------------------------------------------------------*/ Loading @@ -481,6 +551,7 @@ static ivas_error load_reverb_from_binary( if ( ( header_check_result = read_and_check_hrtf_binary_file_header( &hrtfs_file_header, f_hrtf ) ) != IVAS_ERR_OK ) { set_default_reverb_iac_energy( HrFiltSet_p ); return header_check_result; } Loading Loading @@ -524,6 +595,8 @@ static ivas_error load_reverb_from_binary( free( hrtf_data ); if ( is_reverb ) { /* left/right energy and interaural coherence for late reverb */ for ( i = 0; i < 3; i++ ) { Loading @@ -531,6 +604,11 @@ static ivas_error load_reverb_from_binary( fread( HrFiltSet_p->lr_energy_and_iac_dyn[i], sizeof( const float ), LR_IAC_LENGTH_NR_FC, f_hrtf ); HrFiltSet_p->lr_energy_and_iac[i] = (const float *) HrFiltSet_p->lr_energy_and_iac_dyn[i]; } } else { set_default_reverb_iac_energy( HrFiltSet_p ); } return IVAS_ERR_OK; } Loading Loading @@ -582,7 +660,26 @@ static ivas_error TDREND_MIX_LoadHRTF( if ( ( header_check_result = read_and_check_hrtf_binary_file_header( &hrtfs_file_header, f_hrtf ) ) != IVAS_ERR_OK ) { return header_check_result; error = header_check_result; /* try if it is old format for BE tests*/ fseek( f_hrtf, 0, SEEK_SET ); if ( fread( &tmp, 1, sizeof( int16_t ), f_hrtf ) == 0 ) { error = IVAS_ERROR( IVAS_ERR_FAILED_FILE_READ, "Error in HRTF file reading" ); } HrFiltSet_p->FilterMethod = (TDREND_HRFILT_Method_t) tmp; if ( HrFiltSet_p->FilterMethod != TDREND_HRFILT_Method_BSplineModel ) { error = IVAS_ERROR( IVAS_ERR_INVALID_HRTF, "The HR filter set file is not a supported type." ); } else { error = LoadBSplineBinary( HrFiltSet_p, f_hrtf ); } return error; } is_tdrend = FALSE; Loading scripts/binauralRenderer_interface/Table_Format_Converter/generate_tables_from_rom_to_bin.c +2 −33 Original line number Diff line number Diff line Loading @@ -2539,7 +2539,7 @@ int16_t check_bin_file( FILE *hrtf_bin_file ) uint32_t hrtf_data_size_max; int16_t nbHRTF; #endif char *file_header; //, *hrtf_data, *hrtf_data_rptr; char *file_header; ivas_hrtfs_header_t hrtf_header; int16_t result; Loading Loading @@ -2627,39 +2627,8 @@ int16_t check_bin_file( FILE *hrtf_bin_file ) while ( fread( &hrtf_header, sizeof( ivas_hrtfs_header_t ), 1, hrtf_bin_file ) == 1 ) { #endif /* only valid if binary file = rom file hrtf_data = (char *) malloc( hrtf_header.data_size ); if ( hrtf_data == NULL ) { fprintf( stderr, "Memory allocation for the hrtf failed!\n\n" ); if ( file_header != NULL ) free( file_header ); return -1; } if ( fread( hrtf_data, hrtf_header.data_size, 1, hrtf_bin_file ) == 1 ) { hrtf_data_rptr = hrtf_data; if ( check_hrtf_data( hrtf_header.rend_type, hrtf_header.input_cfg, hrtf_header.frequency, hrtf_data_rptr, hrtf_header.data_size ) != 0 ) { fprintf( stderr, "HRTF data corrupted!\n\n" ); if ( file_header != NULL ) free( file_header ); free( hrtf_data ); return -1; } free( hrtf_data ); } else { fprintf( stderr, "Access to HRTF data failed!\n\n" ); if ( file_header != NULL ) free( file_header ); free( hrtf_data ); return -1; }*/ fseek( hrtf_bin_file, hrtf_header.data_size, SEEK_CUR ); } if ( file_header != NULL ) free( file_header ); } Loading scripts/binauralRenderer_interface/bin/HRIR_128_Meth5_IRC_53_Q10_symL_Itrp1_48000_Reverb_16kHz.bin 0 → 100644LFS +129 B File added.No diff preview for this file type. View file scripts/binauralRenderer_interface/bin/HRIR_128_Meth5_IRC_53_Q10_symL_Itrp1_48000_Reverb_32kHz.bin 0 → 100644LFS +129 B File added.No diff preview for this file type. View file scripts/binauralRenderer_interface/bin/HRIR_128_Meth5_IRC_53_Q10_symL_Itrp1_48000_Reverb_48kHz.bin 0 → 100644LFS +129 B File added.No diff preview for this file type. View file Loading
lib_util/hrtf_file_reader.c +113 −16 Original line number Diff line number Diff line Loading @@ -37,6 +37,10 @@ #include "ivas_prot.h" #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES #include "ivas_rom_binaural_crend_head.h" #endif /*---------------------------------------------------------------------* * Local structures *---------------------------------------------------------------------*/ Loading Loading @@ -457,7 +461,73 @@ static ivas_error LoadBSplineBinary( #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES /*-------------------------------------------------------------------* * LoadBReverbBinary() * set_default_reverb_iac_energy() * * Loads reverb data from file. --------------------------------------------------------------------*/ static ivas_error set_default_reverb_iac_energy( IVAS_DEC_HRTF_HANDLE HrFiltSet_p /* i/o: HR filter model parameter structure */ ) { ivas_error error = IVAS_ERR_OK; int16_t i; if ( HrFiltSet_p == NULL ) { return IVAS_ERR_UNEXPECTED_NULL_POINTER; } if ( HrFiltSet_p->ModelParams.modelROM == 0 ) { for ( i = 0; i < 3; i++ ) { HrFiltSet_p->lr_energy_and_iac_dyn[i] = (float *) malloc( LR_IAC_LENGTH_NR_FC * sizeof( float ) ); } switch ( HrFiltSet_p->SampleRate ) { case 48000: mvr2r( defaultHRIR_left_avg_power_48kHz, HrFiltSet_p->lr_energy_and_iac_dyn[0], LR_IAC_LENGTH_NR_FC ); mvr2r( defaultHRIR_right_avg_power_48kHz, HrFiltSet_p->lr_energy_and_iac_dyn[1], LR_IAC_LENGTH_NR_FC ); mvr2r( defaultHRIR_coherence_48kHz, HrFiltSet_p->lr_energy_and_iac_dyn[2], LR_IAC_LENGTH_NR_FC ); break; case 32000: mvr2r( defaultHRIR_left_avg_power_32kHz, HrFiltSet_p->lr_energy_and_iac_dyn[0], LR_IAC_LENGTH_NR_FC ); mvr2r( defaultHRIR_right_avg_power_32kHz, HrFiltSet_p->lr_energy_and_iac_dyn[1], LR_IAC_LENGTH_NR_FC ); mvr2r( defaultHRIR_coherence_32kHz, HrFiltSet_p->lr_energy_and_iac_dyn[2], LR_IAC_LENGTH_NR_FC ); break; case 16000: mvr2r( defaultHRIR_left_avg_power_16kHz, HrFiltSet_p->lr_energy_and_iac_dyn[0], LR_IAC_LENGTH_NR_FC ); mvr2r( defaultHRIR_right_avg_power_16kHz, HrFiltSet_p->lr_energy_and_iac_dyn[1], LR_IAC_LENGTH_NR_FC ); mvr2r( defaultHRIR_coherence_16kHz, HrFiltSet_p->lr_energy_and_iac_dyn[2], LR_IAC_LENGTH_NR_FC ); break; } } else { switch ( HrFiltSet_p->SampleRate ) { case 48000: HrFiltSet_p->lr_energy_and_iac[0] = defaultHRIR_left_avg_power_48kHz; HrFiltSet_p->lr_energy_and_iac[1] = defaultHRIR_right_avg_power_48kHz; HrFiltSet_p->lr_energy_and_iac[2] = defaultHRIR_coherence_48kHz; break; case 32000: HrFiltSet_p->lr_energy_and_iac[0] = defaultHRIR_left_avg_power_32kHz; HrFiltSet_p->lr_energy_and_iac[1] = defaultHRIR_right_avg_power_32kHz; HrFiltSet_p->lr_energy_and_iac[2] = defaultHRIR_coherence_32kHz; break; case 16000: HrFiltSet_p->lr_energy_and_iac[0] = defaultHRIR_left_avg_power_16kHz; HrFiltSet_p->lr_energy_and_iac[1] = defaultHRIR_right_avg_power_16kHz; HrFiltSet_p->lr_energy_and_iac[2] = defaultHRIR_coherence_16kHz; break; } } return error; } /*-------------------------------------------------------------------* * load_reverb_from_binary() * * Loads reverb data from file. --------------------------------------------------------------------*/ Loading @@ -481,6 +551,7 @@ static ivas_error load_reverb_from_binary( if ( ( header_check_result = read_and_check_hrtf_binary_file_header( &hrtfs_file_header, f_hrtf ) ) != IVAS_ERR_OK ) { set_default_reverb_iac_energy( HrFiltSet_p ); return header_check_result; } Loading Loading @@ -524,6 +595,8 @@ static ivas_error load_reverb_from_binary( free( hrtf_data ); if ( is_reverb ) { /* left/right energy and interaural coherence for late reverb */ for ( i = 0; i < 3; i++ ) { Loading @@ -531,6 +604,11 @@ static ivas_error load_reverb_from_binary( fread( HrFiltSet_p->lr_energy_and_iac_dyn[i], sizeof( const float ), LR_IAC_LENGTH_NR_FC, f_hrtf ); HrFiltSet_p->lr_energy_and_iac[i] = (const float *) HrFiltSet_p->lr_energy_and_iac_dyn[i]; } } else { set_default_reverb_iac_energy( HrFiltSet_p ); } return IVAS_ERR_OK; } Loading Loading @@ -582,7 +660,26 @@ static ivas_error TDREND_MIX_LoadHRTF( if ( ( header_check_result = read_and_check_hrtf_binary_file_header( &hrtfs_file_header, f_hrtf ) ) != IVAS_ERR_OK ) { return header_check_result; error = header_check_result; /* try if it is old format for BE tests*/ fseek( f_hrtf, 0, SEEK_SET ); if ( fread( &tmp, 1, sizeof( int16_t ), f_hrtf ) == 0 ) { error = IVAS_ERROR( IVAS_ERR_FAILED_FILE_READ, "Error in HRTF file reading" ); } HrFiltSet_p->FilterMethod = (TDREND_HRFILT_Method_t) tmp; if ( HrFiltSet_p->FilterMethod != TDREND_HRFILT_Method_BSplineModel ) { error = IVAS_ERROR( IVAS_ERR_INVALID_HRTF, "The HR filter set file is not a supported type." ); } else { error = LoadBSplineBinary( HrFiltSet_p, f_hrtf ); } return error; } is_tdrend = FALSE; Loading
scripts/binauralRenderer_interface/Table_Format_Converter/generate_tables_from_rom_to_bin.c +2 −33 Original line number Diff line number Diff line Loading @@ -2539,7 +2539,7 @@ int16_t check_bin_file( FILE *hrtf_bin_file ) uint32_t hrtf_data_size_max; int16_t nbHRTF; #endif char *file_header; //, *hrtf_data, *hrtf_data_rptr; char *file_header; ivas_hrtfs_header_t hrtf_header; int16_t result; Loading Loading @@ -2627,39 +2627,8 @@ int16_t check_bin_file( FILE *hrtf_bin_file ) while ( fread( &hrtf_header, sizeof( ivas_hrtfs_header_t ), 1, hrtf_bin_file ) == 1 ) { #endif /* only valid if binary file = rom file hrtf_data = (char *) malloc( hrtf_header.data_size ); if ( hrtf_data == NULL ) { fprintf( stderr, "Memory allocation for the hrtf failed!\n\n" ); if ( file_header != NULL ) free( file_header ); return -1; } if ( fread( hrtf_data, hrtf_header.data_size, 1, hrtf_bin_file ) == 1 ) { hrtf_data_rptr = hrtf_data; if ( check_hrtf_data( hrtf_header.rend_type, hrtf_header.input_cfg, hrtf_header.frequency, hrtf_data_rptr, hrtf_header.data_size ) != 0 ) { fprintf( stderr, "HRTF data corrupted!\n\n" ); if ( file_header != NULL ) free( file_header ); free( hrtf_data ); return -1; } free( hrtf_data ); } else { fprintf( stderr, "Access to HRTF data failed!\n\n" ); if ( file_header != NULL ) free( file_header ); free( hrtf_data ); return -1; }*/ fseek( hrtf_bin_file, hrtf_header.data_size, SEEK_CUR ); } if ( file_header != NULL ) free( file_header ); } Loading
scripts/binauralRenderer_interface/bin/HRIR_128_Meth5_IRC_53_Q10_symL_Itrp1_48000_Reverb_16kHz.bin 0 → 100644LFS +129 B File added.No diff preview for this file type. View file
scripts/binauralRenderer_interface/bin/HRIR_128_Meth5_IRC_53_Q10_symL_Itrp1_48000_Reverb_32kHz.bin 0 → 100644LFS +129 B File added.No diff preview for this file type. View file
scripts/binauralRenderer_interface/bin/HRIR_128_Meth5_IRC_53_Q10_symL_Itrp1_48000_Reverb_48kHz.bin 0 → 100644LFS +129 B File added.No diff preview for this file type. View file