OSBA object-editing uses wrong number of channels
This is a follow up of #1322 (closed) where a work on !2186 (merged) revealed that the originally reported issue still exists for OSBA, Disc mode, and BINAURAL_ROOM_IR output.
in ivas_sba_dec_render()
function, the SBA gain is edited as follows:
if ( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_SBA_MODE_DISC )
{
float gain = st_ivas->hSbaIsmData->gain_bed;
if ( gain != 1.0f && gain >= 0.0f )
{
for ( ch = 0; ch < nchan_out; ch++ )
{
int16_t i;
for ( i = 0; i < n_samples_sf; i++ )
{
output_f_local[ch][i] *= gain;
}
}
}
}
The editing is done in a loop over nchan_out = 4
. However, in the case of RENDERER_BINAURAL_FASTCONV_ROOM
, the rendering happens in the function ivas_osba_render_sf()
and the number of processed channels in the instance above is just 2
.
Consequently, when !2186 (merged) is part of the main, there happens a gaining of channels with uninitialized values.
Edited by vaclav