#include "ICanonicalUrl.hpp"
#include "Properties.hpp"
+#include "SegmentInfoCommon.h"
#include <vlc_common.h>
#include <vector>
class SegmentBase;
class SegmentList;
class SegmentTemplate;
+ class SegmentTimeline;
+ class MPD;
/* common segment elements for period/adaptset/rep 5.3.9.1,
* with properties inheritance */
- class SegmentInformation : public ICanonicalUrl
+ class SegmentInformation : public ICanonicalUrl,
+ public TimescaleAble
{
friend class IsoffMainParser;
public:
SegmentInformation( SegmentInformation * = 0 );
- explicit SegmentInformation( ICanonicalUrl * );
+ explicit SegmentInformation( MPD * );
virtual ~SegmentInformation();
bool canBitswitch() const;
- uint64_t getTimescale() const;
virtual mtime_t getPeriodStart() const;
class SplitPoint
ISegment * getSegment(SegmentInfoType, uint64_t = 0) const;
bool getSegmentNumberByTime(mtime_t, uint64_t *) const;
+ mtime_t getPlaybackTimeBySegmentNumber(uint64_t) const;
+ void collectTimelines(std::vector<SegmentTimeline *> *) const;
protected:
std::vector<ISegment *> getSegments() const;
std::vector<ISegment *> getSegments(SegmentInfoType) const;
+ std::vector<SegmentInformation *> childs;
private:
+ void init();
void setSegmentList(SegmentList *);
void setSegmentBase(SegmentBase *);
void setSegmentTemplate(MediaSegmentTemplate *);
BITSWITCH_YES,
BITSWITCH_NO
} bitswitch_policy;
-
- Property<uint64_t> timescale;
};
}
}