Varjo Native SDK
Varjo_types_datastream.h
Go to the documentation of this file.
1 // Copyright 2019-2020 Varjo Technologies Oy. All rights reserved.
2 
3 #ifndef VARJO_TYPES_DATASTREAM_H
4 #define VARJO_TYPES_DATASTREAM_H
5 
6 #include "Varjo_types.h"
7 
8 #if defined __cplusplus
9 extern "C" {
10 #endif
11 
15 typedef uint64_t varjo_ChannelFlag;
19 
26 
30 typedef int64_t varjo_ChannelIndex;
33 
39 
43 typedef int64_t varjo_IntrinsicsModel;
45 
49 typedef int64_t varjo_BufferType;
52 
56 typedef uint64_t varjo_DataFlag;
57 static const varjo_DataFlag varjo_DataFlag_Buffer = 1 << 0;
60 
64 typedef int64_t varjo_StreamType;
65 
75 
101 
105 typedef int64_t varjo_StreamId;
106 
110 typedef int64_t varjo_BufferId;
111 
115 static const int64_t varjo_InvalidId = -1;
116 
127  int32_t frameRate;
128  int32_t width;
129  int32_t height;
130  int32_t rowStride;
131 };
132 
140  double focalLengthX;
141  double focalLengthY;
143 };
144 
151  int32_t byteSize;
152  int32_t rowStride;
153  int32_t width;
154  int32_t height;
155 };
156 
170  struct varjo_Matrix3x3 invCCM;
171  struct varjo_Matrix3x3 ccm;
172 };
173 
179  double ev;
180  double exposureTime;
184 };
185 
193 };
194 
201  int64_t reserved[64];
202 };
203 
210  int64_t frameNumber;
213  struct varjo_Matrix hmdPose;
215 };
216 
224 typedef void(varjo_FrameListener)(const struct varjo_StreamFrame* frame, struct varjo_Session* session, void* userData);
225 
226 #if defined __cplusplus
227 }
228 #endif
229 #endif // VARJO_TYPES_DATASTREAM_H
varjo_StreamConfig::bufferType
varjo_BufferType bufferType
Buffer type: CPU or GPU memory buffer.
Definition: Varjo_types_datastream.h:124
varjo_BufferId
int64_t varjo_BufferId
Buffer ID to lock and use a data stream buffer.
Definition: Varjo_types_datastream.h:110
varjo_Nanoseconds
int64_t varjo_Nanoseconds
Time in nanoseconds.
Definition: Varjo_types.h:142
varjo_StreamConfig::frameRate
int32_t frameRate
Frame rate in frames per second.
Definition: Varjo_types_datastream.h:127
varjo_ChannelIndex_Second
static const varjo_ChannelIndex varjo_ChannelIndex_Second
Second channel.
Definition: Varjo_types_datastream.h:32
varjo_StreamFrameMetadata
Wrapper union for different types of streams.
Definition: Varjo_types_datastream.h:198
varjo_ChannelFlag_All
static const varjo_ChannelFlag varjo_ChannelFlag_All
Aggregate of every available channel.
Definition: Varjo_types_datastream.h:25
varjo_CameraIntrinsics::principalPointX
double principalPointX
Camera principal point X.
Definition: Varjo_types_datastream.h:138
varjo_StreamFrame::frameNumber
int64_t frameNumber
Monotonically increasing frame number.
Definition: Varjo_types_datastream.h:210
varjo_DistortedColorFrameMetadata::wbNormalizationData
struct varjo_WBNormalizationData wbNormalizationData
White balance normalization data.
Definition: Varjo_types_datastream.h:182
varjo_StreamConfig::width
int32_t width
Texture width.
Definition: Varjo_types_datastream.h:128
varjo_BufferMetadata::width
int32_t width
Image width.
Definition: Varjo_types_datastream.h:153
varjo_StreamFrameMetadata::reserved
int64_t reserved[64]
Definition: Varjo_types_datastream.h:201
varjo_StreamConfig::height
int32_t height
Texture height;.
Definition: Varjo_types_datastream.h:129
varjo_DistortedColorFrameMetadata
Metadata for distorted color stream.
Definition: Varjo_types_datastream.h:177
varjo_BufferMetadata
Buffer for data streams.
Definition: Varjo_types_datastream.h:148
varjo_DistortedColorFrameMetadata::whiteBalanceTemperature
double whiteBalanceTemperature
Camera white balance color temperature in Kelvin degrees.
Definition: Varjo_types_datastream.h:181
varjo_DataFlag_Extrinsics
static const varjo_DataFlag varjo_DataFlag_Extrinsics
Definition: Varjo_types_datastream.h:59
varjo_StreamFrame::channels
varjo_ChannelFlag channels
Channels that this frame contains.
Definition: Varjo_types_datastream.h:211
varjo_BufferType_CPU
static const varjo_BufferType varjo_BufferType_CPU
Data is available in a CPU memory buffer.
Definition: Varjo_types_datastream.h:50
varjo_StreamConfig::streamId
varjo_StreamId streamId
Id.
Definition: Varjo_types_datastream.h:121
varjo_StreamConfig
Data stream configuration.
Definition: Varjo_types_datastream.h:120
varjo_BufferMetadata::height
int32_t height
Image height.
Definition: Varjo_types_datastream.h:154
varjo_StreamFrame::metadata
union varjo_StreamFrameMetadata metadata
Frame data. Use 'type' to determine which element to access.
Definition: Varjo_types_datastream.h:214
varjo_CameraIntrinsics::principalPointY
double principalPointY
Camera principal point Y.
Definition: Varjo_types_datastream.h:139
varjo_CameraIntrinsics::focalLengthY
double focalLengthY
Camera focal length Y.
Definition: Varjo_types_datastream.h:141
varjo_CameraIntrinsics::model
varjo_IntrinsicsModel model
Intrisics calibration model.
Definition: Varjo_types_datastream.h:137
varjo_StreamConfig::streamType
varjo_StreamType streamType
Stream type.
Definition: Varjo_types_datastream.h:123
varjo_StreamType_EnvironmentCubemap
static const varjo_StreamType varjo_StreamType_EnvironmentCubemap
HDR lighting estimate stream as a cubemap.
Definition: Varjo_types_datastream.h:100
varjo_CameraIntrinsics::focalLengthX
double focalLengthX
Camera focal length X.
Definition: Varjo_types_datastream.h:140
varjo_StreamFrameMetadata::environmentCubemap
struct varjo_EnvironmentCubemapFrameMetadata environmentCubemap
Definition: Varjo_types_datastream.h:200
varjo_CameraIntrinsics
Camera intrinsics parameter for undistorting a distorted camera frame.
Definition: Varjo_types_datastream.h:136
varjo_EnvironmentCubemapFrameMetadata::timestamp
varjo_Nanoseconds timestamp
Timestamp when the cubemap was last updated.
Definition: Varjo_types_datastream.h:192
varjo_StreamFrame
A single frame that will arrive to FrameListener callback after the user has subscribed to a stream.
Definition: Varjo_types_datastream.h:207
varjo_CameraIntrinsics::distortionCoefficients
double distortionCoefficients[6]
Intrinsics model coefficients. For omnidir: 2 radial, skew, xi, 2 tangential.
Definition: Varjo_types_datastream.h:142
varjo_ChannelFlag_None
static const varjo_ChannelFlag varjo_ChannelFlag_None
Disables data buffers and only provides metadata.
Definition: Varjo_types_datastream.h:16
varjo_TextureFormat
int64_t varjo_TextureFormat
Definition: Varjo_types.h:209
varjo_DistortedColorFrameMetadata::timestamp
varjo_Nanoseconds timestamp
Timestamp at the middle of frame exposure.
Definition: Varjo_types_datastream.h:178
varjo_StreamFrame::id
varjo_StreamId id
Id of the stream.
Definition: Varjo_types_datastream.h:209
varjo_ChannelFlag_Second
static const varjo_ChannelFlag varjo_ChannelFlag_Second
Second channel.
Definition: Varjo_types_datastream.h:18
varjo_BufferMetadata::format
varjo_TextureFormat format
Texture format.
Definition: Varjo_types_datastream.h:149
varjo_StreamConfig::format
varjo_TextureFormat format
Texture format.
Definition: Varjo_types_datastream.h:125
varjo_StreamConfig::rowStride
int32_t rowStride
Buffer row stride in bytes.
Definition: Varjo_types_datastream.h:130
Varjo_types.h
varjo_DistortedColorFrameMetadata::exposureTime
double exposureTime
Exposure time in seconds.
Definition: Varjo_types_datastream.h:180
varjo_BufferType
int64_t varjo_BufferType
Memory buffer type.
Definition: Varjo_types_datastream.h:49
varjo_Matrix
Double precision 4x4 matrix.
Definition: Varjo_types.h:297
varjo_WBNormalizationData::whiteBalanceColorGains
double whiteBalanceColorGains[3]
White balance RGB gains to convert from 6500K to VST color temperature.
Definition: Varjo_types_datastream.h:169
varjo_StreamConfig::streamTransform
struct varjo_Matrix streamTransform
Transform from HMD pose center to stream origin in view coordinates.
Definition: Varjo_types_datastream.h:126
varjo_DistortedColorFrameMetadata::cameraCalibrationConstant
double cameraCalibrationConstant
The luminance (in cd/m^2) which saturates a pixel is equal to 2^ev * cameraCalibrationConstant.
Definition: Varjo_types_datastream.h:183
varjo_ChannelFlag_First
static const varjo_ChannelFlag varjo_ChannelFlag_First
First channel.
Definition: Varjo_types_datastream.h:17
varjo_StreamFrame::type
varjo_StreamType type
Type of the stream.
Definition: Varjo_types_datastream.h:208
varjo_StreamId
int64_t varjo_StreamId
Stream ID to identify a data stream configuration.
Definition: Varjo_types_datastream.h:105
varjo_StreamType_DistortedColor
static const varjo_StreamType varjo_StreamType_DistortedColor
Distorted (i.e.
Definition: Varjo_types_datastream.h:74
varjo_BufferType_GPU
static const varjo_BufferType varjo_BufferType_GPU
Data is available in a GPU memory buffer.
Definition: Varjo_types_datastream.h:51
varjo_ChannelFlag_Left
static const varjo_ChannelFlag varjo_ChannelFlag_Left
Helper aliases and aggregates for varjo_ChannelFlag.
Definition: Varjo_types_datastream.h:23
varjo_BufferMetadata::type
varjo_BufferType type
CPU or GPU.
Definition: Varjo_types_datastream.h:150
varjo_StreamFrame::hmdPose
struct varjo_Matrix hmdPose
HMD world pose. Invert the pose, if you need the HMD center view matrix.
Definition: Varjo_types_datastream.h:213
varjo_BufferMetadata::byteSize
int32_t byteSize
Buffer size in bytes.
Definition: Varjo_types_datastream.h:151
varjo_DataFlag
uint64_t varjo_DataFlag
Frame data flag buffer type.
Definition: Varjo_types_datastream.h:56
varjo_StreamFrame::dataFlags
varjo_DataFlag dataFlags
Data that this frame contains.
Definition: Varjo_types_datastream.h:212
varjo_WBNormalizationData::ccm
struct varjo_Matrix3x3 ccm
CCM for VST color temperature.
Definition: Varjo_types_datastream.h:171
varjo_WBNormalizationData::invCCM
struct varjo_Matrix3x3 invCCM
Inverse CCM for 6500K color temperature.
Definition: Varjo_types_datastream.h:170
varjo_ChannelIndex_Left
static const varjo_ChannelIndex varjo_ChannelIndex_Left
Helper aliases for varjo_ChannelIndex.
Definition: Varjo_types_datastream.h:37
varjo_InvalidId
static const int64_t varjo_InvalidId
Invalid id for any ID type (e.g.
Definition: Varjo_types_datastream.h:115
varjo_IntrinsicsModel_Omnidir
static const varjo_IntrinsicsModel varjo_IntrinsicsModel_Omnidir
OpenCV compatible Omnidir calibration model.
Definition: Varjo_types_datastream.h:44
varjo_ChannelIndex_First
static const varjo_ChannelIndex varjo_ChannelIndex_First
First channel.
Definition: Varjo_types_datastream.h:31
varjo_DistortedColorFrameMetadata::ev
double ev
EV (exposure value) at ISO100.
Definition: Varjo_types_datastream.h:179
varjo_ChannelFlag
uint64_t varjo_ChannelFlag
Bitfield for different data stream channels.
Definition: Varjo_types_datastream.h:15
varjo_WBNormalizationData
White balance normalization data for color matching VR content with camera image.
Definition: Varjo_types_datastream.h:168
varjo_DataFlag_Buffer
static const varjo_DataFlag varjo_DataFlag_Buffer
Definition: Varjo_types_datastream.h:57
varjo_StreamType
int64_t varjo_StreamType
Data stream types.
Definition: Varjo_types_datastream.h:64
varjo_FrameListener
void() varjo_FrameListener(const struct varjo_StreamFrame *frame, struct varjo_Session *session, void *userData)
Camera frame stream callback function.
Definition: Varjo_types_datastream.h:224
varjo_StreamConfig::channelFlags
varjo_ChannelFlag channelFlags
Bitfield of provided camera channels.
Definition: Varjo_types_datastream.h:122
varjo_EnvironmentCubemapFrameMetadata
Metadata for environment cubemap stream.
Definition: Varjo_types_datastream.h:191
varjo_ChannelIndex_Right
static const varjo_ChannelIndex varjo_ChannelIndex_Right
Right camera channel. Alias for varjo_ChannelIndex_Second.
Definition: Varjo_types_datastream.h:38
varjo_DataFlag_Intrinsics
static const varjo_DataFlag varjo_DataFlag_Intrinsics
Definition: Varjo_types_datastream.h:58
varjo_BufferMetadata::rowStride
int32_t rowStride
Buffer row stride in bytes.
Definition: Varjo_types_datastream.h:152
varjo_ChannelFlag_Right
static const varjo_ChannelFlag varjo_ChannelFlag_Right
Right camera channel. Alias for varjo_ChannelFlag_Second.
Definition: Varjo_types_datastream.h:24
varjo_IntrinsicsModel
int64_t varjo_IntrinsicsModel
Camera intrinsics model type.
Definition: Varjo_types_datastream.h:43
varjo_ChannelIndex
int64_t varjo_ChannelIndex
Values for indexing buffers and settings of data streams.
Definition: Varjo_types_datastream.h:30
varjo_StreamFrameMetadata::distortedColor
struct varjo_DistortedColorFrameMetadata distortedColor
Definition: Varjo_types_datastream.h:199
varjo_Matrix3x3
Double precision 3x3 matrix.
Definition: Varjo_types.h:305