From 02c82b36dc009c3cb2c09058ae73c40d4a1485a0 Mon Sep 17 00:00:00 2001 From: Christophe Mutricy Date: Wed, 9 May 2007 22:49:10 +0000 Subject: [PATCH] Fix crash in MKV demuxer. Patch courtesy of Harry Sintonen. Fix #1006 --- THANKS | 1 + modules/demux/mkv.cpp | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/THANKS b/THANKS index b5ab9950b0..8bc3adc77f 100644 --- a/THANKS +++ b/THANKS @@ -80,6 +80,7 @@ Goetz Waschk - Mandrake packages Haakon Meland Eriksen - Norwegian translation Han HoJoong <0demon0 at paran dot com> - Korean translation Hans-Peter Jansen - patch for module options handling +Harry Sintonen - fix for MKV demuxer Igor Helman - VLM msecseek command Ilkka Ollakka - SDP bitrate patch, various VLM fixes Jan Gerber - patch theora decoding aspect ratio diff --git a/modules/demux/mkv.cpp b/modules/demux/mkv.cpp index 6d526cf1f6..2877566a35 100644 --- a/modules/demux/mkv.cpp +++ b/modules/demux/mkv.cpp @@ -5673,13 +5673,23 @@ void matroska_segment_c::Seek( mtime_t i_date, mtime_t i_time_offset ) for( i_track = 0; i_track < tracks.size(); i_track++ ) { +#if LIBMATROSKA_VERSION >= 0x000800 + if( (simpleblock && tracks[i_track]->i_number == simpleblock->TrackNum()) || + (block && tracks[i_track]->i_number == block->TrackNum()) ) +#else if( tracks[i_track]->i_number == block->TrackNum() ) +#endif { break; } } - sys.i_pts = (sys.i_chapter_time + block->GlobalTimecode()) / (mtime_t) 1000; +#if LIBMATROSKA_VERSION >= 0x000800 + if( simpleblock ) + sys.i_pts = (sys.i_chapter_time + simpleblock->GlobalTimecode()) / (mtime_t) 1000; + else +#endif + sys.i_pts = (sys.i_chapter_time + block->GlobalTimecode()) / (mtime_t) 1000; if( i_track < tracks.size() ) { -- 2.39.2