libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
enums_jxs.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
38class JxsPacketMode : public TypedEnum<JxsPacketMode> {
39 public:
40 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("JxsPacketMode", "JPEG XS Packetization Mode", 0,
41 {"Codestream", 0, "Codestream (K=0)"},
42 {"Slice", 1, "Slice (K=1)"}); // default: Codestream
43
44 using TypedEnum<JxsPacketMode>::TypedEnum;
45
46 static const JxsPacketMode Codestream;
47 static const JxsPacketMode Slice;
48};
49
50inline const JxsPacketMode JxsPacketMode::Codestream{0};
51inline const JxsPacketMode JxsPacketMode::Slice{1};
52
65class JxsTransMode : public TypedEnum<JxsTransMode> {
66 public:
67 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("JxsTransMode", "JPEG XS Transmission Mode", 1,
68 {"OutOfOrderAllowed", 0, "Out-of-Order Allowed (T=0)"},
69 {"SequentialOnly", 1, "Sequential Only (T=1)"}); // default: SequentialOnly
70
71 using TypedEnum<JxsTransMode>::TypedEnum;
72
73 static const JxsTransMode OutOfOrderAllowed;
74 static const JxsTransMode SequentialOnly;
75};
76
77inline const JxsTransMode JxsTransMode::OutOfOrderAllowed{0};
78inline const JxsTransMode JxsTransMode::SequentialOnly{1};
79
92class JxsProfile : public TypedEnum<JxsProfile> {
93 public:
94 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("JxsProfile", "JPEG XS Profile", 0,
95 {"Unspecified", 0, "Unspecified"},
96 {"Light422_10", 1, "Light 4:2:2 10-bit"},
97 {"Light444_12", 2, "Light 4:4:4 12-bit"},
98 {"LightSubline422_10", 3, "Light-Subline 4:2:2 10-bit"},
99 {"Main422_10", 4, "Main 4:2:2 10-bit"},
100 {"Main444_12", 5, "Main 4:4:4 12-bit"},
101 {"Main4444_12", 6, "Main 4:4:4:4 12-bit"},
102 {"High444_12", 7, "High 4:4:4 12-bit"},
103 {"High4444_12", 8, "High 4:4:4:4 12-bit"},
104 {"Tdc422_10", 9, "TDC 4:2:2 10-bit"});
105
106 using TypedEnum<JxsProfile>::TypedEnum;
107
108 static const JxsProfile Unspecified;
109 static const JxsProfile Light422_10;
110 static const JxsProfile Light444_12;
111 static const JxsProfile LightSubline422_10;
112 static const JxsProfile Main422_10;
113 static const JxsProfile Main444_12;
114 static const JxsProfile Main4444_12;
115 static const JxsProfile High444_12;
116 static const JxsProfile High4444_12;
117 static const JxsProfile Tdc422_10;
118};
119
120inline const JxsProfile JxsProfile::Unspecified{0};
121inline const JxsProfile JxsProfile::Light422_10{1};
122inline const JxsProfile JxsProfile::Light444_12{2};
123inline const JxsProfile JxsProfile::LightSubline422_10{3};
124inline const JxsProfile JxsProfile::Main422_10{4};
125inline const JxsProfile JxsProfile::Main444_12{5};
126inline const JxsProfile JxsProfile::Main4444_12{6};
127inline const JxsProfile JxsProfile::High444_12{7};
128inline const JxsProfile JxsProfile::High4444_12{8};
129inline const JxsProfile JxsProfile::Tdc422_10{9};
130
138class JxsLevel : public TypedEnum<JxsLevel> {
139 public:
140 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("JxsLevel", "JPEG XS Level", 0,
141 {"Unspecified", 0, "Unspecified"}, {"Lvl1k_1", 1, "1k-1"},
142 {"Lvl2k_1", 2, "2k-1"}, {"Lvl4k_1", 3, "4k-1"}, {"Lvl4k_2", 4, "4k-2"},
143 {"Lvl4k_3", 5, "4k-3"}, {"Lvl8k_1", 6, "8k-1"}, {"Lvl8k_2", 7, "8k-2"},
144 {"Lvl8k_3", 8, "8k-3"}, {"Lvl10k_1", 9, "10k-1"});
145
146 using TypedEnum<JxsLevel>::TypedEnum;
147
148 static const JxsLevel Unspecified;
149 static const JxsLevel Lvl1k_1;
150 static const JxsLevel Lvl2k_1;
151 static const JxsLevel Lvl4k_1;
152 static const JxsLevel Lvl4k_2;
153 static const JxsLevel Lvl4k_3;
154 static const JxsLevel Lvl8k_1;
155 static const JxsLevel Lvl8k_2;
156 static const JxsLevel Lvl8k_3;
157 static const JxsLevel Lvl10k_1;
158};
159
160inline const JxsLevel JxsLevel::Unspecified{0};
161inline const JxsLevel JxsLevel::Lvl1k_1{1};
162inline const JxsLevel JxsLevel::Lvl2k_1{2};
163inline const JxsLevel JxsLevel::Lvl4k_1{3};
164inline const JxsLevel JxsLevel::Lvl4k_2{4};
165inline const JxsLevel JxsLevel::Lvl4k_3{5};
166inline const JxsLevel JxsLevel::Lvl8k_1{6};
167inline const JxsLevel JxsLevel::Lvl8k_2{7};
168inline const JxsLevel JxsLevel::Lvl8k_3{8};
169inline const JxsLevel JxsLevel::Lvl10k_1{9};
170
179class JxsSublevel : public TypedEnum<JxsSublevel> {
180 public:
181 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("JxsSublevel", "JPEG XS Sublevel", 0,
182 {"Unspecified", 0, "Unspecified"}, {"Full", 1, "Full"},
183 {"Sublev3bpp", 2, "Sublevel 3 bpp"}, {"Sublev6bpp", 3, "Sublevel 6 bpp"},
184 {"Sublev9bpp", 4, "Sublevel 9 bpp"}, {"Sublev12bpp", 5, "Sublevel 12 bpp"});
185
186 using TypedEnum<JxsSublevel>::TypedEnum;
187
188 static const JxsSublevel Unspecified;
189 static const JxsSublevel Full;
190 static const JxsSublevel Sublev3bpp;
191 static const JxsSublevel Sublev6bpp;
192 static const JxsSublevel Sublev9bpp;
193 static const JxsSublevel Sublev12bpp;
194};
195
196inline const JxsSublevel JxsSublevel::Unspecified{0};
197inline const JxsSublevel JxsSublevel::Full{1};
198inline const JxsSublevel JxsSublevel::Sublev3bpp{2};
199inline const JxsSublevel JxsSublevel::Sublev6bpp{3};
200inline const JxsSublevel JxsSublevel::Sublev9bpp{4};
201inline const JxsSublevel JxsSublevel::Sublev12bpp{5};
202
205PROMEKI_NAMESPACE_END
206
207#endif // PROMEKI_ENABLE_CORE