vlc | branch: master | Francois Cartegnie <[email protected]> | Thu Apr 15 
17:54:01 2021 +0200| [0d457f141f59752640df7f7e2483523607620f83] | committer: 
Francois Cartegnie

demux: adaptive: fix possible bogus huge buffer level

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

 modules/demux/adaptive/plumbing/CommandsQueue.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/modules/demux/adaptive/plumbing/CommandsQueue.cpp 
b/modules/demux/adaptive/plumbing/CommandsQueue.cpp
index 17720454a8..28f61108c1 100644
--- a/modules/demux/adaptive/plumbing/CommandsQueue.cpp
+++ b/modules/demux/adaptive/plumbing/CommandsQueue.cpp
@@ -461,12 +461,15 @@ bool CommandsQueue::isEOF() const
 
 vlc_tick_t CommandsQueue::getDemuxedAmount(vlc_tick_t from) const
 {
-    if( bufferinglevel == VLC_TICK_INVALID || from > bufferinglevel )
+    vlc_tick_t bufferingstart = getFirstDTS();
+    if( bufferinglevel == VLC_TICK_INVALID ||
+        bufferingstart == VLC_TICK_INVALID ||
+        from > bufferinglevel )
         return 0;
-    if( from > getFirstDTS() )
+    if( from > bufferingstart )
         return bufferinglevel - from;
     else
-        return bufferinglevel - getFirstDTS();
+        return bufferinglevel - bufferingstart;
 }
 
 vlc_tick_t CommandsQueue::getBufferingLevel() const

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

Reply via email to