summaryrefslogtreecommitdiffstats
path: root/mpvcore
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-11-16 21:04:28 +0100
committerwm4 <wm4@nowhere>2013-11-16 21:46:17 +0100
commita2a24b957ec7dae8b9d312af8292b5e5e82d77be (patch)
treec4d9ad9cd7196a5f3ea5f8d83b570e55fb27b3a9 /mpvcore
parent0cdbc6db6ea1ee6cdeedec6c8bd84e692d5f82d3 (diff)
downloadmpv-a2a24b957ec7dae8b9d312af8292b5e5e82d77be.tar.bz2
mpv-a2a24b957ec7dae8b9d312af8292b5e5e82d77be.tar.xz
demux: simplify handling of filepos field
demuxer->filepos contains the byte offset of the last read packet. This is so that the player can estimate the current playback position, if no proper timestamps are available. Simplify it to use demux_packet->pos in the generic demuxer code, instead of bothering every demuxer implementation about it. (Note that this is still a bit incorrect: it relfects the position of the last packet read by the demuxer, not that returned to the user. But that was already broken, and is not that trivial to fix.)
Diffstat (limited to 'mpvcore')
-rw-r--r--mpvcore/player/playloop.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mpvcore/player/playloop.c b/mpvcore/player/playloop.c
index 9d5b4a5e25..9fef5c07b5 100644
--- a/mpvcore/player/playloop.c
+++ b/mpvcore/player/playloop.c
@@ -458,7 +458,7 @@ double get_current_pos_ratio(struct MPContext *mpctx, bool use_range)
} else {
struct stream *s = demuxer->stream;
int64_t size = s->end_pos - s->start_pos;
- int64_t fpos = demuxer->filepos > 0 ?
+ int64_t fpos = demuxer->filepos >= 0 ?
demuxer->filepos : stream_tell(demuxer->stream);
if (size > 0)
ans = MPCLAMP((double)(fpos - s->start_pos) / size, 0, 1);