gstreamer/subprojects/gst-plugins-bad/sys/d3d11
Aleksandr Slobodeniuk e683000573 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/4260>
2023-04-03 11:19:11 +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-15 04:50:49 +00:00
gstd3d11compositor.h d3d11compositor: Performance optimization 2022-06-20 19:18:53 +00:00
gstd3d11convert.cpp d3d11convert: add "method" property 2023-03-21 12:08:54 +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 d3d11: Don't use g_alloca() 2023-01-24 20:27:43 +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 d3d11screencapturesrc: Use keyed mutex instead of fence 2023-03-02 03:03:58 +09: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-22 15:18:12 +01: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 bad: Update indent 2023-02-28 10:12:31 +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 d3d11testsrc: Use keyed mutex for rendering patterns 2023-03-01 14:13:14 +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-03 11:19:11 +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-15 22:56:02 +00:00
gstd3d11window.h d3d11videosink: Fix tearing in case of fullscreen mode 2023-03-15 22:56:02 +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-03 11:19:11 +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 d3d11testsrc: Add circular, blink and ball patterns 2023-02-26 22:38:03 +09:00
plugin.cpp d3d11mpeg2dec: Promote rank to PRIMARY + 1 2023-02-21 17:32:20 +00:00