64 [[nodiscard]]
virtual bool ToString(std::string* output);
72 MediaInfo* media_info);
77 clock_ = std::move(clock);
86 friend class LiveMpdBuilderTest;
87 template <DashProfile profile>
88 friend class MpdBuilderTest;
93 std::optional<xml::XmlNode> GenerateMpd();
97 [[nodiscard]]
bool AddCommonMpdInfo(
xml::XmlNode* mpd_node);
101 [[nodiscard]]
bool AddStaticMpdInfo(
xml::XmlNode* mpd_node);
104 [[nodiscard]]
bool AddDynamicMpdInfo(
xml::XmlNode* mpd_node);
107 [[nodiscard]]
bool AddUtcTiming(
xml::XmlNode* mpd_node);
109 float GetStaticMpdDuration();
117 [[nodiscard]]
bool GetEarliestTimestamp(
double* timestamp_seconds);
120 void UpdatePeriodDurationAndPresentationTimestamp();
123 std::list<std::unique_ptr<Period>> periods_;
125 std::list<std::string> base_urls_;
126 std::string availability_start_time_;
128 uint32_t period_counter_ = 0;
129 uint32_t representation_counter_ = 0;
133 std::unique_ptr<Clock> clock_;