Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,7 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ #define FIX_1995_REVERB_INIT /* issue 1995: Fix use-of-uninitialized-value in ivas_binaural_reverb_init() */ /* #################### End BE switches ################################## */ Loading lib_rend/ivas_prot_rend.h +1 −2 Original line number Diff line number Diff line Loading @@ -945,8 +945,7 @@ ivas_error ivas_binaural_reverb_init( const IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics, /* i/o: room acoustics parameters */ const int32_t sampling_rate, /* i : sampling rate */ const float *defaultTimes, /* i : default reverberation times */ const float *defaultEne /* i : default reverberation energies */ , const float *defaultEne, /* i : default reverberation energies */ float *earlyEne /* i/o: Early part energies to be modified */ ); Loading lib_rend/ivas_reverb.c +24 −23 Original line number Diff line number Diff line Loading @@ -79,10 +79,10 @@ #define MAX_NR_OUTPUTS ( 2 ) const int16_t init_loop_delay[IVAS_REV_MAX_NR_BRANCHES] = { 37, 31, 29, 23, 19, 17, 13, 11 }; const int16_t default_loop_delay_48k[IVAS_REV_MAX_NR_BRANCHES] = { 2309, 1861, 1523, 1259, 1069, 919, 809, 719 }; const int16_t default_loop_delay_32k[IVAS_REV_MAX_NR_BRANCHES] = { 1531, 1237, 1013, 839, 709, 613, 541, 479 }; const int16_t default_loop_delay_16k[IVAS_REV_MAX_NR_BRANCHES] = { 769, 619, 509, 421, 353, 307, 269, 239 }; static const int16_t init_loop_delay[IVAS_REV_MAX_NR_BRANCHES] = { 37, 31, 29, 23, 19, 17, 13, 11 }; static const int16_t default_loop_delay_48k[IVAS_REV_MAX_NR_BRANCHES] = { 2309, 1861, 1523, 1259, 1069, 919, 809, 719 }; static const int16_t default_loop_delay_32k[IVAS_REV_MAX_NR_BRANCHES] = { 1531, 1237, 1013, 839, 709, 613, 541, 479 }; static const int16_t default_loop_delay_16k[IVAS_REV_MAX_NR_BRANCHES] = { 769, 619, 509, 421, 353, 307, 269, 239 }; /*------------------------------------------------------------------------------------------* * Local Struct definition Loading Loading @@ -682,8 +682,6 @@ static ivas_error initialize_reverb_filters( { ivas_error error; error = IVAS_ERR_OK; /* init correlation and coloration filters */ if ( ( error = ivas_reverb_t2f_f2t_init( &hReverb->fft_filter_ols, hReverb->fft_size, hReverb->fft_subblock_size ) ) != IVAS_ERR_OK ) { Loading @@ -710,7 +708,7 @@ static ivas_error initialize_reverb_filters( return error; } return error; return IVAS_ERR_OK; } Loading Loading @@ -1060,7 +1058,6 @@ ivas_error ivas_reverb_open( int16_t fft_hist_size, transition_start, transition_length; int16_t nr_fc_input, nr_fc_fft_filter; error = IVAS_ERR_OK; output_frame = (int16_t) ( output_Fs / FRAMES_PER_SEC ); subframe_len = output_frame / MAX_PARAM_SPATIAL_SUBFRAMES; predelay_bf_len = output_frame; Loading Loading @@ -1240,7 +1237,7 @@ ivas_error ivas_reverb_open( *hReverb = pState; return error; return IVAS_ERR_OK; } Loading Loading @@ -1859,12 +1856,13 @@ static ivas_error ivas_binaural_reverb_open( return IVAS_ERR_OK; } /*------------------------------------------------------------------------- * ivas_binaural_reverb_init() * * Allocate and initialize binaural room reverberator handle * for CLDFB renderers * Initialize binaural room reverberator handle for FastConv renderer *------------------------------------------------------------------------*/ ivas_error ivas_binaural_reverb_init( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const HRTFS_STATISTICS_HANDLE hHrtfStatistics, /* i : HRTF statistics handle */ Loading @@ -1873,8 +1871,7 @@ ivas_error ivas_binaural_reverb_init( const IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics, /* i/o: room acoustics parameters */ const int32_t sampling_rate, /* i : sampling rate */ const float *defaultTimes, /* i : default reverberation times */ const float *defaultEne /* i : default reverberation energies */ , const float *defaultEne, /* i : default reverberation energies */ float *earlyEne /* i/o: Early part energies to be modified */ ) { Loading @@ -1883,24 +1880,23 @@ ivas_error ivas_binaural_reverb_init( float revTimes[CLDFB_NO_CHANNELS_MAX]; float revEne[CLDFB_NO_CHANNELS_MAX]; error = IVAS_ERR_OK; if ( roomAcoustics != NULL ) { if ( ( error = ivas_reverb_prepare_cldfb_params( roomAcoustics, hHrtfStatistics, sampling_rate, revTimes, revEne ) ) != IVAS_ERR_OK ) if ( ( error = ivas_reverb_prepare_cldfb_params( roomAcoustics, hHrtfStatistics, sampling_rate, revTimes, revEne ) ) != IVAS_ERR_OK ) { return error; } preDelay = (int16_t) roundf( 48000.0f * roomAcoustics->acousticPreDelay / CLDFB_NO_CHANNELS_MAX ); /* Convert preDelay from seconds to CLDFB slots as needed by binaural reverb */ preDelay = (int16_t) roundf( roomAcoustics->acousticPreDelay * CLDFB_SLOTS_PER_SECOND ); } else { #ifdef FIX_1995_REVERB_INIT for ( bin = 0; bin < numBins; bin++ ) #else for ( bin = 0; bin < CLDFB_NO_CHANNELS_MAX; bin++ ) #endif { revTimes[bin] = defaultTimes[bin]; revEne[bin] = defaultEne[bin]; Loading @@ -1908,7 +1904,11 @@ ivas_error ivas_binaural_reverb_init( preDelay = 10; } #ifdef FIX_1995_REVERB_INIT for ( bin = 0; bin < numBins; bin++ ) #else for ( bin = 0; bin < CLDFB_NO_CHANNELS_MAX; bin++ ) #endif { /* Adjust the room effect parameters when the reverberation time is less than a threshold value, to avoid spectral artefacts with the synthetic reverberator. */ Loading Loading @@ -1943,6 +1943,7 @@ ivas_error ivas_binaural_reverb_init( return error; } /*------------------------------------------------------------------------- * ivas_binaural_reverb_close() * Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,7 @@ /*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */ #define TMP_FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add error check for unsupported config: split rendering with VoIP mode */ #define FIX_1995_REVERB_INIT /* issue 1995: Fix use-of-uninitialized-value in ivas_binaural_reverb_init() */ /* #################### End BE switches ################################## */ Loading
lib_rend/ivas_prot_rend.h +1 −2 Original line number Diff line number Diff line Loading @@ -945,8 +945,7 @@ ivas_error ivas_binaural_reverb_init( const IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics, /* i/o: room acoustics parameters */ const int32_t sampling_rate, /* i : sampling rate */ const float *defaultTimes, /* i : default reverberation times */ const float *defaultEne /* i : default reverberation energies */ , const float *defaultEne, /* i : default reverberation energies */ float *earlyEne /* i/o: Early part energies to be modified */ ); Loading
lib_rend/ivas_reverb.c +24 −23 Original line number Diff line number Diff line Loading @@ -79,10 +79,10 @@ #define MAX_NR_OUTPUTS ( 2 ) const int16_t init_loop_delay[IVAS_REV_MAX_NR_BRANCHES] = { 37, 31, 29, 23, 19, 17, 13, 11 }; const int16_t default_loop_delay_48k[IVAS_REV_MAX_NR_BRANCHES] = { 2309, 1861, 1523, 1259, 1069, 919, 809, 719 }; const int16_t default_loop_delay_32k[IVAS_REV_MAX_NR_BRANCHES] = { 1531, 1237, 1013, 839, 709, 613, 541, 479 }; const int16_t default_loop_delay_16k[IVAS_REV_MAX_NR_BRANCHES] = { 769, 619, 509, 421, 353, 307, 269, 239 }; static const int16_t init_loop_delay[IVAS_REV_MAX_NR_BRANCHES] = { 37, 31, 29, 23, 19, 17, 13, 11 }; static const int16_t default_loop_delay_48k[IVAS_REV_MAX_NR_BRANCHES] = { 2309, 1861, 1523, 1259, 1069, 919, 809, 719 }; static const int16_t default_loop_delay_32k[IVAS_REV_MAX_NR_BRANCHES] = { 1531, 1237, 1013, 839, 709, 613, 541, 479 }; static const int16_t default_loop_delay_16k[IVAS_REV_MAX_NR_BRANCHES] = { 769, 619, 509, 421, 353, 307, 269, 239 }; /*------------------------------------------------------------------------------------------* * Local Struct definition Loading Loading @@ -682,8 +682,6 @@ static ivas_error initialize_reverb_filters( { ivas_error error; error = IVAS_ERR_OK; /* init correlation and coloration filters */ if ( ( error = ivas_reverb_t2f_f2t_init( &hReverb->fft_filter_ols, hReverb->fft_size, hReverb->fft_subblock_size ) ) != IVAS_ERR_OK ) { Loading @@ -710,7 +708,7 @@ static ivas_error initialize_reverb_filters( return error; } return error; return IVAS_ERR_OK; } Loading Loading @@ -1060,7 +1058,6 @@ ivas_error ivas_reverb_open( int16_t fft_hist_size, transition_start, transition_length; int16_t nr_fc_input, nr_fc_fft_filter; error = IVAS_ERR_OK; output_frame = (int16_t) ( output_Fs / FRAMES_PER_SEC ); subframe_len = output_frame / MAX_PARAM_SPATIAL_SUBFRAMES; predelay_bf_len = output_frame; Loading Loading @@ -1240,7 +1237,7 @@ ivas_error ivas_reverb_open( *hReverb = pState; return error; return IVAS_ERR_OK; } Loading Loading @@ -1859,12 +1856,13 @@ static ivas_error ivas_binaural_reverb_open( return IVAS_ERR_OK; } /*------------------------------------------------------------------------- * ivas_binaural_reverb_init() * * Allocate and initialize binaural room reverberator handle * for CLDFB renderers * Initialize binaural room reverberator handle for FastConv renderer *------------------------------------------------------------------------*/ ivas_error ivas_binaural_reverb_init( REVERB_STRUCT_HANDLE *hReverbPr, /* i/o: binaural reverb handle */ const HRTFS_STATISTICS_HANDLE hHrtfStatistics, /* i : HRTF statistics handle */ Loading @@ -1873,8 +1871,7 @@ ivas_error ivas_binaural_reverb_init( const IVAS_ROOM_ACOUSTICS_CONFIG_DATA *roomAcoustics, /* i/o: room acoustics parameters */ const int32_t sampling_rate, /* i : sampling rate */ const float *defaultTimes, /* i : default reverberation times */ const float *defaultEne /* i : default reverberation energies */ , const float *defaultEne, /* i : default reverberation energies */ float *earlyEne /* i/o: Early part energies to be modified */ ) { Loading @@ -1883,24 +1880,23 @@ ivas_error ivas_binaural_reverb_init( float revTimes[CLDFB_NO_CHANNELS_MAX]; float revEne[CLDFB_NO_CHANNELS_MAX]; error = IVAS_ERR_OK; if ( roomAcoustics != NULL ) { if ( ( error = ivas_reverb_prepare_cldfb_params( roomAcoustics, hHrtfStatistics, sampling_rate, revTimes, revEne ) ) != IVAS_ERR_OK ) if ( ( error = ivas_reverb_prepare_cldfb_params( roomAcoustics, hHrtfStatistics, sampling_rate, revTimes, revEne ) ) != IVAS_ERR_OK ) { return error; } preDelay = (int16_t) roundf( 48000.0f * roomAcoustics->acousticPreDelay / CLDFB_NO_CHANNELS_MAX ); /* Convert preDelay from seconds to CLDFB slots as needed by binaural reverb */ preDelay = (int16_t) roundf( roomAcoustics->acousticPreDelay * CLDFB_SLOTS_PER_SECOND ); } else { #ifdef FIX_1995_REVERB_INIT for ( bin = 0; bin < numBins; bin++ ) #else for ( bin = 0; bin < CLDFB_NO_CHANNELS_MAX; bin++ ) #endif { revTimes[bin] = defaultTimes[bin]; revEne[bin] = defaultEne[bin]; Loading @@ -1908,7 +1904,11 @@ ivas_error ivas_binaural_reverb_init( preDelay = 10; } #ifdef FIX_1995_REVERB_INIT for ( bin = 0; bin < numBins; bin++ ) #else for ( bin = 0; bin < CLDFB_NO_CHANNELS_MAX; bin++ ) #endif { /* Adjust the room effect parameters when the reverberation time is less than a threshold value, to avoid spectral artefacts with the synthetic reverberator. */ Loading Loading @@ -1943,6 +1943,7 @@ ivas_error ivas_binaural_reverb_init( return error; } /*------------------------------------------------------------------------- * ivas_binaural_reverb_close() * Loading