init->initialisationSegment.Set(seg);
}
-void IsoffMainParser::parseTimeline(Node *node, Timelineable *timelineable)
+void IsoffMainParser::parseTimeline(Node *node, MediaSegmentTemplate *templ)
{
if(!node)
return;
- SegmentTimeline *timeline = new (std::nothrow) SegmentTimeline();
+ SegmentTimeline *timeline = new (std::nothrow) SegmentTimeline(templ);
if(timeline)
{
std::vector<Node *> elements = DOMHelper::getElementByTagName(node, "S", false);
}
else timeline->addElement(d, r);
- timelineable->segmentTimeline.Set(timeline);
+ templ->segmentTimeline.Set(timeline);
}
}
}
void setAdaptationSets (dash::xml::Node *periodNode, Period *period);
void setRepresentations (dash::xml::Node *adaptationSetNode, AdaptationSet *adaptationSet);
void parseInitSegment (dash::xml::Node *, Initializable<Segment> *);
- void parseTimeline (dash::xml::Node *, Timelineable *);
+ void parseTimeline (dash::xml::Node *, MediaSegmentTemplate *);
void parsePeriods (dash::xml::Node *);
size_t parseSegmentInformation(dash::xml::Node *, SegmentInformation *);
void parseSegmentBase (dash::xml::Node *, SegmentInformation *);
using namespace dash::mpd;
-SegmentTimeline::SegmentTimeline()
+SegmentTimeline::SegmentTimeline(TimescaleAble *parent)
+ :TimescaleAble(parent)
{
pruned = 0;
}
return totalscaledtime;
}
-size_t SegmentTimeline::prune(mtime_t scaled)
+size_t SegmentTimeline::prune(mtime_t time)
{
+ mtime_t scaled = time * inheritTimescale() / CLOCK_FREQ;
size_t prunednow = 0;
while(elements.size())
{
#ifndef SEGMENTTIMELINE_H
#define SEGMENTTIMELINE_H
+#include "SegmentInfoCommon.h"
#include <vlc_common.h>
#include <list>
{
namespace mpd
{
- class SegmentTimeline
+ class SegmentTimeline : public TimescaleAble
{
class Element;
public:
- SegmentTimeline();
+ SegmentTimeline(TimescaleAble * = NULL);
virtual ~SegmentTimeline();
void addElement(mtime_t d, uint64_t r = 0, mtime_t t = 0);
uint64_t getElementNumberByScaledPlaybackTime(time_t) const;