gstreamer/subprojects/gst-plugins-bad/sys/d3d11
Aleksandr Slobodeniuk 936000f04e d3d11videosink: fix race conditions in win32 window
One race condition is the fact that the window object
can be destroyed while running some routine in the UI
thread (such as resizing). To avoid that situation we make
UI thread hold a reference on the window object while it's
running.
Other probpematic case is when the window handle is reused:
if we stop and start the pipeline very fast,
so the sink creates a new window object that is going to use
the same window handle as the previous one.
And finally the case when the pipeline is stopped immediatelly
right after starting, this one is also handled in this commit.

NOTE: a unit test that reproduces this cases have been added
in the previous commit.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4417>
2023-04-14 02:09:07 +00:00
..
gstd3d11av1dec.cpp d3d11decoder: Handle input caps change 2022-11-16 13:12:38 +00:00
gstd3d11av1dec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11basefilter.cpp d3d11convert: Add support for GstVideoOrientationMethod 2022-07-02 20:40:37 +00:00
gstd3d11basefilter.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11compositor.cpp d3d11compositor: Fix composition error on release_pad() 2023-03-16 09:25:55 +00:00
gstd3d11compositor.h d3d11compositor: Performance optimization 2022-06-20 19:18:53 +00:00
gstd3d11convert.cpp d3d11: Use WIN32 API directly for locking with RAII pattern 2022-08-08 20:13:51 +00:00
gstd3d11convert.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11decoder.cpp d3d11decoder: Handle input caps change 2022-11-16 13:12:38 +00:00
gstd3d11decoder.h d3d11decoder: Handle input caps change 2022-11-16 13:12:38 +00:00
gstd3d11deinterlace.cpp d3d11: Update for documentation 2022-10-24 12:42:51 +00:00
gstd3d11deinterlace.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11download.cpp d3d11: Revert staging buffer pool implementation 2022-06-23 22:03:52 +09:00
gstd3d11download.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11dxgicapture.cpp d3d11screencapture: Subclassing capture implementation 2022-10-21 14:21:28 +00:00
gstd3d11dxgicapture.h d3d11screencapture: Subclassing capture implementation 2022-10-21 14:21:28 +00:00
gstd3d11h264dec.cpp d3d11decoder: Handle input caps change 2022-11-16 13:12:38 +00:00
gstd3d11h264dec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11h265dec.cpp d3d11decoder: Handle input caps change 2022-11-16 13:12:38 +00:00
gstd3d11h265dec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11mpeg2dec.cpp d3d11decoder: Handle input caps change 2022-11-16 13:12:38 +00:00
gstd3d11mpeg2dec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11overlaycompositor.cpp d3d11overlaycompositor: fix texture width and height 2023-02-23 10:25:15 +00:00
gstd3d11overlaycompositor.h d3d11overlaycompositor: Objectify overlay render implementation 2022-07-02 05:37:27 +09:00
gstd3d11pluginutils.cpp d3d11: Don't find global default allocator 2022-08-06 23:55:18 +09:00
gstd3d11pluginutils.h d3d11: Update library doc 2022-08-27 22:40:34 +09:00
gstd3d11screencapture.cpp d3d11screencapture: Add WinRT API based capture mode 2022-10-21 14:21:28 +00:00
gstd3d11screencapture.h d3d11screencapture: Add WinRT API based capture mode 2022-10-21 14:21:28 +00:00
gstd3d11screencapturedevice.cpp d3d11screencapturesrc: Specify PAR 1/1 to template caps 2022-11-09 11:22:06 +00:00
gstd3d11screencapturedevice.h d3d11: Update build-time dependency 2022-02-11 20:01:52 +00:00
gstd3d11screencapturesrc.cpp d3d11screencapturesrc: Specify PAR 1/1 to template caps 2022-11-09 11:22:06 +00:00
gstd3d11screencapturesrc.h d3d11: Rename screen capture element 2021-10-14 15:15:56 +00:00
gstd3d11testsrc.cpp d3d11: Update for documentation 2022-10-24 12:42:51 +00:00
gstd3d11testsrc.h d3d11: Add d3d11testsrc element 2022-06-09 05:08:41 +09:00
gstd3d11upload.cpp d3d11: Update gst_d3d11_allocation_params_new() interface 2022-06-27 19:33:57 +00:00
gstd3d11upload.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11videosink.cpp d3d11videosink: fix race conditions in win32 window 2023-04-14 02:09:07 +00:00
gstd3d11videosink.h d3d11videosink: Protect window with lock at every place 2022-07-02 20:40:37 +00:00
gstd3d11vp8dec.cpp d3d11decoder: Handle input caps change 2022-11-16 13:12:38 +00:00
gstd3d11vp8dec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11vp9dec.cpp d3d11decoder: Handle input caps change 2022-11-16 13:12:38 +00:00
gstd3d11vp9dec.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11window.cpp d3d11videosink: Fix tearing in case of fullscreen mode 2023-03-16 15:33:37 +00:00
gstd3d11window.h d3d11videosink: Fix tearing in case of fullscreen mode 2023-03-16 15:33:37 +00:00
gstd3d11window_corewindow.cpp d3d11: Use correct ref/unref methods 2022-11-28 18:50:03 +00:00
gstd3d11window_corewindow.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11window_dummy.cpp d3d11videosink: Fix deadlock when parent window is busy 2022-12-15 17:37:48 +00:00
gstd3d11window_dummy.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11window_swapchainpanel.cpp d3d11: Use correct ref/unref methods 2022-11-28 18:50:03 +00:00
gstd3d11window_swapchainpanel.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11window_win32.cpp d3d11videosink: fix race conditions in win32 window 2023-04-14 02:09:07 +00:00
gstd3d11window_win32.h Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gstd3d11winrtcapture.cpp d3d11screencapturesrc: Fix build error with MSVC x86 2022-11-11 18:58:54 +00:00
gstd3d11winrtcapture.h d3d11screencapture: Add WinRT API based capture mode 2022-10-21 14:21:28 +00:00
meson.build meson: d3d11: Clarify the message for WGC support check 2022-11-11 19:42:19 +00:00
plugin.cpp d3d11av1dec: Promote rank to primary + 1 2022-12-02 17:56:22 +00:00