Commit f40f758f authored by Lauros Pajunen's avatar Lauros Pajunen
Browse files

Change PI data pointers to variables

parent fe171794
Loading
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -859,25 +859,23 @@ int main(
            /* scene orientation */
            if ( sceneOrientationFileReader )
            {
                IVAS_QUATERNION sceneOrientationQuat;
                if ( ( error = HeadRotationFileReading( sceneOrientationFileReader, &sceneOrientationQuat, NULL ) ) != IVAS_ERR_OK )
                if ( ( error = HeadRotationFileReading( sceneOrientationFileReader, &rtpdumpPacker->piDataPacker.sceneOrientationQuat, NULL ) ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "\nError %s while reading scene orientation from %s\n", IVAS_ENC_GetErrorMessage( error ), RotationFileReader_getFilePath( sceneOrientationFileReader ) );
                    goto cleanup;
                }
                rtpdumpPacker->piDataPacker.sceneOrientationQuat = &sceneOrientationQuat;
                rtpdumpPacker->piDataPacker.sceneOrientationPresent = true;
            }

            /* device orientation */
            if ( deviceOrientationFileReader )
            {
                IVAS_QUATERNION deviceOrientationQuat;
                if ( ( error = HeadRotationFileReading( deviceOrientationFileReader, &deviceOrientationQuat, NULL ) ) != IVAS_ERR_OK )
                if ( ( error = HeadRotationFileReading( deviceOrientationFileReader, &rtpdumpPacker->piDataPacker.deviceOrientationQuat, NULL ) ) != IVAS_ERR_OK )
                {
                    fprintf( stderr, "\nError %s while reading device orientation from %s\n", IVAS_ENC_GetErrorMessage( error ), RotationFileReader_getFilePath( deviceOrientationFileReader ) );
                    goto cleanup;
                }
                rtpdumpPacker->piDataPacker.deviceOrientationQuat = &deviceOrientationQuat;
                rtpdumpPacker->piDataPacker.deviceOrientationPresent = true;
            }

            /* disable headtracking */
+31 −16
Original line number Diff line number Diff line
@@ -328,14 +328,14 @@ static uint16_t ivasPayload_convertToQ15( float value )
 *-----------------------------------------------------------------------*/

static void ivasPayload_convertOrientationToQ15(
    IVAS_QUATERNION *orientation,       /* i  : Input orientation in quaternion to be converted to Q15      */
    IVAS_QUATERNION orientation,       /* i  : Input orientation in quaternion to be converted to Q15      */
    IVAS_QUATERNION_Q15 *orientationQ15 /* o  : Ouput orientation in Q15 quaternion                         */
)
{
    orientationQ15->w = ivasPayload_convertToQ15( orientation->w );
    orientationQ15->x = ivasPayload_convertToQ15( orientation->x );
    orientationQ15->y = ivasPayload_convertToQ15( orientation->y );
    orientationQ15->z = ivasPayload_convertToQ15( orientation->z );
    orientationQ15->w = ivasPayload_convertToQ15( orientation.w );
    orientationQ15->x = ivasPayload_convertToQ15( orientation.x );
    orientationQ15->y = ivasPayload_convertToQ15( orientation.y );
    orientationQ15->z = ivasPayload_convertToQ15( orientation.z );
}


@@ -679,6 +679,11 @@ IVAS_RTPDUMP_PACKER_ERROR IVAS_RTPDUMP_PACKER_open(
{
    IVAS_RTPDUMP_PACKER *self;
    RTPDUMP_ERROR rtpdumpError;
    IVAS_QUATERNION identity;
    identity.w = 1.0f;
    identity.x = 0.0f;
    identity.y = 0.0f;
    identity.z = 0.0f;
    self = calloc( sizeof( IVAS_RTPDUMP_PACKER ), 1 );
    rtpdumpError = RTPDUMP_OpenWithFileToWrite( &self->rtpdump, file );
    if ( rtpdumpError != RTPDUMP_NO_ERROR )
@@ -687,8 +692,10 @@ IVAS_RTPDUMP_PACKER_ERROR IVAS_RTPDUMP_PACKER_open(
    }
    RTPDUMP_SetDefaultRtpPacketHeader( &self->rtpPacket );
    memset( self->rtpPacket.data, 0, sizeof( self->rtpPacket.data ) );
    self->piDataPacker.sceneOrientationQuat = NULL;
    self->piDataPacker.deviceOrientationQuat = NULL;
    self->piDataPacker.sceneOrientationQuat = identity;
    self->piDataPacker.deviceOrientationQuat = identity;
    self->piDataPacker.sceneOrientationPresent = false;
    self->piDataPacker.deviceOrientationPresent = false;
    self->piDataPacker.enableHeadtracking = false;
    self->piDataPacker.disableHeadtracking = false;
    self->piDataPackerState.previousDisableHeadtrackingState = false;
@@ -953,9 +960,9 @@ void IVAS_RTPDUMP_PACKER_writePIdata(
    /* PI header section */

    /* scene orientation */
    if ( self->piDataPacker.sceneOrientationQuat )
    if ( self->piDataPacker.sceneOrientationPresent )
    {
        if ( self->piDataPacker.deviceOrientationQuat || self->piDataPacker.enableHeadtracking || self->piDataPacker.disableHeadtracking )
        if ( self->piDataPacker.deviceOrientationPresent || self->piDataPacker.enableHeadtracking || self->piDataPacker.disableHeadtracking )
        {
            somePIfollowing = true;
        }
@@ -972,7 +979,7 @@ void IVAS_RTPDUMP_PACKER_writePIdata(
    }

    /* device orientation */
    if ( self->piDataPacker.deviceOrientationQuat )
    if ( self->piDataPacker.deviceOrientationPresent )
    {
        if ( self->piDataPacker.enableHeadtracking || self->piDataPacker.disableHeadtracking )
        {
@@ -1010,7 +1017,7 @@ void IVAS_RTPDUMP_PACKER_writePIdata(

    /* PI frame data section */

    if ( self->piDataPacker.sceneOrientationQuat )
    if ( self->piDataPacker.sceneOrientationPresent )
    {
        ivasPayload_convertOrientationToQ15( self->piDataPacker.sceneOrientationQuat, &sceneOrientationQ15 );
        writeByteToRtp( self, (char) ( sceneOrientationQ15.w >> 8 ) );
@@ -1023,7 +1030,7 @@ void IVAS_RTPDUMP_PACKER_writePIdata(
        writeByteToRtp( self, (char) ( sceneOrientationQ15.z & 0x00FF ) );
    }

    if ( self->piDataPacker.deviceOrientationQuat )
    if ( self->piDataPacker.deviceOrientationPresent )
    {
        ivasPayload_convertOrientationToQ15( self->piDataPacker.deviceOrientationQuat, &deviceOrientationQ15 );
        writeByteToRtp( self, (char) ( deviceOrientationQ15.w >> 8 ) );
@@ -1064,8 +1071,8 @@ void IVAS_RTPDUMP_PACKER_determinePIpresence(
)
{
    self->piDataPresent = false;
    if ( self->piDataPacker.sceneOrientationQuat ||
         self->piDataPacker.deviceOrientationQuat ||
    if ( self->piDataPacker.sceneOrientationPresent ||
         self->piDataPacker.deviceOrientationPresent ||
         self->piDataPacker.enableHeadtracking ||
         self->piDataPacker.disableHeadtracking )
    {
@@ -1077,9 +1084,17 @@ void IVAS_RTPDUMP_PACKER_resetPIdata(
    IVAS_RTPDUMP_PACKER *self /* i/o: IVAS rtpdump packer handle                                      */
)
{
    IVAS_QUATERNION identity;
    identity.w = 1.0f;
    identity.x = 0.0f;
    identity.y = 0.0f;
    identity.z = 0.0f;

    self->piDataPresent = false;
    self->piDataPacker.sceneOrientationQuat = NULL;
    self->piDataPacker.deviceOrientationQuat = NULL;
    self->piDataPacker.sceneOrientationQuat = identity;
    self->piDataPacker.deviceOrientationQuat = identity;
    self->piDataPacker.sceneOrientationPresent = false;
    self->piDataPacker.deviceOrientationPresent = false;
    self->piDataPacker.enableHeadtracking = false;
    self->piDataPacker.disableHeadtracking = false;
}
+4 −2
Original line number Diff line number Diff line
@@ -109,8 +109,10 @@ typedef enum

typedef struct
{
    IVAS_QUATERNION *sceneOrientationQuat;
    IVAS_QUATERNION *deviceOrientationQuat;
    IVAS_QUATERNION sceneOrientationQuat;
    IVAS_QUATERNION deviceOrientationQuat;
    bool sceneOrientationPresent;
    bool deviceOrientationPresent;
    bool enableHeadtracking;
    bool disableHeadtracking;
} PI_DATA_PACKER;