25 explicit TextChunker(
double segment_duration_in_seconds,
26 int64_t start_segment_number);
27 explicit TextChunker(
double segment_duration_in_seconds,
28 int64_t start_segment_number,
29 int64_t ts_ttx_heartbeat_shift);
30 explicit TextChunker(
double segment_duration_in_seconds,
31 int64_t start_segment_number,
32 int64_t ts_ttx_heartbeat_shift,
33 bool use_segment_coordinator);
39 Status InitializeInternal()
override {
return Status::OK; }
41 Status Process(std::unique_ptr<StreamData> stream_data)
override;
42 Status OnFlushRequest(
size_t input_stream_index)
override;
44 Status OnStreamInfo(std::shared_ptr<const StreamInfo> info);
45 Status OnCueEvent(std::shared_ptr<const CueEvent> cue);
46 Status OnTextSample(std::shared_ptr<const TextSample> sample);
47 Status OnSegmentInfo(std::shared_ptr<const SegmentInfo> info);
54 Status DispatchSegment(int64_t duration);
60 void AddOngoingCuesToCurrentSegment(int64_t segment_end);
62 int64_t ScaleTime(
double seconds)
const;
64 double segment_duration_in_seconds_;
66 int64_t time_scale_ = -1;
69 int64_t segment_start_ = -1;
70 int64_t segment_duration_ = -1;
74 int64_t segment_number_ = 1;
78 int64_t ts_ttx_heartbeat_shift_ = kDefaultTtxHeartbeatShift;
82 int64_t latest_media_heartbeat_time_ = -1;
87 std::list<std::shared_ptr<const TextSample>> samples_in_current_segment_;
93 std::list<std::shared_ptr<const TextSample>> samples_without_end_;
98 bool use_segment_coordinator_ =
false;