gstreamer/subprojects/gst-plugins-bad/gst-libs/gst/wayland
Qian Hu (胡骞) 6d17596777 wayland: fix crash issue during stop flow
when received xdg config event fron wayland server,
gst_wl_display_thread_run will call handle_xdg_surface_configure
which protected by priv->sync_mutex.

and in handle_xdg_surface_configure, configure_mutex also is locked

but if waylandsink set state from paused to ready, that will dispose
wlwindow, which will try to clear configure_mutex, and try to destroy
xdg_surface,
that do not proteced by anything.

so, problem is:
1) if clear configure_mutex(with locked state), clear lock will abort
2) after xdg_surface destroy, handle_xdg_surface_config may still call
   ack_configure, that will lead wayland server go wrong

so, this patch updates gst_wl_window_finalize to use the new
destruction function for xdg_toplevel and xdg_surface, ensuring all
destruction operations are properly synchronized.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8242>
2025-02-24 18:10:50 +00:00
..
gstwl_fwd.h gstwayland: Move reusable parts of the waylandsink into a library 2022-06-06 14:36:39 +02:00
gstwlbuffer.c wayland: Add API to ref/unref current GstBuffer inside a GstWlBuffer 2024-02-27 17:20:42 +00:00
gstwlbuffer.h wayland: Add API to ref/unref current GstBuffer inside a GstWlBuffer 2024-02-27 17:20:42 +00:00
gstwlcontext.c wayland: Fix ABI break in WL context type name 2024-09-10 21:35:18 +00:00
gstwlcontext.h wayland: Fix ABI break in WL context type name 2024-09-10 21:35:18 +00:00
gstwldisplay.c wayland: add synchronized object destruction function 2025-02-24 18:10:50 +00:00
gstwldisplay.h wayland: add synchronized object destruction function 2025-02-24 18:10:50 +00:00
gstwllinuxdmabuf.c wayland: dmabuf: Translate tiled strides 2024-11-19 21:22:38 +00:00
gstwllinuxdmabuf.h waylandsink: Improve DMA DRM integration 2023-08-01 14:55:23 -04:00
gstwlshmallocator.c wayland: Set a debug category for the shm allocator 2024-09-10 21:35:18 +00:00
gstwlshmallocator.h wayland: Set a debug category for the shm allocator 2024-09-10 21:35:18 +00:00
gstwlvideobufferpool.c wlvideobufferpool: Add DRM Dumb buffer support 2023-03-14 21:50:57 +00:00
gstwlvideobufferpool.h wlvideobufferpool: Add DRM Dumb buffer support 2023-03-14 21:50:57 +00:00
gstwlvideoformat.c wayland: Don't filter out unrecognised DRM formats 2025-01-29 15:23:57 +00:00
gstwlvideoformat.h wayland: Don't filter out unrecognised DRM formats 2025-01-29 15:23:57 +00:00
gstwlwindow.c wayland: fix crash issue during stop flow 2025-02-24 18:10:50 +00:00
gstwlwindow.h waylandsink: Move buffer commits to the display thread 2024-02-27 17:20:42 +00:00
meson.build wayland: Use wl_display_create_queue_with_name 2024-05-23 13:38:01 +00:00
wayland-prelude.h gstwayland: Move reusable parts of the waylandsink into a library 2022-06-06 14:36:39 +02:00
wayland.h gstwayland: Move reusable parts of the waylandsink into a library 2022-06-06 14:36:39 +02:00