30 explicit TextChunker(
double segment_duration_in_seconds,
31 int64_t start_segment_number);
32 explicit TextChunker(
double segment_duration_in_seconds,
33 int64_t start_segment_number,
34 int64_t ts_ttx_heartbeat_shift);
35 explicit TextChunker(
double segment_duration_in_seconds,
36 int64_t start_segment_number,
37 int64_t ts_ttx_heartbeat_shift,
38 bool use_segment_coordinator);
44 Status InitializeInternal()
override {
return Status::OK; }
46 Status Process(std::unique_ptr<StreamData> stream_data)
override;
47 Status OnFlushRequest(
size_t input_stream_index)
override;
49 Status OnStreamInfo(std::shared_ptr<const StreamInfo> info);
50 Status OnCueEvent(std::shared_ptr<const CueEvent> cue);
51 Status OnTextSample(std::shared_ptr<const TextSample> sample);
52 Status OnSegmentInfo(std::shared_ptr<const SegmentInfo> info);
59 Status DispatchSegment(int64_t duration);
65 void AddOngoingCuesToCurrentSegment(int64_t segment_end);
67 int64_t ScaleTime(
double seconds)
const;
69 double segment_duration_in_seconds_;
71 int64_t time_scale_ = -1;
74 int64_t segment_start_ = -1;
75 int64_t segment_duration_ = -1;
79 int64_t segment_number_ = 1;
83 int64_t ts_ttx_heartbeat_shift_ = kDefaultTtxHeartbeatShift;
87 int64_t latest_media_heartbeat_time_ = -1;
92 std::list<std::shared_ptr<const TextSample>> samples_in_current_segment_;
98 std::list<std::shared_ptr<const TextSample>> samples_without_end_;
103 bool use_segment_coordinator_ =
false;