diff options
author | wm4 <wm4@nowhere> | 2017-02-21 14:18:30 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2017-02-21 15:39:40 +0100 |
commit | 3cd29ca0318cfab04d155ea8323e7b4c84010b79 (patch) | |
tree | ee401f17b41eccb2e383ac4e87543ee65ba49db5 /wscript | |
parent | e85d06baadeda6b63f315adfcdbdd7c56cd8cf9f (diff) | |
download | mpv-3cd29ca0318cfab04d155ea8323e7b4c84010b79.tar.bz2 mpv-3cd29ca0318cfab04d155ea8323e7b4c84010b79.tar.xz |
player: reduce blocking on VO when switching pause
When pausing, we sent BOCTRL_PAUSE and VOCTRL_RESTORE_SCREENSAVER. These
essentially wait until the video frame has been rendered. This is a
problem with the opengl-cb, if GL rendering is done in the same thread
as libmpv uses. Unfortunately, it's allowed to use opengl-cb this way.
Logically speaking, it's a deadlock situation, which is resolved with a
timeout. This can lead to quite ugly effects, like the on-pause frame
not being rendered until the timeout has passed. It has been interpreted
as video continuing to play.
Resolve this by simply not blocking on pause. Make the screensaver
controls async, and handle sending VOCTRL_PAUSE in the VO thread.
(All this could be avoided by redoing the internal VO API.)
Also see #4152.
Diffstat (limited to 'wscript')
0 files changed, 0 insertions, 0 deletions