gstreamer/subprojects/gst-plugins-bad/sys/d3d11
Alexander Slobodeniuk f92c27a49e d3d11window_win32: fix crash on RC unprepare() vs window_proc()
Unprepare method posts WM_GST_D3D11_DESTROY_INTERNAL_WINDOW
command to the window queue, and from that moment considers
internal_hwnd to be released, and so it sets it to null.
The problem is that it's possible that right at that moment
the window thread might be already processing some other
command, or just another command might be already in the queue.
On practice we met a crash when WM_PAINT got processed in between
(unprepare already finished and WM_GST_D3D11_DESTROY_INTERNAL_WINDOW
was not handled yet)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6187>
2024-02-26 23:17:05 +00:00
..
hlsl
gstd3d11av1dec.cpp
gstd3d11av1dec.h
gstd3d11basefilter.cpp
gstd3d11basefilter.h
gstd3d11compositor.cpp
gstd3d11compositor.h
gstd3d11convert.cpp
gstd3d11convert.h
gstd3d11decoder.cpp
gstd3d11decoder.h
gstd3d11deinterlace.cpp
gstd3d11deinterlace.h
gstd3d11download.cpp
gstd3d11download.h
gstd3d11dxgicapture.cpp
gstd3d11dxgicapture.h
gstd3d11h264dec.cpp
gstd3d11h264dec.h
gstd3d11h265dec.cpp
gstd3d11h265dec.h
gstd3d11ipc.cpp
gstd3d11ipc.h
gstd3d11ipcclient.cpp
gstd3d11ipcclient.h
gstd3d11ipcserver.cpp
gstd3d11ipcserver.h
gstd3d11ipcsink.cpp
gstd3d11ipcsink.h
gstd3d11ipcsrc.cpp
gstd3d11ipcsrc.h
gstd3d11mpeg2dec.cpp
gstd3d11mpeg2dec.h
gstd3d11overlay.cpp
gstd3d11overlay.h
gstd3d11overlaycompositor.cpp
gstd3d11overlaycompositor.h
gstd3d11pluginutils.cpp
gstd3d11pluginutils.h
gstd3d11screencapture.cpp
gstd3d11screencapture.h
gstd3d11screencapturedevice.cpp
gstd3d11screencapturedevice.h
gstd3d11screencapturesrc.cpp
gstd3d11screencapturesrc.h
gstd3d11testsrc.cpp
gstd3d11testsrc.h
gstd3d11upload.cpp
gstd3d11upload.h
gstd3d11videosink.cpp
gstd3d11videosink.h
gstd3d11vp8dec.cpp
gstd3d11vp8dec.h
gstd3d11vp9dec.cpp
gstd3d11vp9dec.h
gstd3d11window.cpp
gstd3d11window.h
gstd3d11window_corewindow.cpp
gstd3d11window_corewindow.h
gstd3d11window_dummy.cpp
gstd3d11window_dummy.h
gstd3d11window_swapchainpanel.cpp
gstd3d11window_swapchainpanel.h
gstd3d11window_win32.cpp
gstd3d11window_win32.h
gstd3d11winrtcapture.cpp
gstd3d11winrtcapture.h
meson.build
plugin.cpp