Varjo Native SDK
Varjo_types_datastream.h
Go to the documentation of this file.
1 // Copyright 2019-2022 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 #include "Varjo_types_mr.h"
8 
9 #if defined __cplusplus
10 extern "C" {
11 #endif
12 
16 typedef uint64_t varjo_ChannelFlag;
20 
27 
31 typedef int64_t varjo_ChannelIndex;
34 
40 
44 typedef int64_t varjo_IntrinsicsModel;
47 
51 typedef int64_t varjo_BufferType;
54 
58 typedef uint64_t varjo_DataFlag;
59 static const varjo_DataFlag varjo_DataFlag_Buffer = 1 << 0;
62 
66 typedef int64_t varjo_StreamType;
67 
79 
107 
117 
121 typedef int64_t varjo_StreamId;
122 
126 typedef int64_t varjo_BufferId;
127 
131 static const int64_t varjo_InvalidId = -1;
132 
143  int32_t frameRate;
144  int32_t width;
145  int32_t height;
146  int32_t rowStride;
147 };
148 
156  double focalLengthX;
157  double focalLengthY;
159 };
160 
170  double focalLengthX;
171  double focalLengthY;
173 
174  int64_t reserved[3];
175 };
176 
183  int32_t byteSize;
184  int32_t rowStride;
185  int32_t width;
186  int32_t height;
187 };
188 
202  struct varjo_Matrix3x3 invCCM;
203  struct varjo_Matrix3x3 ccm;
204 };
205 
214  double ev;
215  double exposureTime;
219 };
220 
233 };
234 
247  uint32_t glintMaskLeft;
248  uint32_t glintMaskRight;
249 };
250 
258  int64_t reserved[64];
259 };
260 
267  int64_t frameNumber;
270  struct varjo_Matrix hmdPose;
272 };
273 
281 typedef void(varjo_FrameListener)(const struct varjo_StreamFrame* frame, struct varjo_Session* session, void* userData);
282 
283 #if defined __cplusplus
284 }
285 #endif
286 #endif // VARJO_TYPES_DATASTREAM_H
varjo_StreamConfig::bufferType
varjo_BufferType bufferType
Buffer type: CPU or GPU memory buffer.
Definition: Varjo_types_datastream.h:140
varjo_BufferId
int64_t varjo_BufferId
Buffer ID to lock and use a data stream buffer.
Definition: Varjo_types_datastream.h:126
varjo_CameraIntrinsics2::principalPointX
double principalPointX
Camera principal point X.
Definition: Varjo_types_datastream.h:168
varjo_Nanoseconds
int64_t varjo_Nanoseconds
Time in nanoseconds.
Definition: Varjo_types.h:147
varjo_CameraIntrinsics2::distortionCoefficients
double distortionCoefficients[8]
Intrinsics model coefficients.
Definition: Varjo_types_datastream.h:172
varjo_StreamConfig::frameRate
int32_t frameRate
Frame rate in frames per second.
Definition: Varjo_types_datastream.h:143
varjo_ChannelIndex_Second
static const varjo_ChannelIndex varjo_ChannelIndex_Second
Second channel.
Definition: Varjo_types_datastream.h:33
varjo_StreamFrameMetadata
Wrapper union for different types of streams.
Definition: Varjo_types_datastream.h:254
varjo_ChannelFlag_All
static const varjo_ChannelFlag varjo_ChannelFlag_All
Aggregate of every available channel.
Definition: Varjo_types_datastream.h:26
varjo_EyeCameraFrameMetadata::glintMaskLeft
uint32_t glintMaskLeft
Bit mask of enabled glint LEDs of left chamber.
Definition: Varjo_types_datastream.h:247
varjo_CameraIntrinsics::principalPointX
double principalPointX
Camera principal point X.
Definition: Varjo_types_datastream.h:154
varjo_StreamFrame::frameNumber
int64_t frameNumber
Monotonically increasing frame number.
Definition: Varjo_types_datastream.h:267
varjo_DistortedColorFrameMetadata::wbNormalizationData
struct varjo_WBNormalizationData wbNormalizationData
White balance normalization data.
Definition: Varjo_types_datastream.h:217
varjo_StreamConfig::width
int32_t width
Texture width.
Definition: Varjo_types_datastream.h:144
varjo_BufferMetadata::width
int32_t width
Image width.
Definition: Varjo_types_datastream.h:185
varjo_StreamFrameMetadata::reserved
int64_t reserved[64]
Definition: Varjo_types_datastream.h:258
varjo_CameraIntrinsics2::model
varjo_IntrinsicsModel model
Intrisics calibration model.
Definition: Varjo_types_datastream.h:167
varjo_StreamConfig::height
int32_t height
Texture height;.
Definition: Varjo_types_datastream.h:145
varjo_DistortedColorFrameMetadata
Metadata for distorted color stream.
Definition: Varjo_types_datastream.h:212
varjo_BufferMetadata
Buffer for data streams.
Definition: Varjo_types_datastream.h:180
varjo_DistortedColorFrameMetadata::whiteBalanceTemperature
double whiteBalanceTemperature
Camera white balance color temperature in Kelvin degrees.
Definition: Varjo_types_datastream.h:216
varjo_EnvironmentCubemapFrameMetadata::whiteBalanceTemperature
double whiteBalanceTemperature
Cubemap white balance color temperature in Kelvin degrees.
Definition: Varjo_types_datastream.h:230
varjo_DataFlag_Extrinsics
static const varjo_DataFlag varjo_DataFlag_Extrinsics
Definition: Varjo_types_datastream.h:61
varjo_StreamFrame::channels
varjo_ChannelFlag channels
Channels that this frame contains.
Definition: Varjo_types_datastream.h:268
varjo_BufferType_CPU
static const varjo_BufferType varjo_BufferType_CPU
Data is available in a CPU memory buffer.
Definition: Varjo_types_datastream.h:52
varjo_StreamConfig::streamId
varjo_StreamId streamId
Id.
Definition: Varjo_types_datastream.h:137
varjo_CameraIntrinsics2::focalLengthX
double focalLengthX
Camera focal length X.
Definition: Varjo_types_datastream.h:170
varjo_EyeCameraFrameMetadata::timestamp
varjo_Nanoseconds timestamp
Timestamp when the frame was captured (start of frame).
Definition: Varjo_types_datastream.h:246
varjo_StreamConfig
Data stream configuration.
Definition: Varjo_types_datastream.h:136
varjo_BufferMetadata::height
int32_t height
Image height.
Definition: Varjo_types_datastream.h:186
varjo_StreamFrame::metadata
union varjo_StreamFrameMetadata metadata
Frame data. Use 'type' to determine which element to access.
Definition: Varjo_types_datastream.h:271
varjo_CameraIntrinsics::principalPointY
double principalPointY
Camera principal point Y.
Definition: Varjo_types_datastream.h:155
varjo_CameraIntrinsics::focalLengthY
double focalLengthY
Camera focal length Y.
Definition: Varjo_types_datastream.h:157
varjo_CameraIntrinsics::model
varjo_IntrinsicsModel model
Intrisics calibration model.
Definition: Varjo_types_datastream.h:153
varjo_EnvironmentCubemapFrameMetadata::brightnessNormalizationGain
double brightnessNormalizationGain
Gain to convert cubemap to VST image brightness.
Definition: Varjo_types_datastream.h:231
varjo_StreamConfig::streamType
varjo_StreamType streamType
Stream type.
Definition: Varjo_types_datastream.h:139
varjo_StreamType_EnvironmentCubemap
static const varjo_StreamType varjo_StreamType_EnvironmentCubemap
HDR lighting estimate stream as a cubemap.
Definition: Varjo_types_datastream.h:106
varjo_CameraIntrinsics::focalLengthX
double focalLengthX
Camera focal length X.
Definition: Varjo_types_datastream.h:156
varjo_CameraIntrinsics2::principalPointY
double principalPointY
Camera principal point Y.
Definition: Varjo_types_datastream.h:169
varjo_StreamFrameMetadata::environmentCubemap
struct varjo_EnvironmentCubemapFrameMetadata environmentCubemap
Definition: Varjo_types_datastream.h:256
varjo_CameraIntrinsics
Camera intrinsics parameter for undistorting a distorted camera frame.
Definition: Varjo_types_datastream.h:152
varjo_EnvironmentCubemapFrameMetadata::timestamp
varjo_Nanoseconds timestamp
Timestamp when the cubemap was last updated.
Definition: Varjo_types_datastream.h:228
Varjo_types_mr.h
varjo_StreamFrame
A single frame that will arrive to FrameListener callback after the user has subscribed to a stream.
Definition: Varjo_types_datastream.h:264
varjo_CameraIntrinsics::distortionCoefficients
double distortionCoefficients[6]
Intrinsics model coefficients.
Definition: Varjo_types_datastream.h:158
varjo_StreamType_EyeCamera
static const varjo_StreamType varjo_StreamType_EyeCamera
Distorted (i.e.
Definition: Varjo_types_datastream.h:116
varjo_ChannelFlag_None
static const varjo_ChannelFlag varjo_ChannelFlag_None
Disables data buffers and only provides metadata.
Definition: Varjo_types_datastream.h:17
varjo_TextureFormat
int64_t varjo_TextureFormat
Definition: Varjo_types.h:216
varjo_EyeCameraFrameMetadata
Metadata for eye camera stream.
Definition: Varjo_types_datastream.h:245
varjo_DistortedColorFrameMetadata::timestamp
varjo_Nanoseconds timestamp
Timestamp at the middle of frame exposure.
Definition: Varjo_types_datastream.h:213
varjo_StreamFrame::id
varjo_StreamId id
Id of the stream.
Definition: Varjo_types_datastream.h:266
varjo_ChannelFlag_Second
static const varjo_ChannelFlag varjo_ChannelFlag_Second
Second channel.
Definition: Varjo_types_datastream.h:19
varjo_BufferMetadata::format
varjo_TextureFormat format
Texture format.
Definition: Varjo_types_datastream.h:181
varjo_CameraIntrinsics2
Camera intrinsics parameter for undistorting a distorted camera frame.
Definition: Varjo_types_datastream.h:166
varjo_StreamConfig::format
varjo_TextureFormat format
Texture format.
Definition: Varjo_types_datastream.h:141
varjo_StreamConfig::rowStride
int32_t rowStride
Buffer row stride in bytes.
Definition: Varjo_types_datastream.h:146
Varjo_types.h
varjo_DistortedColorFrameMetadata::exposureTime
double exposureTime
Exposure time in seconds.
Definition: Varjo_types_datastream.h:215
varjo_BufferType
int64_t varjo_BufferType
Memory buffer type.
Definition: Varjo_types_datastream.h:51
varjo_Matrix
Double precision 4x4 matrix.
Definition: Varjo_types.h:330
varjo_WBNormalizationData::whiteBalanceColorGains
double whiteBalanceColorGains[3]
White balance RGB gains to convert from 6500K to VST color temperature.
Definition: Varjo_types_datastream.h:201
varjo_StreamConfig::streamTransform
struct varjo_Matrix streamTransform
Transform from HMD pose center to stream origin in view coordinates.
Definition: Varjo_types_datastream.h:142
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:218
varjo_ChannelFlag_First
static const varjo_ChannelFlag varjo_ChannelFlag_First
First channel.
Definition: Varjo_types_datastream.h:18
varjo_CameraIntrinsics2::focalLengthY
double focalLengthY
Camera focal length Y.
Definition: Varjo_types_datastream.h:171
varjo_StreamFrame::type
varjo_StreamType type
Type of the stream.
Definition: Varjo_types_datastream.h:265
varjo_StreamId
int64_t varjo_StreamId
Stream ID to identify a data stream configuration.
Definition: Varjo_types_datastream.h:121
varjo_StreamType_DistortedColor
static const varjo_StreamType varjo_StreamType_DistortedColor
Distorted (i.e.
Definition: Varjo_types_datastream.h:78
varjo_BufferType_GPU
static const varjo_BufferType varjo_BufferType_GPU
Data is available in a GPU memory buffer.
Definition: Varjo_types_datastream.h:53
varjo_ChannelFlag_Left
static const varjo_ChannelFlag varjo_ChannelFlag_Left
Helper aliases and aggregates for varjo_ChannelFlag.
Definition: Varjo_types_datastream.h:24
varjo_StreamFrameMetadata::eyeCamera
struct varjo_EyeCameraFrameMetadata eyeCamera
Definition: Varjo_types_datastream.h:257
varjo_BufferMetadata::type
varjo_BufferType type
CPU or GPU.
Definition: Varjo_types_datastream.h:182
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:270
varjo_BufferMetadata::byteSize
int32_t byteSize
Buffer size in bytes.
Definition: Varjo_types_datastream.h:183
varjo_DataFlag
uint64_t varjo_DataFlag
Frame data flag buffer type.
Definition: Varjo_types_datastream.h:58
varjo_StreamFrame::dataFlags
varjo_DataFlag dataFlags
Data that this frame contains.
Definition: Varjo_types_datastream.h:269
varjo_WBNormalizationData::ccm
struct varjo_Matrix3x3 ccm
CCM for VST color temperature.
Definition: Varjo_types_datastream.h:203
varjo_EnvironmentCubemapFrameMetadata::mode
varjo_EnvironmentCubemapMode mode
Cubemap mode which defines the color and brightness of the cubemap data.
Definition: Varjo_types_datastream.h:229
varjo_WBNormalizationData::invCCM
struct varjo_Matrix3x3 invCCM
Inverse CCM for 6500K color temperature.
Definition: Varjo_types_datastream.h:202
varjo_EnvironmentCubemapFrameMetadata::wbNormalizationData
struct varjo_WBNormalizationData wbNormalizationData
White balance normalization data.
Definition: Varjo_types_datastream.h:232
varjo_ChannelIndex_Left
static const varjo_ChannelIndex varjo_ChannelIndex_Left
Helper aliases for varjo_ChannelIndex.
Definition: Varjo_types_datastream.h:38
varjo_InvalidId
static const int64_t varjo_InvalidId
Invalid id for any ID type (e.g.
Definition: Varjo_types_datastream.h:131
varjo_EnvironmentCubemapMode
int64_t varjo_EnvironmentCubemapMode
Definition: Varjo_types_mr.h:58
varjo_IntrinsicsModel_Omnidir
static const varjo_IntrinsicsModel varjo_IntrinsicsModel_Omnidir
OpenCV compatible Omnidir calibration model.
Definition: Varjo_types_datastream.h:45
varjo_ChannelIndex_First
static const varjo_ChannelIndex varjo_ChannelIndex_First
First channel.
Definition: Varjo_types_datastream.h:32
varjo_DistortedColorFrameMetadata::ev
double ev
EV (exposure value) at ISO100.
Definition: Varjo_types_datastream.h:214
varjo_ChannelFlag
uint64_t varjo_ChannelFlag
Bitfield for different data stream channels.
Definition: Varjo_types_datastream.h:16
varjo_WBNormalizationData
White balance normalization data for color matching VR content with camera image.
Definition: Varjo_types_datastream.h:200
varjo_DataFlag_Buffer
static const varjo_DataFlag varjo_DataFlag_Buffer
Definition: Varjo_types_datastream.h:59
varjo_StreamType
int64_t varjo_StreamType
Data stream types.
Definition: Varjo_types_datastream.h:66
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:281
varjo_IntrinsicsModel_Rational
static const varjo_IntrinsicsModel varjo_IntrinsicsModel_Rational
OpenCV compatible Rational calibration model.
Definition: Varjo_types_datastream.h:46
varjo_StreamConfig::channelFlags
varjo_ChannelFlag channelFlags
Bitfield of provided camera channels.
Definition: Varjo_types_datastream.h:138
varjo_EnvironmentCubemapFrameMetadata
Metadata for environment cubemap stream.
Definition: Varjo_types_datastream.h:227
varjo_EyeCameraFrameMetadata::glintMaskRight
uint32_t glintMaskRight
Bit mask of enabled glint LEDs of right chamber.
Definition: Varjo_types_datastream.h:248
varjo_ChannelIndex_Right
static const varjo_ChannelIndex varjo_ChannelIndex_Right
Right camera channel. Alias for varjo_ChannelIndex_Second.
Definition: Varjo_types_datastream.h:39
varjo_DataFlag_Intrinsics
static const varjo_DataFlag varjo_DataFlag_Intrinsics
Definition: Varjo_types_datastream.h:60
varjo_BufferMetadata::rowStride
int32_t rowStride
Buffer row stride in bytes.
Definition: Varjo_types_datastream.h:184
varjo_CameraIntrinsics2::reserved
int64_t reserved[3]
Definition: Varjo_types_datastream.h:174
varjo_ChannelFlag_Right
static const varjo_ChannelFlag varjo_ChannelFlag_Right
Right camera channel. Alias for varjo_ChannelFlag_Second.
Definition: Varjo_types_datastream.h:25
varjo_IntrinsicsModel
int64_t varjo_IntrinsicsModel
Camera intrinsics model type.
Definition: Varjo_types_datastream.h:44
varjo_ChannelIndex
int64_t varjo_ChannelIndex
Values for indexing buffers and settings of data streams.
Definition: Varjo_types_datastream.h:31
varjo_StreamFrameMetadata::distortedColor
struct varjo_DistortedColorFrameMetadata distortedColor
Definition: Varjo_types_datastream.h:255
varjo_Matrix3x3
Double precision 3x3 matrix.
Definition: Varjo_types.h:338