Commit 39ef324f authored by hsd's avatar hsd
Browse files

[fix] set reference vector/rot before set headrotation gets called, otherwise...

[fix] set reference vector/rot before set headrotation gets called, otherwise there's one frame of delay in the processing which lets the bit exactness tests fails
parent 2c27bede
Loading
Loading
Loading
Loading
Loading
+16 −34
Original line number Diff line number Diff line
@@ -980,6 +980,22 @@ int main(
        IsmPositionProvider_getNextFrame( positionProvider, &mtdBuffer );

#ifdef FIX_I109_ORIENTATION_TRACKING
#ifdef OTR_REFERENCE_VECTOR_TRACKING
        if ( referenceVectorReader != NULL )
        {
            IVAS_VECTOR3 listenerPos, refPos;
            if ( ( error = Vector3PairFileReader_read( referenceVectorReader, &listenerPos, &refPos ) ) != IVAS_ERR_OK )
            {
                fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) );
                exit( -1 );
            }
            if ( ( error = IVAS_REND_SetReferenceVector( hIvasRend, listenerPos, refPos ) ) != IVAS_ERR_OK )
            {
                fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) );
                exit( -1 );
            }
        }
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
        /* Read from reference rotation trajectory file if specified */
        if ( referenceRotReader != NULL )
        {
@@ -1028,40 +1044,6 @@ int main(
            }
        }

#ifdef FIX_I109_ORIENTATION_TRACKING
#ifdef OTR_REFERENCE_VECTOR_TRACKING
        if ( referenceVectorReader != NULL )
        {
            IVAS_VECTOR3 listenerPos, refPos;
            if ( ( error = Vector3PairFileReader_read( referenceVectorReader, &listenerPos, &refPos ) ) != IVAS_ERR_OK )
            {
                fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) );
                exit( -1 );
            }
            if ( ( error = IVAS_REND_SetReferenceVector( hIvasRend, listenerPos, refPos ) ) != IVAS_ERR_OK )
            {
                fprintf( stderr, "Error: %s\n", ivas_error_to_string( error ) );
                exit( -1 );
            }
        }
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
        /* Read from reference rotation trajectory file if specified */
        if ( referenceRotReader != NULL )
        {
            IVAS_QUATERNION quaternion;
            if ( HeadRotationFileReading( referenceRotReader, &quaternion ) != IVAS_ERR_OK )
            {
                fprintf( stderr, "Error in Head Rotation File Reading.\r\n" );
                exit( -1 );
            }
            if ( IVAS_REND_SetReferenceRotation( hIvasRend, quaternion ) != IVAS_ERR_OK )
            {
                fprintf( stderr, "Error setting Reference Rotation.\r\n" );
                exit( -1 );
            }
        }
#endif

        for ( i = 0; i < args.inConfig.numMultiChannelBuses; ++i )
        {
            if ( ( error = IVAS_REND_GetInputNumChannels( hIvasRend, mcIds[i], &numChannels ) ) != IVAS_ERR_OK )