diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-01-26 22:06:36 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-01-26 22:06:36 +0000 |
commit | a3bb9882b795111869b267ca87e1cc93dfb54701 (patch) | |
tree | 0d58b95d84654275f7dcecddb3c938ad4ee9e59b /libmpdemux | |
parent | a5d95b439dbd0d98917ffc366d9d9aa4f7aae82a (diff) | |
download | mpv-a3bb9882b795111869b267ca87e1cc93dfb54701.tar.bz2 mpv-a3bb9882b795111869b267ca87e1cc93dfb54701.tar.xz |
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
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/demux_lavf.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 11a0d2afb8..8af971fa84 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -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); } |