Skip to content

Missing combined orientation update in ivas_td_binaural_renderer_ext()

There seems to be missing a combined orientation update in function ivas_td_binaural_renderer_ext().

In its BASOP counterpart ivas_td_binaural_renderer_ext_fx(), there is the following code which is missing in the float one:

FOR( Word16 subframe_idx = 0; subframe_idx < num_subframes; subframe_idx++ )
    {
        Word16 idx = subframe_idx;
        move16();
        Word16 pos_q = Q25;
        move16();

        test();
        IF( *hCombinedOrientationData != NULL && ( *hCombinedOrientationData )->listenerPos != NULL )
        {
            ( *hCombinedOrientationData )->listenerPos[idx].x_fx = L_shr( ( *hCombinedOrientationData )->listenerPos[idx].x_fx, sub( ( *hCombinedOrientationData )->listenerPos[idx].q_fact, pos_q ) );
            move32();
            ( *hCombinedOrientationData )->listenerPos[idx].y_fx = L_shr( ( *hCombinedOrientationData )->listenerPos[idx].y_fx, sub( ( *hCombinedOrientationData )->listenerPos[idx].q_fact, pos_q ) );
            move32();
            ( *hCombinedOrientationData )->listenerPos[idx].z_fx = L_shr( ( *hCombinedOrientationData )->listenerPos[idx].z_fx, sub( ( *hCombinedOrientationData )->listenerPos[idx].q_fact, pos_q ) );
            move32();
            ( *hCombinedOrientationData )->listenerPos[idx].q_fact = pos_q;
            move16();
        }
        FOR( Word16 i = 0; i < 3; i++ )
        {
            pTDRend->hBinRendererTd->Listener_p->Pos_fx[i] = L_shr( pTDRend->hBinRendererTd->Listener_p->Pos_fx[i], sub( pTDRend->hBinRendererTd->Listener_p->Pos_q, pos_q ) );
            pTDRend->hBinRendererTd->Listener_p->Pos_q = pos_q;
            move32();
            move16();
        }
    }