Loading lib_com/ivas_prot.h +26 −0 Original line number Diff line number Diff line Loading @@ -5200,12 +5200,22 @@ ivas_error ivas_render_config_init_from_rom( * Reverberator *----------------------------------------------------------------------------------*/ #ifdef FIX_I68_MC_REVERB_FOR_514 ivas_error ivas_reverb_open( REVERB_HANDLE *hReverb, /* i/o: Reverberator handle */ const AUDIO_CONFIG transport_config, /* i : reverb. input audio configuration */ const HRTFS_HANDLE hHrtf, /* i : HRTF handle */ RENDER_CONFIG_DATA *pConfig, /* i : Reverb configuration */ const int32_t output_Fs /* i : output sampling rate */ ); #else /* FIX_I68_MC_REVERB_FOR_514 */ ivas_error ivas_reverb_open( REVERB_HANDLE *hReverb, /* i/o: Reverberator handle */ const HRTFS_HANDLE hHrtf, /* i : HRTF handle */ RENDER_CONFIG_DATA *pConfig, /* i : Reverb configuration */ const int32_t output_Fs /* i : output sampling rate */ ); #endif /* FIX_I68_MC_REVERB_FOR_514 */ void ivas_reverb_close( REVERB_HANDLE *hReverb /* i/o: Reverberator handle */ Loading Loading @@ -5378,6 +5388,21 @@ void ivas_reverb_interpolate_acoustic_data( float *pOutput_dsr ); #ifdef FIX_I68_MC_REVERB_FOR_514 void ivas_reverb_get_hrtf_set_properties( float **ppHrtf_set_L_re, float **ppHrtf_set_L_im, float **ppHrtf_set_R_re, float **ppHrtf_set_R_im, const AUDIO_CONFIG inp_audio_format, const int16_t hrtf_count, const int16_t in_freq_count, const int16_t out_freq_count, float *pOut_avg_pwr_L, float *pOut_avg_pwr_R, float *pOut_i_a_coherence ); #else /* FIX_I68_MC_REVERB_FOR_514 */ void ivas_reverb_get_hrtf_set_properties( float **ppHrtf_set_L_re, float **ppHrtf_set_L_im, Loading @@ -5390,6 +5415,7 @@ void ivas_reverb_get_hrtf_set_properties( float *pOut_avg_pwr_R, float *pOut_i_a_coherence ); #endif /* FIX_I68_MC_REVERB_FOR_514 */ /* Orientation tracking */ void ivas_orient_trk_Init( Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -155,6 +155,8 @@ #define FIX_34 /* Nokia: Fix bug in MASA format EXT output spherical indexing */ #define FIX_I68_MC_REVERB_FOR_514 /* Fix HRTF processing for Jot reverb in case of 5.1.4 input format */ #define FIX_I54_LS_CONVERSION /* FhG: fix incorrect downmix matrix for 5_1_4 to 5_1_2 and upmix matrix for 7_1 to 7_1_4 */ /* ################## End DEVELOPMENT switches ######################### */ Loading lib_dec/ivas_crend.c +4 −0 Original line number Diff line number Diff line Loading @@ -784,7 +784,11 @@ ivas_error ivas_crend_open( if ( ( ( st_ivas->hRenderConfig != NULL ) && st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) ) { #ifdef FIX_I68_MC_REVERB_FOR_514 if ( ( error = ivas_reverb_open( &( hCrend->hReverb ), st_ivas->intern_config, hHrtf, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) #else /* FIX_I68_MC_REVERB_FOR_514 */ if ( ( error = ivas_reverb_open( &( hCrend->hReverb ), hHrtf, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) #endif /* FIX_I68_MC_REVERB_FOR_514 */ { return error; } Loading lib_dec/ivas_objectRenderer.c +4 −0 Original line number Diff line number Diff line Loading @@ -308,7 +308,11 @@ ivas_error ObjRenderIVASFrame( { if ( st_ivas->ini_frame == 0 ) { #ifdef FIX_I68_MC_REVERB_FOR_514 ivas_reverb_open( &st_ivas->hCrend->hReverb, st_ivas->transport_config, NULL, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ); #else /* FIX_I68_MC_REVERB_FOR_514 */ ivas_reverb_open( &st_ivas->hCrend->hReverb, NULL, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ); #endif /* FIX_I68_MC_REVERB_FOR_514 */ } for ( subframe_idx = 0; subframe_idx < 4; subframe_idx++ ) { Loading lib_dec/ivas_reverb.c +23 −0 Original line number Diff line number Diff line Loading @@ -778,7 +778,11 @@ static void set_fft_and_datablock_sizes( REVERB_HANDLE pState, int16_t subframe_ * Sets reverb acoustic data (room acoustics and HRTF), interpolating it to the filter grid *-----------------------------------------------------------------------------------------*/ #ifdef FIX_I68_MC_REVERB_FOR_514 static void set_reverb_acoustic_data( ivas_reverb_params_t *pParams, const AUDIO_CONFIG inp_audio_config, const HRTFS_HANDLE hHrtf, ivas_roomAcoustics_t *pRoomAcoustics, int16_t subframe_len, int16_t nr_fc_input, int16_t nr_fc_fft_filter ) #else /* FIX_I68_MC_REVERB_FOR_514 */ static void set_reverb_acoustic_data( ivas_reverb_params_t *pParams, const HRTFS_HANDLE hHrtf, ivas_roomAcoustics_t *pRoomAcoustics, int16_t subframe_len, int16_t nr_fc_input, int16_t nr_fc_fft_filter ) #endif /* FIX_I68_MC_REVERB_FOR_514 */ { int16_t nr_out_ch, hrtf_idx, offset, iter_idx, bin_idx; float ln_1e6_inverted, delay_diff, exp_argument; Loading Loading @@ -816,8 +820,13 @@ static void set_reverb_acoustic_data( ivas_reverb_params_t *pParams, const HRTFS } /* Compute HRTF set properties using frequency-domain HRTF data */ #ifdef FIX_I68_MC_REVERB_FOR_514 ivas_reverb_get_hrtf_set_properties( pHrtf_set_l_re, pHrtf_set_l_im, pHrtf_set_r_re, pHrtf_set_r_im, inp_audio_config, hHrtf->max_num_ir, subframe_len, nr_fc_fft_filter, pParams->pHrtf_avg_pwr_response_l, pParams->pHrtf_avg_pwr_response_r, pParams->pHrtf_inter_aural_coherence ); #else /* FIX_I68_MC_REVERB_FOR_514 */ ivas_reverb_get_hrtf_set_properties( pHrtf_set_l_re, pHrtf_set_l_im, pHrtf_set_r_re, pHrtf_set_r_im, hHrtf->max_num_ir, subframe_len, nr_fc_fft_filter, pParams->pHrtf_avg_pwr_response_l, pParams->pHrtf_avg_pwr_response_r, pParams->pHrtf_inter_aural_coherence ); #endif /* FIX_I68_MC_REVERB_FOR_514 */ pParams->pHrtf_avg_pwr_response_l_const = (const float *) pParams->pHrtf_avg_pwr_response_l; pParams->pHrtf_avg_pwr_response_r_const = (const float *) pParams->pHrtf_avg_pwr_response_r; Loading Loading @@ -917,12 +926,22 @@ static ivas_error setup_FDN_branches( REVERB_HANDLE pState, ivas_reverb_params_t * Allocate and initialize Crend reverberation handle *------------------------------------------------------------------------*/ #ifdef FIX_I68_MC_REVERB_FOR_514 ivas_error ivas_reverb_open( REVERB_HANDLE *hReverb, /* i/o: Reverberator handle */ const AUDIO_CONFIG transport_config,/* i : reverb. input audio configuration */ const HRTFS_HANDLE hHrtf, /* i : HRTF handle */ RENDER_CONFIG_HANDLE hRenderConfig, /* i : Renderer configuration handle */ const int32_t output_Fs /* i : output sampling rate */ ) #else /* FIX_I68_MC_REVERB_FOR_514 */ ivas_error ivas_reverb_open( REVERB_HANDLE *hReverb, /* i/o: Reverberator handle */ const HRTFS_HANDLE hHrtf, /* i : HRTF handle */ RENDER_CONFIG_HANDLE hRenderConfig, /* i : Renderer configuration handle */ const int32_t output_Fs /* i : output sampling rate */ ) #endif /* FIX_I68_MC_REVERB_FOR_514 */ { ivas_error error; REVERB_HANDLE pState = NULL; Loading Loading @@ -994,7 +1013,11 @@ ivas_error ivas_reverb_open( } /* set up reverb acoustic data on the basis of HRTF data and renderer config */ #ifdef FIX_I68_MC_REVERB_FOR_514 set_reverb_acoustic_data( ¶ms, transport_config, hHrtf, &hRenderConfig->roomAcoustics, subframe_len, nr_fc_input, nr_fc_fft_filter ); #else /* FIX_I68_MC_REVERB_FOR_514 */ set_reverb_acoustic_data( ¶ms, hHrtf, &hRenderConfig->roomAcoustics, subframe_len, nr_fc_input, nr_fc_fft_filter ); #endif /* FIX_I68_MC_REVERB_FOR_514 */ /* set up input downmix */ pState->dmx_gain = calc_dmx_gain(); Loading Loading
lib_com/ivas_prot.h +26 −0 Original line number Diff line number Diff line Loading @@ -5200,12 +5200,22 @@ ivas_error ivas_render_config_init_from_rom( * Reverberator *----------------------------------------------------------------------------------*/ #ifdef FIX_I68_MC_REVERB_FOR_514 ivas_error ivas_reverb_open( REVERB_HANDLE *hReverb, /* i/o: Reverberator handle */ const AUDIO_CONFIG transport_config, /* i : reverb. input audio configuration */ const HRTFS_HANDLE hHrtf, /* i : HRTF handle */ RENDER_CONFIG_DATA *pConfig, /* i : Reverb configuration */ const int32_t output_Fs /* i : output sampling rate */ ); #else /* FIX_I68_MC_REVERB_FOR_514 */ ivas_error ivas_reverb_open( REVERB_HANDLE *hReverb, /* i/o: Reverberator handle */ const HRTFS_HANDLE hHrtf, /* i : HRTF handle */ RENDER_CONFIG_DATA *pConfig, /* i : Reverb configuration */ const int32_t output_Fs /* i : output sampling rate */ ); #endif /* FIX_I68_MC_REVERB_FOR_514 */ void ivas_reverb_close( REVERB_HANDLE *hReverb /* i/o: Reverberator handle */ Loading Loading @@ -5378,6 +5388,21 @@ void ivas_reverb_interpolate_acoustic_data( float *pOutput_dsr ); #ifdef FIX_I68_MC_REVERB_FOR_514 void ivas_reverb_get_hrtf_set_properties( float **ppHrtf_set_L_re, float **ppHrtf_set_L_im, float **ppHrtf_set_R_re, float **ppHrtf_set_R_im, const AUDIO_CONFIG inp_audio_format, const int16_t hrtf_count, const int16_t in_freq_count, const int16_t out_freq_count, float *pOut_avg_pwr_L, float *pOut_avg_pwr_R, float *pOut_i_a_coherence ); #else /* FIX_I68_MC_REVERB_FOR_514 */ void ivas_reverb_get_hrtf_set_properties( float **ppHrtf_set_L_re, float **ppHrtf_set_L_im, Loading @@ -5390,6 +5415,7 @@ void ivas_reverb_get_hrtf_set_properties( float *pOut_avg_pwr_R, float *pOut_i_a_coherence ); #endif /* FIX_I68_MC_REVERB_FOR_514 */ /* Orientation tracking */ void ivas_orient_trk_Init( Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -155,6 +155,8 @@ #define FIX_34 /* Nokia: Fix bug in MASA format EXT output spherical indexing */ #define FIX_I68_MC_REVERB_FOR_514 /* Fix HRTF processing for Jot reverb in case of 5.1.4 input format */ #define FIX_I54_LS_CONVERSION /* FhG: fix incorrect downmix matrix for 5_1_4 to 5_1_2 and upmix matrix for 7_1 to 7_1_4 */ /* ################## End DEVELOPMENT switches ######################### */ Loading
lib_dec/ivas_crend.c +4 −0 Original line number Diff line number Diff line Loading @@ -784,7 +784,11 @@ ivas_error ivas_crend_open( if ( ( ( st_ivas->hRenderConfig != NULL ) && st_ivas->hRenderConfig->roomAcoustics.late_reverb_on ) ) { #ifdef FIX_I68_MC_REVERB_FOR_514 if ( ( error = ivas_reverb_open( &( hCrend->hReverb ), st_ivas->intern_config, hHrtf, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) #else /* FIX_I68_MC_REVERB_FOR_514 */ if ( ( error = ivas_reverb_open( &( hCrend->hReverb ), hHrtf, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ) ) != IVAS_ERR_OK ) #endif /* FIX_I68_MC_REVERB_FOR_514 */ { return error; } Loading
lib_dec/ivas_objectRenderer.c +4 −0 Original line number Diff line number Diff line Loading @@ -308,7 +308,11 @@ ivas_error ObjRenderIVASFrame( { if ( st_ivas->ini_frame == 0 ) { #ifdef FIX_I68_MC_REVERB_FOR_514 ivas_reverb_open( &st_ivas->hCrend->hReverb, st_ivas->transport_config, NULL, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ); #else /* FIX_I68_MC_REVERB_FOR_514 */ ivas_reverb_open( &st_ivas->hCrend->hReverb, NULL, st_ivas->hRenderConfig, st_ivas->hDecoderConfig->output_Fs ); #endif /* FIX_I68_MC_REVERB_FOR_514 */ } for ( subframe_idx = 0; subframe_idx < 4; subframe_idx++ ) { Loading
lib_dec/ivas_reverb.c +23 −0 Original line number Diff line number Diff line Loading @@ -778,7 +778,11 @@ static void set_fft_and_datablock_sizes( REVERB_HANDLE pState, int16_t subframe_ * Sets reverb acoustic data (room acoustics and HRTF), interpolating it to the filter grid *-----------------------------------------------------------------------------------------*/ #ifdef FIX_I68_MC_REVERB_FOR_514 static void set_reverb_acoustic_data( ivas_reverb_params_t *pParams, const AUDIO_CONFIG inp_audio_config, const HRTFS_HANDLE hHrtf, ivas_roomAcoustics_t *pRoomAcoustics, int16_t subframe_len, int16_t nr_fc_input, int16_t nr_fc_fft_filter ) #else /* FIX_I68_MC_REVERB_FOR_514 */ static void set_reverb_acoustic_data( ivas_reverb_params_t *pParams, const HRTFS_HANDLE hHrtf, ivas_roomAcoustics_t *pRoomAcoustics, int16_t subframe_len, int16_t nr_fc_input, int16_t nr_fc_fft_filter ) #endif /* FIX_I68_MC_REVERB_FOR_514 */ { int16_t nr_out_ch, hrtf_idx, offset, iter_idx, bin_idx; float ln_1e6_inverted, delay_diff, exp_argument; Loading Loading @@ -816,8 +820,13 @@ static void set_reverb_acoustic_data( ivas_reverb_params_t *pParams, const HRTFS } /* Compute HRTF set properties using frequency-domain HRTF data */ #ifdef FIX_I68_MC_REVERB_FOR_514 ivas_reverb_get_hrtf_set_properties( pHrtf_set_l_re, pHrtf_set_l_im, pHrtf_set_r_re, pHrtf_set_r_im, inp_audio_config, hHrtf->max_num_ir, subframe_len, nr_fc_fft_filter, pParams->pHrtf_avg_pwr_response_l, pParams->pHrtf_avg_pwr_response_r, pParams->pHrtf_inter_aural_coherence ); #else /* FIX_I68_MC_REVERB_FOR_514 */ ivas_reverb_get_hrtf_set_properties( pHrtf_set_l_re, pHrtf_set_l_im, pHrtf_set_r_re, pHrtf_set_r_im, hHrtf->max_num_ir, subframe_len, nr_fc_fft_filter, pParams->pHrtf_avg_pwr_response_l, pParams->pHrtf_avg_pwr_response_r, pParams->pHrtf_inter_aural_coherence ); #endif /* FIX_I68_MC_REVERB_FOR_514 */ pParams->pHrtf_avg_pwr_response_l_const = (const float *) pParams->pHrtf_avg_pwr_response_l; pParams->pHrtf_avg_pwr_response_r_const = (const float *) pParams->pHrtf_avg_pwr_response_r; Loading Loading @@ -917,12 +926,22 @@ static ivas_error setup_FDN_branches( REVERB_HANDLE pState, ivas_reverb_params_t * Allocate and initialize Crend reverberation handle *------------------------------------------------------------------------*/ #ifdef FIX_I68_MC_REVERB_FOR_514 ivas_error ivas_reverb_open( REVERB_HANDLE *hReverb, /* i/o: Reverberator handle */ const AUDIO_CONFIG transport_config,/* i : reverb. input audio configuration */ const HRTFS_HANDLE hHrtf, /* i : HRTF handle */ RENDER_CONFIG_HANDLE hRenderConfig, /* i : Renderer configuration handle */ const int32_t output_Fs /* i : output sampling rate */ ) #else /* FIX_I68_MC_REVERB_FOR_514 */ ivas_error ivas_reverb_open( REVERB_HANDLE *hReverb, /* i/o: Reverberator handle */ const HRTFS_HANDLE hHrtf, /* i : HRTF handle */ RENDER_CONFIG_HANDLE hRenderConfig, /* i : Renderer configuration handle */ const int32_t output_Fs /* i : output sampling rate */ ) #endif /* FIX_I68_MC_REVERB_FOR_514 */ { ivas_error error; REVERB_HANDLE pState = NULL; Loading Loading @@ -994,7 +1013,11 @@ ivas_error ivas_reverb_open( } /* set up reverb acoustic data on the basis of HRTF data and renderer config */ #ifdef FIX_I68_MC_REVERB_FOR_514 set_reverb_acoustic_data( ¶ms, transport_config, hHrtf, &hRenderConfig->roomAcoustics, subframe_len, nr_fc_input, nr_fc_fft_filter ); #else /* FIX_I68_MC_REVERB_FOR_514 */ set_reverb_acoustic_data( ¶ms, hHrtf, &hRenderConfig->roomAcoustics, subframe_len, nr_fc_input, nr_fc_fft_filter ); #endif /* FIX_I68_MC_REVERB_FOR_514 */ /* set up input downmix */ pState->dmx_gain = calc_dmx_gain(); Loading