54 kSuppressFrameRate = 4,
89 const std::string& pssh);
106 int64_t segment_number);
129 std::optional<xml::XmlNode>
GetXml();
161 double* end_timestamp_seconds)
const;
164 uint32_t
id()
const {
return id_; }
166 void set_media_info(
const MediaInfo& media_info) { media_info_ = media_info; }
178 const MediaInfo& media_info,
179 const MpdOptions& mpd_options,
180 uint32_t representation_id,
181 std::unique_ptr<RepresentationStateChangeListener> state_change_listener);
187 const Representation& representation,
188 std::unique_ptr<RepresentationStateChangeListener> state_change_listener);
191 Representation(
const Representation&) =
delete;
192 Representation& operator=(
const Representation&) =
delete;
194 friend class AdaptationSet;
195 friend class RepresentationTest;
199 bool HasRequiredMediaInfoFields()
const;
203 void AddSegmentInfo(int64_t start_time,
205 int64_t segment_number);
210 void UpdateSegmentInfo(int64_t duration);
215 bool ApproximiatelyEqual(int64_t time1, int64_t time2)
const;
219 int64_t AdjustDuration(int64_t duration)
const;
226 void RemoveOldSegment(SegmentInfo* segment_info);
230 std::string GetVideoMimeType()
const;
231 std::string GetAudioMimeType()
const;
232 std::string GetTextMimeType()
const;
235 std::string RepresentationAsString()
const;
239 MediaInfo media_info_;
240 std::list<ContentProtectionElement> content_protection_elements_;
242 int64_t current_buffer_depth_ = 0;
244 std::list<SegmentInfo> segment_infos_;
247 std::list<std::string> segments_to_be_removed_;
250 std::string mime_type_;
252 std::string supplemental_codecs_;
253 std::string supplemental_profiles_;
254 BandwidthEstimator bandwidth_estimator_;
255 const MpdOptions& mpd_options_;
259 std::unique_ptr<RepresentationStateChangeListener> state_change_listener_;
262 int output_suppression_flags_ = 0;
266 const bool allow_approximate_segment_timeline_ =
false;
269 int32_t frame_duration_ = 0;