65 [[nodiscard]]
virtual bool ToString(std::string* output);
73 MediaInfo* media_info);
78 clock_ = std::move(clock);
87 friend class LiveMpdBuilderTest;
88 template <DashProfile profile>
89 friend class MpdBuilderTest;
94 std::optional<xml::XmlNode> GenerateMpd();
98 [[nodiscard]]
bool AddCommonMpdInfo(
xml::XmlNode* mpd_node);
102 [[nodiscard]]
bool AddStaticMpdInfo(
xml::XmlNode* mpd_node);
105 [[nodiscard]]
bool AddDynamicMpdInfo(
xml::XmlNode* mpd_node);
108 [[nodiscard]]
bool AddUtcTiming(
xml::XmlNode* mpd_node);
110 float GetStaticMpdDuration();
118 [[nodiscard]]
bool GetEarliestTimestamp(
double* timestamp_seconds);
121 void UpdatePeriodDurationAndPresentationTimestamp();
124 std::list<std::unique_ptr<Period>> periods_;
126 std::list<std::string> base_urls_;
127 std::string availability_start_time_;
129 uint32_t period_counter_ = 0;
130 uint32_t representation_counter_ = 0;
134 std::unique_ptr<Clock> clock_;