11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
26PROMEKI_NAMESPACE_BEGIN
28struct Cea608EncoderImpl;
178class Cea608Encoder :
public CaptionEncoder {
225 Mode mode = Mode::PopOn;
231 Channel channel = Channel::CC1;
240 int32_t rollUpRows = 2;
248 int32_t maxCols = 32;
290 bool doubleControls =
true;
294 explicit Cea608Encoder(Config cfg);
295 ~Cea608Encoder()
override;
298 const Config &config()
const;
301 CaptionCodec codec()
const override {
return CaptionCodec(CaptionCodec::Cea608); }
304 FrameRate frameRate()
const override;
335 Error setSubtitles(
const SubtitleList &subs)
override;
338 void reset()
override;
356 Cea708Cdp::CcDataList nextFrame(FrameNumber frame)
const override;
378 FrameNumber earliestStartFor(
const Subtitle &cue)
const;
405 SubtitleList encodableSubset(
const SubtitleList &in,
406 SubtitleList *outDropped =
nullptr)
const override;
409 SharedPtr<Cea608EncoderImpl> _d;