From 721803c631c402ee7ed7aafa133c9c80702349e3 Mon Sep 17 00:00:00 2001 From: Uoti Urpala Date: Mon, 15 Nov 2010 18:18:21 +0200 Subject: demux_mkv: seek: fix bogus audio packet from earlier position Due to a bug created back in 2006 when SimpleBlock support was added, demux_mkv demuxed one audio packet from the initial file position after a seek, then skipped the following ones until a video keyframe was found. This wasn't very noticeable earlier, but it had bad effects after the recently added -initial-audio-sync code as the extra packet with an earlier timestamp confused timing calculations and resulted in desync after seeking. Fix. --- libmpdemux/demux_mkv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'libmpdemux/demux_mkv.c') diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c index 78bd6d30eb..358f152c16 100644 --- a/libmpdemux/demux_mkv.c +++ b/libmpdemux/demux_mkv.c @@ -2191,7 +2191,8 @@ static int handle_block(demuxer_t *demuxer, uint8_t *block, uint64_t length, use_this_block = 0; } else if (block_bref != 0) use_this_block = 0; - } else if (mkv_d->v_skip_to_keyframe) + } + if (mkv_d->v_skip_to_keyframe) use_this_block = 0; if (track->fix_i_bps && use_this_block) { -- cgit v1.2.3