diff options
author | wm4 <wm4@nowhere> | 2013-05-03 19:52:28 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-05-05 18:44:23 +0200 |
commit | acad31c2d382043f1c43c74a678de659a54a3788 (patch) | |
tree | eb7d9a07f8ea0316e6faff2ce410fb298e50352c /stream/cache2.c | |
parent | 977dc4c63df0c38d6ce34b51f97352eb3d0e91e9 (diff) | |
download | mpv-acad31c2d382043f1c43c74a678de659a54a3788.tar.bz2 mpv-acad31c2d382043f1c43c74a678de659a54a3788.tar.xz |
core: don't report byte-based playback position with dvd
DVD playback uses a demuxer that signals to the frontend that timestamp
resets are possible. This made the frontend calculate the OSD playback
position based on the byte position and the total size of the stream.
This actually broke DVD playback position display. Since DVD reports a
a linear playback position, we don't have to rely on the demuxer
reported position, so disable this functionality in case of DVD
playback. This reverts the OSD behavior with DVD to the old behavior.
Diffstat (limited to 'stream/cache2.c')
-rw-r--r-- | stream/cache2.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/stream/cache2.c b/stream/cache2.c index 7744f2cba9..6c11ec9812 100644 --- a/stream/cache2.c +++ b/stream/cache2.c @@ -323,6 +323,9 @@ static int cache_execute_control(cache_vars_t *s) { case STREAM_CTRL_GET_LANG: s->control_res = s->stream->control(s->stream, s->control, (void *)&s->control_lang_arg); break; + case STREAM_CTRL_MANAGES_TIMELINE: + s->control_res = s->stream->control(s->stream, s->control, NULL); + break; default: s->control_res = STREAM_UNSUPPORTED; break; @@ -659,6 +662,7 @@ int cache_do_control(stream_t *stream, int cmd, void *arg) { case STREAM_CTRL_GET_NUM_ANGLES: case STREAM_CTRL_GET_ANGLE: case STREAM_CTRL_GET_SIZE: + case STREAM_CTRL_MANAGES_TIMELINE: case -2: s->control = cmd; break; @@ -707,6 +711,8 @@ int cache_do_control(stream_t *stream, int cmd, void *arg) { case STREAM_CTRL_GET_LANG: *(struct stream_lang_req *)arg = s->control_lang_arg; break; + case STREAM_CTRL_MANAGES_TIMELINE: + break; } return s->control_res; } |