0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 12:02:23 +02:00
mpv/video
wm4 a74a324b98 video: return responsibility of video redraw back to playloop
When the VO was moved it its own thread, responsibility for redrawing
was given to the VO thread itself. So if there was a condition that
indicated that redrawing was required, like expose events or certain
VOCTRLs, the VO thread was redrawing itself.

This worked fine, but there are some corner cases where this works
rather badly. E.g. if I fullscreen the player and hit panscan controls
with mpv's default autorepeat rate, playback stops. This happens because
the VO redraws itself after every panscan change command. Running each
(repeated) command takes so long due to redrawing and (involuntary)
waiting on vsync, that it never leaves the input processing loop while
the key is held down. I suspect that in my case, redrawing in fullscreen
mode just gets slow enough that it takes 2 vsyncs instead of 1 on
average, and the processing time gets larger than the autorepeat delay.

Fix this by taking redraw control from the VO, and instead let the
playloop issue a "real" redraw command to the VO if needed. This
basically reverts redraw handling to what it was before moving the VO to
a thread.

CC: @mpv-player/stable
2014-10-03 23:07:08 +02:00
..
decode vd_lavc: fix a small memory leak on init error 2014-09-29 20:37:12 +02:00
filter Fix build with libavfilter disabled 2014-09-28 19:10:50 +02:00
out video: return responsibility of video redraw back to playloop 2014-10-03 23:07:08 +02:00
csputils.c video: adjust some Matroska 3D formats 2014-08-31 14:48:58 +02:00
csputils.h csputils: adjust comment 2014-08-30 23:54:19 +02:00
fmt-conversion.c vda: only support the new hwaccel 1.2 API (remove old code) 2014-08-01 10:38:18 +02:00
fmt-conversion.h Take care of some libavutil deprecations, drop support for FFmpeg 1.0 2013-11-29 17:39:57 +01:00
hwdec.h video: move display and timing to a separate thread 2014-08-12 23:24:08 +02:00
image_writer.c Move compat/ and bstr/ directory contents somewhere else 2014-08-29 12:31:52 +02:00
image_writer.h image_writer: mp_msg conversions 2013-12-21 20:50:10 +01:00
img_format.c Move compat/ and bstr/ directory contents somewhere else 2014-08-29 12:31:52 +02:00
img_format.h Move compat/ and bstr/ directory contents somewhere else 2014-08-29 12:31:52 +02:00
img_fourcc.h build: deal with endian mess 2014-07-10 00:58:56 +02:00
memcpy_pic.h memcpy_pic: reformat 2013-11-06 20:27:13 +01:00
mp_image_pool.c video: introduce failure path for image allocations 2014-06-17 22:43:43 +02:00
mp_image_pool.h video: introduce failure path for image allocations 2014-06-17 22:43:43 +02:00
mp_image.c video: fix some vo_direct3d crashes due to FFmpeg nonsense 2014-09-21 09:33:51 +02:00
mp_image.h video: initial Matroska 3D support 2014-08-30 23:24:46 +02:00
sws_utils.c video: correct spelling: mp_image_params_equals -> mp_image_params_equal 2014-06-17 23:30:27 +02:00
sws_utils.h options: remove global variables for swscale options; rename them 2014-06-11 00:39:13 +02:00
vaapi.c vaapi: try dealing with Intel's braindamaged shit drivers 2014-08-21 22:45:58 +02:00
vaapi.h vaapi: try dealing with Intel's braindamaged shit drivers 2014-08-21 22:45:58 +02:00
vdpau_functions.inc video: warn if an emulated hwdec API is used 2014-05-28 02:08:45 +02:00
vdpau_mixer.c vdpau: correctly mark invalid mixer as such on vdp_video_mixer_create() failure 2014-08-13 17:57:19 +02:00
vdpau_mixer.h vdpau_mixer: allow overriding frame opts 2014-05-02 01:08:04 +02:00
vdpau.c vdpau: allocate surfaces by age 2014-08-11 14:03:53 +02:00
vdpau.h vdpau: allocate surfaces by age 2014-08-11 14:03:53 +02:00
vfcap.h video: remove --flip 2013-12-05 22:58:54 +01:00