mpv/video
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
..
decode dec_video, dec_audio: remove redundant NULL-checks 2017-02-20 13:58:18 +01:00
filter vf_lavfi: don't crash with VOs without hardware decoding support 2017-01-25 08:32:35 +01:00
out player: reduce blocking on VO when switching pause 2017-02-21 15:39:40 +01:00
csputils.c Remove compatibility things 2016-12-07 19:53:11 +01:00
csputils.h demux: expose demuxer colorimetry metadata to player 2016-11-08 19:16:26 +01:00
fmt-conversion.c Remove compatibility things 2016-12-07 19:53:11 +01:00
fmt-conversion.h Update license headers 2015-04-13 12:10:01 +02:00
gpu_memcpy.c Fix misspellings 2016-06-26 13:47:21 +02:00
gpu_memcpy.h video: refactor GPU memcpy usage 2015-09-25 19:18:16 +02:00
hwdec.c vd_lavc, vaapi: move hw device creation to generic code 2017-02-20 08:39:55 +01:00
hwdec.h vd_lavc, vaapi: move hw device creation to generic code 2017-02-20 08:39:55 +01:00
image_writer.c image_writer: check a return value 2017-02-20 14:05:14 +01:00
image_writer.h vo_image: move to global options 2016-09-05 21:04:55 +02:00
img_format.c img_format: stop setting some fields to dummy values for hwaccel formats 2017-02-21 10:35:38 +01:00
img_format.h vo_opengl: hwdec_cuda: Support P016 output surfaces 2016-11-22 20:19:58 +01:00
img_fourcc.h build: deal with endian mess 2014-07-10 00:58:56 +02:00
mp_image.c mp_image: for hwaccel, use underlying fmt in mp_image_params_guess_csp() 2017-02-21 10:34:26 +01:00
mp_image.h lavfi: use mp_image to store the filter pad format 2017-02-20 13:15:50 +01:00
mp_image_pool.c mp_image_tool: guard hw downloading against allocation failures 2017-02-07 17:06:20 +01:00
mp_image_pool.h vaapi: use libavutil functions for copying hw surfaces to memory 2017-01-12 13:58:28 +01:00
sws_utils.c build: replace some FFmpeg API checks with version checks 2017-01-24 08:11:42 +01:00
sws_utils.h vf_scale: libswscale is being stupid 2015-03-01 22:32:38 +01:00
vaapi.c vd_lavc, vaapi: move hw device creation to generic code 2017-02-20 08:39:55 +01:00
vaapi.h vd_lavc, vaapi: move hw device creation to generic code 2017-02-20 08:39:55 +01:00
vdpau.c vdpau: use libavutil for surface allocation during decoding 2017-01-17 15:48:56 +01:00
vdpau.h vdpau: use libavutil for surface allocation during decoding 2017-01-17 15:48:56 +01:00
vdpau_functions.inc vo_vdpau: directly get surface size from surface for screenshots 2015-06-05 22:34:16 +02:00
vdpau_mixer.c vo_opengl: vdpau: fix certain cases of preemption recovery failures 2016-05-03 13:56:11 +02:00
vdpau_mixer.h vo_opengl: vdpau: fix certain cases of preemption recovery failures 2016-05-03 13:56:11 +02:00
vt.c vo_opengl: hwdec_osx: use new format setup function 2017-02-17 17:08:37 +01:00
vt.h videotoolbox: add reverse format mapping function 2017-02-17 13:51:03 +01:00