1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-25 00:02:13 +00:00
mpv/video/out
wm4 e777756301 cocoa: lock cocoa main thread on uninit
This should fix some crashes due to dangling pointers.

The problem was that with_cocoa_lock_on_main_thread() is asynchronous.
It will not wait until it is finished. In the uninit case, this means
the VO could be deallocated and destroyed while cocoa was still running
uninit code.

So simply wait until it is done by using dispatch_sync(). There were
concerns that this could introduce a deadlock by the main thread trying
to wait for something on the VO thread. But from what I can see, this
never happens, and even if it does, it would crash anyway since the VO
is already gone.

One remaining worry is the video_resize_redraw_callback. From what I can
see, it still can mess things up, and will need a more elaborate fix.
2015-05-06 00:36:33 +02:00
..
cocoa cocoa: support the "window-minimized" property 2015-03-08 22:00:47 +01:00
wayland
aspect.c Update license headers 2015-04-13 12:10:01 +02:00
aspect.h Update license headers 2015-04-13 12:10:01 +02:00
bitmap_packer.c Update license headers 2015-04-13 12:10:01 +02:00
bitmap_packer.h
cocoa_common.h cocoa: don't accidentally drop initial screen drawing 2015-05-01 18:26:58 +02:00
cocoa_common.m cocoa: lock cocoa main thread on uninit 2015-05-06 00:36:33 +02: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 Update license headers 2015-04-13 12:10:01 +02:00
dither.h
drm_common.c vo_drm: fix coding style to adhere to guidelines 2015-04-21 11:54:14 +02:00
drm_common.h vo_drm: extract vt_switcher to drm_common 2015-04-19 21:18:15 +02:00
filter_kernels.c Update license headers 2015-04-13 12:10:01 +02:00
filter_kernels.h Update license headers 2015-04-13 12:10:01 +02:00
gl_cocoa.c cocoa: don't accidentally drop initial screen drawing 2015-05-01 18:26:58 +02:00
gl_common.c Update license headers 2015-04-13 12:10:01 +02:00
gl_common.h vo_opengl: refactor wayland frame skipping 2015-05-01 18:44:45 +02:00
gl_header_fixes.h Update license headers 2015-04-13 12:10:01 +02:00
gl_hwdec_vaglx.c vaapi: fight with Intel's broken video decoding GL interop 2015-04-05 22:48:40 +02:00
gl_hwdec_vda.c vo_opengl: remove hwdec unmap_image callback 2015-03-14 22:39:22 +01:00
gl_hwdec_vdpau.c vo_opengl: remove hwdec unmap_image callback 2015-03-14 22:39:22 +01:00
gl_hwdec.c Update license headers 2015-04-13 12:10:01 +02:00
gl_hwdec.h vo_opengl: remove hwdec unmap_image callback 2015-03-14 22:39:22 +01:00
gl_lcms.c vo_opengl: gl_lcms: fix cache dir creation with path expansion 2015-05-03 14:58:18 +02:00
gl_lcms.h vo_opengl: gl_lcms: replace icc-cache by icc-cache-dir 2015-05-01 21:52:08 +02:00
gl_osd.c Update license headers 2015-04-13 12:10:01 +02:00
gl_osd.h vo_opengl: draw subtitles directly onto the video 2015-03-26 00:04:03 +01:00
gl_rpi.c RPI support 2015-03-29 16:09:56 +02:00
gl_utils.c vo_opengl: increase shader cache size 2015-03-26 00:04:08 +01:00
gl_utils.h vo_opengl: add FBOTEX_FUZZY alias 2015-03-26 00:04:08 +01:00
gl_video.c vo_opengl: change default FBO format 2015-05-05 14:41:33 +02:00
gl_video.h vo_opengl: refactor wayland frame skipping 2015-05-01 18:44:45 +02:00
gl_w32.c Update license headers 2015-04-13 12:10:01 +02:00
gl_wayland.c vo_opengl: refactor wayland frame skipping 2015-05-01 18:44:45 +02:00
gl_x11.c Update license headers 2015-04-13 12:10:01 +02:00
gl_x11egl.c x11egl: minor cleanup 2015-02-20 19:54:33 +01:00
vo_caca.c Update license headers 2015-04-13 12:10:01 +02:00
vo_direct3d.c Update license headers 2015-04-13 12:10:01 +02:00
vo_drm.c vo_drm: zero screen buffers in reconfig function. 2015-04-27 09:22:10 +02:00
vo_image.c Update license headers 2015-04-13 12:10:01 +02:00
vo_lavc.c Update license headers 2015-04-13 12:10:01 +02:00
vo_null.c Update license headers 2015-04-13 12:10:01 +02:00
vo_opengl_cb.c vo_opengl: refactor wayland frame skipping 2015-05-01 18:44:45 +02:00
vo_opengl.c vo_opengl: attach target-prim/target-csp to window screenshots 2015-05-01 21:52:07 +02:00
vo_rpi.c vo_rpi: update renderer size on display size changes too 2015-05-01 19:22:35 +02:00
vo_sdl.c Update license headers 2015-04-13 12:10:01 +02:00
vo_vaapi.c Update license headers 2015-04-13 12:10:01 +02:00
vo_vdpau.c video/out: remove VOFLAG_FLIPPING 2015-05-01 18:47:27 +02:00
vo_wayland.c vo_wayland: fix null dereference 2015-03-23 21:53:32 +01:00
vo_x11.c Update license headers 2015-04-13 12:10:01 +02:00
vo_xv.c Update license headers 2015-04-13 12:10:01 +02:00
vo.c vo: improve frame drop logic on high playback rate 2015-05-01 19:11:44 +03:00
vo.h video/out: remove VOFLAG_FLIPPING 2015-05-01 18:47:27 +02:00
w32_common.c w32_common: add more rounded-down frame rates 2015-04-25 02:11:00 +10:00
w32_common.h Update license headers 2015-04-13 12:10:01 +02:00
wayland_common.c vo_wayland: define opaque region 2015-03-23 21:53:32 +01:00
wayland_common.h vo_wayland: share frame callbacks. 2015-03-23 21:53:32 +01:00
win_state.c player: add --window-scale option 2015-04-24 23:27:12 +02:00
win_state.h
x11_common.c x11: query ICC profile based on center of window 2015-04-29 14:01:27 +02:00
x11_common.h x11: actually disable screensaver 2015-04-15 22:40:19 +02:00
x11_icon.bin