mpv/video/out
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
..
cocoa cocoa: macosx_application needs cocoa-application 2014-08-06 09:31:59 +02:00
wayland wayland/buffer: use buffer macros consistently 2014-09-16 15:48:07 +02:00
aspect.c vo: add some general support code for VOs that allow rotation 2014-04-21 02:57:16 +02:00
aspect.h vo: add some general support code for VOs that allow rotation 2014-04-21 02:57:16 +02:00
bitmap_packer.c bitmap_packer: use printf() for fatal message 2013-12-21 20:50:11 +01:00
bitmap_packer.h
cocoa_common.h cocoa: move CGL context creation to gl_cocoa 2014-07-08 21:06:57 +02:00
cocoa_common.m video: rename VOCTRL_GET_WINDOW_SIZE 2014-09-05 01:52:16 +02:00
d3d_shader_yuv.h
d3d_shader_yuv.hlsl
dither.c malloc+memset(0) to calloc 2014-09-05 01:59:11 +02:00
dither.h
filter_kernels.c vo_opengl: add parameter to gaussian filter 2014-08-26 22:19:32 +02:00
filter_kernels.h vo_opengl: add radius options for filters 2014-08-26 22:19:30 +02:00
gl_cocoa.c cocoa: fix compilation on OS X 10.8 2014-07-14 07:21:44 +02:00
gl_common.c vo_opengl: don't pass (char*)NULL as %s printf argument 2014-08-28 01:52:15 +02:00
gl_common.h Move compat/ and bstr/ directory contents somewhere else 2014-08-29 12:31:52 +02:00
gl_header_fixes.h gl_video: support packed YUV formats with Apple extensions 2013-12-02 09:03:30 +01:00
gl_hwdec_vaglx.c vaapi: try dealing with Intel's braindamaged shit drivers 2014-08-21 22:45:58 +02:00
gl_hwdec_vda.c vda: fix build on OS X 10.7 2014-01-02 22:45:39 +01:00
gl_hwdec_vdpau.c vo_vdpau, vo_opengl: handle vdpau preemption differently 2014-05-10 10:44:16 +02:00
gl_lcms.c Move compat/ and bstr/ directory contents somewhere else 2014-08-29 12:31:52 +02:00
gl_lcms.h vo_opengl, cocoa: allow to autoselect a color profile 2014-03-31 22:07:33 +02:00
gl_osd.c vo_opengl: simplify redraw callback OSD handling 2014-06-16 01:00:59 +02:00
gl_osd.h vo_opengl: simplify redraw callback OSD handling 2014-06-16 01:00:59 +02:00
gl_video.c sanitizer: avoid divide-by-zero instances 2014-09-14 21:07:30 +02:00
gl_video.h vo_opengl: add radius options for filters 2014-08-26 22:19:30 +02:00
gl_video_shaders.glsl vo_opengl: remove macro operator from shader 2014-08-29 20:56:03 +02:00
gl_w32.c win32: fix build 2014-08-05 23:43:40 +02:00
gl_wayland.c gl_wayland: fix crash after eglInitialze failed 2014-08-30 10:17:51 +02:00
gl_x11.c gl_x11: remove workaround for PPC OSX 10.4 2014-05-31 21:56:45 +02:00
pnm_loader.c Audit and replace all ctype.h uses 2014-07-01 23:11:08 +02:00
pnm_loader.h
vo.c video: return responsibility of video redraw back to playloop 2014-10-03 23:07:08 +02:00
vo.h video: return responsibility of video redraw back to playloop 2014-10-03 23:07:08 +02:00
vo_caca.c vo: remove vo_mouse_movement() wrapper 2014-07-27 21:53:29 +02:00
vo_direct3d.c vo_direct3d: allow resizing before video init 2014-08-06 20:30:47 +02:00
vo_image.c Move compat/ and bstr/ directory contents somewhere else 2014-08-29 12:31:52 +02:00
vo_lavc.c vo_vdpau: better integration with the generic framedrop code 2014-09-20 15:17:12 +02:00
vo_null.c vo: make draw_image and vo_queue_image transfer image ownership 2014-06-17 23:05:50 +02:00
vo_opengl.c Move compat/ and bstr/ directory contents somewhere else 2014-08-29 12:31:52 +02:00
vo_opengl_old.c Audit and replace all ctype.h uses 2014-07-01 23:11:08 +02:00
vo_sdl.c vo_sdl: fix typo 2014-09-05 22:10:20 +02:00
vo_vaapi.c vaapi: try dealing with Intel's braindamaged shit drivers 2014-08-21 22:45:58 +02:00
vo_vdpau.c vo_vdpau: don't try to create surfaces of size 0 2014-10-01 17:29:24 +02:00
vo_wayland.c vo_wayland: remove unnecessary check 2014-09-16 15:54:10 +02:00
vo_x11.c malloc+memset(0) to calloc 2014-09-05 01:59:11 +02:00
vo_xv.c vo: different hack for VOs which need to mangle mouse input 2014-07-27 21:33:11 +02:00
w32_common.c w32_common: quit event loop on destroy 2014-09-30 23:01:06 +10:00
w32_common.h win32: create OpenGL context on the GUI thread 2014-08-05 20:02:23 +02:00
wayland_common.c wayland: use reported rete and delay 2014-09-19 17:38:24 +02:00
wayland_common.h wayland_common: fix changing videos when fullscreen 2014-09-10 19:21:52 +02:00
win_state.c video/out: separate out code to compute window size 2014-05-06 20:22:32 +02:00
win_state.h video/out: separate out code to compute window size 2014-05-06 20:22:32 +02:00
x11_common.c x11: fix --wid=0 2014-10-02 18:14:30 +02:00
x11_common.h x11: if the WM supports _NET_FRAME_EXTENTS, don't wait for map 2014-09-15 19:19:01 +02:00
x11_icon.bin