summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2009-08-18 02:29:37 +0300
committerUoti Urpala <uau@glyph.nonexistent.invalid>2009-08-18 02:29:37 +0300
commit95da34aa071d64b21ef3e952b987ba3dcee84ca0 (patch)
treeeabf4399e40fd270714c53d40688eadadfd4c5ff /libmpdemux/demuxer.c
parentf394231f5de9d1ff679f1b2da4d1f1b303ae914a (diff)
parent3961e12fca2f1ec10c64e3ff298828feecca52c9 (diff)
downloadmpv-95da34aa071d64b21ef3e952b987ba3dcee84ca0.tar.bz2
mpv-95da34aa071d64b21ef3e952b987ba3dcee84ca0.tar.xz
Merge svn changes up to r29532
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 349131f12b..f4e5351290 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -240,7 +240,7 @@ demuxer_t *new_demuxer(struct MPOpts *opts, stream_t *stream, int type,
d->movi_end = stream->end_pos;
d->seekable = 1;
d->synced = 0;
- d->filepos = 0;
+ d->filepos = -1;
d->audio = new_demuxer_stream(d, a_id);
d->video = new_demuxer_stream(d, v_id);
d->sub = new_demuxer_stream(d, s_id);
@@ -1276,8 +1276,9 @@ int demuxer_get_percent_pos(demuxer_t *demuxer)
int res = demux_control(demuxer, DEMUXER_CTRL_GET_PERCENT_POS, &ans);
int len = (demuxer->movi_end - demuxer->movi_start) / 100;
if (res <= 0) {
+ off_t pos = demuxer->filepos > 0 ? demuxer->filepos : stream_tell(demuxer->stream);
if (len > 0)
- ans = (demuxer->filepos - demuxer->movi_start) / len;
+ ans = (pos - demuxer->movi_start) / len;
else
ans = 0;
}