[vlc-commits] demux: adaptive: fix timeline getMinAhead
Francois Cartegnie
git at videolan.org
Tue Mar 24 23:35:15 CET 2020
vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Wed Mar 18 18:04:02 2020 +0100| [beff032660d4b389a6d91467a3bc62570f9bf05a] | committer: Francois Cartegnie
demux: adaptive: fix timeline getMinAhead
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=beff032660d4b389a6d91467a3bc62570f9bf05a
---
modules/demux/adaptive/playlist/SegmentTimeline.cpp | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/modules/demux/adaptive/playlist/SegmentTimeline.cpp b/modules/demux/adaptive/playlist/SegmentTimeline.cpp
index f329a8ef90..e1c530a767 100644
--- a/modules/demux/adaptive/playlist/SegmentTimeline.cpp
+++ b/modules/demux/adaptive/playlist/SegmentTimeline.cpp
@@ -68,21 +68,21 @@ stime_t SegmentTimeline::getMinAheadScaledTime(uint64_t number) const
{
stime_t totalscaledtime = 0;
+ if(!elements.size() ||
+ minElementNumber() > number ||
+ maxElementNumber() < number)
+ return 0;
+
std::list<Element *>::const_reverse_iterator it;
for(it = elements.rbegin(); it != elements.rend(); ++it)
{
const Element *el = *it;
-
- if(number < el->number)
- {
- totalscaledtime += (el->d * (el->r + 1));
+ if(number > el->number + el->r)
break;
- }
- else if(number <= el->number + el->r)
- {
+ else if(number < el->number + el->r)
+ totalscaledtime += (el->d * (el->r + 1));
+ else /* within repeat range */
totalscaledtime += el->d * (el->number + el->r - number);
- }
- else break;
}
return totalscaledtime;
More information about the vlc-commits
mailing list