libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
enums_st2110.h
Go to the documentation of this file.
1
10#pragma once
11
12
13#include <promeki/config.h>
14#if PROMEKI_ENABLE_CORE
15#include <promeki/namespace.h>
16#include <promeki/enum.h>
17
18PROMEKI_NAMESPACE_BEGIN
19
35class St2110Sampling : public TypedEnum<St2110Sampling> {
36 public:
37 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("St2110Sampling", "ST 2110-20 Sampling", 0,
38 {"Invalid", 0, "Invalid"},
39 {"YCbCr444", 1, "YCbCr 4:4:4"}, {"YCbCr422", 2, "YCbCr 4:2:2"}, {"YCbCr420", 3, "YCbCr 4:2:0"},
40 {"CLYCbCr444", 4, "Constant-Luminance YCbCr 4:4:4"}, {"CLYCbCr422", 5, "Constant-Luminance YCbCr 4:2:2"}, {"CLYCbCr420", 6, "Constant-Luminance YCbCr 4:2:0"},
41 {"ICtCp444", 7, "ICtCp 4:4:4"}, {"ICtCp422", 8, "ICtCp 4:2:2"}, {"ICtCp420", 9, "ICtCp 4:2:0"},
42 {"Rgb", 10, "RGB"}, {"Xyz", 11, "XYZ"},
43 {"Key", 12, "Key (Alpha)"}); // default: Invalid
44
45 using TypedEnum<St2110Sampling>::TypedEnum;
46
47 static const St2110Sampling Invalid;
48 static const St2110Sampling YCbCr444;
49 static const St2110Sampling YCbCr422;
50 static const St2110Sampling YCbCr420;
51 static const St2110Sampling CLYCbCr444;
52 static const St2110Sampling CLYCbCr422;
53 static const St2110Sampling CLYCbCr420;
54 static const St2110Sampling ICtCp444;
55 static const St2110Sampling ICtCp422;
56 static const St2110Sampling ICtCp420;
57 static const St2110Sampling Rgb;
58 static const St2110Sampling Xyz;
59 static const St2110Sampling Key;
60};
61
62inline const St2110Sampling St2110Sampling::Invalid{0};
63inline const St2110Sampling St2110Sampling::YCbCr444{1};
64inline const St2110Sampling St2110Sampling::YCbCr422{2};
65inline const St2110Sampling St2110Sampling::YCbCr420{3};
66inline const St2110Sampling St2110Sampling::CLYCbCr444{4};
67inline const St2110Sampling St2110Sampling::CLYCbCr422{5};
68inline const St2110Sampling St2110Sampling::CLYCbCr420{6};
69inline const St2110Sampling St2110Sampling::ICtCp444{7};
70inline const St2110Sampling St2110Sampling::ICtCp422{8};
71inline const St2110Sampling St2110Sampling::ICtCp420{9};
72inline const St2110Sampling St2110Sampling::Rgb{10};
73inline const St2110Sampling St2110Sampling::Xyz{11};
74inline const St2110Sampling St2110Sampling::Key{12};
75
85class St2110Depth : public TypedEnum<St2110Depth> {
86 public:
87 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("St2110Depth", "ST 2110-20 Bit Depth", 0,
88 {"Invalid", 0, "Invalid"},
89 {"Bits8", 1, "8-bit"}, {"Bits10", 2, "10-bit"}, {"Bits12", 3, "12-bit"}, {"Bits16", 4, "16-bit"},
90 {"Bits16f", 5, "16-bit Float"}); // default: Invalid
91
92 using TypedEnum<St2110Depth>::TypedEnum;
93
94 static const St2110Depth Invalid;
95 static const St2110Depth Bits8;
96 static const St2110Depth Bits10;
97 static const St2110Depth Bits12;
98 static const St2110Depth Bits16;
99 static const St2110Depth Bits16f;
100};
101
102inline const St2110Depth St2110Depth::Invalid{0};
103inline const St2110Depth St2110Depth::Bits8{1};
104inline const St2110Depth St2110Depth::Bits10{2};
105inline const St2110Depth St2110Depth::Bits12{3};
106inline const St2110Depth St2110Depth::Bits16{4};
107inline const St2110Depth St2110Depth::Bits16f{5};
108
116class St2110Colorimetry : public TypedEnum<St2110Colorimetry> {
117 public:
118 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("St2110Colorimetry", "ST 2110-20 Colorimetry", 0,
119 {"Invalid", 0, "Invalid"},
120 {"Bt601", 1, "ITU-R BT.601"}, {"Bt709", 2, "ITU-R BT.709"}, {"Bt2020", 3, "ITU-R BT.2020"}, {"Bt2100", 4, "ITU-R BT.2100"},
121 {"St2065_1", 5, "SMPTE ST 2065-1 (ACES)"}, {"St2065_3", 6, "SMPTE ST 2065-3 (ADX)"}, {"Unspecified", 7, "Unspecified"},
122 {"Xyz", 8, "CIE XYZ"}, {"Alpha", 9, "Alpha (Key)"}); // default: Invalid
123
124 using TypedEnum<St2110Colorimetry>::TypedEnum;
125
126 static const St2110Colorimetry Invalid;
127 static const St2110Colorimetry Bt601;
128 static const St2110Colorimetry Bt709;
129 static const St2110Colorimetry Bt2020;
130 static const St2110Colorimetry Bt2100;
131 static const St2110Colorimetry St2065_1;
132 static const St2110Colorimetry St2065_3;
133 static const St2110Colorimetry Unspecified;
134 static const St2110Colorimetry Xyz;
135 static const St2110Colorimetry Alpha;
136};
137
138inline const St2110Colorimetry St2110Colorimetry::Invalid{0};
139inline const St2110Colorimetry St2110Colorimetry::Bt601{1};
140inline const St2110Colorimetry St2110Colorimetry::Bt709{2};
141inline const St2110Colorimetry St2110Colorimetry::Bt2020{3};
142inline const St2110Colorimetry St2110Colorimetry::Bt2100{4};
143inline const St2110Colorimetry St2110Colorimetry::St2065_1{5};
144inline const St2110Colorimetry St2110Colorimetry::St2065_3{6};
145inline const St2110Colorimetry St2110Colorimetry::Unspecified{7};
146inline const St2110Colorimetry St2110Colorimetry::Xyz{8};
147inline const St2110Colorimetry St2110Colorimetry::Alpha{9};
148
159class St2110Tcs : public TypedEnum<St2110Tcs> {
160 public:
161 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("St2110Tcs", "ST 2110-20 Transfer Characteristic System (TCS)", 1,
162 {"Invalid", 0, "Invalid"},
163 {"Sdr", 1, "Standard Dynamic Range (SDR)"}, {"Pq", 2, "Perceptual Quantizer (PQ)"}, {"Hlg", 3, "Hybrid Log-Gamma (HLG)"}, {"Linear", 4, "Linear"},
164 {"Bt2100LinPq", 5, "BT.2100 Linear (PQ Reference)"}, {"Bt2100LinHlg", 6, "BT.2100 Linear (HLG Reference)"},
165 {"St2065_1", 7, "SMPTE ST 2065-1 (ACES)"}, {"St428_1", 8, "SMPTE ST 428-1 (DCDM)"},
166 {"Density", 9, "Density"}, {"St2115LogS3", 10, "SMPTE ST 2115 Log S3"},
167 {"Unspecified", 11, "Unspecified"}); // default: Sdr
168
169 using TypedEnum<St2110Tcs>::TypedEnum;
170
171 static const St2110Tcs Invalid;
172 static const St2110Tcs Sdr;
173 static const St2110Tcs Pq;
174 static const St2110Tcs Hlg;
175 static const St2110Tcs Linear;
176 static const St2110Tcs Bt2100LinPq;
177 static const St2110Tcs Bt2100LinHlg;
178 static const St2110Tcs St2065_1;
179 static const St2110Tcs St428_1;
180 static const St2110Tcs Density;
181 static const St2110Tcs St2115LogS3;
182 static const St2110Tcs Unspecified;
183};
184
185inline const St2110Tcs St2110Tcs::Invalid{0};
186inline const St2110Tcs St2110Tcs::Sdr{1};
187inline const St2110Tcs St2110Tcs::Pq{2};
188inline const St2110Tcs St2110Tcs::Hlg{3};
189inline const St2110Tcs St2110Tcs::Linear{4};
190inline const St2110Tcs St2110Tcs::Bt2100LinPq{5};
191inline const St2110Tcs St2110Tcs::Bt2100LinHlg{6};
192inline const St2110Tcs St2110Tcs::St2065_1{7};
193inline const St2110Tcs St2110Tcs::St428_1{8};
194inline const St2110Tcs St2110Tcs::Density{9};
195inline const St2110Tcs St2110Tcs::St2115LogS3{10};
196inline const St2110Tcs St2110Tcs::Unspecified{11};
197
207class St2110Range : public TypedEnum<St2110Range> {
208 public:
209 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("St2110Range", "ST 2110-20 Quantization Range", 1,
210 {"Invalid", 0, "Invalid"},
211 {"Narrow", 1, "Narrow Range"}, {"Full", 2, "Full Range"},
212 {"FullProtect", 3, "Full Range (Protected)"}); // default: Narrow
213
214 using TypedEnum<St2110Range>::TypedEnum;
215
216 static const St2110Range Invalid;
217 static const St2110Range Narrow;
218 static const St2110Range Full;
219 static const St2110Range FullProtect;
220};
221
222inline const St2110Range St2110Range::Invalid{0};
223inline const St2110Range St2110Range::Narrow{1};
224inline const St2110Range St2110Range::Full{2};
225inline const St2110Range St2110Range::FullProtect{3};
226
236class St2110PackingMode : public TypedEnum<St2110PackingMode> {
237 public:
238 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("St2110PackingMode", "ST 2110-20 Packing Mode", 1,
239 {"Invalid", 0, "Invalid"},
240 {"Gpm", 1, "General Packing Mode (GPM)"},
241 {"Bpm", 2, "Block Packing Mode (BPM)"}); // default: Gpm
242
243 using TypedEnum<St2110PackingMode>::TypedEnum;
244
245 static const St2110PackingMode Invalid;
246 static const St2110PackingMode Gpm;
247 static const St2110PackingMode Bpm;
248};
249
250inline const St2110PackingMode St2110PackingMode::Invalid{0};
251inline const St2110PackingMode St2110PackingMode::Gpm{1};
252inline const St2110PackingMode St2110PackingMode::Bpm{2};
253
256PROMEKI_NAMESPACE_END
257
258#endif // PROMEKI_ENABLE_CORE