55 kSuppressFrameRate = 4,
90 const std::string& pssh);
107 int64_t segment_number);
130 std::optional<xml::XmlNode>
GetXml();
162 double* end_timestamp_seconds)
const;
165 uint32_t
id()
const {
return id_; }
167 void set_media_info(
const MediaInfo& media_info) { media_info_ = media_info; }
179 const MediaInfo& media_info,
180 const MpdOptions& mpd_options,
181 uint32_t representation_id,
182 std::unique_ptr<RepresentationStateChangeListener> state_change_listener);
188 const Representation& representation,
189 std::unique_ptr<RepresentationStateChangeListener> state_change_listener);
192 Representation(
const Representation&) =
delete;
193 Representation& operator=(
const Representation&) =
delete;
195 friend class AdaptationSet;
196 friend class RepresentationTest;
200 bool HasRequiredMediaInfoFields()
const;
204 void AddSegmentInfo(int64_t start_time,
206 int64_t segment_number);
211 void UpdateSegmentInfo(int64_t duration);
216 bool ApproximiatelyEqual(int64_t time1, int64_t time2)
const;
220 int64_t AdjustDuration(int64_t duration)
const;
227 void RemoveOldSegment(SegmentInfo* segment_info);
231 std::string GetVideoMimeType()
const;
232 std::string GetAudioMimeType()
const;
233 std::string GetTextMimeType()
const;
236 std::string RepresentationAsString()
const;
240 MediaInfo media_info_;
241 std::list<ContentProtectionElement> content_protection_elements_;
243 int64_t current_buffer_depth_ = 0;
245 std::list<SegmentInfo> segment_infos_;
248 std::list<std::string> segments_to_be_removed_;
251 std::string mime_type_;
253 std::string supplemental_codecs_;
254 std::string supplemental_profiles_;
255 BandwidthEstimator bandwidth_estimator_;
256 const MpdOptions& mpd_options_;
260 std::unique_ptr<RepresentationStateChangeListener> state_change_listener_;
263 int output_suppression_flags_ = 0;
267 const bool allow_approximate_segment_timeline_ =
false;
270 int32_t frame_duration_ = 0;