vlc | branch: master | Francois Cartegnie <[email protected]> | Wed Oct 14 21:16:33 2020 +0200| [4cf6ba8e06e9e1f75a6a9d0509463cbbc24bf136] | committer: Francois Cartegnie
demux: adaptive: download and use index once > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4cf6ba8e06e9e1f75a6a9d0509463cbbc24bf136 --- modules/demux/adaptive/SegmentTracker.cpp | 9 ++++++--- modules/demux/adaptive/playlist/BaseRepresentation.cpp | 6 ++++++ modules/demux/adaptive/playlist/BaseRepresentation.h | 1 + 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/modules/demux/adaptive/SegmentTracker.cpp b/modules/demux/adaptive/SegmentTracker.cpp index c83a6f1fec..7f987abec8 100644 --- a/modules/demux/adaptive/SegmentTracker.cpp +++ b/modules/demux/adaptive/SegmentTracker.cpp @@ -305,9 +305,12 @@ SegmentChunk * SegmentTracker::getNextChunk(bool switch_allowed, if(!current.index_sent) { ++next; - segment = current.rep->getSegment(BaseRepresentation::INFOTYPE_INDEX); - if(segment) - return segment->toChunk(resources, connManager, current.number, current.rep); + if(current.rep->needsIndex()) + { + segment = current.rep->getSegment(BaseRepresentation::INFOTYPE_INDEX); + if(segment) + return segment->toChunk(resources, connManager, current.number, current.rep); + } current = next; } diff --git a/modules/demux/adaptive/playlist/BaseRepresentation.cpp b/modules/demux/adaptive/playlist/BaseRepresentation.cpp index b55808d620..6afc11fef1 100644 --- a/modules/demux/adaptive/playlist/BaseRepresentation.cpp +++ b/modules/demux/adaptive/playlist/BaseRepresentation.cpp @@ -92,6 +92,12 @@ bool BaseRepresentation::needsUpdate(uint64_t) const return false; } +bool BaseRepresentation::needsIndex() const +{ + SegmentBase *base = inheritSegmentBase(); + return base && base->subSegments().empty(); +} + bool BaseRepresentation::runLocalUpdates(SharedResources *) { return false; diff --git a/modules/demux/adaptive/playlist/BaseRepresentation.h b/modules/demux/adaptive/playlist/BaseRepresentation.h index b770b78ffc..414e10920e 100644 --- a/modules/demux/adaptive/playlist/BaseRepresentation.h +++ b/modules/demux/adaptive/playlist/BaseRepresentation.h @@ -66,6 +66,7 @@ namespace adaptive virtual vlc_tick_t getMinAheadTime (uint64_t) const; virtual bool needsUpdate (uint64_t) const; + virtual bool needsIndex () const; virtual bool runLocalUpdates (SharedResources *); virtual void scheduleNextUpdate (uint64_t, bool); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
