vlc | branch: master | Francois Cartegnie <[email protected]> | Mon Sep 28 
18:01:02 2015 +0200| [4c0c0d37fdb319c509c3adb7147250a6b0bcbf88] | committer: 
Francois Cartegnie

demux: adaptative: fix timeline number to time

regression since using absolute numbering

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4c0c0d37fdb319c509c3adb7147250a6b0bcbf88
---

 .../demux/adaptative/playlist/SegmentTimeline.cpp  |   20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/modules/demux/adaptative/playlist/SegmentTimeline.cpp 
b/modules/demux/adaptative/playlist/SegmentTimeline.cpp
index 7bbef44..637260d 100644
--- a/modules/demux/adaptative/playlist/SegmentTimeline.cpp
+++ b/modules/demux/adaptative/playlist/SegmentTimeline.cpp
@@ -85,14 +85,22 @@ stime_t 
SegmentTimeline::getScaledPlaybackTimeByElementNumber(uint64_t number) c
     {
         const Element *el = *it;
 
-        if(number >= el->number)
+        /* set start time, or from discontinuity */
+        if(it == elements.begin() || el->t)
         {
-            if(number <= el->number + el->r)
-            {
-                return el->t + (number * el->d);
-            }
-            totalscaledtime = el->t + (number * el->d);
+            totalscaledtime = el->t;
         }
+
+        if(number <= el->number)
+            break;
+
+        if(number <= el->number + el->r)
+        {
+            totalscaledtime += el->d * (number - el->number);
+            break;
+        }
+
+        totalscaledtime += (el->d * (el->r + 1));
     }
 
     return totalscaledtime;

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to