libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
enums_ndi.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
37class NdiBandwidth : public TypedEnum<NdiBandwidth> {
38 public:
39 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("NdiBandwidth", "NDI Bandwidth", 0,
40 {"Highest", 0, "Highest (Full Quality)"},
41 {"Lowest", 1, "Lowest (Preview Quality)"},
42 {"AudioOnly", 2, "Audio Only"},
43 {"MetadataOnly", 3, "Metadata Only"}); // default: Highest
44
45 using TypedEnum<NdiBandwidth>::TypedEnum;
46
47 static const NdiBandwidth Highest;
48 static const NdiBandwidth Lowest;
49 static const NdiBandwidth AudioOnly;
50 static const NdiBandwidth MetadataOnly;
51};
52
53inline const NdiBandwidth NdiBandwidth::Highest{0};
54inline const NdiBandwidth NdiBandwidth::Lowest{1};
55inline const NdiBandwidth NdiBandwidth::AudioOnly{2};
56inline const NdiBandwidth NdiBandwidth::MetadataOnly{3};
57
82class NdiColorFormat : public TypedEnum<NdiColorFormat> {
83 public:
84 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("NdiColorFormat", "NDI Color Format", 0,
85 {"Best", 0, "Best (Native FourCC)"},
86 {"Fastest", 1, "Fastest (On-Wire Format)"},
87 {"UyvyBgra", 2, "UYVY / BGRA"}, {"UyvyRgba", 3, "UYVY / RGBA"},
88 {"BgrxBgra", 4, "BGRX / BGRA"},
89 {"RgbxRgba", 5, "RGBX / RGBA"}); // default: Fastest (see MediaConfig::NdiColorFormat)
90
91 using TypedEnum<NdiColorFormat>::TypedEnum;
92
93 static const NdiColorFormat Best;
94 static const NdiColorFormat Fastest;
95 static const NdiColorFormat UyvyBgra;
96 static const NdiColorFormat UyvyRgba;
97 static const NdiColorFormat BgrxBgra;
98 static const NdiColorFormat RgbxRgba;
99};
100
101inline const NdiColorFormat NdiColorFormat::Best{0};
102inline const NdiColorFormat NdiColorFormat::Fastest{1};
103inline const NdiColorFormat NdiColorFormat::UyvyBgra{2};
104inline const NdiColorFormat NdiColorFormat::UyvyRgba{3};
105inline const NdiColorFormat NdiColorFormat::BgrxBgra{4};
106inline const NdiColorFormat NdiColorFormat::RgbxRgba{5};
107
129class NdiReceiveBitDepth : public TypedEnum<NdiReceiveBitDepth> {
130 public:
131 PROMEKI_REGISTER_ENUM_TYPE_DISPLAY("NdiReceiveBitDepth", "NDI Receive Bit Depth", 0,
132 {"Auto", 0, "Automatic (16-bit)"}, {"Bits10", 10, "10-bit"},
133 {"Bits12", 12, "12-bit"}, {"Bits16", 16, "16-bit"}); // default: Auto
134
135 using TypedEnum<NdiReceiveBitDepth>::TypedEnum;
136
137 static const NdiReceiveBitDepth Auto;
138 static const NdiReceiveBitDepth Bits10;
139 static const NdiReceiveBitDepth Bits12;
140 static const NdiReceiveBitDepth Bits16;
141};
142
143inline const NdiReceiveBitDepth NdiReceiveBitDepth::Auto{0};
144inline const NdiReceiveBitDepth NdiReceiveBitDepth::Bits10{10};
145inline const NdiReceiveBitDepth NdiReceiveBitDepth::Bits12{12};
146inline const NdiReceiveBitDepth NdiReceiveBitDepth::Bits16{16};
147
150PROMEKI_NAMESPACE_END
151
152#endif // PROMEKI_ENABLE_CORE