diff --git a/lib_com/options.h b/lib_com/options.h index e0e3cee3ed09bea7ab5dabb6f08922f77d528a54..04a362ac9a092df42dd839d43be46a3a943cef9a 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -183,8 +183,8 @@ #define FIX_1022_REMOVE_PARAMISM_DEC /* VA: issue 1022: remove unused function ivas_param_ism_dec() */ #define USE_NEW_HRTF_BINARY_FILE_FORMAT /* Orange: to activate when decided to change the hrtf binary file format */ -//#define NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES /* Philips: Use pre-computed HRTF average L/R energies and IAC in all renderers */ -//#define FIX_638_ENERGIE_IAC_ROM_TABLES /* Orange: Missing left/right and coherence late reverb tables in binary format */ +#define NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES /* Philips: Use pre-computed HRTF average L/R energies and IAC in all renderers */ +#define FIX_638_ENERGIE_IAC_ROM_TABLES /* Orange: Missing left/right and coherence late reverb tables in binary format */ #define FIX_WARNING_RENDER_CONFIG /* Orange: fix warning on windows build */ #define FIX_INV_DIFFUSE_WEIGHT /* Orange : Fix error in energy compensation in late binaural */ diff --git a/lib_rend/ivas_reverb_utils.c b/lib_rend/ivas_reverb_utils.c index 89d36dd4e18a123bfa6402b81b5ca9cb4c93789e..c45c03cf9d2ef2bce4718a109e680de9935b1765 100644 --- a/lib_rend/ivas_reverb_utils.c +++ b/lib_rend/ivas_reverb_utils.c @@ -532,7 +532,11 @@ static ivas_error ivas_reverb_get_fastconv_hrtf_set_energies( ivas_error error; #endif #ifdef NONBE_FIX_922_PRECOMPUTED_HRTF_PROPERTIES +#ifdef NONBE_FIX_AVG_IAC_CLDFB_REVERB const int16_t avg_pwr_len = sampling_rate == 16000 ? LR_IAC_LENGTH_NR_FC_16KHZ : LR_IAC_LENGTH_NR_FC; +#else + const int16_t avg_pwr_len = LR_IAC_LENGTH_NR_FC; +#endif for ( freq_idx = 0; freq_idx < avg_pwr_len; freq_idx++ ) { diff --git a/lib_util/hrtf_file_reader.c b/lib_util/hrtf_file_reader.c index 2522aadb88250a8b0ac8f7cf53ee633be0b914a8..6b07eb5afb9cae577e042f6860487eaea40b4a80 100644 --- a/lib_util/hrtf_file_reader.c +++ b/lib_util/hrtf_file_reader.c @@ -674,9 +674,30 @@ static ivas_error load_reverb_from_binary( hHrtfStatistics->average_energy_l = hHrtfStatistics->average_energy_l_dyn; hHrtfStatistics->average_energy_r = hHrtfStatistics->average_energy_r_dyn; hHrtfStatistics->inter_aural_coherence = hHrtfStatistics->inter_aural_coherence_dyn; +#ifdef NONBE_FIX_AVG_IAC_CLDFB_REVERB fread( hHrtfStatistics->average_energy_l_dyn, sizeof( const float ), lr_iac_len, f_hrtf ); fread( hHrtfStatistics->average_energy_r_dyn, sizeof( const float ), lr_iac_len, f_hrtf ); fread( hHrtfStatistics->inter_aural_coherence_dyn, sizeof( const float ), lr_iac_len, f_hrtf ); +#else + switch ( sampleRate ) + { + case 48000: + memcpy( hHrtfStatistics->average_energy_l_dyn, defaultHRIR_left_avg_power_48kHz, sizeof( float ) * lr_iac_len ); + memcpy( hHrtfStatistics->average_energy_r_dyn, defaultHRIR_left_avg_power_48kHz, sizeof( float ) * lr_iac_len ); + memcpy( hHrtfStatistics->inter_aural_coherence, defaultHRIR_left_avg_power_48kHz, sizeof( float ) * lr_iac_len ); + break; + case 32000: + memcpy( hHrtfStatistics->average_energy_l_dyn, defaultHRIR_left_avg_power_32kHz, sizeof( float ) * lr_iac_len ); + memcpy( hHrtfStatistics->average_energy_r_dyn, defaultHRIR_left_avg_power_32kHz, sizeof( float ) * lr_iac_len ); + memcpy( hHrtfStatistics->inter_aural_coherence, defaultHRIR_left_avg_power_32kHz, sizeof( float ) * lr_iac_len ); + break; + case 16000: + memcpy( hHrtfStatistics->average_energy_l_dyn, defaultHRIR_left_avg_power_16kHz, sizeof( float ) * lr_iac_len ); + memcpy( hHrtfStatistics->average_energy_r_dyn, defaultHRIR_left_avg_power_16kHz, sizeof( float ) * lr_iac_len ); + memcpy( hHrtfStatistics->inter_aural_coherence, defaultHRIR_left_avg_power_16kHz, sizeof( float ) * lr_iac_len ); + break; + } +#endif hHrtfStatistics->fromROM = FALSE; #else /* left/right energy and interaural coherence for late reverb */