mirror of https://github.com/mpv-player/mpv
player: seek backward for type MPSEEK_FACTOR
Choosing the seek direction for MPSEEK_FACTOR based on the location of seek_pts is nonsense, and can cause the seek position to oscillate between adjacent keyframes, such as when dragging the OSC bar on short videos. Fix this by always seeking backward for type MPSEEK_FACTOR, i.e. seek to the keyframe for the group of pictures (GOP) in which seek_pts is located. Fixes #4183. Signed-off-by: wm4 <wm4@nowhere>
This commit is contained in:
parent
2ba2062e5b
commit
ab19b3c9d3
|
@ -284,7 +284,7 @@ static void mp_seek(MPContext *mpctx, struct seek_params seek)
|
||||||
double len = get_time_length(mpctx);
|
double len = get_time_length(mpctx);
|
||||||
if (len >= 0)
|
if (len >= 0)
|
||||||
seek_pts = seek.amount * len;
|
seek_pts = seek.amount * len;
|
||||||
demux_flags = seek_pts > current_time ? SEEK_FORWARD : SEEK_BACKWARD;
|
demux_flags = SEEK_BACKWARD;
|
||||||
break;
|
break;
|
||||||
default: abort();
|
default: abort();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue