Loading lib_dec/ivas_objectRenderer.c +7 −4 Original line number Diff line number Diff line Loading @@ -245,10 +245,13 @@ void ObjRenderIVASFrame( { /* Update the listener's location/orientation */ #ifdef FIX_I109_ORIENTATION_TRACKING if ( st_ivas->hHeadTrackData != NULL ) { ivas_orient_trk_Process( st_ivas->hHeadTrackData->OrientationTracker, st_ivas->hHeadTrackData->Quaternions[subframe_idx], FRAMES_PER_SEC * MAX_PARAM_SPATIAL_SUBFRAMES, &trackedHeadOrientation ); } TDREND_Update_listener_orientation( st_ivas->hBinRendererTd, st_ivas->hDecoderConfig->Opt_Headrotation, ( st_ivas->hHeadTrackData != NULL ) ? &trackedHeadOrientation : NULL ); Loading lib_dec/ivas_orient_trk.c +13 −5 Original line number Diff line number Diff line Loading @@ -58,6 +58,14 @@ *------------------------------------------------------------------------------------------*/ #ifdef FIX_I109_ORIENTATION_TRACKING Quaternion QuaternionProduct( const Quaternion q1, const Quaternion q2 ); float QuaternionDotProduct( const Quaternion q1, const Quaternion q2 ); Quaternion QuaternionDivision( const Quaternion q, const float d ); Quaternion QuaternionNormalize( const Quaternion q ); Quaternion QuaternionSlerp( const Quaternion q1, const Quaternion q2, const float t ); Quaternion QuaternionConjugate( const Quaternion q ); float QuaternionAngle( const Quaternion q1, const Quaternion q2 ); Quaternion QuaternionInverse( const Quaternion q ); Quaternion QuaternionProduct( const Quaternion q1, Loading @@ -74,17 +82,17 @@ Quaternion QuaternionProduct( } float QuaternionDotProduct( const Quaternion a, const Quaternion b ) const Quaternion q1, const Quaternion q2 ) { return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w; return q1.x * q2.x + q1.y * q2.y + q1.z * q2.z + q1.w * q2.w; } Quaternion QuaternionDivision( const Quaternion q1, const Quaternion q, const float d ) { Quaternion r = q1; Quaternion r = q; r.w = r.w / d; r.x = r.x / d; r.y = r.y / d; Loading Loading
lib_dec/ivas_objectRenderer.c +7 −4 Original line number Diff line number Diff line Loading @@ -245,10 +245,13 @@ void ObjRenderIVASFrame( { /* Update the listener's location/orientation */ #ifdef FIX_I109_ORIENTATION_TRACKING if ( st_ivas->hHeadTrackData != NULL ) { ivas_orient_trk_Process( st_ivas->hHeadTrackData->OrientationTracker, st_ivas->hHeadTrackData->Quaternions[subframe_idx], FRAMES_PER_SEC * MAX_PARAM_SPATIAL_SUBFRAMES, &trackedHeadOrientation ); } TDREND_Update_listener_orientation( st_ivas->hBinRendererTd, st_ivas->hDecoderConfig->Opt_Headrotation, ( st_ivas->hHeadTrackData != NULL ) ? &trackedHeadOrientation : NULL ); Loading
lib_dec/ivas_orient_trk.c +13 −5 Original line number Diff line number Diff line Loading @@ -58,6 +58,14 @@ *------------------------------------------------------------------------------------------*/ #ifdef FIX_I109_ORIENTATION_TRACKING Quaternion QuaternionProduct( const Quaternion q1, const Quaternion q2 ); float QuaternionDotProduct( const Quaternion q1, const Quaternion q2 ); Quaternion QuaternionDivision( const Quaternion q, const float d ); Quaternion QuaternionNormalize( const Quaternion q ); Quaternion QuaternionSlerp( const Quaternion q1, const Quaternion q2, const float t ); Quaternion QuaternionConjugate( const Quaternion q ); float QuaternionAngle( const Quaternion q1, const Quaternion q2 ); Quaternion QuaternionInverse( const Quaternion q ); Quaternion QuaternionProduct( const Quaternion q1, Loading @@ -74,17 +82,17 @@ Quaternion QuaternionProduct( } float QuaternionDotProduct( const Quaternion a, const Quaternion b ) const Quaternion q1, const Quaternion q2 ) { return a.x * b.x + a.y * b.y + a.z * b.z + a.w * b.w; return q1.x * q2.x + q1.y * q2.y + q1.z * q2.z + q1.w * q2.w; } Quaternion QuaternionDivision( const Quaternion q1, const Quaternion q, const float d ) { Quaternion r = q1; Quaternion r = q; r.w = r.w / d; r.x = r.x / d; r.y = r.y / d; Loading