mirror of https://github.com/mpv-player/mpv
Used wrong condition for using AVSEEK_FLAG_BACKWARD, it should depend on
relative vs. absolute, not time- vs. percent-based seek. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25870 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
a5d95b439d
commit
a3bb9882b7
|
@ -611,15 +611,16 @@ static void demux_seek_lavf(demuxer_t *demuxer, float rel_seek_secs, float audio
|
|||
int avsflags = 0;
|
||||
mp_msg(MSGT_DEMUX,MSGL_DBG2,"demux_seek_lavf(%p, %f, %f, %d)\n", demuxer, rel_seek_secs, audio_delay, flags);
|
||||
|
||||
if (flags & 1) // absolute seek
|
||||
if (flags & 1) { // absolute seek
|
||||
priv->last_pts = priv->avfc->start_time;
|
||||
if (rel_seek_secs < 0) avsflags = AVSEEK_FLAG_BACKWARD;
|
||||
}
|
||||
if (flags & 2) { // percent seek
|
||||
if (priv->avfc->duration == 0 || priv->avfc->duration == AV_NOPTS_VALUE)
|
||||
return;
|
||||
priv->last_pts += rel_seek_secs * priv->avfc->duration;
|
||||
} else {
|
||||
priv->last_pts += rel_seek_secs * AV_TIME_BASE;
|
||||
if (rel_seek_secs < 0) avsflags = AVSEEK_FLAG_BACKWARD;
|
||||
}
|
||||
av_seek_frame(priv->avfc, -1, priv->last_pts, avsflags);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue