Newer
Older
/**
* @file channels.hpp
* @copyright Copyright (c) 2020 University of Turku, MIT License
* @author Nicolas Pope
*/
#pragma once
#include <bitset>
namespace ftl {
namespace protocol {
/** Frame channel identifier. */
enum struct Channel : int {
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/* Video Channels */
kNone = -1,
kColour = 0, // 8UC3 or 8UC4
kLeft = 0,
kDepth = 1, // 32S or 32F
kRight = 2, // 8UC3 or 8UC4
kColour2 = 2,
kDepth2 = 3,
kDeviation = 4,
kScreen = 4, // 16SC2
kNormals = 5, // 16FC4
kWeights = 6, // short
kConfidence = 7, // 32F
kContribution = 7, // 32F
kEnergyVector = 8, // 32FC4
kFlow = 9, // 16SC2
kFlow2 = 10, // 16SC2
kEnergy = 10, // 32F
kMask = 11, // 32U
kDensity = 12, // 32F
kSupport1 = 13, // 8UC4 (currently)
kSupport2 = 14, // 8UC4 (currently)
kSegmentation = 15, // 32S?
kNormals2 = 16, // 16FC4
kUNUSED1 = 17,
kDisparity = 18,
kSmoothing = 19, // 32F
kUNUSED2 = 20,
kOverlay = 21, // 8UC4
kGroundTruth = 22, // 32F
/* Audio Channels */
kAudioMono = 32, // Deprecated, will always be stereo
kAudioStereo = 33,
kAudio = 33,
/* Special data channels */
kConfiguration = 64, // JSON Data
kSettings1 = 65,
kCalibration = 65, // Camera Parameters Object
kPose = 66, // Eigen::Matrix4d, camera transform
kSettings2 = 67,
kCalibration2 = 67, // Right camera parameters
kIndex = 68,
kControl = 69, // For stream and encoder control
kSettings3 = 70,
kMetaData = 71, // Map of string pairs (key, value)
kCapabilities = 72, // Unordered set of int capabilities
kCalibrationData = 73, // Just for stereo intrinsics/extrinsics etc
kThumbnail = 74, // Small JPG thumbnail, sometimes updated
kOverlaySelect = 75, // Choose what to have in the overlay channel
kStartTime = 76, // Stream start timestamp
kUser = 77, // User currently controlling the stream
kAccelerometer = 90, // Eigen::Vector3f
kGyroscope = 91, // Eigen::Vector3f
/* Camera Options */
kBrightness = 100,
kContrast = 101,
kExposure = 102,
kGain = 103,
kWhiteBalance = 104,
kAutoExposure = 105,
kAutoWhiteBalance = 106,
kCameraTemperature = 107,
/* Realsense Options */
kRS2_LaserPower = 150,
kRS2_MinDistance = 151,
kRS2_MaxDistance = 152,
kRS2_InterCamSync = 153,
kRS2_PostSharpening = 154,
/* Pylon Options 200 */
/* Audio Settings 300 */
/* Renderer Settings 400 */
kRenderer_CameraType = 400, // stereo, normal, tile
kRenderer_Visualisation = 401, // Pointcloud, mesh, other
kRenderer_Engine = 402, // OpenGL, CUDA, other
kRenderer_FPS = 403, // Frames per second
kRenderer_View = 404, // Fixed viewpoint to one source
kRenderer_Channel = 405, // Select overlay channel,
kRenderer_Opacity = 406, // Opacity of overlay channel
kRenderer_Sources = 407, // Which source devices to use
kRenderer_Projection = 408, // 0 = normal, 1 = ortho, 2 = equirect
kRenderer_Background = 409, // Background colour
kRenderer_ShowBadColour = 420,
kRenderer_CoolEffect = 421,
kRenderer_EffectColour = 422,
kRenderer_ShowColourWeights = 423,
kRenderer_TriangleLimit = 424,
kRenderer_DisconDisparities = 425,
kRenderer_NormalWeightColour = 426,
kRenderer_ChannelWeights = 427,
kRenderer_AccumFunc = 428,
/* Pipeline Settings */
kPipeline_Enable = 500,
kPipeline_EnableMVMLS = 501,
kPipeline_EnableAruco = 502,
/* Stereo video settings */
kSGMResolution = 600,
kStereoRectify = 601,
kStereoRightPose = 602,
kStereoRectifyCubic = 603,
kVideoOffsetZ = 604,
kVideoSize = 605,
/* Sender settings */
kSenderLosslessFloat = 700,
kSenderLosslessColour = 701,
kSenderIFrames = 702,
kSenderCodecFloat = 703,
kSenderCodecColour = 704,
kSenderMaxBitrate = 705,
kSenderFloatBitrateScale = 706,
/* Custom / user data channels */
kData = 2048, // Do not use
kEndFrame = 2048, // Signify the last packet
kFaces = 2049, // Data about detected faces
kTransforms = 2050, // Transformation matrices for framesets
kShapes3D = 2051, // Labeled 3D shapes
kMessages = 2052, // Vector of Strings
kTouch = 2053, // List of touch data type (each touch point)
kPipelines = 2054, // List of pipline URIs that have been applied
} // namespace protocol
} // namespace ftl