11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
24PROMEKI_NAMESPACE_BEGIN
77 using PtrList = promeki::List<UniquePtr<CaptionDecoder>>;
79 virtual ~CaptionDecoder() =
default;
81 CaptionDecoder(
const CaptionDecoder &) =
delete;
82 CaptionDecoder &operator=(
const CaptionDecoder &) =
delete;
83 CaptionDecoder(CaptionDecoder &&) =
delete;
84 CaptionDecoder &operator=(CaptionDecoder &&) =
delete;
94 uint8_t serviceNumber = 1;
98 virtual CaptionCodec codec()
const = 0;
119 virtual void pushFrame(FrameNumber frame, TimeStamp ts,
120 const Cea708Cdp::CcDataList &data) = 0;
142 virtual String displayedText()
const = 0;
157 virtual Subtitle displayedCue()
const = 0;
170 virtual SubtitleList finalize() = 0;
179 virtual void reset() = 0;
189 static UniquePtr<CaptionDecoder> create(CaptionCodec codec,
const Config &cfg);
192 CaptionDecoder() =
default;