summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_mkv.c
diff options
context:
space:
mode:
authormosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-08-24 12:33:32 +0000
committermosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-08-24 12:33:32 +0000
commita030e2fe1c23e81288b310fc552a6effc3d72647 (patch)
tree6c69cba35a81523bbe6ae6a653448589fc157df2 /libmpdemux/demux_mkv.c
parentd34494074cf6cc3dc906938dcbc18c2cd0a5eea3 (diff)
downloadmpv-a030e2fe1c23e81288b310fc552a6effc3d72647.tar.bz2
mpv-a030e2fe1c23e81288b310fc552a6effc3d72647.tar.xz
Fixed seeking for AVC-in-Matroska (wrong assumption of what kind of references may be present for a non-I-frame).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16303 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_mkv.c')
-rw-r--r--libmpdemux/demux_mkv.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c
index 79f34fbe86..d362ec0d79 100644
--- a/libmpdemux/demux_mkv.c
+++ b/libmpdemux/demux_mkv.c
@@ -2919,7 +2919,7 @@ handle_block (demuxer_t *demuxer, uint8_t *block, uint64_t length,
else if (num == demuxer->video->id)
{
ds = demuxer->video;
- if (mkv_d->v_skip_to_keyframe && block_bref != 0)
+ if (mkv_d->v_skip_to_keyframe && (block_bref != 0 || block_fref != 0))
use_this_block = 0;
}
else if (num == demuxer->sub->id)
@@ -2962,7 +2962,7 @@ handle_block (demuxer_t *demuxer, uint8_t *block, uint64_t length,
memcpy (dp->buffer, buffer, size);
if (modified)
free (buffer);
- dp->flags = block_bref == 0 ? 1 : 0;
+ dp->flags = (block_bref == 0 && block_fref == 0) ? 1 : 0;
dp->pts = mkv_d->last_pts + i * track->default_duration;
ds_add_packet (ds, dp);
}