summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-07-06 19:03:43 +0200
committerwm4 <wm4@nowhere>2014-07-06 19:03:43 +0200
commitf512604f02559aca4113cf375248c2aa6ae4e985 (patch)
tree41bfdedac4daab93444a464e6f719bdb2d7d3352
parent7bf090ad241b350352cdcc4874f206ba47241708 (diff)
downloadmpv-f512604f02559aca4113cf375248c2aa6ae4e985.tar.bz2
mpv-f512604f02559aca4113cf375248c2aa6ae4e985.tar.xz
dvd, bd: enable precise seeking
This should work now, at least kind of. Note that actual success depends on the behavior of the underlying lib{dvd{nav,read},bluray} implementation, which could go very wrong. In the worst case, it could happen that the underlying implementation seeks a long time before the seek target time. In this case, the player will just decode video until the target time is reached, even if that requires e.g. decoding 30 mintues of video before refreshing. In the not-so-bad but still bad case, it would just miss the seek target, and seek past it. In my tests, it works mostly ok, though. Seeking backwards usually fails, unless something like --hr-seek-demuxer-offset=1 is used (this makes it seek to 1 second before the target, which may or may not be enough to compensate for the DVD/BD imprecision).
-rw-r--r--demux/demux_disc.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/demux/demux_disc.c b/demux/demux_disc.c
index bc779af6e5..0ee9dd8841 100644
--- a/demux/demux_disc.c
+++ b/demux/demux_disc.c
@@ -295,10 +295,7 @@ static int d_open(demuxer_t *demuxer, enum demux_check check)
p->slave->stream_select_default = true;
demuxer->start_time = p->pts[STREAM_VIDEO].base_time;
- // Incorrect, but fixes some behavior
- demuxer->ts_resets_possible = false;
- // Doesn't work, because stream_pts is a "guess".
- demuxer->accurate_seek = false;
+
// Can be seekable even if the stream isn't.
demuxer->seekable = true;