/** * @class dash::mpd::ISegmentTimeline * @brief This interface is needed for accessing the subelements of the SegmentTimeline element, as specified in ISO/IEC 23009-1, Part 1, 2012, section 5.3.9.6 * @details The SegmentTimeline element expresses the earliest presentation time and presentation duration (in units based on the \c \@timescale attribute) * for each Segment in the Representation. The use is an alternative to providing the \c \@duration attribute and provides three additional features: * * For compactness the syntax of this element includes run-length compression to express a sequence of Segments having constant duration.\n\n * The SegmentTimeline element shall contain a list of S elements each of which describes a sequence of contiguous segments of identical MPD duration. * @see dash::mpd::ITimeline dash::mpd::IMultipleSegmentBase dash::mpd::IMPDElement * * @author bitmovin Softwareentwicklung OG \n * Email: libdash-dev@vicky.bitmovin.net * @version 2.1 * @date 2013 * @copyright bitmovin Softwareentwicklung OG, All Rights Reserved \n\n * This source code and its use and distribution, is subject to the terms * and conditions of the applicable license agreement. */ #ifndef ISEGMENTTIMELINE_H_ #define ISEGMENTTIMELINE_H_ #include "config.h" #include "ITimeline.h" #include "IMPDElement.h" namespace dash { namespace mpd { class ISegmentTimeline : public virtual IMPDElement { public: virtual ~ISegmentTimeline(){} /** * Returns a reference to a vector of pointers to dash::mpd::ITimeline objects, that correspond to the to S elements. * @return a reference to vector of pointers to dash::mpd::ITimeline objects */ virtual std::vector& GetTimelines () const = 0; }; } } #endif /* ISEGMENTTIMELINE_H_ */