summaryrefslogtreecommitdiffstats
path: root/player/playloop.c
diff options
context:
space:
mode:
Diffstat (limited to 'player/playloop.c')
-rw-r--r--player/playloop.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/player/playloop.c b/player/playloop.c
index dea78c5571..964f112b6d 100644
--- a/player/playloop.c
+++ b/player/playloop.c
@@ -472,11 +472,12 @@ double get_current_pos_ratio(struct MPContext *mpctx, bool use_range)
ans = MPCLAMP((pos - start) / len, 0, 1);
} else {
struct stream *s = demuxer->stream;
- int64_t size = s->end_pos;
- int64_t fpos = demuxer->filepos >= 0 ?
- demuxer->filepos : stream_tell(demuxer->stream);
- if (size > 0)
+ int64_t size;
+ if (stream_control(s, STREAM_CTRL_GET_SIZE, &size) > 0 && size > 0) {
+ int64_t fpos =
+ demuxer->filepos >= 0 ? demuxer->filepos : stream_tell(s);
ans = MPCLAMP(fpos / (double)size, 0, 1);
+ }
}
if (use_range) {
if (mpctx->opts->play_frames > 0)