vlc | branch: master | Francois Cartegnie <fcvlc...@free.fr> | Sun Nov 23 18:44:56 2014 +0100| [b59e03d0a272ce0fcca94364910189b867ad29c7] | committer: Francois Cartegnie
stream_filter: dash: add segment chunk class > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b59e03d0a272ce0fcca94364910189b867ad29c7 --- modules/stream_filter/dash/http/Chunk.h | 4 ++-- modules/stream_filter/dash/mpd/Segment.cpp | 17 ++++++++++++++--- modules/stream_filter/dash/mpd/Segment.h | 14 ++++++++++++-- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/modules/stream_filter/dash/http/Chunk.h b/modules/stream_filter/dash/http/Chunk.h index 22ee70d..8853adf 100644 --- a/modules/stream_filter/dash/http/Chunk.h +++ b/modules/stream_filter/dash/http/Chunk.h @@ -72,7 +72,7 @@ namespace dash void setBitrate (uint64_t bitrate); int getBitrate (); - virtual void onDownload () {} + virtual void onDownload (void *, size_t) {} private: std::string url; @@ -84,7 +84,7 @@ namespace dash int bitrate; int port; bool isHostname; - size_t length; + uint64_t length; uint64_t bytesRead; IHTTPConnection *connection; }; diff --git a/modules/stream_filter/dash/mpd/Segment.cpp b/modules/stream_filter/dash/mpd/Segment.cpp index 93d87b2..24cf130 100644 --- a/modules/stream_filter/dash/mpd/Segment.cpp +++ b/modules/stream_filter/dash/mpd/Segment.cpp @@ -41,9 +41,9 @@ ISegment::ISegment(const ICanonicalUrl *parent): } -dash::http::Chunk* ISegment::toChunk() const +dash::http::Chunk* ISegment::toChunk() { - Chunk *chunk = new Chunk(); + Chunk *chunk = new SegmentChunk(this); if (!chunk) return NULL; @@ -78,6 +78,17 @@ std::string ISegment::toString() const return std::string(" Segment url=").append(getUrlSegment()); } +ISegment::SegmentChunk::SegmentChunk(ISegment *segment_) : + Chunk() +{ + segment = segment_; +} + +void ISegment::SegmentChunk::onDownload(void *, size_t) +{ + +} + Segment::Segment(Representation *parent, bool isinit, bool tosplit) : ISegment(parent), parentRepresentation( parent ), @@ -122,7 +133,7 @@ std::string Segment::getUrlSegment() const return ret; } -dash::http::Chunk* Segment::toChunk() const +dash::http::Chunk* Segment::toChunk() { Chunk *chunk = ISegment::toChunk(); if (chunk) diff --git a/modules/stream_filter/dash/mpd/Segment.h b/modules/stream_filter/dash/mpd/Segment.h index 29edae9..404471c 100644 --- a/modules/stream_filter/dash/mpd/Segment.h +++ b/modules/stream_filter/dash/mpd/Segment.h @@ -51,7 +51,7 @@ namespace dash */ virtual bool isSingleShot () const; virtual void done (); - virtual dash::http::Chunk* toChunk () const; + virtual dash::http::Chunk* toChunk (); virtual void setByteRange (size_t start, size_t end); virtual std::vector<ISegment*> subSegments () = 0; virtual std::string toString () const; @@ -60,6 +60,16 @@ namespace dash protected: size_t startByte; size_t endByte; + + class SegmentChunk : public dash::http::Chunk + { + public: + SegmentChunk(ISegment *segment); + virtual void onDownload(void *, size_t); + + private: + ISegment *segment; + }; }; class Segment : public ISegment @@ -70,7 +80,7 @@ namespace dash virtual void setSourceUrl( const std::string &url ); virtual bool needsSplit() const; virtual std::string getUrlSegment() const; /* impl */ - virtual dash::http::Chunk* toChunk() const; + virtual dash::http::Chunk* toChunk(); virtual std::vector<ISegment*> subSegments(); virtual std::string toString() const; virtual Representation* getRepresentation() const; _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits