OSBA Rendering Room Reverb - Wrong pointer increment in ivas_dirac_dec_render_sf_fx()
Basic info
- Fixed point:
- Encoder (fixed): n/a
- Decoder (fixed): a90c34d3
Bug description
In the function ivas_dirac_dec_render_sf_fx() there is a wrong pointer increment, which affects the rendering of objects (at least for OSBA):
BASOP, lib_dec/ivas_dirac_dec_fx.c, line 3792:
FOR( l = 0; l < hSpatParamRendCom->num_freq_bands; l++ )
{
Cldfb_RealBuffer_fx[j2][k][l] = Madd_32_32( Cldfb_RealBuffer_fx[j2][k][l], g_fx, *tc_re_fx );
move32();
tc_re_fx++;
Cldfb_ImagBuffer_fx[j2][k][l] = Madd_32_32( Cldfb_ImagBuffer_fx[j2][k][l], g_fx, *tc_im_fx );
move32();
tc_re_fx++; <-- issue is here
}
The corresponding code in floating-point looks like this:
for ( l = 0; l < hSpatParamRendCom->num_freq_bands; l++ )
{
Cldfb_RealBuffer[j2][k][l] += g * *( tc_re++ );
Cldfb_ImagBuffer[j2][k][l] += g * *( tc_im++ );
}
As can be seen, in BASOP the pointer tc_re_fx
is incremented twice. The second time, actually ci_fx
should be incremented.