[vlc-devel] [PATCH 01/14] mkv: introduced helper functions related to indexes
Filip Roséen
filip at videolabs.io
Wed Mar 9 12:49:56 CET 2016
---
modules/demux/mkv/matroska_segment.cpp | 8 +++-----
modules/demux/mkv/matroska_segment.hpp | 7 +++++--
modules/demux/mkv/mkv.cpp | 4 ++--
3 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/modules/demux/mkv/matroska_segment.cpp b/modules/demux/mkv/matroska_segment.cpp
index ca72176..64d775b 100644
--- a/modules/demux/mkv/matroska_segment.cpp
+++ b/modules/demux/mkv/matroska_segment.cpp
@@ -893,13 +893,11 @@ void matroska_segment_c::Seek( mtime_t i_mk_date, mtime_t i_mk_time_offset, int6
return;
}
- indexes_t::const_iterator index_it = indexes.begin ();
+ indexes_t::const_iterator index_it = indexes_begin ();
if ( index_idx() )
{
- indexes_t::const_iterator last_active_it = indexes.end() - 1;
-
- for( ; index_it != last_active_it; ++index_it )
+ for( ; index_it != indexes_end(); ++index_it )
{
if (index_it->i_mk_time == -1)
continue;
@@ -908,7 +906,7 @@ void matroska_segment_c::Seek( mtime_t i_mk_date, mtime_t i_mk_time_offset, int6
break;
}
- if( index_it != indexes.begin ())
+ if( index_it != indexes_begin ())
--index_it;
i_seek_position = index_it->i_position;
diff --git a/modules/demux/mkv/matroska_segment.hpp b/modules/demux/mkv/matroska_segment.hpp
index cab3702..a1b8b92 100644
--- a/modules/demux/mkv/matroska_segment.hpp
+++ b/modules/demux/mkv/matroska_segment.hpp
@@ -145,8 +145,11 @@ public:
void UnSelect();
size_t index_idx () const { return indexes.size () - 1; }
- mkv_index_t& index () { return *indexes.rbegin (); }
- mkv_index_t& prev_index () { return *(indexes.end()-2); }
+ mkv_index_t& index () { return *(indexes.rbegin()); }
+ mkv_index_t& prev_index () { return *(indexes.rbegin()+1); }
+
+ indexes_t::iterator indexes_begin () { return indexes.begin(); }
+ indexes_t::iterator indexes_end () { return indexes.end() - (indexes.size() ? 1 : 0); }
static bool CompareSegmentUIDs( const matroska_segment_c * item_a, const matroska_segment_c * item_b );
diff --git a/modules/demux/mkv/mkv.cpp b/modules/demux/mkv/mkv.cpp
index 35b52c7..cd31bb7 100644
--- a/modules/demux/mkv/mkv.cpp
+++ b/modules/demux/mkv/mkv.cpp
@@ -475,8 +475,8 @@ static void Seek( demux_t *p_demux, mtime_t i_mk_date, double f_percent, virtual
if (p_segment->indexes.size())
{
- matroska_segment_c::indexes_t::iterator it = p_segment->indexes.begin ();
- matroska_segment_c::indexes_t::iterator last_active = p_segment->indexes.end()-1;
+ matroska_segment_c::indexes_t::iterator it = p_segment->indexes_begin ();
+ matroska_segment_c::indexes_t::iterator last_active = p_segment->indexes_end ();
for ( ; it != last_active; ++it )
{
--
2.7.2
More information about the vlc-devel
mailing list