Mercurial > mplayer.hg
diff libmpdemux/demux_mkv.c @ 25883:baf32110d3fc
Use defines to give names to the different seek flags.
A better solution should be considered later, esp. for the many
broken demuxers that do not treat these flags correctly.
author | reimar |
---|---|
date | Tue, 29 Jan 2008 15:11:38 +0000 |
parents | d4fe6e23283e |
children | 382672c7480a |
line wrap: on
line diff
--- a/libmpdemux/demux_mkv.c Tue Jan 29 14:58:10 2008 +0000 +++ b/libmpdemux/demux_mkv.c Tue Jan 29 15:11:38 2008 +0000 @@ -2534,7 +2534,8 @@ 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 @@ 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 @@ 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_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 {