libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
subtitlecuebuilder.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/error.h>
14#include <promeki/namespace.h>
15#include <promeki/sharedptr.h>
16#include <promeki/subtitle.h>
17#include <promeki/transcript.h>
18#include <promeki/uniqueptr.h>
19
20PROMEKI_NAMESPACE_BEGIN
21
22class Frame;
23class MediaConfig;
24struct SubtitleCueBuilderImpl; // Pimpl — defined in subtitlecuebuilder.cpp.
25
81class SubtitleCueBuilder {
82 public:
84 using UPtr = UniquePtr<SubtitleCueBuilder>;
85
87 SubtitleCueBuilder();
88
90 explicit SubtitleCueBuilder(const MediaConfig &config);
91
92 ~SubtitleCueBuilder();
93
100 void configure(const MediaConfig &config);
101
119 Error submitFrame(const Frame &frame);
120
131 Frame receiveFrame();
132
134 void reset();
135
136 // ---- Batch helper ----
137
155 static SubtitleList buildCues(const TranscriptList &transcripts, const MediaConfig &config);
156
157 private:
158 SubtitleCueBuilder(const SubtitleCueBuilder &) = delete;
159 SubtitleCueBuilder &operator=(const SubtitleCueBuilder &) = delete;
160
161 UniquePtr<SubtitleCueBuilderImpl> _d;
162};
163
164PROMEKI_NAMESPACE_END
165
166#endif // PROMEKI_ENABLE_PROAV