0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 20:03:10 +02:00
mpv/video/out
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
..
cocoa cocoa: only report mouse movements when window is not being dragged 2017-02-20 17:26:56 +01:00
opengl Fix two typos 2017-02-20 08:47:17 +01:00
wayland Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
win32 displayconfig: treat a refresh rate of 1 as invalid 2016-09-18 22:15:25 +10:00
aspect.c aspect: use nominal width instead of actual width for video-unscaled 2016-09-22 21:24:56 +02:00
aspect.h Update license headers 2015-04-13 12:10:01 +02:00
bitmap_packer.c bitmap_packer: remove some unused functions 2016-07-01 20:29:45 +02:00
bitmap_packer.h bitmap_packer: remove some unused functions 2016-07-01 20:29:45 +02:00
cocoa_common.h vo_opengl: cocoa: switch to new internal API 2015-10-01 22:42:25 +02:00
cocoa_common.m cocoa: only report mouse movements when window is not being dragged 2017-02-20 17:26:56 +01:00
d3d_shader_420p.h vo_direct3d: support NV12 with shaders 2015-03-02 19:09:18 +01:00
d3d_shader_nv12.h vo_direct3d: support NV12 with shaders 2015-03-02 19:09:18 +01:00
d3d_shader_yuv.hlsl vo_direct3d: support NV12 with shaders 2015-03-02 19:09:18 +01:00
dither.c Change GPL/LGPL dual-licensed files to LGPL 2016-01-19 18:36:34 +01:00
dither.h gl_video: improve dithering 2013-05-26 16:44:20 +02:00
drm_common.c drm: include <poll.h> instead of <sys/poll.h> 2017-01-09 16:21:28 +01:00
drm_common.h vo_drm: change CLI options + refactors 2016-10-07 00:22:23 +02:00
filter_kernels.c filter_kernels: add ability to taper kernels/windows 2016-11-01 16:25:40 +01:00
filter_kernels.h filter_kernels: add ability to taper kernels/windows 2016-11-01 16:25:40 +01:00
vo_caca.c video/out: remove an unused parameter 2015-10-03 18:20:16 +02:00
vo_direct3d.c options: remove deprecated sub-option handling for --vo and --ao 2016-11-25 21:17:25 +01:00
vo_drm.c vo_drm: remove 2 redundant include statements 2017-01-09 16:23:27 +01:00
vo_image.c options: remove deprecated sub-option handling for --vo and --ao 2016-11-25 21:17:25 +01:00
vo_lavc.c Remove compatibility things 2016-12-07 19:53:11 +01:00
vo_null.c options: remove deprecated sub-option handling for --vo and --ao 2016-11-25 21:17:25 +01:00
vo_opengl_cb.c vo_opengl, vo_opengl_cb: better hwdec interop backend selection 2017-01-17 15:48:56 +01:00
vo_opengl.c options: refacactor how --opengl-dwmflush is declared 2017-01-20 14:03:34 +01:00
vo_rpi.c vo_rpi: partially undeprecate 2016-12-08 11:00:14 +01:00
vo_sdl.c options: remove deprecated sub-option handling for --vo and --ao 2016-11-25 21:17:25 +01:00
vo_tct.c vo_tct: check ioctl result 2017-02-20 14:19:57 +01:00
vo_vaapi.c vaapi: remove central lock around vaapi API calls 2017-01-28 18:27:30 +01:00
vo_vdpau.c options: remove deprecated sub-option handling for --vo and --ao 2016-11-25 21:17:25 +01:00
vo_wayland.c options: remove deprecated sub-option handling for --vo and --ao 2016-11-25 21:17:25 +01:00
vo_x11.c vo_x11: fix some ifdeffery 2016-09-13 18:26:06 +02:00
vo_xv.c options: remove deprecated sub-option handling for --vo and --ao 2016-11-25 21:17:25 +01:00
vo.c player: reduce blocking on VO when switching pause 2017-02-21 15:39:40 +01:00
vo.h options: remove deprecated sub-option handling for --vo and --ao 2016-11-25 21:17:25 +01:00
w32_common.c win32: update the fullscreen state on restoring 2017-02-12 02:49:25 +11:00
w32_common.h vo_direct3d: fix operation 2015-10-31 12:52:02 +01:00
wayland_common.c Fix mistakes in spelling and grammar 2016-12-21 17:47:57 +01:00
wayland_common.h wayland_common: remove untested/unusable wayland dnd code 2016-07-30 00:02:39 +02:00
win_state.c x11: pseudo HiDPI scaling 2017-01-19 16:31:54 +01:00
win_state.h x11: pseudo HiDPI scaling 2017-01-19 16:31:54 +01:00
x11_common.c x11: pseudo HiDPI scaling 2017-01-19 16:31:54 +01:00
x11_common.h x11: pseudo HiDPI scaling 2017-01-19 16:31:54 +01:00
x11_icon.bin x11: add window icon 2013-09-01 23:27:33 +02:00