diff options
author | wm4 <wm4@nowhere> | 2015-07-02 13:17:20 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-07-02 13:18:06 +0200 |
commit | ff25c0ad7d7c3d1ca6f147a689884afc24e4b250 (patch) | |
tree | a6ad552d878420e5d79f7a1ad9dfaac10651dac2 /player | |
parent | 53845d81f5f8933b92a1d03bae91e94c5106334b (diff) | |
download | mpv-ff25c0ad7d7c3d1ca6f147a689884afc24e4b250.tar.bz2 mpv-ff25c0ad7d7c3d1ca6f147a689884afc24e4b250.tar.xz |
vo_opengl: fix "freezes" after seeking with interpolation on
When seeking to a different position, and seeking takes long, the OSD
might get redrawn. This means that the VO will receive a request to
redraw an old frame using whatever the previous PTS was. This breaks the
interpolation logic: the old frame will be added to the queue, and then
the next frames (with lower PTS if you seeked backwards) are not drawn
as the logic assumes they're past frames.
Fix this by using the non-interpolation code path when redrawing after a
seek reset, and no "real" frame has been drawn yet.
It's a recent regression caused by the redrawing code simplification.
The old code simply sent a VOCTRL for redrawing the frame, and the VO
had to deal with retaining the old frame on its own.
This is a hack as in there's probably a better solution.
Fixes #2097.
Diffstat (limited to 'player')
0 files changed, 0 insertions, 0 deletions