Commit 1278eea7 authored by Marek Szczerba's avatar Marek Szczerba
Browse files

Orientation tracking refactoring

parent b17ecd97
Loading
Loading
Loading
Loading
+0 −12
Original line number Diff line number Diff line
@@ -989,9 +989,6 @@ void ivas_binRenderer(
{
    int16_t chIdx, k;
    int16_t numTimeSlots = MAX_PARAM_SPATIAL_SUBFRAMES;
#ifdef FIX_I109_ORIENTATION_TRACKING
    IVAS_QUATERNION trackedHeadOrientation;
#endif

    push_wmops( "fastconv_binaural_rendering" );

@@ -1014,16 +1011,7 @@ void ivas_binRenderer(
            /* Rotation in SHD (HOA3) */
            if ( hHeadTrackData->shd_rot_max_order == -1 )
            {
#ifdef FIX_I109_ORIENTATION_TRACKING
                ivas_orient_trk_Process( hHeadTrackData->OrientationTracker,
                                         &hHeadTrackData->Quaternions[hHeadTrackData->num_quaternions++],
                                         FRAMES_PER_SEC * MAX_PARAM_SPATIAL_SUBFRAMES,
                                         &trackedHeadOrientation );
                QuatToRotMat( trackedHeadOrientation, hHeadTrackData->Rmat );
#else
                QuatToRotMat( hHeadTrackData->Quaternions[hHeadTrackData->num_quaternions++], hHeadTrackData->Rmat );
#endif

                rotateFrame_shd_cldfb( RealBuffer, ImagBuffer, hHeadTrackData->Rmat, hBinRenderer->hInputSetup->nchan_out_woLFE, 3 );
            }
            else if ( hHeadTrackData->shd_rot_max_order > 0 )
+0 −11
Original line number Diff line number Diff line
@@ -1810,9 +1810,6 @@ void ivas_dirac_dec(
    float *reference_power, *reference_power_smooth;
    float *onset_filter, *onset_filter_subframe, *p_onset_filter = NULL;
    uint16_t coherence_flag;
#ifdef FIX_I109_ORIENTATION_TRACKING
    IVAS_QUATERNION trackedHeadOrientation;
#endif

    push_wmops( "ivas_dirac_dec" );

@@ -1879,15 +1876,7 @@ void ivas_dirac_dec(

        if ( st_ivas->hHeadTrackData )
        {
#ifdef FIX_I109_ORIENTATION_TRACKING
            ivas_orient_trk_Process( st_ivas->hHeadTrackData->OrientationTracker,
                                     &st_ivas->hHeadTrackData->Quaternions[st_ivas->hHeadTrackData->num_quaternions++],
                                     (float) ( FRAMES_PER_SEC * ( sf2 - sf1 ) ),
                                     &trackedHeadOrientation );
            QuatToRotMat( trackedHeadOrientation, st_ivas->hHeadTrackData->Rmat );
#else
            QuatToRotMat( st_ivas->hHeadTrackData->Quaternions[st_ivas->hHeadTrackData->num_quaternions++], st_ivas->hHeadTrackData->Rmat );
#endif

            p_Rmat = &st_ivas->hHeadTrackData->Rmat[0][0];

+0 −12
Original line number Diff line number Diff line
@@ -110,9 +110,6 @@ void ivas_ism_render(
    int16_t num_objects, nchan_out_woLFE, lfe_index;
    int16_t azimuth, elevation;
    float Rmat[3][3];
#ifdef FIX_I109_ORIENTATION_TRACKING
    IVAS_QUATERNION trackedHeadOrientation;
#endif

    num_objects = st_ivas->nchan_transport;
    nchan_out_woLFE = st_ivas->hIntSetup.nchan_out_woLFE;
@@ -136,17 +133,8 @@ void ivas_ism_render(

    if ( st_ivas->hHeadTrackData != NULL && st_ivas->hHeadTrackData->num_quaternions >= 0 )
    {
#ifdef FIX_I109_ORIENTATION_TRACKING
        ivas_orient_trk_Process( st_ivas->hHeadTrackData->OrientationTracker,
                                 &st_ivas->hHeadTrackData->Quaternions[st_ivas->hHeadTrackData->num_quaternions++],
                                 FRAMES_PER_SEC,
                                 &trackedHeadOrientation );
        /* Calculate rotation matrix from the quaternion */
        QuatToRotMat( trackedHeadOrientation, Rmat );
#else
        /* Calculate rotation matrix from the quaternion */
        QuatToRotMat( st_ivas->hHeadTrackData->Quaternions[st_ivas->hHeadTrackData->num_quaternions++], Rmat );
#endif
    }

    for ( i = 0; i < num_objects; i++ )
+0 −4
Original line number Diff line number Diff line
@@ -93,9 +93,5 @@ void ivas_td_binaural_renderer(
                                      ( st_ivas->hHeadTrackData != NULL ) ? st_ivas->hHeadTrackData->Quaternions : NULL,
                                      output,
                                      output_frame
#ifdef FIX_I109_ORIENTATION_TRACKING
                                      ,
                                      pOtr
#endif
    );
}
+4 −0
Original line number Diff line number Diff line
@@ -911,10 +911,14 @@ ivas_error IVAS_DEC_FeedHeadTrackData(
    /* Move head-tracking data to the decoder handle */
    for ( i = 0; i < MAX_PARAM_SPATIAL_SUBFRAMES; i++ )
    {
#ifdef FIX_I109_ORIENTATION_TRACKING
        ivas_orient_trk_Process( hHeadTrackData->OrientationTracker, orientation[i], FRAMES_PER_SEC * MAX_PARAM_SPATIAL_SUBFRAMES, hHeadTrackData->Quaternions );
#else
        hHeadTrackData->Quaternions[i].w = orientation[i].w;
        hHeadTrackData->Quaternions[i].x = orientation[i].x;
        hHeadTrackData->Quaternions[i].y = orientation[i].y;
        hHeadTrackData->Quaternions[i].z = orientation[i].z;
#endif
    }

    hIvasDec->st_ivas->hHeadTrackData->num_quaternions = 0;
Loading