0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 20:03:10 +02:00
mpv/player
wm4 3cd29ca031 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.
2017-02-21 15:39:40 +01:00
..
lua ytdl_hook: support livestream segmented DASH VODs 2017-02-10 20:24:03 +00:00
audio.c audio: stop being dumb 2017-01-08 14:47:53 +01:00
client.c player: restructure cancel callback 2017-01-18 17:52:05 +01:00
client.h client API: turn mpv_suspend() and mpv_resume() into stubs 2016-11-22 15:54:44 +01:00
command.c command: add a redundant NULL check 2017-02-20 14:02:10 +01:00
command.h options: slightly better option update mechanism 2016-09-19 19:51:26 +02:00
configfiles.c player: fix previous commit 2016-10-03 17:16:02 +02:00
core.h player: add experimental stream recording feature 2017-02-07 17:05:17 +01:00
external_files.c sub: remove .txt as text subtitle extension 2017-02-03 11:32:16 +01:00
external_files.h player: rename and move find_subfiles.c 2015-09-20 18:05:06 +02:00
lavfi.c lavfi: support hwdec filters for --lavfi-complex 2017-02-20 13:42:08 +01:00
lavfi.h lavfi: support hwdec filters for --lavfi-complex 2017-02-20 13:42:08 +01:00
loadfile.c player: add experimental stream recording feature 2017-02-07 17:05:17 +01:00
lua.c lua: close directory after reading its entries 2017-01-17 08:22:13 +01:00
main.c atomic: remove __atomic builtin usage 2017-02-13 06:45:40 +01:00
misc.c player: remove --stream-capture option/property 2017-01-21 17:19:01 +01:00
osd.c player: different way to auto-enable the demuxer cache 2017-02-02 18:38:16 +01:00
playloop.c player: reduce blocking on VO when switching pause 2017-02-21 15:39:40 +01:00
screenshot.c cuda: use libavutil functions for copying hw surfaces to memory 2017-01-12 13:59:35 +01:00
screenshot.h Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
scripting.c scripting: don't call dlclose() on C plugins 2017-01-14 17:14:30 +01:00
sub.c player: enable no-video subtitle display on coverart too 2016-10-31 13:55:32 +01:00
video.c lavfi: support hwdec filters for --lavfi-complex 2017-02-20 13:42:08 +01:00