Skip to content
Commits on Source (6)
......@@ -164,6 +164,7 @@
/*#define FIX_I4_OL_PITCH*/ /* fix open-loop pitch used for EVS core switching */
#define FIX_1119_SPLIT_RENDERING_VOIP /* FhG: Add split rendering support to decoder in VoIP mode */
#define TMP_1342_WORKAROUND_DEC_FLUSH_BROKEN_IN_SR /* FhG: Temporary workaround for incorrect implementation of decoder flush with split rendering */
#define FIX_1995_REVERB_INIT /* issue 1995: Fix use-of-uninitialized-value in ivas_binaural_reverb_init() */
/* #################### End BE switches ################################## */
......
......@@ -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 */
);
......
......@@ -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
......@@ -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 )
{
......@@ -710,7 +708,7 @@ static ivas_error initialize_reverb_filters(
return error;
}
return error;
return IVAS_ERR_OK;
}
......@@ -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;
......@@ -1240,7 +1237,7 @@ ivas_error ivas_reverb_open(
*hReverb = pState;
return error;
return IVAS_ERR_OK;
}
......@@ -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 */
......@@ -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 */
)
{
......@@ -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];
......@@ -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. */
......@@ -1943,6 +1943,7 @@ ivas_error ivas_binaural_reverb_init(
return error;
}
/*-------------------------------------------------------------------------
* ivas_binaural_reverb_close()
*
......