diff options
Diffstat (limited to 'libmpdemux/demux_mkv.c')
-rw-r--r-- | libmpdemux/demux_mkv.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c index 867dfd2f8a..3d3fed33b1 100644 --- a/libmpdemux/demux_mkv.c +++ b/libmpdemux/demux_mkv.c @@ -2534,7 +2534,8 @@ demux_mkv_open (demuxer_t *demuxer) mkv_d->has_first_tc = 1; } demux_mkv_seek (demuxer, - demuxer->chapters[dvd_chapter-1].start/1000.0, 0.0, 1); + demuxer->chapters[dvd_chapter-1].start/1000.0, 0.0, + SEEK_ABSOLUTE); } } @@ -3289,14 +3290,14 @@ static void demux_mkv_seek (demuxer_t *demuxer, float rel_seek_secs, float audio_delay, int flags) { free_cached_dps (demuxer); - if (!(flags & 2)) /* time in secs */ + if (!(flags & SEEK_FACTOR)) /* time in secs */ { mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv; stream_t *s = demuxer->stream; int64_t target_timecode = 0, diff, min_diff=0xFFFFFFFFFFFFFFFLL; int i; - if (!(flags & 1)) /* relative seek */ + if (!(flags & SEEK_ABSOLUTE)) /* relative seek */ target_timecode = (int64_t) (mkv_d->last_pts * 1000.0); target_timecode += (int64_t)(rel_seek_secs * 1000.0); if (target_timecode < 0) @@ -3371,7 +3372,7 @@ demux_mkv_seek (demuxer_t *demuxer, float rel_seek_secs, float audio_delay, int diff = target_timecode + mkv_d->first_tc - (int64_t) mkv_d->indexes[i].timecode * mkv_d->tc_scale / 1000000.0; - if ((flags & 1 || target_timecode <= mkv_d->last_pts*1000)) { + if ((flags & SEEK_ABSOLUTE || target_timecode <= mkv_d->last_pts*1000)) { // Absolute seek or seek backward: find the last index // position before target time if (diff < 0 || diff >= min_diff) @@ -3408,7 +3409,7 @@ demux_mkv_seek (demuxer_t *demuxer, float rel_seek_secs, float audio_delay, int demux_mkv_fill_buffer(demuxer, NULL); } - else if ((demuxer->movi_end <= 0) || !(flags & 1)) + else if ((demuxer->movi_end <= 0) || !(flags & SEEK_ABSOLUTE)) mp_msg (MSGT_DEMUX, MSGL_V, "[mkv] seek unsupported flags\n"); else { |