Commit 07421cf9 authored by Marek Szczerba's avatar Marek Szczerba
Browse files

Merge branch '109-harmonize-head-and-orientation-tracking-xcheck-fix' into...

Merge branch '109-harmonize-head-and-orientation-tracking-xcheck-fix' into '109-harmonize-head-and-orientation-tracking-xcheck'

[fix] call SetReferenceRotation before SetHeadRotation. Ohterwise the...

See merge request !480
parents 072879f3 826f05f8
Loading
Loading
Loading
Loading
Loading
+18 −18
Original line number Diff line number Diff line
@@ -1509,6 +1509,24 @@ static ivas_error decodeG192(
            goto cleanup;
        }

#ifdef FIX_I109_ORIENTATION_TRACKING
      /* Reference rotation */
      if ( arg.enableReferenceRotation )
      {
          IVAS_QUATERNION quaternion;
          if ( ( error = HeadRotationFileReading( refRotReader, &quaternion ) ) != IVAS_ERR_OK )
          {
              fprintf( stderr, "\nError %s while reading reference rotation from %s\n", IVAS_DEC_GetErrorMessage( error ), HeadRotationFileReader_getFilePath( refRotReader ) );
              goto cleanup;
          }

          if ( ( error = IVAS_DEC_FeedRefRotData( hIvasDec, quaternion ) ) != IVAS_ERR_OK )
          {
              fprintf( stderr, "\nIVAS_DEC_FeedRefRotData failed: %s\n", IVAS_DEC_GetErrorMessage( error ) );
              goto cleanup;
          }
      }
#endif
        /* Head-tracking input simulation */
        if ( arg.enableHeadRotation )
        {
@@ -1538,24 +1556,6 @@ static ivas_error decodeG192(
            }
        }

#ifdef FIX_I109_ORIENTATION_TRACKING
        /* Reference rotation */
        if ( arg.enableReferenceRotation )
        {
            IVAS_QUATERNION quaternion;
            if ( ( error = HeadRotationFileReading( refRotReader, &quaternion ) ) != IVAS_ERR_OK )
            {
                fprintf( stderr, "\nError %s while reading reference rotation from %s\n", IVAS_DEC_GetErrorMessage( error ), HeadRotationFileReader_getFilePath( refRotReader ) );
                goto cleanup;
            }

            if ( ( error = IVAS_DEC_FeedRefRotData( hIvasDec, quaternion ) ) != IVAS_ERR_OK )
            {
                fprintf( stderr, "\nIVAS_DEC_FeedRefRotData failed: %s\n", IVAS_DEC_GetErrorMessage( error ) );
                goto cleanup;
            }
        }
#endif
        /* Run decoder for one frame (get rendered output) */
        if ( ( error = IVAS_DEC_GetSamples( hIvasDec, pcmBuf, &nOutSamples ) ) != IVAS_ERR_OK )
        {
+18 −18
Original line number Diff line number Diff line
@@ -942,6 +942,24 @@ int main(
        ObjectPositionBuffer mtdBuffer;
        IsmPositionProvider_getNextFrame( positionProvider, &mtdBuffer );

#ifdef FIX_I109_ORIENTATION_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

        /* Read from head rotation trajectory file if specified */
        if ( headRotReader != NULL )
        {
@@ -973,24 +991,6 @@ int main(
            }
        }

#ifdef FIX_I109_ORIENTATION_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 )