Shaka Packager SDK
Loading...
Searching...
No Matches
webvtt_file_buffer.h
1// Copyright 2018 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_FORMATS_WEBVTT_WEBVTT_FILE_BUFFER_H_
8#define PACKAGER_MEDIA_FORMATS_WEBVTT_WEBVTT_FILE_BUFFER_H_
9
10#include <string>
11
12#include <packager/file.h>
13
14namespace shaka {
15namespace media {
16
17class TextSample;
18
19// A class to abstract writing a webvtt file to disk. This class will handle
20// all the formatting requirements for a webvtt file.
22 public:
23 WebVttFileBuffer(int32_t transport_stream_timestamp_offset_ms,
24 const std::string& style_region_config);
25 virtual ~WebVttFileBuffer() = default;
26
27 void Reset();
28 void Append(const TextSample& sample);
29
30 bool WriteTo(File* file, uint64_t* size);
31
32 // Get the number of samples that have been appended to this file.
33 size_t sample_count() const { return sample_count_; }
34
35 private:
36 WebVttFileBuffer(const WebVttFileBuffer&) = delete;
37 WebVttFileBuffer& operator=(const WebVttFileBuffer&) = delete;
38
39 const int32_t transport_stream_timestamp_offset_ = 0;
40 const std::string style_region_config_;
41 std::string buffer_;
42 size_t sample_count_ = 0;
43};
44
45} // namespace media
46} // namespace shaka
47
48#endif // PACKAGER_MEDIA_FORMATS_WEBVTT_WEBVTT_FILE_BUFFER_H_
All the methods that are virtual are virtual for mocking.