}
static void insertIntoSegment(std::vector<Segment *> &seglist, size_t start,
- size_t end)
+ size_t end, mtime_t time)
{
std::vector<Segment *>::iterator segIt;
for(segIt = seglist.begin(); segIt < seglist.end(); segIt++)
start + segment->getOffset(),
end + segment->getOffset());
segment->addSubSegment(subsegment);
+ segment->setStartTime(time);
break;
}
}
std::vector<Segment *> seglist = segmentList->getSegments();
std::vector<SplitPoint>::const_iterator splitIt;
size_t start = 0, end = 0;
+ mtime_t time = 0;
for(splitIt = splitlist.begin(); splitIt < splitlist.end(); splitIt++)
{
end = split.offset;
if(splitIt == splitlist.begin() && split.offset == 0)
continue;
- insertIntoSegment(seglist, start, end);
+ time = split.time;
+ insertIntoSegment(seglist, start, end, time);
end++;
}
{
start = end;
end = 0;
- insertIntoSegment(seglist, start, end);
+ insertIntoSegment(seglist, start, end, time);
}
}
# include "config.h"
#endif
+#define __STDC_CONSTANT_MACROS
+
#include "Segment.h"
#include "Representation.h"
#include "MPD.h"
ISegment::ISegment(const ICanonicalUrl *parent):
ICanonicalUrl( parent ),
startByte (0),
- endByte (0)
+ endByte (0),
+ startTime (VLC_TS_INVALID)
{
debugName = "Segment";
classId = CLASSID_ISEGMENT;
endByte = end;
}
+void ISegment::setStartTime(mtime_t ztime)
+{
+ startTime = ztime;
+}
+
+mtime_t ISegment::getStartTime() const
+{
+ return startTime;
+}
+
size_t ISegment::getOffset() const
{
return startByte;
virtual void done ();
virtual dash::http::Chunk* toChunk ();
virtual void setByteRange (size_t start, size_t end);
+ virtual void setStartTime (mtime_t ztime);
+ virtual mtime_t getStartTime () const;
virtual size_t getOffset () const;
virtual std::vector<ISegment*> subSegments () = 0;
virtual std::string toString () const;
protected:
size_t startByte;
size_t endByte;
+ mtime_t startTime;
std::string debugName;
int classId;