libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
cea608xdsinjector.h
Go to the documentation of this file.
1
8#pragma once
9
10#include <promeki/config.h>
11#if PROMEKI_ENABLE_PROAV
12#include <cstdint>
13#include <promeki/cea608xds.h>
14#include <promeki/cea708cdp.h>
15#include <promeki/list.h>
16#include <promeki/namespace.h>
17#include <promeki/sharedptr.h>
18
19PROMEKI_NAMESPACE_BEGIN
20
21struct Cea608XdsInjectorImpl; // Pimpl — defined in cea608xdsinjector.cpp.
22
144class Cea608XdsInjector {
145 public:
149 static constexpr int DefaultRepetitionFrames = 60;
150
151 Cea608XdsInjector();
152
172 void setPacket(const Cea608XdsPacket &packet,
173 int repetitionFrames = DefaultRepetitionFrames);
174
178 void removePacket(Cea608XdsClass class_, uint8_t type);
179
182 size_t sourceCount() const;
183
211 Cea708Cdp::CcData nextPair(bool hasCaptionPair = false);
212
217 Cea708Cdp::CcData nextPairWithParity(bool hasCaptionPair = false);
218
221 void reset();
222
223 private:
224 SharedPtr<Cea608XdsInjectorImpl> _d;
225};
226
227PROMEKI_NAMESPACE_END
228
229#endif // PROMEKI_ENABLE_PROAV