11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
16PROMEKI_NAMESPACE_BEGIN
61class VideoPattern :
public TypedEnum<VideoPattern> {
63 PROMEKI_REGISTER_ENUM_TYPE(
"VideoPattern", 0, {
"ColorBars", 0}, {
"ColorBars75", 1}, {
"Ramp", 2},
64 {
"Grid", 3}, {
"Crosshatch", 4}, {
"Checkerboard", 5}, {
"SolidColor", 6},
65 {
"White", 7}, {
"Black", 8}, {
"Noise", 9}, {
"ZonePlate", 10},
66 {
"ColorChecker", 11}, {
"SMPTE219", 12}, {
"AvSync", 13}, {
"MultiBurst", 14},
67 {
"LimitRange", 15}, {
"CircularZone", 16}, {
"Alignment", 17},
68 {
"SDIPathEQ", 18}, {
"SDIPathPLL", 19});
70 using TypedEnum<VideoPattern>::TypedEnum;
72 static const VideoPattern ColorBars;
73 static const VideoPattern ColorBars75;
74 static const VideoPattern Ramp;
75 static const VideoPattern Grid;
76 static const VideoPattern Crosshatch;
77 static const VideoPattern Checkerboard;
78 static const VideoPattern SolidColor;
79 static const VideoPattern White;
80 static const VideoPattern Black;
81 static const VideoPattern Noise;
82 static const VideoPattern ZonePlate;
83 static const VideoPattern ColorChecker;
84 static const VideoPattern SMPTE219;
85 static const VideoPattern AvSync;
86 static const VideoPattern MultiBurst;
87 static const VideoPattern LimitRange;
88 static const VideoPattern CircularZone;
89 static const VideoPattern Alignment;
90 static const VideoPattern SDIPathEQ;
91 static const VideoPattern SDIPathPLL;
94inline const VideoPattern VideoPattern::ColorBars{0};
95inline const VideoPattern VideoPattern::ColorBars75{1};
96inline const VideoPattern VideoPattern::Ramp{2};
97inline const VideoPattern VideoPattern::Grid{3};
98inline const VideoPattern VideoPattern::Crosshatch{4};
99inline const VideoPattern VideoPattern::Checkerboard{5};
100inline const VideoPattern VideoPattern::SolidColor{6};
101inline const VideoPattern VideoPattern::White{7};
102inline const VideoPattern VideoPattern::Black{8};
103inline const VideoPattern VideoPattern::Noise{9};
104inline const VideoPattern VideoPattern::ZonePlate{10};
105inline const VideoPattern VideoPattern::ColorChecker{11};
106inline const VideoPattern VideoPattern::SMPTE219{12};
107inline const VideoPattern VideoPattern::AvSync{13};
108inline const VideoPattern VideoPattern::MultiBurst{14};
109inline const VideoPattern VideoPattern::LimitRange{15};
110inline const VideoPattern VideoPattern::CircularZone{16};
111inline const VideoPattern VideoPattern::Alignment{17};
112inline const VideoPattern VideoPattern::SDIPathEQ{18};
113inline const VideoPattern VideoPattern::SDIPathPLL{19};
122class BurnPosition :
public TypedEnum<BurnPosition> {
124 PROMEKI_REGISTER_ENUM_TYPE(
"BurnPosition", 4, {
"TopLeft", 0}, {
"TopCenter", 1}, {
"TopRight", 2},
125 {
"BottomLeft", 3}, {
"BottomCenter", 4}, {
"BottomRight", 5},
128 using TypedEnum<BurnPosition>::TypedEnum;
130 static const BurnPosition TopLeft;
131 static const BurnPosition TopCenter;
132 static const BurnPosition TopRight;
133 static const BurnPosition BottomLeft;
134 static const BurnPosition BottomCenter;
135 static const BurnPosition BottomRight;
136 static const BurnPosition Center;
139inline const BurnPosition BurnPosition::TopLeft{0};
140inline const BurnPosition BurnPosition::TopCenter{1};
141inline const BurnPosition BurnPosition::TopRight{2};
142inline const BurnPosition BurnPosition::BottomLeft{3};
143inline const BurnPosition BurnPosition::BottomCenter{4};
144inline const BurnPosition BurnPosition::BottomRight{5};
145inline const BurnPosition BurnPosition::Center{6};
156class MediaIOOpenMode :
public TypedEnum<MediaIOOpenMode> {
158 PROMEKI_REGISTER_ENUM_TYPE(
"MediaIOOpenMode", 0, {
"Read", 0}, {
"Write", 1});
160 using TypedEnum<MediaIOOpenMode>::TypedEnum;
162 static const MediaIOOpenMode Read;
163 static const MediaIOOpenMode Write;
166inline const MediaIOOpenMode MediaIOOpenMode::Read{0};
167inline const MediaIOOpenMode MediaIOOpenMode::Write{1};
259class AudioPattern :
public TypedEnum<AudioPattern> {
261 PROMEKI_REGISTER_ENUM_TYPE(
"AudioPattern", 0, {
"Tone", 0}, {
"Silence", 1}, {
"LTC", 2}, {
"AvSync", 3},
262 {
"SrcProbe", 4}, {
"ChannelId", 5}, {
"PcmMarker", 6}, {
"WhiteNoise", 7},
263 {
"PinkNoise", 8}, {
"Chirp", 9}, {
"DualTone", 10}, {
"Sweep", 11},
264 {
"Polarity", 12}, {
"SteppedTone", 13}, {
"Blits", 14}, {
"EbuLineup", 15},
265 {
"Dialnorm", 16}, {
"Iec60958", 17});
267 using TypedEnum<AudioPattern>::TypedEnum;
269 static const AudioPattern Tone;
270 static const AudioPattern Silence;
271 static const AudioPattern LTC;
272 static const AudioPattern AvSync;
273 static const AudioPattern SrcProbe;
274 static const AudioPattern ChannelId;
275 static const AudioPattern PcmMarker;
276 static const AudioPattern WhiteNoise;
277 static const AudioPattern PinkNoise;
278 static const AudioPattern Chirp;
279 static const AudioPattern DualTone;
280 static const AudioPattern Sweep;
281 static const AudioPattern Polarity;
282 static const AudioPattern SteppedTone;
283 static const AudioPattern Blits;
284 static const AudioPattern EbuLineup;
285 static const AudioPattern Dialnorm;
286 static const AudioPattern Iec60958;
289inline const AudioPattern AudioPattern::Tone{0};
290inline const AudioPattern AudioPattern::Silence{1};
291inline const AudioPattern AudioPattern::LTC{2};
292inline const AudioPattern AudioPattern::AvSync{3};
293inline const AudioPattern AudioPattern::SrcProbe{4};
294inline const AudioPattern AudioPattern::ChannelId{5};
295inline const AudioPattern AudioPattern::PcmMarker{6};
296inline const AudioPattern AudioPattern::WhiteNoise{7};
297inline const AudioPattern AudioPattern::PinkNoise{8};
298inline const AudioPattern AudioPattern::Chirp{9};
299inline const AudioPattern AudioPattern::DualTone{10};
300inline const AudioPattern AudioPattern::Sweep{11};
301inline const AudioPattern AudioPattern::Polarity{12};
302inline const AudioPattern AudioPattern::SteppedTone{13};
303inline const AudioPattern AudioPattern::Blits{14};
304inline const AudioPattern AudioPattern::EbuLineup{15};
305inline const AudioPattern AudioPattern::Dialnorm{16};
306inline const AudioPattern AudioPattern::Iec60958{17};
347class AudioMarkerType :
public TypedEnum<AudioMarkerType> {
349 PROMEKI_REGISTER_ENUM_TYPE(
"AudioMarkerType", 0, {
"Unknown", 0}, {
"SilenceFill", 1},
350 {
"ConcealedLoss", 2}, {
"Discontinuity", 3}, {
"Glitch", 4});
352 using TypedEnum<AudioMarkerType>::TypedEnum;
354 static const AudioMarkerType Unknown;
355 static const AudioMarkerType SilenceFill;
356 static const AudioMarkerType ConcealedLoss;
357 static const AudioMarkerType Discontinuity;
358 static const AudioMarkerType Glitch;
361inline const AudioMarkerType AudioMarkerType::Unknown{0};
362inline const AudioMarkerType AudioMarkerType::SilenceFill{1};
363inline const AudioMarkerType AudioMarkerType::ConcealedLoss{2};
364inline const AudioMarkerType AudioMarkerType::Discontinuity{3};
365inline const AudioMarkerType AudioMarkerType::Glitch{4};
374class ChromaSubsampling :
public TypedEnum<ChromaSubsampling> {
376 PROMEKI_REGISTER_ENUM_TYPE(
"ChromaSubsampling", 1, {
"YUV444", 0}, {
"YUV422", 1},
379 using TypedEnum<ChromaSubsampling>::TypedEnum;
381 static const ChromaSubsampling YUV444;
382 static const ChromaSubsampling YUV422;
383 static const ChromaSubsampling YUV420;
386inline const ChromaSubsampling ChromaSubsampling::YUV444{0};
387inline const ChromaSubsampling ChromaSubsampling::YUV422{1};
388inline const ChromaSubsampling ChromaSubsampling::YUV420{2};
404class AudioDataType :
public TypedEnum<AudioDataType> {
406 PROMEKI_REGISTER_ENUM_TYPE(
"AudioDataType", 1, {
"Invalid", 0}, {
"PCMI_Float32LE", 1},
407 {
"PCMI_Float32BE", 2}, {
"PCMI_S8", 3}, {
"PCMI_U8", 4}, {
"PCMI_S16LE", 5},
408 {
"PCMI_U16LE", 6}, {
"PCMI_S16BE", 7}, {
"PCMI_U16BE", 8}, {
"PCMI_S24LE", 9},
409 {
"PCMI_U24LE", 10}, {
"PCMI_S24BE", 11}, {
"PCMI_U24BE", 12},
410 {
"PCMI_S32LE", 13}, {
"PCMI_U32LE", 14}, {
"PCMI_S32BE", 15},
413 using TypedEnum<AudioDataType>::TypedEnum;
415 static const AudioDataType Invalid;
416 static const AudioDataType PCMI_Float32LE;
417 static const AudioDataType PCMI_Float32BE;
418 static const AudioDataType PCMI_S8;
419 static const AudioDataType PCMI_U8;
420 static const AudioDataType PCMI_S16LE;
421 static const AudioDataType PCMI_U16LE;
422 static const AudioDataType PCMI_S16BE;
423 static const AudioDataType PCMI_U16BE;
424 static const AudioDataType PCMI_S24LE;
425 static const AudioDataType PCMI_U24LE;
426 static const AudioDataType PCMI_S24BE;
427 static const AudioDataType PCMI_U24BE;
428 static const AudioDataType PCMI_S32LE;
429 static const AudioDataType PCMI_U32LE;
430 static const AudioDataType PCMI_S32BE;
431 static const AudioDataType PCMI_U32BE;
434inline const AudioDataType AudioDataType::Invalid{0};
435inline const AudioDataType AudioDataType::PCMI_Float32LE{1};
436inline const AudioDataType AudioDataType::PCMI_Float32BE{2};
437inline const AudioDataType AudioDataType::PCMI_S8{3};
438inline const AudioDataType AudioDataType::PCMI_U8{4};
439inline const AudioDataType AudioDataType::PCMI_S16LE{5};
440inline const AudioDataType AudioDataType::PCMI_U16LE{6};
441inline const AudioDataType AudioDataType::PCMI_S16BE{7};
442inline const AudioDataType AudioDataType::PCMI_U16BE{8};
443inline const AudioDataType AudioDataType::PCMI_S24LE{9};
444inline const AudioDataType AudioDataType::PCMI_U24LE{10};
445inline const AudioDataType AudioDataType::PCMI_S24BE{11};
446inline const AudioDataType AudioDataType::PCMI_U24BE{12};
447inline const AudioDataType AudioDataType::PCMI_S32LE{13};
448inline const AudioDataType AudioDataType::PCMI_U32LE{14};
449inline const AudioDataType AudioDataType::PCMI_S32BE{15};
450inline const AudioDataType AudioDataType::PCMI_U32BE{16};
462class CscPath :
public TypedEnum<CscPath> {
464 PROMEKI_REGISTER_ENUM_TYPE(
"CscPath", 0, {
"Optimized", 0}, {
"Scalar", 1});
466 using TypedEnum<CscPath>::TypedEnum;
468 static const CscPath Optimized;
469 static const CscPath Scalar;
472inline const CscPath CscPath::Optimized{0};
473inline const CscPath CscPath::Scalar{1};
490class CscToneMapping :
public TypedEnum<CscToneMapping> {
492 PROMEKI_REGISTER_ENUM_TYPE(
"CscToneMapping", 0, {
"Auto", 0}, {
"Enabled", 1}, {
"Disabled", 2});
494 using TypedEnum<CscToneMapping>::TypedEnum;
496 static const CscToneMapping Auto;
497 static const CscToneMapping Enabled;
498 static const CscToneMapping Disabled;
501inline const CscToneMapping CscToneMapping::Auto{0};
502inline const CscToneMapping CscToneMapping::Enabled{1};
503inline const CscToneMapping CscToneMapping::Disabled{2};
530class CscToneMapOperator :
public TypedEnum<CscToneMapOperator> {
532 PROMEKI_REGISTER_ENUM_TYPE(
"CscToneMapOperator", 0, {
"Bt2390", 0}, {
"Reinhard", 1}, {
"Hable", 2},
533 {
"Aces", 3}, {
"Bt2446a", 4});
535 using TypedEnum<CscToneMapOperator>::TypedEnum;
537 static const CscToneMapOperator Bt2390;
538 static const CscToneMapOperator Reinhard;
539 static const CscToneMapOperator Hable;
540 static const CscToneMapOperator Aces;
541 static const CscToneMapOperator Bt2446a;
544inline const CscToneMapOperator CscToneMapOperator::Bt2390{0};
545inline const CscToneMapOperator CscToneMapOperator::Reinhard{1};
546inline const CscToneMapOperator CscToneMapOperator::Hable{2};
547inline const CscToneMapOperator CscToneMapOperator::Aces{3};
548inline const CscToneMapOperator CscToneMapOperator::Bt2446a{4};
559class QuickTimeLayout :
public TypedEnum<QuickTimeLayout> {
561 PROMEKI_REGISTER_ENUM_TYPE(
"QuickTimeLayout", 1, {
"Classic", 0},
564 using TypedEnum<QuickTimeLayout>::TypedEnum;
566 static const QuickTimeLayout Classic;
567 static const QuickTimeLayout Fragmented;
570inline const QuickTimeLayout QuickTimeLayout::Classic{0};
571inline const QuickTimeLayout QuickTimeLayout::Fragmented{1};
602class RtpPacingMode :
public TypedEnum<RtpPacingMode> {
604 PROMEKI_REGISTER_ENUM_TYPE(
"RtpPacingMode", 4, {
"None", 0}, {
"Userspace", 1}, {
"KernelFq", 2},
605 {
"TxTime", 3}, {
"Auto", 4});
607 using TypedEnum<RtpPacingMode>::TypedEnum;
609 static const RtpPacingMode None;
610 static const RtpPacingMode Userspace;
611 static const RtpPacingMode KernelFq;
612 static const RtpPacingMode TxTime;
613 static const RtpPacingMode Auto;
616inline const RtpPacingMode RtpPacingMode::None{0};
617inline const RtpPacingMode RtpPacingMode::Userspace{1};
618inline const RtpPacingMode RtpPacingMode::KernelFq{2};
619inline const RtpPacingMode RtpPacingMode::TxTime{3};
620inline const RtpPacingMode RtpPacingMode::Auto{4};
645class RtpRefClockMode :
public TypedEnum<RtpRefClockMode> {
647 PROMEKI_REGISTER_ENUM_TYPE(
"RtpRefClockMode", 0, {
"Auto", 0}, {
"LocalMac", 1},
648 {
"Ptp", 2}, {
"None", 3});
650 using TypedEnum<RtpRefClockMode>::TypedEnum;
652 static const RtpRefClockMode Auto;
653 static const RtpRefClockMode LocalMac;
654 static const RtpRefClockMode Ptp;
655 static const RtpRefClockMode None;
658inline const RtpRefClockMode RtpRefClockMode::Auto{0};
659inline const RtpRefClockMode RtpRefClockMode::LocalMac{1};
660inline const RtpRefClockMode RtpRefClockMode::Ptp{2};
661inline const RtpRefClockMode RtpRefClockMode::None{3};
682class MetadataRtpFormat :
public TypedEnum<MetadataRtpFormat> {
684 PROMEKI_REGISTER_ENUM_TYPE(
"MetadataRtpFormat", 0, {
"JsonMetadata", 0},
687 using TypedEnum<MetadataRtpFormat>::TypedEnum;
689 static const MetadataRtpFormat JsonMetadata;
690 static const MetadataRtpFormat St2110_40;
693inline const MetadataRtpFormat MetadataRtpFormat::JsonMetadata{0};
694inline const MetadataRtpFormat MetadataRtpFormat::St2110_40{1};
725class ByteCountStyle :
public TypedEnum<ByteCountStyle> {
727 PROMEKI_REGISTER_ENUM_TYPE(
"ByteCountStyle", 0, {
"Metric", 0}, {
"Binary", 1});
729 using TypedEnum<ByteCountStyle>::TypedEnum;
731 static const ByteCountStyle Metric;
732 static const ByteCountStyle Binary;
735inline const ByteCountStyle ByteCountStyle::Metric{0};
736inline const ByteCountStyle ByteCountStyle::Binary{1};
746class ImgSeqPathMode :
public TypedEnum<ImgSeqPathMode> {
748 PROMEKI_REGISTER_ENUM_TYPE(
"ImgSeqPathMode", 0, {
"Relative", 0}, {
"Absolute", 1});
750 using TypedEnum<ImgSeqPathMode>::TypedEnum;
752 static const ImgSeqPathMode Relative;
753 static const ImgSeqPathMode Absolute;
756inline const ImgSeqPathMode ImgSeqPathMode::Relative{0};
757inline const ImgSeqPathMode ImgSeqPathMode::Absolute{1};
795class TimecodePackFormat :
public TypedEnum<TimecodePackFormat> {
797 PROMEKI_REGISTER_ENUM_TYPE(
"TimecodePackFormat", 0, {
"Vitc", 0}, {
"Ltc", 1});
799 using TypedEnum<TimecodePackFormat>::TypedEnum;
801 static const TimecodePackFormat Vitc;
802 static const TimecodePackFormat Ltc;
805inline const TimecodePackFormat TimecodePackFormat::Vitc{0};
806inline const TimecodePackFormat TimecodePackFormat::Ltc{1};
845class VideoScanMode :
public TypedEnum<VideoScanMode> {
847 PROMEKI_REGISTER_ENUM_TYPE(
"VideoScanMode", 0, {
"Unknown", 0}, {
"Progressive", 1}, {
"Interlaced", 2},
848 {
"InterlacedEvenFirst", 3}, {
"InterlacedOddFirst", 4},
851 using TypedEnum<VideoScanMode>::TypedEnum;
853 static const VideoScanMode Unknown;
854 static const VideoScanMode Progressive;
855 static const VideoScanMode Interlaced;
856 static const VideoScanMode InterlacedEvenFirst;
857 static const VideoScanMode InterlacedOddFirst;
858 static const VideoScanMode PsF;
869 bool isInterlaced()
const {
870 const int v = value();
877inline const VideoScanMode VideoScanMode::Unknown{0};
878inline const VideoScanMode VideoScanMode::Progressive{1};
879inline const VideoScanMode VideoScanMode::Interlaced{2};
880inline const VideoScanMode VideoScanMode::InterlacedEvenFirst{3};
881inline const VideoScanMode VideoScanMode::InterlacedOddFirst{4};
882inline const VideoScanMode VideoScanMode::PsF{5};
903class MediaIODirection :
public TypedEnum<MediaIODirection> {
905 PROMEKI_REGISTER_ENUM_TYPE(
"MediaIODirection", 0, {
"Source", 0}, {
"Sink", 1},
908 using TypedEnum<MediaIODirection>::TypedEnum;
910 static const MediaIODirection Source;
911 static const MediaIODirection Sink;
912 static const MediaIODirection Transform;
915inline const MediaIODirection MediaIODirection::Source{0};
916inline const MediaIODirection MediaIODirection::Sink{1};
917inline const MediaIODirection MediaIODirection::Transform{2};
944class MediaPayloadKind :
public TypedEnum<MediaPayloadKind> {
946 PROMEKI_REGISTER_ENUM_TYPE(
"MediaPayloadKind", 0, {
"Video", 0}, {
"Audio", 1}, {
"Metadata", 2},
947 {
"Subtitle", 3}, {
"AncillaryData", 4}, {
"Custom", 5});
949 using TypedEnum<MediaPayloadKind>::TypedEnum;
951 static const MediaPayloadKind Video;
952 static const MediaPayloadKind Audio;
953 static const MediaPayloadKind Metadata;
954 static const MediaPayloadKind Subtitle;
955 static const MediaPayloadKind AncillaryData;
956 static const MediaPayloadKind Custom;
959inline const MediaPayloadKind MediaPayloadKind::Video{0};
960inline const MediaPayloadKind MediaPayloadKind::Audio{1};
961inline const MediaPayloadKind MediaPayloadKind::Metadata{2};
962inline const MediaPayloadKind MediaPayloadKind::Subtitle{3};
963inline const MediaPayloadKind MediaPayloadKind::AncillaryData{4};
964inline const MediaPayloadKind MediaPayloadKind::Custom{5};
992class FrameType :
public TypedEnum<FrameType> {
994 PROMEKI_REGISTER_ENUM_TYPE(
"FrameType", 0, {
"Unknown", 0}, {
"I", 1}, {
"P", 2}, {
"B", 3}, {
"IDR", 4},
997 using TypedEnum<FrameType>::TypedEnum;
999 static const FrameType Unknown;
1000 static const FrameType I;
1001 static const FrameType P;
1002 static const FrameType B;
1003 static const FrameType IDR;
1004 static const FrameType BRef;
1007inline const FrameType FrameType::Unknown{0};
1008inline const FrameType FrameType::I{1};
1009inline const FrameType FrameType::P{2};
1010inline const FrameType FrameType::B{3};
1011inline const FrameType FrameType::IDR{4};
1012inline const FrameType FrameType::BRef{5};
1032class AudioSourceHint :
public TypedEnum<AudioSourceHint> {
1034 PROMEKI_REGISTER_ENUM_TYPE(
"AudioSourceHint", 0, {
"Sidecar", 0}, {
"Embedded", 1});
1036 using TypedEnum<AudioSourceHint>::TypedEnum;
1038 static const AudioSourceHint Sidecar;
1039 static const AudioSourceHint Embedded;
1042inline const AudioSourceHint AudioSourceHint::Sidecar{0};
1043inline const AudioSourceHint AudioSourceHint::Embedded{1};
1050class V4l2PowerLineMode :
public TypedEnum<V4l2PowerLineMode> {
1052 PROMEKI_REGISTER_ENUM_TYPE(
"V4l2PowerLineMode", 3, {
"Disabled", 0}, {
"50Hz", 1}, {
"60Hz", 2},
1055 using TypedEnum<V4l2PowerLineMode>::TypedEnum;
1057 static const V4l2PowerLineMode Disabled;
1058 static const V4l2PowerLineMode Hz50;
1059 static const V4l2PowerLineMode Hz60;
1060 static const V4l2PowerLineMode Auto;
1063inline const V4l2PowerLineMode V4l2PowerLineMode::Disabled{0};
1064inline const V4l2PowerLineMode V4l2PowerLineMode::Hz50{1};
1065inline const V4l2PowerLineMode V4l2PowerLineMode::Hz60{2};
1066inline const V4l2PowerLineMode V4l2PowerLineMode::Auto{3};
1073class V4l2ExposureMode :
public TypedEnum<V4l2ExposureMode> {
1075 PROMEKI_REGISTER_ENUM_TYPE(
"V4l2ExposureMode", 3, {
"Auto", 0}, {
"Manual", 1}, {
"ShutterPriority", 2},
1076 {
"AperturePriority", 3});
1078 using TypedEnum<V4l2ExposureMode>::TypedEnum;
1080 static const V4l2ExposureMode Auto;
1081 static const V4l2ExposureMode Manual;
1082 static const V4l2ExposureMode ShutterPriority;
1083 static const V4l2ExposureMode AperturePriority;
1086inline const V4l2ExposureMode V4l2ExposureMode::Auto{0};
1087inline const V4l2ExposureMode V4l2ExposureMode::Manual{1};
1088inline const V4l2ExposureMode V4l2ExposureMode::ShutterPriority{2};
1089inline const V4l2ExposureMode V4l2ExposureMode::AperturePriority{3};
1113class SrcQuality :
public TypedEnum<SrcQuality> {
1115 PROMEKI_REGISTER_ENUM_TYPE(
"SrcQuality", 1, {
"SincBest", 0}, {
"SincMedium", 1}, {
"SincFastest", 2},
1116 {
"Linear", 3}, {
"ZeroOrderHold", 4});
1118 using TypedEnum<SrcQuality>::TypedEnum;
1120 static const SrcQuality SincBest;
1121 static const SrcQuality SincMedium;
1122 static const SrcQuality SincFastest;
1123 static const SrcQuality Linear;
1124 static const SrcQuality ZeroOrderHold;
1127inline const SrcQuality SrcQuality::SincBest{0};
1128inline const SrcQuality SrcQuality::SincMedium{1};
1129inline const SrcQuality SrcQuality::SincFastest{2};
1130inline const SrcQuality SrcQuality::Linear{3};
1131inline const SrcQuality SrcQuality::ZeroOrderHold{4};
1150class ClockEpoch :
public TypedEnum<ClockEpoch> {
1152 PROMEKI_REGISTER_ENUM_TYPE(
"ClockEpoch", 1, {
"PerStream", 0}, {
"Correlated", 1},
1155 using TypedEnum<ClockEpoch>::TypedEnum;
1157 static const ClockEpoch PerStream;
1158 static const ClockEpoch Correlated;
1159 static const ClockEpoch Absolute;
1162inline const ClockEpoch ClockEpoch::PerStream{0};
1163inline const ClockEpoch ClockEpoch::Correlated{1};
1164inline const ClockEpoch ClockEpoch::Absolute{2};
1176class EUI64Format :
public TypedEnum<EUI64Format> {
1178 PROMEKI_REGISTER_ENUM_TYPE(
"EUI64Format", 0, {
"OctetHyphen", 0}, {
"OctetColon", 1},
1181 using TypedEnum<EUI64Format>::TypedEnum;
1183 static const EUI64Format OctetHyphen;
1184 static const EUI64Format OctetColon;
1185 static const EUI64Format IPv6;
1188inline const EUI64Format EUI64Format::OctetHyphen{0};
1189inline const EUI64Format EUI64Format::OctetColon{1};
1190inline const EUI64Format EUI64Format::IPv6{2};
1229class InspectorTest :
public TypedEnum<InspectorTest> {
1231 PROMEKI_REGISTER_ENUM_TYPE(
"InspectorTest", 0, {
"ImageData", 0}, {
"Ltc", 1}, {
"AvSync", 2},
1232 {
"Continuity", 3}, {
"Timestamp", 4}, {
"AudioSamples", 5},
1233 {
"CaptureStats", 6}, {
"AudioData", 7}, {
"AncData", 8});
1235 using TypedEnum<InspectorTest>::TypedEnum;
1237 static const InspectorTest ImageData;
1238 static const InspectorTest Ltc;
1239 static const InspectorTest AvSync;
1240 static const InspectorTest Continuity;
1241 static const InspectorTest Timestamp;
1242 static const InspectorTest AudioSamples;
1243 static const InspectorTest CaptureStats;
1244 static const InspectorTest AudioData;
1245 static const InspectorTest AncData;
1248inline const InspectorTest InspectorTest::ImageData{0};
1249inline const InspectorTest InspectorTest::Ltc{1};
1250inline const InspectorTest InspectorTest::AvSync{2};
1251inline const InspectorTest InspectorTest::Continuity{3};
1252inline const InspectorTest InspectorTest::Timestamp{4};
1253inline const InspectorTest InspectorTest::AudioSamples{5};
1254inline const InspectorTest InspectorTest::CaptureStats{6};
1255inline const InspectorTest InspectorTest::AudioData{7};
1256inline const InspectorTest InspectorTest::AncData{8};
1282class RateControlMode :
public TypedEnum<RateControlMode> {
1284 PROMEKI_REGISTER_ENUM_TYPE(
"RateControlMode", 1, {
"CBR", 0}, {
"VBR", 1}, {
"ABR", 2},
1287 using TypedEnum<RateControlMode>::TypedEnum;
1289 static const RateControlMode CBR;
1290 static const RateControlMode VBR;
1291 static const RateControlMode ABR;
1292 static const RateControlMode CQP;
1295inline const RateControlMode RateControlMode::CBR{0};
1296inline const RateControlMode RateControlMode::VBR{1};
1297inline const RateControlMode RateControlMode::ABR{2};
1298inline const RateControlMode RateControlMode::CQP{3};
1320class VideoEncoderPreset :
public TypedEnum<VideoEncoderPreset> {
1322 PROMEKI_REGISTER_ENUM_TYPE(
"VideoEncoderPreset", 2, {
"UltraLowLatency", 0}, {
"LowLatency", 1},
1323 {
"Balanced", 2}, {
"HighQuality", 3}, {
"Lossless", 4});
1325 using TypedEnum<VideoEncoderPreset>::TypedEnum;
1327 static const VideoEncoderPreset UltraLowLatency;
1328 static const VideoEncoderPreset LowLatency;
1329 static const VideoEncoderPreset Balanced;
1330 static const VideoEncoderPreset HighQuality;
1331 static const VideoEncoderPreset Lossless;
1334inline const VideoEncoderPreset VideoEncoderPreset::UltraLowLatency{0};
1335inline const VideoEncoderPreset VideoEncoderPreset::LowLatency{1};
1336inline const VideoEncoderPreset VideoEncoderPreset::Balanced{2};
1337inline const VideoEncoderPreset VideoEncoderPreset::HighQuality{3};
1338inline const VideoEncoderPreset VideoEncoderPreset::Lossless{4};
1359class OpusApplication :
public TypedEnum<OpusApplication> {
1361 PROMEKI_REGISTER_ENUM_TYPE(
"OpusApplication", 1, {
"Voip", 0}, {
"Audio", 1},
1364 using TypedEnum<OpusApplication>::TypedEnum;
1366 static const OpusApplication Voip;
1367 static const OpusApplication Audio;
1368 static const OpusApplication LowDelay;
1371inline const OpusApplication OpusApplication::Voip{0};
1372inline const OpusApplication OpusApplication::Audio{1};
1373inline const OpusApplication OpusApplication::LowDelay{2};
1393class VideoRange :
public TypedEnum<VideoRange> {
1395 PROMEKI_REGISTER_ENUM_TYPE(
"VideoRange", 0, {
"Unknown", 0}, {
"Limited", 1},
1398 using TypedEnum<VideoRange>::TypedEnum;
1400 static const VideoRange Unknown;
1401 static const VideoRange Limited;
1402 static const VideoRange Full;
1405inline const VideoRange VideoRange::Unknown{0};
1406inline const VideoRange VideoRange::Limited{1};
1407inline const VideoRange VideoRange::Full{2};
1421class ColorPrimaries :
public TypedEnum<ColorPrimaries> {
1428 PROMEKI_REGISTER_ENUM_TYPE(
"ColorPrimaries", 255, {
"BT709", 1}, {
"Unspecified", 2}, {
"BT470M", 4},
1429 {
"BT470BG", 5}, {
"SMPTE170M", 6}, {
"SMPTE240M", 7}, {
"Film", 8},
1430 {
"BT2020", 9}, {
"SMPTE428", 10}, {
"SMPTE431", 11}, {
"SMPTE432", 12},
1431 {
"JEDEC_P22", 22}, {
"Auto", 255});
1433 using TypedEnum<ColorPrimaries>::TypedEnum;
1435 static const ColorPrimaries Auto;
1436 static const ColorPrimaries Unspecified;
1437 static const ColorPrimaries BT709;
1438 static const ColorPrimaries BT470M;
1439 static const ColorPrimaries BT470BG;
1440 static const ColorPrimaries SMPTE170M;
1441 static const ColorPrimaries SMPTE240M;
1442 static const ColorPrimaries Film;
1443 static const ColorPrimaries BT2020;
1444 static const ColorPrimaries SMPTE428;
1445 static const ColorPrimaries SMPTE431;
1446 static const ColorPrimaries SMPTE432;
1447 static const ColorPrimaries JEDEC_P22;
1450inline const ColorPrimaries ColorPrimaries::Auto{255};
1451inline const ColorPrimaries ColorPrimaries::Unspecified{2};
1452inline const ColorPrimaries ColorPrimaries::BT709{1};
1453inline const ColorPrimaries ColorPrimaries::BT470M{4};
1454inline const ColorPrimaries ColorPrimaries::BT470BG{5};
1455inline const ColorPrimaries ColorPrimaries::SMPTE170M{6};
1456inline const ColorPrimaries ColorPrimaries::SMPTE240M{7};
1457inline const ColorPrimaries ColorPrimaries::Film{8};
1458inline const ColorPrimaries ColorPrimaries::BT2020{9};
1459inline const ColorPrimaries ColorPrimaries::SMPTE428{10};
1460inline const ColorPrimaries ColorPrimaries::SMPTE431{11};
1461inline const ColorPrimaries ColorPrimaries::SMPTE432{12};
1462inline const ColorPrimaries ColorPrimaries::JEDEC_P22{22};
1473class TransferCharacteristics :
public TypedEnum<TransferCharacteristics> {
1483 PROMEKI_REGISTER_ENUM_TYPE(
"TransferCharacteristics", 255, {
"BT709", 1}, {
"Unspecified", 2},
1484 {
"Gamma22", 4}, {
"Gamma28", 5}, {
"SMPTE170M", 6}, {
"SMPTE240M", 7},
1485 {
"Linear", 8}, {
"Log", 9}, {
"LogSqrt", 10}, {
"IEC61966_2_4", 11},
1486 {
"BT1361", 12}, {
"SRGB", 13}, {
"BT2020_10", 14}, {
"BT2020_12", 15},
1487 {
"SMPTE2084", 16}, {
"SMPTE428", 17}, {
"ARIB_STD_B67", 18},
1490 using TypedEnum<TransferCharacteristics>::TypedEnum;
1492 static const TransferCharacteristics Auto;
1493 static const TransferCharacteristics Unspecified;
1494 static const TransferCharacteristics BT709;
1495 static const TransferCharacteristics Gamma22;
1496 static const TransferCharacteristics Gamma28;
1497 static const TransferCharacteristics SMPTE170M;
1498 static const TransferCharacteristics SMPTE240M;
1499 static const TransferCharacteristics Linear;
1500 static const TransferCharacteristics Log;
1501 static const TransferCharacteristics LogSqrt;
1502 static const TransferCharacteristics IEC61966_2_4;
1503 static const TransferCharacteristics BT1361;
1504 static const TransferCharacteristics SRGB;
1505 static const TransferCharacteristics BT2020_10;
1506 static const TransferCharacteristics BT2020_12;
1507 static const TransferCharacteristics SMPTE2084;
1508 static const TransferCharacteristics SMPTE428;
1509 static const TransferCharacteristics ARIB_STD_B67;
1512inline const TransferCharacteristics TransferCharacteristics::Auto{255};
1513inline const TransferCharacteristics TransferCharacteristics::Unspecified{2};
1514inline const TransferCharacteristics TransferCharacteristics::BT709{1};
1515inline const TransferCharacteristics TransferCharacteristics::Gamma22{4};
1516inline const TransferCharacteristics TransferCharacteristics::Gamma28{5};
1517inline const TransferCharacteristics TransferCharacteristics::SMPTE170M{6};
1518inline const TransferCharacteristics TransferCharacteristics::SMPTE240M{7};
1519inline const TransferCharacteristics TransferCharacteristics::Linear{8};
1520inline const TransferCharacteristics TransferCharacteristics::Log{9};
1521inline const TransferCharacteristics TransferCharacteristics::LogSqrt{10};
1522inline const TransferCharacteristics TransferCharacteristics::IEC61966_2_4{11};
1523inline const TransferCharacteristics TransferCharacteristics::BT1361{12};
1524inline const TransferCharacteristics TransferCharacteristics::SRGB{13};
1525inline const TransferCharacteristics TransferCharacteristics::BT2020_10{14};
1526inline const TransferCharacteristics TransferCharacteristics::BT2020_12{15};
1527inline const TransferCharacteristics TransferCharacteristics::SMPTE2084{16};
1528inline const TransferCharacteristics TransferCharacteristics::SMPTE428{17};
1529inline const TransferCharacteristics TransferCharacteristics::ARIB_STD_B67{18};
1539class MatrixCoefficients :
public TypedEnum<MatrixCoefficients> {
1546 PROMEKI_REGISTER_ENUM_TYPE(
"MatrixCoefficients", 255, {
"RGB", 0}, {
"BT709", 1}, {
"Unspecified", 2},
1547 {
"FCC", 4}, {
"BT470BG", 5}, {
"SMPTE170M", 6}, {
"SMPTE240M", 7}, {
"YCgCo", 8},
1548 {
"BT2020_NCL", 9}, {
"BT2020_CL", 10}, {
"SMPTE2085", 11},
1551 using TypedEnum<MatrixCoefficients>::TypedEnum;
1553 static const MatrixCoefficients Auto;
1554 static const MatrixCoefficients Unspecified;
1555 static const MatrixCoefficients RGB;
1556 static const MatrixCoefficients BT709;
1557 static const MatrixCoefficients FCC;
1558 static const MatrixCoefficients BT470BG;
1559 static const MatrixCoefficients SMPTE170M;
1560 static const MatrixCoefficients SMPTE240M;
1561 static const MatrixCoefficients YCgCo;
1562 static const MatrixCoefficients BT2020_NCL;
1563 static const MatrixCoefficients BT2020_CL;
1564 static const MatrixCoefficients SMPTE2085;
1567inline const MatrixCoefficients MatrixCoefficients::Auto{255};
1568inline const MatrixCoefficients MatrixCoefficients::Unspecified{2};
1569inline const MatrixCoefficients MatrixCoefficients::RGB{0};
1570inline const MatrixCoefficients MatrixCoefficients::BT709{1};
1571inline const MatrixCoefficients MatrixCoefficients::FCC{4};
1572inline const MatrixCoefficients MatrixCoefficients::BT470BG{5};
1573inline const MatrixCoefficients MatrixCoefficients::SMPTE170M{6};
1574inline const MatrixCoefficients MatrixCoefficients::SMPTE240M{7};
1575inline const MatrixCoefficients MatrixCoefficients::YCgCo{8};
1576inline const MatrixCoefficients MatrixCoefficients::BT2020_NCL{9};
1577inline const MatrixCoefficients MatrixCoefficients::BT2020_CL{10};
1578inline const MatrixCoefficients MatrixCoefficients::SMPTE2085{11};
1595class NullPacingMode :
public TypedEnum<NullPacingMode> {
1597 PROMEKI_REGISTER_ENUM_TYPE(
"NullPacingMode", 0, {
"Wallclock", 0}, {
"Free", 1});
1599 using TypedEnum<NullPacingMode>::TypedEnum;
1601 static const NullPacingMode Wallclock;
1602 static const NullPacingMode Free;
1605inline const NullPacingMode NullPacingMode::Wallclock{0};
1606inline const NullPacingMode NullPacingMode::Free{1};
1651class ChannelRole :
public TypedEnum<ChannelRole> {
1653 PROMEKI_REGISTER_ENUM_TYPE(
"ChannelRole", 0, {
"Unused", 0}, {
"Mono", 1}, {
"FrontLeft", 2},
1654 {
"FrontRight", 3}, {
"FrontCenter", 4}, {
"LFE", 5}, {
"BackLeft", 6},
1655 {
"BackRight", 7}, {
"BackCenter", 8}, {
"SideLeft", 9}, {
"SideRight", 10},
1656 {
"FrontLeftOfCenter", 11}, {
"FrontRightOfCenter", 12}, {
"TopFrontLeft", 13},
1657 {
"TopFrontCenter", 14}, {
"TopFrontRight", 15}, {
"TopBackLeft", 16},
1658 {
"TopBackCenter", 17}, {
"TopBackRight", 18}, {
"TopCenter", 19},
1659 {
"AmbisonicW", 20}, {
"AmbisonicX", 21}, {
"AmbisonicY", 22},
1660 {
"AmbisonicZ", 23}, {
"Aux0", 24}, {
"Aux1", 25}, {
"Aux2", 26}, {
"Aux3", 27},
1661 {
"Aux4", 28}, {
"Aux5", 29}, {
"Aux6", 30}, {
"Aux7", 31});
1663 using TypedEnum<ChannelRole>::TypedEnum;
1665 static const ChannelRole Unused;
1666 static const ChannelRole Mono;
1667 static const ChannelRole FrontLeft;
1668 static const ChannelRole FrontRight;
1669 static const ChannelRole FrontCenter;
1670 static const ChannelRole LFE;
1671 static const ChannelRole BackLeft;
1672 static const ChannelRole BackRight;
1673 static const ChannelRole BackCenter;
1674 static const ChannelRole SideLeft;
1675 static const ChannelRole SideRight;
1676 static const ChannelRole FrontLeftOfCenter;
1677 static const ChannelRole FrontRightOfCenter;
1678 static const ChannelRole TopFrontLeft;
1679 static const ChannelRole TopFrontCenter;
1680 static const ChannelRole TopFrontRight;
1681 static const ChannelRole TopBackLeft;
1682 static const ChannelRole TopBackCenter;
1683 static const ChannelRole TopBackRight;
1684 static const ChannelRole TopCenter;
1685 static const ChannelRole AmbisonicW;
1686 static const ChannelRole AmbisonicX;
1687 static const ChannelRole AmbisonicY;
1688 static const ChannelRole AmbisonicZ;
1689 static const ChannelRole Aux0;
1690 static const ChannelRole Aux1;
1691 static const ChannelRole Aux2;
1692 static const ChannelRole Aux3;
1693 static const ChannelRole Aux4;
1694 static const ChannelRole Aux5;
1695 static const ChannelRole Aux6;
1696 static const ChannelRole Aux7;
1699inline const ChannelRole ChannelRole::Unused{0};
1700inline const ChannelRole ChannelRole::Mono{1};
1701inline const ChannelRole ChannelRole::FrontLeft{2};
1702inline const ChannelRole ChannelRole::FrontRight{3};
1703inline const ChannelRole ChannelRole::FrontCenter{4};
1704inline const ChannelRole ChannelRole::LFE{5};
1705inline const ChannelRole ChannelRole::BackLeft{6};
1706inline const ChannelRole ChannelRole::BackRight{7};
1707inline const ChannelRole ChannelRole::BackCenter{8};
1708inline const ChannelRole ChannelRole::SideLeft{9};
1709inline const ChannelRole ChannelRole::SideRight{10};
1710inline const ChannelRole ChannelRole::FrontLeftOfCenter{11};
1711inline const ChannelRole ChannelRole::FrontRightOfCenter{12};
1712inline const ChannelRole ChannelRole::TopFrontLeft{13};
1713inline const ChannelRole ChannelRole::TopFrontCenter{14};
1714inline const ChannelRole ChannelRole::TopFrontRight{15};
1715inline const ChannelRole ChannelRole::TopBackLeft{16};
1716inline const ChannelRole ChannelRole::TopBackCenter{17};
1717inline const ChannelRole ChannelRole::TopBackRight{18};
1718inline const ChannelRole ChannelRole::TopCenter{19};
1719inline const ChannelRole ChannelRole::AmbisonicW{20};
1720inline const ChannelRole ChannelRole::AmbisonicX{21};
1721inline const ChannelRole ChannelRole::AmbisonicY{22};
1722inline const ChannelRole ChannelRole::AmbisonicZ{23};
1723inline const ChannelRole ChannelRole::Aux0{24};
1724inline const ChannelRole ChannelRole::Aux1{25};
1725inline const ChannelRole ChannelRole::Aux2{26};
1726inline const ChannelRole ChannelRole::Aux3{27};
1727inline const ChannelRole ChannelRole::Aux4{28};
1728inline const ChannelRole ChannelRole::Aux5{29};
1729inline const ChannelRole ChannelRole::Aux6{30};
1730inline const ChannelRole ChannelRole::Aux7{31};
1746class NdiBandwidth :
public TypedEnum<NdiBandwidth> {
1748 PROMEKI_REGISTER_ENUM_TYPE(
"NdiBandwidth", 0, {
"Highest", 0}, {
"Lowest", 1}, {
"AudioOnly", 2},
1749 {
"MetadataOnly", 3});
1751 using TypedEnum<NdiBandwidth>::TypedEnum;
1753 static const NdiBandwidth Highest;
1754 static const NdiBandwidth Lowest;
1755 static const NdiBandwidth AudioOnly;
1756 static const NdiBandwidth MetadataOnly;
1759inline const NdiBandwidth NdiBandwidth::Highest{0};
1760inline const NdiBandwidth NdiBandwidth::Lowest{1};
1761inline const NdiBandwidth NdiBandwidth::AudioOnly{2};
1762inline const NdiBandwidth NdiBandwidth::MetadataOnly{3};
1788class NdiColorFormat :
public TypedEnum<NdiColorFormat> {
1790 PROMEKI_REGISTER_ENUM_TYPE(
"NdiColorFormat", 0, {
"Best", 0}, {
"Fastest", 1}, {
"UyvyBgra", 2},
1791 {
"UyvyRgba", 3}, {
"BgrxBgra", 4},
1794 using TypedEnum<NdiColorFormat>::TypedEnum;
1796 static const NdiColorFormat Best;
1797 static const NdiColorFormat Fastest;
1798 static const NdiColorFormat UyvyBgra;
1799 static const NdiColorFormat UyvyRgba;
1800 static const NdiColorFormat BgrxBgra;
1801 static const NdiColorFormat RgbxRgba;
1804inline const NdiColorFormat NdiColorFormat::Best{0};
1805inline const NdiColorFormat NdiColorFormat::Fastest{1};
1806inline const NdiColorFormat NdiColorFormat::UyvyBgra{2};
1807inline const NdiColorFormat NdiColorFormat::UyvyRgba{3};
1808inline const NdiColorFormat NdiColorFormat::BgrxBgra{4};
1809inline const NdiColorFormat NdiColorFormat::RgbxRgba{5};
1832class NdiReceiveBitDepth :
public TypedEnum<NdiReceiveBitDepth> {
1834 PROMEKI_REGISTER_ENUM_TYPE(
"NdiReceiveBitDepth", 0, {
"Auto", 0}, {
"Bits10", 10}, {
"Bits12", 12},
1837 using TypedEnum<NdiReceiveBitDepth>::TypedEnum;
1839 static const NdiReceiveBitDepth Auto;
1840 static const NdiReceiveBitDepth Bits10;
1841 static const NdiReceiveBitDepth Bits12;
1842 static const NdiReceiveBitDepth Bits16;
1845inline const NdiReceiveBitDepth NdiReceiveBitDepth::Auto{0};
1846inline const NdiReceiveBitDepth NdiReceiveBitDepth::Bits10{10};
1847inline const NdiReceiveBitDepth NdiReceiveBitDepth::Bits12{12};
1848inline const NdiReceiveBitDepth NdiReceiveBitDepth::Bits16{16};
1870class NetworkInterfaceKind :
public TypedEnum<NetworkInterfaceKind> {
1872 PROMEKI_REGISTER_ENUM_TYPE(
"NetworkInterfaceKind", 0, {
"Unknown", 0}, {
"Ethernet", 1}, {
"Wifi", 2},
1873 {
"Loopback", 3}, {
"Tunnel", 4}, {
"Bridge", 5}, {
"Vlan", 6}, {
"Virtual", 7},
1874 {
"Cellular", 8}, {
"PointToPoint", 9});
1876 using TypedEnum<NetworkInterfaceKind>::TypedEnum;
1878 static const NetworkInterfaceKind Unknown;
1879 static const NetworkInterfaceKind Ethernet;
1880 static const NetworkInterfaceKind Wifi;
1881 static const NetworkInterfaceKind Loopback;
1882 static const NetworkInterfaceKind Tunnel;
1883 static const NetworkInterfaceKind Bridge;
1884 static const NetworkInterfaceKind Vlan;
1885 static const NetworkInterfaceKind Virtual;
1886 static const NetworkInterfaceKind Cellular;
1887 static const NetworkInterfaceKind PointToPoint;
1890inline const NetworkInterfaceKind NetworkInterfaceKind::Unknown{0};
1891inline const NetworkInterfaceKind NetworkInterfaceKind::Ethernet{1};
1892inline const NetworkInterfaceKind NetworkInterfaceKind::Wifi{2};
1893inline const NetworkInterfaceKind NetworkInterfaceKind::Loopback{3};
1894inline const NetworkInterfaceKind NetworkInterfaceKind::Tunnel{4};
1895inline const NetworkInterfaceKind NetworkInterfaceKind::Bridge{5};
1896inline const NetworkInterfaceKind NetworkInterfaceKind::Vlan{6};
1897inline const NetworkInterfaceKind NetworkInterfaceKind::Virtual{7};
1898inline const NetworkInterfaceKind NetworkInterfaceKind::Cellular{8};
1899inline const NetworkInterfaceKind NetworkInterfaceKind::PointToPoint{9};
1910class RtmpRole :
public TypedEnum<RtmpRole> {
1912 PROMEKI_REGISTER_ENUM_TYPE(
"RtmpRole", 0, {
"Client", 0}, {
"Server", 1});
1914 using TypedEnum<RtmpRole>::TypedEnum;
1916 static const RtmpRole Client;
1917 static const RtmpRole Server;
1920inline const RtmpRole RtmpRole::Client{0};
1921inline const RtmpRole RtmpRole::Server{1};
1940class RtmpHandshakeMode :
public TypedEnum<RtmpHandshakeMode> {
1942 PROMEKI_REGISTER_ENUM_TYPE(
"RtmpHandshakeMode", 0, {
"Auto", 0}, {
"Simple", 1},
1945 using TypedEnum<RtmpHandshakeMode>::TypedEnum;
1947 static const RtmpHandshakeMode Auto;
1948 static const RtmpHandshakeMode Simple;
1949 static const RtmpHandshakeMode Complex;
1952inline const RtmpHandshakeMode RtmpHandshakeMode::Auto{0};
1953inline const RtmpHandshakeMode RtmpHandshakeMode::Simple{1};
1954inline const RtmpHandshakeMode RtmpHandshakeMode::Complex{2};
1987class RtmpVideoPacing :
public TypedEnum<RtmpVideoPacing> {
1989 PROMEKI_REGISTER_ENUM_TYPE(
"RtmpVideoPacing", 0, {
"Internal", 0}, {
"External", 1},
1992 using TypedEnum<RtmpVideoPacing>::TypedEnum;
1994 static const RtmpVideoPacing Internal;
1995 static const RtmpVideoPacing External;
1996 static const RtmpVideoPacing None;
1999inline const RtmpVideoPacing RtmpVideoPacing::Internal{0};
2000inline const RtmpVideoPacing RtmpVideoPacing::External{1};
2001inline const RtmpVideoPacing RtmpVideoPacing::None{2};
2035class AncCategory :
public TypedEnum<AncCategory> {
2037 PROMEKI_REGISTER_ENUM_TYPE(
"AncCategory", 0, {
"Unknown", 0}, {
"Captions", 1}, {
"Timecode", 2},
2038 {
"Splice", 3}, {
"Aspect", 4}, {
"Hdr", 5}, {
"AudioMetadata", 6},
2039 {
"Display", 7}, {
"Geolocation", 8}, {
"PayloadId", 9},
2040 {
"UserDefined", 10}, {
"Subtitles", 11}, {
"Klv", 12}, {
"Sei", 13},
2041 {
"Vbi", 14}, {
"Control", 15});
2043 using TypedEnum<AncCategory>::TypedEnum;
2045 static const AncCategory Unknown;
2046 static const AncCategory Captions;
2047 static const AncCategory Timecode;
2048 static const AncCategory Splice;
2049 static const AncCategory Aspect;
2050 static const AncCategory Hdr;
2051 static const AncCategory AudioMetadata;
2052 static const AncCategory Display;
2053 static const AncCategory Geolocation;
2054 static const AncCategory PayloadId;
2055 static const AncCategory UserDefined;
2056 static const AncCategory Subtitles;
2057 static const AncCategory Klv;
2058 static const AncCategory Sei;
2059 static const AncCategory Vbi;
2066 static const AncCategory Control;
2069inline const AncCategory AncCategory::Unknown{0};
2070inline const AncCategory AncCategory::Captions{1};
2071inline const AncCategory AncCategory::Timecode{2};
2072inline const AncCategory AncCategory::Splice{3};
2073inline const AncCategory AncCategory::Aspect{4};
2074inline const AncCategory AncCategory::Hdr{5};
2075inline const AncCategory AncCategory::AudioMetadata{6};
2076inline const AncCategory AncCategory::Display{7};
2077inline const AncCategory AncCategory::Geolocation{8};
2078inline const AncCategory AncCategory::PayloadId{9};
2079inline const AncCategory AncCategory::UserDefined{10};
2080inline const AncCategory AncCategory::Subtitles{11};
2081inline const AncCategory AncCategory::Klv{12};
2082inline const AncCategory AncCategory::Sei{13};
2083inline const AncCategory AncCategory::Vbi{14};
2084inline const AncCategory AncCategory::Control{15};
2111class AncTransport :
public TypedEnum<AncTransport> {
2113 PROMEKI_REGISTER_ENUM_TYPE(
"AncTransport", 0, {
"Invalid", 0}, {
"St291", 1}, {
"NdiXml", 2},
2114 {
"RtmpAmf", 3}, {
"HdmiInfoFrame", 4}, {
"MpegTsPrivate", 5},
2117 using TypedEnum<AncTransport>::TypedEnum;
2119 static const AncTransport Invalid;
2120 static const AncTransport St291;
2121 static const AncTransport NdiXml;
2122 static const AncTransport RtmpAmf;
2123 static const AncTransport HdmiInfoFrame;
2124 static const AncTransport MpegTsPrivate;
2125 static const AncTransport HlsSei;
2128inline const AncTransport AncTransport::Invalid{0};
2129inline const AncTransport AncTransport::St291{1};
2130inline const AncTransport AncTransport::NdiXml{2};
2131inline const AncTransport AncTransport::RtmpAmf{3};
2132inline const AncTransport AncTransport::HdmiInfoFrame{4};
2133inline const AncTransport AncTransport::MpegTsPrivate{5};
2134inline const AncTransport AncTransport::HlsSei{6};
2149class AncFidelity :
public TypedEnum<AncFidelity> {
2151 PROMEKI_REGISTER_ENUM_TYPE(
"AncFidelity", 0, {
"Default", 0}, {
"Strict", 1},
2154 using TypedEnum<AncFidelity>::TypedEnum;
2156 static const AncFidelity Default;
2157 static const AncFidelity Strict;
2158 static const AncFidelity Full;
2161inline const AncFidelity AncFidelity::Default{0};
2162inline const AncFidelity AncFidelity::Strict{1};
2163inline const AncFidelity AncFidelity::Full{2};
2180class AncChecksumPolicy :
public TypedEnum<AncChecksumPolicy> {
2182 PROMEKI_REGISTER_ENUM_TYPE(
"AncChecksumPolicy", 0, {
"PreserveOrRecompute", 0}, {
"AlwaysRecompute", 1},
2183 {
"StrictValidate", 2});
2185 using TypedEnum<AncChecksumPolicy>::TypedEnum;
2187 static const AncChecksumPolicy PreserveOrRecompute;
2188 static const AncChecksumPolicy AlwaysRecompute;
2189 static const AncChecksumPolicy StrictValidate;
2192inline const AncChecksumPolicy AncChecksumPolicy::PreserveOrRecompute{0};
2193inline const AncChecksumPolicy AncChecksumPolicy::AlwaysRecompute{1};
2194inline const AncChecksumPolicy AncChecksumPolicy::StrictValidate{2};
2210class AncOnUnsupported :
public TypedEnum<AncOnUnsupported> {
2212 PROMEKI_REGISTER_ENUM_TYPE(
"AncOnUnsupported", 1, {
"Skip", 0}, {
"BestEffort", 1},
2215 using TypedEnum<AncOnUnsupported>::TypedEnum;
2217 static const AncOnUnsupported Skip;
2218 static const AncOnUnsupported BestEffort;
2219 static const AncOnUnsupported Fail;
2222inline const AncOnUnsupported AncOnUnsupported::Skip{0};
2223inline const AncOnUnsupported AncOnUnsupported::BestEffort{1};
2224inline const AncOnUnsupported AncOnUnsupported::Fail{2};
2245class SubtitleAnchor :
public TypedEnum<SubtitleAnchor> {
2247 PROMEKI_REGISTER_ENUM_TYPE(
"SubtitleAnchor", 0, {
"Default", 0}, {
"BottomLeft", 1},
2248 {
"BottomCenter", 2}, {
"BottomRight", 3}, {
"MiddleLeft", 4},
2249 {
"MiddleCenter", 5}, {
"MiddleRight", 6}, {
"TopLeft", 7},
2250 {
"TopCenter", 8}, {
"TopRight", 9});
2252 using TypedEnum<SubtitleAnchor>::TypedEnum;
2254 static const SubtitleAnchor Default;
2255 static const SubtitleAnchor BottomLeft;
2256 static const SubtitleAnchor BottomCenter;
2257 static const SubtitleAnchor BottomRight;
2258 static const SubtitleAnchor MiddleLeft;
2259 static const SubtitleAnchor MiddleCenter;
2260 static const SubtitleAnchor MiddleRight;
2261 static const SubtitleAnchor TopLeft;
2262 static const SubtitleAnchor TopCenter;
2263 static const SubtitleAnchor TopRight;
2266inline const SubtitleAnchor SubtitleAnchor::Default{0};
2267inline const SubtitleAnchor SubtitleAnchor::BottomLeft{1};
2268inline const SubtitleAnchor SubtitleAnchor::BottomCenter{2};
2269inline const SubtitleAnchor SubtitleAnchor::BottomRight{3};
2270inline const SubtitleAnchor SubtitleAnchor::MiddleLeft{4};
2271inline const SubtitleAnchor SubtitleAnchor::MiddleCenter{5};
2272inline const SubtitleAnchor SubtitleAnchor::MiddleRight{6};
2273inline const SubtitleAnchor SubtitleAnchor::TopLeft{7};
2274inline const SubtitleAnchor SubtitleAnchor::TopCenter{8};
2275inline const SubtitleAnchor SubtitleAnchor::TopRight{9};
2308class SubtitleSource :
public TypedEnum<SubtitleSource> {
2310 PROMEKI_REGISTER_ENUM_TYPE(
"SubtitleSource", 1, {
"Metadata", 1}, {
"Cea608Anc", 2},
2313 using TypedEnum<SubtitleSource>::TypedEnum;
2315 static const SubtitleSource Metadata;
2316 static const SubtitleSource Cea608Anc;
2317 static const SubtitleSource Cea708Anc;
2320inline const SubtitleSource SubtitleSource::Metadata{1};
2321inline const SubtitleSource SubtitleSource::Cea608Anc{2};
2322inline const SubtitleSource SubtitleSource::Cea708Anc{3};
2345class CaptionMode :
public TypedEnum<CaptionMode> {
2347 PROMEKI_REGISTER_ENUM_TYPE(
"CaptionMode", 0, {
"Default", 0}, {
"PopOn", 1}, {
"PaintOn", 2},
2350 using TypedEnum<CaptionMode>::TypedEnum;
2352 static const CaptionMode Default;
2353 static const CaptionMode PopOn;
2354 static const CaptionMode PaintOn;
2355 static const CaptionMode RollUp;
2358inline const CaptionMode CaptionMode::Default{0};
2359inline const CaptionMode CaptionMode::PopOn{1};
2360inline const CaptionMode CaptionMode::PaintOn{2};
2361inline const CaptionMode CaptionMode::RollUp{3};
2372class SubtitleEdgeStyle :
public TypedEnum<SubtitleEdgeStyle> {
2374 PROMEKI_REGISTER_ENUM_TYPE(
"SubtitleEdgeStyle", 0, {
"None", 0}, {
"Raised", 1}, {
"Depressed", 2},
2375 {
"Uniform", 3}, {
"ShadowLeft", 4},
2376 {
"ShadowRight", 5});
2378 using TypedEnum<SubtitleEdgeStyle>::TypedEnum;
2380 static const SubtitleEdgeStyle None;
2381 static const SubtitleEdgeStyle Raised;
2382 static const SubtitleEdgeStyle Depressed;
2383 static const SubtitleEdgeStyle Uniform;
2384 static const SubtitleEdgeStyle ShadowLeft;
2385 static const SubtitleEdgeStyle ShadowRight;
2388inline const SubtitleEdgeStyle SubtitleEdgeStyle::None{0};
2389inline const SubtitleEdgeStyle SubtitleEdgeStyle::Raised{1};
2390inline const SubtitleEdgeStyle SubtitleEdgeStyle::Depressed{2};
2391inline const SubtitleEdgeStyle SubtitleEdgeStyle::Uniform{3};
2392inline const SubtitleEdgeStyle SubtitleEdgeStyle::ShadowLeft{4};
2393inline const SubtitleEdgeStyle SubtitleEdgeStyle::ShadowRight{5};
2409class SubtitleOpacity :
public TypedEnum<SubtitleOpacity> {
2411 PROMEKI_REGISTER_ENUM_TYPE(
"SubtitleOpacity", 0, {
"Solid", 0}, {
"Flash", 1}, {
"Translucent", 2},
2412 {
"Transparent", 3});
2414 using TypedEnum<SubtitleOpacity>::TypedEnum;
2416 static const SubtitleOpacity Solid;
2417 static const SubtitleOpacity Flash;
2418 static const SubtitleOpacity Translucent;
2419 static const SubtitleOpacity Transparent;
2422inline const SubtitleOpacity SubtitleOpacity::Solid{0};
2423inline const SubtitleOpacity SubtitleOpacity::Flash{1};
2424inline const SubtitleOpacity SubtitleOpacity::Translucent{2};
2425inline const SubtitleOpacity SubtitleOpacity::Transparent{3};
2436class SubtitleFontFace :
public TypedEnum<SubtitleFontFace> {
2438 PROMEKI_REGISTER_ENUM_TYPE(
"SubtitleFontFace", 0, {
"Default", 0}, {
"MonoSerif", 1},
2439 {
"ProportionalSerif", 2}, {
"MonoSans", 3}, {
"ProportionalSans", 4},
2440 {
"Casual", 5}, {
"Cursive", 6},
2443 using TypedEnum<SubtitleFontFace>::TypedEnum;
2445 static const SubtitleFontFace Default;
2446 static const SubtitleFontFace MonoSerif;
2447 static const SubtitleFontFace ProportionalSerif;
2448 static const SubtitleFontFace MonoSans;
2449 static const SubtitleFontFace ProportionalSans;
2450 static const SubtitleFontFace Casual;
2451 static const SubtitleFontFace Cursive;
2452 static const SubtitleFontFace SmallCaps;
2455inline const SubtitleFontFace SubtitleFontFace::Default{0};
2456inline const SubtitleFontFace SubtitleFontFace::MonoSerif{1};
2457inline const SubtitleFontFace SubtitleFontFace::ProportionalSerif{2};
2458inline const SubtitleFontFace SubtitleFontFace::MonoSans{3};
2459inline const SubtitleFontFace SubtitleFontFace::ProportionalSans{4};
2460inline const SubtitleFontFace SubtitleFontFace::Casual{5};
2461inline const SubtitleFontFace SubtitleFontFace::Cursive{6};
2462inline const SubtitleFontFace SubtitleFontFace::SmallCaps{7};
2485class CaptionCodec :
public TypedEnum<CaptionCodec> {
2487 PROMEKI_REGISTER_ENUM_TYPE(
"CaptionCodec", 0, {
"Cea608", 0}, {
"Cea708", 1},
2490 using TypedEnum<CaptionCodec>::TypedEnum;
2492 static const CaptionCodec Cea608;
2493 static const CaptionCodec Cea708;
2494 static const CaptionCodec Both;
2497inline const CaptionCodec CaptionCodec::Cea608{0};
2498inline const CaptionCodec CaptionCodec::Cea708{1};
2499inline const CaptionCodec CaptionCodec::Both{2};
2520class VideoConnectorKind :
public TypedEnum<VideoConnectorKind> {
2522 PROMEKI_REGISTER_ENUM_TYPE(
"VideoConnectorKind", 0, {
"Auto", 0}, {
"Sdi", 1}, {
"Hdmi", 2},
2523 {
"DisplayPort", 3}, {
"Composite", 4}, {
"Component", 5},
2524 {
"SVideo", 6}, {
"Sfp", 7});
2526 using TypedEnum<VideoConnectorKind>::TypedEnum;
2528 static const VideoConnectorKind Auto;
2529 static const VideoConnectorKind Sdi;
2530 static const VideoConnectorKind Hdmi;
2531 static const VideoConnectorKind DisplayPort;
2532 static const VideoConnectorKind Composite;
2533 static const VideoConnectorKind Component;
2534 static const VideoConnectorKind SVideo;
2535 static const VideoConnectorKind Sfp;
2538inline const VideoConnectorKind VideoConnectorKind::Auto{0};
2539inline const VideoConnectorKind VideoConnectorKind::Sdi{1};
2540inline const VideoConnectorKind VideoConnectorKind::Hdmi{2};
2541inline const VideoConnectorKind VideoConnectorKind::DisplayPort{3};
2542inline const VideoConnectorKind VideoConnectorKind::Composite{4};
2543inline const VideoConnectorKind VideoConnectorKind::Component{5};
2544inline const VideoConnectorKind VideoConnectorKind::SVideo{6};
2545inline const VideoConnectorKind VideoConnectorKind::Sfp{7};
2573class SdiLinkStandard :
public TypedEnum<SdiLinkStandard> {
2575 PROMEKI_REGISTER_ENUM_TYPE(
"SdiLinkStandard", 0,
2590 using TypedEnum<SdiLinkStandard>::TypedEnum;
2592 static const SdiLinkStandard Auto;
2593 static const SdiLinkStandard SL_SD;
2594 static const SdiLinkStandard SL_HD;
2595 static const SdiLinkStandard DL_HD;
2596 static const SdiLinkStandard SL_3GA;
2597 static const SdiLinkStandard SL_3GB;
2598 static const SdiLinkStandard DL_3GB;
2599 static const SdiLinkStandard DL_3G;
2600 static const SdiLinkStandard QL_3G_SQD;
2601 static const SdiLinkStandard QL_3G_2SI;
2602 static const SdiLinkStandard SL_6G;
2603 static const SdiLinkStandard SL_12G;
2604 static const SdiLinkStandard SL_24G;
2607inline const SdiLinkStandard SdiLinkStandard::Auto{0};
2608inline const SdiLinkStandard SdiLinkStandard::SL_SD{1};
2609inline const SdiLinkStandard SdiLinkStandard::SL_HD{2};
2610inline const SdiLinkStandard SdiLinkStandard::DL_HD{3};
2611inline const SdiLinkStandard SdiLinkStandard::SL_3GA{4};
2612inline const SdiLinkStandard SdiLinkStandard::SL_3GB{5};
2613inline const SdiLinkStandard SdiLinkStandard::DL_3GB{6};
2614inline const SdiLinkStandard SdiLinkStandard::DL_3G{7};
2615inline const SdiLinkStandard SdiLinkStandard::QL_3G_SQD{8};
2616inline const SdiLinkStandard SdiLinkStandard::QL_3G_2SI{9};
2617inline const SdiLinkStandard SdiLinkStandard::SL_6G{10};
2618inline const SdiLinkStandard SdiLinkStandard::SL_12G{11};
2619inline const SdiLinkStandard SdiLinkStandard::SL_24G{12};
2663class SdiWireFormat :
public TypedEnum<SdiWireFormat> {
2665 PROMEKI_REGISTER_ENUM_TYPE(
"SdiWireFormat", 0,
2667 {
"YCbCr_422_10", 1},
2668 {
"YCbCr_422_12", 2},
2669 {
"YCbCr_444_10", 3},
2670 {
"YCbCr_444_12", 4},
2673 {
"RGBA_444_10", 7});
2675 using TypedEnum<SdiWireFormat>::TypedEnum;
2677 static const SdiWireFormat Auto;
2678 static const SdiWireFormat YCbCr_422_10;
2679 static const SdiWireFormat YCbCr_422_12;
2680 static const SdiWireFormat YCbCr_444_10;
2681 static const SdiWireFormat YCbCr_444_12;
2682 static const SdiWireFormat RGB_444_10;
2683 static const SdiWireFormat RGB_444_12;
2684 static const SdiWireFormat RGBA_444_10;
2687inline const SdiWireFormat SdiWireFormat::Auto{0};
2688inline const SdiWireFormat SdiWireFormat::YCbCr_422_10{1};
2689inline const SdiWireFormat SdiWireFormat::YCbCr_422_12{2};
2690inline const SdiWireFormat SdiWireFormat::YCbCr_444_10{3};
2691inline const SdiWireFormat SdiWireFormat::YCbCr_444_12{4};
2692inline const SdiWireFormat SdiWireFormat::RGB_444_10{5};
2693inline const SdiWireFormat SdiWireFormat::RGB_444_12{6};
2694inline const SdiWireFormat SdiWireFormat::RGBA_444_10{7};
2712class HdmiSpecVersion :
public TypedEnum<HdmiSpecVersion> {
2714 PROMEKI_REGISTER_ENUM_TYPE(
"HdmiSpecVersion", 0,
2720 using TypedEnum<HdmiSpecVersion>::TypedEnum;
2722 static const HdmiSpecVersion Auto;
2723 static const HdmiSpecVersion Hdmi14;
2724 static const HdmiSpecVersion Hdmi20;
2725 static const HdmiSpecVersion Hdmi21;
2728inline const HdmiSpecVersion HdmiSpecVersion::Auto{0};
2729inline const HdmiSpecVersion HdmiSpecVersion::Hdmi14{1};
2730inline const HdmiSpecVersion HdmiSpecVersion::Hdmi20{2};
2731inline const HdmiSpecVersion HdmiSpecVersion::Hdmi21{3};
2753class VideoReferenceSource :
public TypedEnum<VideoReferenceSource> {
2755 PROMEKI_REGISTER_ENUM_TYPE(
"VideoReferenceSource", 0,
2763 using TypedEnum<VideoReferenceSource>::TypedEnum;
2765 static const VideoReferenceSource FreeRun;
2766 static const VideoReferenceSource Genlock;
2767 static const VideoReferenceSource External;
2768 static const VideoReferenceSource FromSignal;
2769 static const VideoReferenceSource Ptp;
2770 static const VideoReferenceSource Word;
2773inline const VideoReferenceSource VideoReferenceSource::FreeRun{0};
2774inline const VideoReferenceSource VideoReferenceSource::Genlock{1};
2775inline const VideoReferenceSource VideoReferenceSource::External{2};
2776inline const VideoReferenceSource VideoReferenceSource::FromSignal{3};
2777inline const VideoReferenceSource VideoReferenceSource::Ptp{4};
2778inline const VideoReferenceSource VideoReferenceSource::Word{5};
2795class VideoReferenceRateFamily :
public TypedEnum<VideoReferenceRateFamily> {
2797 PROMEKI_REGISTER_ENUM_TYPE(
"VideoReferenceRateFamily", 0,
2802 using TypedEnum<VideoReferenceRateFamily>::TypedEnum;
2804 static const VideoReferenceRateFamily Auto;
2805 static const VideoReferenceRateFamily Integer;
2806 static const VideoReferenceRateFamily Fractional;
2809inline const VideoReferenceRateFamily VideoReferenceRateFamily::Auto{0};
2810inline const VideoReferenceRateFamily VideoReferenceRateFamily::Integer{1};
2811inline const VideoReferenceRateFamily VideoReferenceRateFamily::Fractional{2};
2815PROMEKI_NAMESPACE_END
2825template <>
struct std::hash<promeki::ChannelRole> {
2826 size_t operator()(
const promeki::ChannelRole &v)
const noexcept {
return std::hash<int>()(v.value()); }