61 [[nodiscard]]
virtual bool ToString(std::string* output);
69 MediaInfo* media_info);
74 clock_ = std::move(clock);
83 friend class LiveMpdBuilderTest;
84 template <DashProfile profile>
85 friend class MpdBuilderTest;
90 std::optional<xml::XmlNode> GenerateMpd();
94 [[nodiscard]]
bool AddCommonMpdInfo(
xml::XmlNode* mpd_node);
98 [[nodiscard]]
bool AddStaticMpdInfo(
xml::XmlNode* mpd_node);
101 [[nodiscard]]
bool AddDynamicMpdInfo(
xml::XmlNode* mpd_node);
104 [[nodiscard]]
bool AddUtcTiming(
xml::XmlNode* mpd_node);
106 float GetStaticMpdDuration();
114 [[nodiscard]]
bool GetEarliestTimestamp(
double* timestamp_seconds);
117 void UpdatePeriodDurationAndPresentationTimestamp();
120 std::list<std::unique_ptr<Period>> periods_;
122 std::list<std::string> base_urls_;
123 std::string availability_start_time_;
125 uint32_t period_counter_ = 0;
126 uint32_t representation_counter_ = 0;
130 std::unique_ptr<Clock> clock_;