summaryrefslogtreecommitdiffstats
path: root/stream/stream_dvd.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-08-22 18:23:33 +0200
committerwm4 <wm4@nowhere>2013-08-22 19:14:26 +0200
commitf806e268c6c3a76f65b1282219e16fcdfb80a9b5 (patch)
tree66876fbc7d96308da11a91456d91ef90223bac23 /stream/stream_dvd.c
parenta790f2133bb785e0c48a7c6cdc730c8b7e8287fb (diff)
downloadmpv-f806e268c6c3a76f65b1282219e16fcdfb80a9b5.tar.bz2
mpv-f806e268c6c3a76f65b1282219e16fcdfb80a9b5.tar.xz
stream: don't require streams to set s->pos in seek callback
Instead, set s->pos depending on the success of the seek callback.
Diffstat (limited to 'stream/stream_dvd.c')
-rw-r--r--stream/stream_dvd.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/stream/stream_dvd.c b/stream/stream_dvd.c
index 0372e6c3c0..340002fb46 100644
--- a/stream/stream_dvd.c
+++ b/stream/stream_dvd.c
@@ -354,13 +354,13 @@ static int fill_buffer(stream_t *s, char *buf, int len)
pos = dvd_read_sector(s->priv, buf);
if (pos < 0)
return -1;
+ // dvd_read_sector() sometimes internally skips disk-level blocks
s->pos = 2048*(pos - 1);
return 2048; // full sector
}
static int seek(stream_t *s, int64_t newpos) {
- s->pos=newpos; // real seek
- dvd_seek(s->priv,s->pos/2048);
+ dvd_seek(s->priv,newpos/2048);
return 1;
}