MillicastSDK 2.0.0
Loading...
Searching...
No Matches
capabilities.h
Go to the documentation of this file.
1#ifndef MILLICAST_API_CAPABILITIES_H
2#define MILLICAST_API_CAPABILITIES_H
3
11#include <string>
12
14
15namespace millicast {
16
21enum class VideoType {
22 UNKNOWN,
23 I420,
24 I444,
25 I210,
26 IYUV,
27 RGB24,
28 ARGB,
29 RGB565,
30 YUY2,
31 YV12,
32 NV12,
33 UYVY,
34 MJPEG,
35 BGRA,
36 NATIVE
37};
38
44enum class PrimaryID : uint8_t {
45 // The indices are equal to the values specified in T-REC H.273 Table 2.
46 BT709 = 1,
47 UNSPECIFIED = 2,
48 BT470M = 4,
49 BT470BG = 5,
50 SMPTE170M = 6, // Identical to BT601
51 SMPTE240M = 7,
52 FILM = 8,
53 BT2020 = 9,
54 SMPTEST428 = 10,
55 SMPTEST431 = 11,
56 SMPTEST432 = 12,
57 JEDECP22 = 22, // Identical to EBU3213-E
58 // When adding/removing entries here, please make sure to do
59 // the corresponding change to kPrimaryIds.
60};
61
67enum class TransferID : uint8_t {
68 // The indices are equal to the values specified in T-REC H.273 Table 3.
69 BT709 = 1,
70 UNSPECIFIED = 2,
71 GAMMA22 = 4,
72 GAMMA28 = 5,
73 SMPTE170M = 6,
74 SMPTE240M = 7,
75 LINEAR = 8,
76 LOG = 9,
77 LOG_SQRT = 10,
78 IEC61966_2_4 = 11,
79 BT1361_ECG = 12,
80 IEC61966_2_1 = 13,
81 BT2020_10 = 14,
82 BT2020_12 = 15,
83 SMPTEST2084 = 16,
84 SMPTEST428 = 17,
85 ARIB_STD_B67 = 18,
86 // When adding/removing entries here, please make sure to do the
87 // corresponding change to kTransferIds.
88};
89
95enum class MatrixID : uint8_t {
96 // The indices are equal to the values specified in T-REC H.273 Table 4.
97 RGB = 0,
98 BT709 = 1,
99 UNSPECIFIED = 2,
100 FCC = 4,
101 BT470BG = 5,
102 SMPTE170M = 6,
103 SMPTE240M = 7,
104 YCOCG = 8,
105 BT2020_NCL = 9,
106 BT2020_CL = 10,
107 SMPTE2085 = 11,
108 CDNCLS = 12,
109 CDCLS = 13,
110 BT2100_ICTCP = 14,
111 // When adding/removing entries here, please make sure to do the
112 // corresponding change to kMatrixIds.
113};
114
119enum class RangeID {
120 // The indices are equal to the values specified at
121 // https://www.webmproject.org/docs/container/#colour for the element Range.
122 INVALID = 0,
123 // Limited Rec. 709 color range with RGB values ranging from 16 to 235.
124 LIMITED = 1,
125 // Full RGB color range with RGB valees from 0 to 255.
126 FULL = 2,
127 // Range is defined by MatrixCoefficients/TransferCharacteristics.
128 DERIVED = 3,
129 // When adding/removing entries here, please make sure to do the
130 // corresponding change to kRangeIds.
131};
132
140
146 public:
147 int width{};
148 int height{};
149 int fps{};
166 std::string video_standard;
167
168 [[nodiscard]] MILLICAST_API std::string format_as_str()
169 const;
170};
171
172} // namespace millicast
173
174#endif /* MILLICAST_API_CAPABILITIES_H */
The VideoCapabilities struct.
Definition capabilities.h:145
RangeID range
Definition capabilities.h:159
int height
Definition capabilities.h:148
int fps
Definition capabilities.h:149
VideoType format
Definition capabilities.h:150
PrimaryID primary
Definition capabilities.h:152
std::string video_standard
Specify the capabilities with a video standard such as 1080p30 Implemented only for decklink devices.
Definition capabilities.h:166
MatrixID matrix
Definition capabilities.h:157
int width
Definition capabilities.h:147
MILLICAST_API std::string format_as_str() const
TransferID transfer
Definition capabilities.h:155
#define MILLICAST_API
Definition exports.h:51
Definition capabilities.h:15
VideoType
The VideoType enum represent the pixel format used for video frames.
Definition capabilities.h:21
MILLICAST_API std::string video_type_to_str(VideoType t)
video_type_to_str convert a VideoType enum value to a std::string
TransferID
The TransferID enum represents the transfer function used for video frames.
Definition capabilities.h:67
PrimaryID
The PrimaryID enum represents the standard of image parameters used for video frames.
Definition capabilities.h:44
RangeID
The RangeID enum represents the color range values.
Definition capabilities.h:119
MatrixID
The MatrixID enum represents the color matrix to use for conversion between color spaces.
Definition capabilities.h:95