diff options
Diffstat (limited to 'demux/demux_mf.c')
-rw-r--r-- | demux/demux_mf.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/demux/demux_mf.c b/demux/demux_mf.c index c60f5c6307..c0b159e4ea 100644 --- a/demux/demux_mf.c +++ b/demux/demux_mf.c @@ -159,15 +159,12 @@ static mf_t *open_mf_single(void *talloc_ctx, struct mp_log *log, char *filename return mf; } -static void demux_seek_mf(demuxer_t *demuxer, double rel_seek_secs, int flags) +static void demux_seek_mf(demuxer_t *demuxer, double seek_pts, int flags) { mf_t *mf = demuxer->priv; - int newpos = (flags & SEEK_ABSOLUTE) ? 0 : mf->curr_frame - 1; - + int newpos = seek_pts * mf->sh->codec->fps; if (flags & SEEK_FACTOR) - newpos += rel_seek_secs * (mf->nr_of_files - 1); - else - newpos += rel_seek_secs * mf->sh->codec->fps; + newpos = seek_pts * (mf->nr_of_files - 1); if (newpos < 0) newpos = 0; if (newpos >= mf->nr_of_files) |