vlc | branch: master | Francois Cartegnie <fcvlc...@free.fr> | Mon Dec 1 17:36:47 2014 +0100| [737a297d3d84ae8ef73c5d89e11ded8869133b54] | committer: Francois Cartegnie
stream_filter: dash: add segment start time > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=737a297d3d84ae8ef73c5d89e11ded8869133b54 --- modules/stream_filter/dash/mpd/Representation.cpp | 9 ++++++--- modules/stream_filter/dash/mpd/Segment.cpp | 15 ++++++++++++++- modules/stream_filter/dash/mpd/Segment.h | 3 +++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/modules/stream_filter/dash/mpd/Representation.cpp b/modules/stream_filter/dash/mpd/Representation.cpp index cda86dc..ffbe46c 100644 --- a/modules/stream_filter/dash/mpd/Representation.cpp +++ b/modules/stream_filter/dash/mpd/Representation.cpp @@ -231,7 +231,7 @@ MPD * Representation::getMPD() const } 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++) @@ -244,6 +244,7 @@ static void insertIntoSegment(std::vector<Segment *> &seglist, size_t start, start + segment->getOffset(), end + segment->getOffset()); segment->addSubSegment(subsegment); + segment->setStartTime(time); break; } } @@ -254,6 +255,7 @@ void Representation::SplitUsingIndex(std::vector<SplitPoint> &splitlist) 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++) { @@ -262,7 +264,8 @@ void Representation::SplitUsingIndex(std::vector<SplitPoint> &splitlist) end = split.offset; if(splitIt == splitlist.begin() && split.offset == 0) continue; - insertIntoSegment(seglist, start, end); + time = split.time; + insertIntoSegment(seglist, start, end, time); end++; } @@ -270,6 +273,6 @@ void Representation::SplitUsingIndex(std::vector<SplitPoint> &splitlist) { start = end; end = 0; - insertIntoSegment(seglist, start, end); + insertIntoSegment(seglist, start, end, time); } } diff --git a/modules/stream_filter/dash/mpd/Segment.cpp b/modules/stream_filter/dash/mpd/Segment.cpp index 0397c11..4557dae 100644 --- a/modules/stream_filter/dash/mpd/Segment.cpp +++ b/modules/stream_filter/dash/mpd/Segment.cpp @@ -25,6 +25,8 @@ # include "config.h" #endif +#define __STDC_CONSTANT_MACROS + #include "Segment.h" #include "Representation.h" #include "MPD.h" @@ -38,7 +40,8 @@ using namespace dash::http; ISegment::ISegment(const ICanonicalUrl *parent): ICanonicalUrl( parent ), startByte (0), - endByte (0) + endByte (0), + startTime (VLC_TS_INVALID) { debugName = "Segment"; classId = CLASSID_ISEGMENT; @@ -81,6 +84,16 @@ void ISegment::setByteRange(size_t start, size_t end) endByte = end; } +void ISegment::setStartTime(mtime_t ztime) +{ + startTime = ztime; +} + +mtime_t ISegment::getStartTime() const +{ + return startTime; +} + size_t ISegment::getOffset() const { return startByte; diff --git a/modules/stream_filter/dash/mpd/Segment.h b/modules/stream_filter/dash/mpd/Segment.h index 4e09c5d..ae77ace 100644 --- a/modules/stream_filter/dash/mpd/Segment.h +++ b/modules/stream_filter/dash/mpd/Segment.h @@ -53,6 +53,8 @@ namespace dash 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; @@ -65,6 +67,7 @@ namespace dash protected: size_t startByte; size_t endByte; + mtime_t startTime; std::string debugName; int classId; _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits