Shaka Packager SDK
text_muxer.h
1 // Copyright 2020 Google LLC. All rights reserved.
2 //
3 // Use of this source code is governed by a BSD-style
4 // license that can be found in the LICENSE file or at
5 // https://developers.google.com/open-source/licenses/bsd
6 
7 #ifndef PACKAGER_MEDIA_BASE_TEXT_MUXER_H_
8 #define PACKAGER_MEDIA_BASE_TEXT_MUXER_H_
9 
10 #include "packager/media/base/muxer.h"
11 #include "packager/media/base/text_sample.h"
12 #include "packager/media/base/text_stream_info.h"
13 
14 namespace shaka {
15 namespace media {
16 
20 class TextMuxer : public Muxer {
21  public:
22  explicit TextMuxer(const MuxerOptions& options);
23  ~TextMuxer() override;
24 
25  private:
26  // Muxer implementation overrides.
27  Status InitializeMuxer() override;
28  Status Finalize() override;
29  Status AddTextSample(size_t stream_id, const TextSample& sample) override;
30  Status FinalizeSegment(size_t stream_id,
31  const SegmentInfo& segment_info) override;
32 
33  virtual Status InitializeStream(TextStreamInfo* stream) = 0;
34  virtual Status AddTextSampleInternal(const TextSample& sample) = 0;
37  virtual Status WriteToFile(const std::string& filename, uint64_t* size) = 0;
38 
39  uint64_t total_duration_ms_ = 0;
40  uint64_t last_cue_ms_ = 0;
41  uint32_t segment_index_ = 0;
42 };
43 
44 } // namespace media
45 } // namespace shaka
46 
47 #endif // PACKAGER_MEDIA_BASE_TEXT_MUXER_H_
shaka::media::TextSample
Definition: text_sample.h:115
shaka::media::Muxer
Definition: muxer.h:30
shaka::media::SegmentInfo
Definition: media_handler.h:55
shaka
All the methods that are virtual are virtual for mocking.
Definition: gflags_hex_bytes.cc:11
shaka::media::TextStreamInfo
Definition: text_stream_info.h:49
shaka::Status
Definition: status.h:110
shaka::media::MuxerOptions
This structure contains the list of configuration options for Muxer.
Definition: muxer_options.h:20
shaka::media::TextMuxer
Definition: text_muxer.h:20