vlc | branch: master | Filip Roséen <[email protected]> | Sat May 21 02:17:58 
2016 +0200| [48b287c8d8916b4061c470aa3914ef1bb9fab466] | committer: 
Jean-Baptiste Kempf

mkv: fixed SegmentSeeker::get_search_areas

Fixed bug where a too big of an area would be returned from the
function, instead of just the area that is really not searched
(indexed).

This will, of course, speed up seeking since we will not rescan an area
where we already know everything there is to know.

Signed-off-by: Jean-Baptiste Kempf <[email protected]>

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

 modules/demux/mkv/matroska_segment_seeker.cpp |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/modules/demux/mkv/matroska_segment_seeker.cpp 
b/modules/demux/mkv/matroska_segment_seeker.cpp
index 8ae1a4a..a9ad735 100644
--- a/modules/demux/mkv/matroska_segment_seeker.cpp
+++ b/modules/demux/mkv/matroska_segment_seeker.cpp
@@ -366,9 +366,11 @@ SegmentSeeker::get_search_areas( fptr_t start, fptr_t end 
) const
             areas_to_search.push_back( Range( needle.start, it->start ) );
         }
 
-        needle.start = it->end + 1;
+        if( needle.start <= it->end )
+            needle.start = it->end + 1;
     }
 
+    needle.start = std::max( needle.start, start );
     if( it == _ranges_searched.end() && needle.start < needle.end )
     {
         areas_to_search.push_back( needle );

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

Reply via email to