Skip to content

Head-tracking data in parametric binauralizer with JBM is not correct

Basic info

Bug description

In the case of JBM operation with slowdown, the function ivas_dirac_dec_binaural_internal is called for more subframes than the default 4. The head-tracking data as quaternions is provided only as four subframe data and call QuatToRotMat( st_ivas->hHeadTrackData->Quaternions[subframe], Rmat ); ends up reading random data.

It might be also good to verify that other head-tracking functions also use correct data. Best fix might be to pass the head-track data to rendering for each call instead of fetching it. Then correct one can be selected outside.

Ways to reproduce

Call IVAS_dec with head-tracking and JBM enabled. E.g.,

IVAS_dec -T const030.csv -vs 150 BINAURAL 48 data.bts output.wav