libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
ancmeta.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
13#include <promeki/namespace.h>
14#include <promeki/metadata.h>
15#include <promeki/variantspec.h>
16#include <promeki/string.h>
17#include <promeki/uuid.h>
18
19PROMEKI_NAMESPACE_BEGIN
20
72namespace AncMeta {
73
75namespace Atc {
76
87inline const Metadata::ID Rate = Metadata::declareID(
88 "AncMeta.Atc.Rate",
89 VariantSpec()
90 .setType(DataTypeUInt32)
91 .setDefault(uint32_t(0))
92 .setDescription("ATC source frame rate in whole fps (24/25/30/50/60; "
93 "0 = unknown — codec falls back to AtcParseRateHint)."));
94
95} // namespace Atc
96
98namespace HdmiInfoFrame {
99
102inline const Metadata::ID Type = Metadata::declareID(
103 "AncMeta.HdmiInfoFrame.Type",
104 VariantSpec()
105 .setType(DataTypeUInt8)
106 .setDefault(uint8_t(0))
107 .setDescription("HDMI InfoFrame type byte (0x82 AVI, 0x84 Audio, 0x87 DRM, 0x81 Vendor, ...)."));
108
110inline const Metadata::ID Version = Metadata::declareID(
111 "AncMeta.HdmiInfoFrame.Version",
112 VariantSpec().setType(DataTypeUInt8).setDefault(uint8_t(0)).setDescription("HDMI InfoFrame version byte."));
113
116inline const Metadata::ID Length = Metadata::declareID(
117 "AncMeta.HdmiInfoFrame.Length",
118 VariantSpec()
119 .setType(DataTypeUInt8)
120 .setDefault(uint8_t(0))
121 .setDescription("HDMI InfoFrame length: payload bytes after the 4-byte header."));
122
123} // namespace HdmiInfoFrame
124
126namespace RtmpAmf {
127
131inline const Metadata::ID ScriptName = Metadata::declareID(
132 "AncMeta.RtmpAmf.ScriptName",
133 VariantSpec()
134 .setType(DataTypeString)
135 .setDefault(String())
136 .setDescription("RTMP AMF0 script-tag name (onCaptionInfo, onCuePoint, onMetaData, ...)."));
137
138} // namespace RtmpAmf
139
141namespace NdiXml {
142
145inline const Metadata::ID ElementName = Metadata::declareID(
146 "AncMeta.NdiXml.ElementName",
147 VariantSpec()
148 .setType(DataTypeString)
149 .setDefault(String())
150 .setDescription("NDI XML top-level element name (e.g. ndi_caption_data)."));
151
152} // namespace NdiXml
153
155namespace MpegTsPrivate {
156
158inline const Metadata::ID Pid = Metadata::declareID(
159 "AncMeta.MpegTsPrivate.Pid",
160 VariantSpec()
161 .setType(DataTypeUInt16)
162 .setDefault(uint16_t(0))
163 .setDescription("MPEG-TS PID the private section was carried in."));
164
166inline const Metadata::ID TableId = Metadata::declareID(
167 "AncMeta.MpegTsPrivate.TableId",
168 VariantSpec()
169 .setType(DataTypeUInt8)
170 .setDefault(uint8_t(0))
171 .setDescription("MPEG-TS private-section table_id byte."));
172
173} // namespace MpegTsPrivate
174
176namespace HlsSei {
177
179inline const Metadata::ID PayloadType = Metadata::declareID(
180 "AncMeta.HlsSei.PayloadType",
181 VariantSpec()
182 .setType(DataTypeUInt8)
183 .setDefault(uint8_t(0))
184 .setDescription("SEI payloadType (typically 5 for user_data_registered)."));
185
188inline const Metadata::ID Uuid = Metadata::declareID(
189 "AncMeta.HlsSei.Uuid",
190 VariantSpec()
191 .setType(DataTypeUUID)
192 .setDefault(UUID())
193 .setDescription("UUID for SEI user_data_unregistered messages."));
194
195} // namespace HlsSei
196
197} // namespace AncMeta
198
199PROMEKI_NAMESPACE_END
200
201#endif // PROMEKI_ENABLE_PROAV