Loading apps/decoder.c +1 −0 Original line number Diff line number Diff line Loading @@ -777,6 +777,7 @@ int main( } #endif #endif IVAS_DEC_HRTF_CREND_HANDLE hSetOfHRTF = NULL; if ( ( error = IVAS_DEC_GetHrtfCRendHandle( hIvasDec, &hSetOfHRTF ) ) != IVAS_ERR_OK ) { Loading lib_rend/ivas_crend.c +1 −6 Original line number Diff line number Diff line Loading @@ -444,7 +444,6 @@ static ivas_error ivas_rend_initCrend( #ifdef FIX_INV_DIFFUSE_WEIGHT hHrtf->inv_diffuse_weight[j][i] = CRendBin_Combined_BRIR_inv_diffuse_weight_16kHz[j][tmp]; #endif hHrtf->num_iterations[i][j] = CRendBin_Combined_BRIR_num_iterations_16kHz[tmp][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_Combined_BRIR_pIndex_frequency_max_16kHz[tmp][j]; hHrtf->pOut_to_bin_re[i][j] = CRendBin_Combined_BRIR_coeff_re_16kHz[tmp][j]; Loading @@ -455,7 +454,6 @@ static ivas_error ivas_rend_initCrend( #ifdef FIX_INV_DIFFUSE_WEIGHT hHrtf->inv_diffuse_weight[j][i] = CRendBin_Combined_HRIR_inv_diffuse_weight_16kHz[j][tmp]; #endif hHrtf->num_iterations[i][j] = CRendBin_Combined_HRIR_num_iterations_16kHz[tmp][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_Combined_HRIR_pIndex_frequency_max_16kHz[tmp][j]; hHrtf->pOut_to_bin_re[i][j] = CRendBin_Combined_HRIR_coeff_re_16kHz[tmp][j]; Loading @@ -481,7 +479,6 @@ static ivas_error ivas_rend_initCrend( for ( i = 0; i < hHrtf->max_num_ir; i++ ) { #ifndef FIX_INV_DIFFUSE_WEIGHT hHrtf->inv_diffuse_weight[i] = CRendBin_HOA3_HRIR_inv_diffuse_weight_48kHz[i]; #endif Loading Loading @@ -515,7 +512,6 @@ static ivas_error ivas_rend_initCrend( #ifndef FIX_INV_DIFFUSE_WEIGHT hHrtf->inv_diffuse_weight[i] = CRendBin_HOA3_HRIR_inv_diffuse_weight_32kHz[i]; #endif for ( j = 0; j < BINAURAL_CHANNELS; j++ ) { #ifdef FIX_INV_DIFFUSE_WEIGHT Loading Loading @@ -585,7 +581,6 @@ static ivas_error ivas_rend_initCrend( #ifndef FIX_INV_DIFFUSE_WEIGHT hHrtf->inv_diffuse_weight[i] = CRendBin_HOA2_HRIR_inv_diffuse_weight_48kHz[i]; #endif for ( j = 0; j < BINAURAL_CHANNELS; j++ ) { #ifdef FIX_INV_DIFFUSE_WEIGHT Loading Loading @@ -616,7 +611,6 @@ static ivas_error ivas_rend_initCrend( #ifndef FIX_INV_DIFFUSE_WEIGHT hHrtf->inv_diffuse_weight[i] = CRendBin_HOA2_HRIR_inv_diffuse_weight_32kHz[i]; #endif for ( j = 0; j < BINAURAL_CHANNELS; j++ ) { #ifdef FIX_INV_DIFFUSE_WEIGHT Loading Loading @@ -856,6 +850,7 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[i] = hSetOfHRTF->hHRTF_hrir_combined->inv_diffuse_weight[tmp]; } #endif for ( j = 0; j < BINAURAL_CHANNELS; j++ ) { if ( outConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) Loading lib_rend/ivas_rom_binaural_crend_head.h +4 −13 Original line number Diff line number Diff line Loading @@ -350,28 +350,19 @@ extern float CRendBin_Combined_BRIR_coeff_diffuse_im_16kHz[BINAURAL_CHANNELS][24 #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES /********************** defaultHRIR reverb rom tables at sampling rate 48kHz **********************/ /********************** defaultHRIR reverb ROM tables **********************/ /* Sample Rate = 48000 */ extern float defaultHRIR_coherence_48kHz[LR_IAC_LENGTH_NR_FC]; extern float defaultHRIR_left_avg_power_48kHz[LR_IAC_LENGTH_NR_FC]; extern float defaultHRIR_right_avg_power_48kHz[LR_IAC_LENGTH_NR_FC]; #endif #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES /********************** defaultHRIR reverb rom tables at sampling rate 32kHz **********************/ /* Sample Rate = 32000 */ extern float defaultHRIR_coherence_32kHz[LR_IAC_LENGTH_NR_FC]; extern float defaultHRIR_left_avg_power_32kHz[LR_IAC_LENGTH_NR_FC]; extern float defaultHRIR_right_avg_power_32kHz[LR_IAC_LENGTH_NR_FC]; #endif #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES /********************** defaultHRIR reverb rom tables at sampling rate 16kHz **********************/ /* Sample Rate = 16000 */ extern float defaultHRIR_coherence_16kHz[LR_IAC_LENGTH_NR_FC]; extern float defaultHRIR_left_avg_power_16kHz[LR_IAC_LENGTH_NR_FC]; extern float defaultHRIR_right_avg_power_16kHz[LR_IAC_LENGTH_NR_FC]; Loading lib_util/hrtf_file_reader.c +23 −16 Original line number Diff line number Diff line Loading @@ -34,9 +34,7 @@ #include <string.h> #include "prot.h" #include "ivas_prot_rend.h" #include "ivas_prot.h" #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES #include "ivas_rom_binaural_crend_head.h" #endif Loading Loading @@ -454,17 +452,19 @@ static ivas_error LoadBSplineBinary( 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]; } #endif #endif return IVAS_ERR_OK; } #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES /*-------------------------------------------------------------------* * 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 */ ) Loading Loading @@ -526,7 +526,6 @@ static ivas_error set_default_reverb_iac_energy( return error; } #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES /*-------------------------------------------------------------------* * load_reverb_from_binary() Loading Loading @@ -618,7 +617,7 @@ static ivas_error load_reverb_from_binary( return IVAS_ERR_OK; } #endif /*---------------------------------------------------------------------* * load_reverb_binary() Loading @@ -631,16 +630,13 @@ ivas_error load_reverb_binary( const hrtfFileReader *hrtfReader /* i/o: pointer to hrtfFileReader handle */ ) { ivas_error error; fseek( hrtfReader->file, 0, SEEK_SET ); error = load_reverb_from_binary( hHrtf, hrtfReader->file ); return error; return load_reverb_from_binary( hHrtf, hrtfReader->file ); } #endif /*-------------------------------------------------------------------* * TDREND_MIX_LoadHRTF() * Loading @@ -664,7 +660,6 @@ static ivas_error TDREND_MIX_LoadHRTF( error = IVAS_ERR_OK; if ( ( header_check_result = read_and_check_hrtf_binary_file_header( &hrtfs_file_header, f_hrtf ) ) != IVAS_ERR_OK ) { return header_check_result; Loading Loading @@ -697,6 +692,7 @@ static ivas_error TDREND_MIX_LoadHRTF( { return header_check_result; } #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES is_tdrend = ( hrtf_header.rend_type == HRTF_READER_RENDERER_BINAURAL_OBJECTS_TD ); #else Loading Loading @@ -1141,15 +1137,25 @@ static ivas_error create_fastconv_HRTF_from_rawdata( { int16_t i, j; char *hrtf_data_rptr; ivas_error error; ( *hHRTF )->allocate_init_flag = 0; #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV ) { ivas_allocate_binaural_hrtf( *hHRTF, 0, input_cfg, RENDERER_BINAURAL_FASTCONV, ( *hHRTF )->allocate_init_flag ); if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, 0, input_cfg, RENDERER_BINAURAL_FASTCONV, ( *hHRTF )->allocate_init_flag ) ) != IVAS_ERR_OK ) { return error; } } else if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV_ROOM ) { ivas_allocate_binaural_hrtf( *hHRTF, 0, input_cfg, RENDERER_BINAURAL_FASTCONV_ROOM, ( *hHRTF )->allocate_init_flag ); if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, 0, input_cfg, RENDERER_BINAURAL_FASTCONV_ROOM, ( *hHRTF )->allocate_init_flag ) ) != IVAS_ERR_OK ) { return error; } } else { Loading Loading @@ -1507,6 +1513,7 @@ ivas_error load_fastconv_HRTF_from_binary( free( hrtf_data ); return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "HRTF binary file not compliant (number of HRTF)" ); } #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES if ( ( hrtf_header.rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV ) || ( hrtf_header.rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV_ROOM ) ) #else Loading lib_util/hrtf_file_reader.h +4 −2 Original line number Diff line number Diff line Loading @@ -34,12 +34,13 @@ #define IVAS_HRTF_FILE_READER_H #include "common_api_types.h" #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES #include "ivas_cnst.h" #endif typedef struct hrtfFileReader hrtfFileReader; #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES #include "ivas_cnst.h" typedef enum { HRTF_READER_RENDERER_BINAURAL_INVALID, Loading Loading @@ -107,6 +108,7 @@ ivas_error load_reverb_binary( const hrtfFileReader *hrtfReader /* i/o: pointer to hrtfFileReader handle */ ); #endif /*---------------------------------------------------------------------* * create_SetOfHRTF_from_binary() * Loading Loading
apps/decoder.c +1 −0 Original line number Diff line number Diff line Loading @@ -777,6 +777,7 @@ int main( } #endif #endif IVAS_DEC_HRTF_CREND_HANDLE hSetOfHRTF = NULL; if ( ( error = IVAS_DEC_GetHrtfCRendHandle( hIvasDec, &hSetOfHRTF ) ) != IVAS_ERR_OK ) { Loading
lib_rend/ivas_crend.c +1 −6 Original line number Diff line number Diff line Loading @@ -444,7 +444,6 @@ static ivas_error ivas_rend_initCrend( #ifdef FIX_INV_DIFFUSE_WEIGHT hHrtf->inv_diffuse_weight[j][i] = CRendBin_Combined_BRIR_inv_diffuse_weight_16kHz[j][tmp]; #endif hHrtf->num_iterations[i][j] = CRendBin_Combined_BRIR_num_iterations_16kHz[tmp][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_Combined_BRIR_pIndex_frequency_max_16kHz[tmp][j]; hHrtf->pOut_to_bin_re[i][j] = CRendBin_Combined_BRIR_coeff_re_16kHz[tmp][j]; Loading @@ -455,7 +454,6 @@ static ivas_error ivas_rend_initCrend( #ifdef FIX_INV_DIFFUSE_WEIGHT hHrtf->inv_diffuse_weight[j][i] = CRendBin_Combined_HRIR_inv_diffuse_weight_16kHz[j][tmp]; #endif hHrtf->num_iterations[i][j] = CRendBin_Combined_HRIR_num_iterations_16kHz[tmp][j]; hHrtf->pIndex_frequency_max[i][j] = CRendBin_Combined_HRIR_pIndex_frequency_max_16kHz[tmp][j]; hHrtf->pOut_to_bin_re[i][j] = CRendBin_Combined_HRIR_coeff_re_16kHz[tmp][j]; Loading @@ -481,7 +479,6 @@ static ivas_error ivas_rend_initCrend( for ( i = 0; i < hHrtf->max_num_ir; i++ ) { #ifndef FIX_INV_DIFFUSE_WEIGHT hHrtf->inv_diffuse_weight[i] = CRendBin_HOA3_HRIR_inv_diffuse_weight_48kHz[i]; #endif Loading Loading @@ -515,7 +512,6 @@ static ivas_error ivas_rend_initCrend( #ifndef FIX_INV_DIFFUSE_WEIGHT hHrtf->inv_diffuse_weight[i] = CRendBin_HOA3_HRIR_inv_diffuse_weight_32kHz[i]; #endif for ( j = 0; j < BINAURAL_CHANNELS; j++ ) { #ifdef FIX_INV_DIFFUSE_WEIGHT Loading Loading @@ -585,7 +581,6 @@ static ivas_error ivas_rend_initCrend( #ifndef FIX_INV_DIFFUSE_WEIGHT hHrtf->inv_diffuse_weight[i] = CRendBin_HOA2_HRIR_inv_diffuse_weight_48kHz[i]; #endif for ( j = 0; j < BINAURAL_CHANNELS; j++ ) { #ifdef FIX_INV_DIFFUSE_WEIGHT Loading Loading @@ -616,7 +611,6 @@ static ivas_error ivas_rend_initCrend( #ifndef FIX_INV_DIFFUSE_WEIGHT hHrtf->inv_diffuse_weight[i] = CRendBin_HOA2_HRIR_inv_diffuse_weight_32kHz[i]; #endif for ( j = 0; j < BINAURAL_CHANNELS; j++ ) { #ifdef FIX_INV_DIFFUSE_WEIGHT Loading Loading @@ -856,6 +850,7 @@ static ivas_error ivas_rend_initCrend( hHrtf->inv_diffuse_weight[i] = hSetOfHRTF->hHRTF_hrir_combined->inv_diffuse_weight[tmp]; } #endif for ( j = 0; j < BINAURAL_CHANNELS; j++ ) { if ( outConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_IR ) Loading
lib_rend/ivas_rom_binaural_crend_head.h +4 −13 Original line number Diff line number Diff line Loading @@ -350,28 +350,19 @@ extern float CRendBin_Combined_BRIR_coeff_diffuse_im_16kHz[BINAURAL_CHANNELS][24 #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES /********************** defaultHRIR reverb rom tables at sampling rate 48kHz **********************/ /********************** defaultHRIR reverb ROM tables **********************/ /* Sample Rate = 48000 */ extern float defaultHRIR_coherence_48kHz[LR_IAC_LENGTH_NR_FC]; extern float defaultHRIR_left_avg_power_48kHz[LR_IAC_LENGTH_NR_FC]; extern float defaultHRIR_right_avg_power_48kHz[LR_IAC_LENGTH_NR_FC]; #endif #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES /********************** defaultHRIR reverb rom tables at sampling rate 32kHz **********************/ /* Sample Rate = 32000 */ extern float defaultHRIR_coherence_32kHz[LR_IAC_LENGTH_NR_FC]; extern float defaultHRIR_left_avg_power_32kHz[LR_IAC_LENGTH_NR_FC]; extern float defaultHRIR_right_avg_power_32kHz[LR_IAC_LENGTH_NR_FC]; #endif #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES /********************** defaultHRIR reverb rom tables at sampling rate 16kHz **********************/ /* Sample Rate = 16000 */ extern float defaultHRIR_coherence_16kHz[LR_IAC_LENGTH_NR_FC]; extern float defaultHRIR_left_avg_power_16kHz[LR_IAC_LENGTH_NR_FC]; extern float defaultHRIR_right_avg_power_16kHz[LR_IAC_LENGTH_NR_FC]; Loading
lib_util/hrtf_file_reader.c +23 −16 Original line number Diff line number Diff line Loading @@ -34,9 +34,7 @@ #include <string.h> #include "prot.h" #include "ivas_prot_rend.h" #include "ivas_prot.h" #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES #include "ivas_rom_binaural_crend_head.h" #endif Loading Loading @@ -454,17 +452,19 @@ static ivas_error LoadBSplineBinary( 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]; } #endif #endif return IVAS_ERR_OK; } #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES /*-------------------------------------------------------------------* * 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 */ ) Loading Loading @@ -526,7 +526,6 @@ static ivas_error set_default_reverb_iac_energy( return error; } #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES /*-------------------------------------------------------------------* * load_reverb_from_binary() Loading Loading @@ -618,7 +617,7 @@ static ivas_error load_reverb_from_binary( return IVAS_ERR_OK; } #endif /*---------------------------------------------------------------------* * load_reverb_binary() Loading @@ -631,16 +630,13 @@ ivas_error load_reverb_binary( const hrtfFileReader *hrtfReader /* i/o: pointer to hrtfFileReader handle */ ) { ivas_error error; fseek( hrtfReader->file, 0, SEEK_SET ); error = load_reverb_from_binary( hHrtf, hrtfReader->file ); return error; return load_reverb_from_binary( hHrtf, hrtfReader->file ); } #endif /*-------------------------------------------------------------------* * TDREND_MIX_LoadHRTF() * Loading @@ -664,7 +660,6 @@ static ivas_error TDREND_MIX_LoadHRTF( error = IVAS_ERR_OK; if ( ( header_check_result = read_and_check_hrtf_binary_file_header( &hrtfs_file_header, f_hrtf ) ) != IVAS_ERR_OK ) { return header_check_result; Loading Loading @@ -697,6 +692,7 @@ static ivas_error TDREND_MIX_LoadHRTF( { return header_check_result; } #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES is_tdrend = ( hrtf_header.rend_type == HRTF_READER_RENDERER_BINAURAL_OBJECTS_TD ); #else Loading Loading @@ -1141,15 +1137,25 @@ static ivas_error create_fastconv_HRTF_from_rawdata( { int16_t i, j; char *hrtf_data_rptr; ivas_error error; ( *hHRTF )->allocate_init_flag = 0; #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV ) { ivas_allocate_binaural_hrtf( *hHRTF, 0, input_cfg, RENDERER_BINAURAL_FASTCONV, ( *hHRTF )->allocate_init_flag ); if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, 0, input_cfg, RENDERER_BINAURAL_FASTCONV, ( *hHRTF )->allocate_init_flag ) ) != IVAS_ERR_OK ) { return error; } } else if ( rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV_ROOM ) { ivas_allocate_binaural_hrtf( *hHRTF, 0, input_cfg, RENDERER_BINAURAL_FASTCONV_ROOM, ( *hHRTF )->allocate_init_flag ); if ( ( error = ivas_allocate_binaural_hrtf( *hHRTF, 0, input_cfg, RENDERER_BINAURAL_FASTCONV_ROOM, ( *hHRTF )->allocate_init_flag ) ) != IVAS_ERR_OK ) { return error; } } else { Loading Loading @@ -1507,6 +1513,7 @@ ivas_error load_fastconv_HRTF_from_binary( free( hrtf_data ); return IVAS_ERROR( IVAS_ERR_FAILED_ALLOC, "HRTF binary file not compliant (number of HRTF)" ); } #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES if ( ( hrtf_header.rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV ) || ( hrtf_header.rend_type == HRTF_READER_RENDERER_BINAURAL_FASTCONV_ROOM ) ) #else Loading
lib_util/hrtf_file_reader.h +4 −2 Original line number Diff line number Diff line Loading @@ -34,12 +34,13 @@ #define IVAS_HRTF_FILE_READER_H #include "common_api_types.h" #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES #include "ivas_cnst.h" #endif typedef struct hrtfFileReader hrtfFileReader; #ifdef FIX_638_ENERGIE_IAC_ROM_TABLES #include "ivas_cnst.h" typedef enum { HRTF_READER_RENDERER_BINAURAL_INVALID, Loading Loading @@ -107,6 +108,7 @@ ivas_error load_reverb_binary( const hrtfFileReader *hrtfReader /* i/o: pointer to hrtfFileReader handle */ ); #endif /*---------------------------------------------------------------------* * create_SetOfHRTF_from_binary() * Loading