11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
23PROMEKI_NAMESPACE_BEGIN
56 virtual ~CaptionEncoder() =
default;
58 CaptionEncoder(
const CaptionEncoder &) =
delete;
59 CaptionEncoder &operator=(
const CaptionEncoder &) =
delete;
60 CaptionEncoder(CaptionEncoder &&) =
delete;
61 CaptionEncoder &operator=(CaptionEncoder &&) =
delete;
74 uint8_t serviceNumber = 1;
78 int32_t windowCols = 32;
82 virtual CaptionCodec codec()
const = 0;
85 virtual FrameRate frameRate()
const = 0;
96 virtual Error setSubtitles(
const SubtitleList &subs) = 0;
113 virtual SubtitleList encodableSubset(
const SubtitleList &in,
114 SubtitleList *outDropped =
nullptr)
const {
115 if (outDropped !=
nullptr) *outDropped = SubtitleList();
129 virtual Cea708Cdp::CcDataList nextFrame(FrameNumber frame)
const = 0;
132 virtual void reset() = 0;
142 static UniquePtr<CaptionEncoder> create(CaptionCodec codec,
const Config &cfg);
145 CaptionEncoder() =
default;