1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-02 21:12:23 +00:00
mpv/video
rslovers 9821737d06 vo_drm: fallback to vo_wait_default if VT switcher is not available
When the drm video output is used under VT with a terminal multiplexer
like screen, the VT_SETMODE ioctl call will fail since the controlling
terminal is a pseudoterminal instead of a real one, thus the VT switcher
will be unavailable.

The problem is, the wait_events function inside vo_drm.c will test for
this, and will do nothing if the switcher is not active. Normally, this
would not be noticed, however, when you pause a video, or if you're playing
multiple image files, mpv will suddenly start busy waiting on a single
core.

I confirmed this by building mpv with gprof support, in a few seconds,
wait_events got called about 90 million times.

So I added a fallback, when the VT switcher is not availble, just use the
vo_wait_default function. I tested it and it's working well so far.
2017-06-08 15:24:10 +02:00
..
decode videotoolbox: support new libavcodec API 2017-05-24 15:25:48 +02:00
filter af, vf: improvements to libavfilter bridge 2017-05-31 17:42:55 +02:00
out vo_drm: fallback to vo_wait_default if VT switcher is not available 2017-06-08 15:24:10 +02:00
csputils.c csputils: code clarity 2017-05-13 17:25:24 +02: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 hwdec: fix 2 comments 2017-05-24 14:32:23 +02:00
image_writer.c image_writer: make it work with libavcodec's jpg encoder 2017-04-02 17:21:42 +02:00
image_writer.h screenshot: change details of --screenshot-format handling 2017-03-18 15:03:05 +01: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_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
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
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 vdpau, vaapi: unref libavutil device ref 2017-04-29 15:09:40 +02:00
vaapi.h vd_lavc, vaapi: move hw device creation to generic code 2017-02-20 08:39:55 +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
vdpau.c vdpau: crappy hack to allow initializing hw decoding after preemption 2017-05-19 15:24:38 +02:00
vdpau.h vdpau: support new vdpau libavcodec decode API 2017-03-23 11:14:11 +01: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