gstreamer/subprojects/gst-plugins-bad/sys
Seungha Yang 37e1847464 d3d12videosink: Add support for window handle update
A large refactoring commit for adding features and improve performance

* Reuse internal converter and overlay compositor:
  Converter can be reused as long as input and display formats are not
  changed. Also overlay compositor reconstruction is required only if
  display format is changed

* Don't wait for full GPU flush on resize or close:
  D3D12 swapchain requires GPU idle in order to resize backbuffer.
  Thus CPU side waiting is required for swapchain related commands
  to be finished. However, don't need to wait for full GPU flushing.

* Support multiple sink on a single external window
  Keep installed subclass window procedure even if there's no associated
  our internal HWND. This will make window procedure hooking less racy.
  Then parent HWND's message will be transferred to our internal HWNDs
  if needed.

* Adding support for window handle update
  Application can change target HWND even when videosink is playing or
  paused state. So, users can call gst_video_overlay_set_window_handle()
  against d3d12videosink anytime. The videosink will be able to update
  internal state and setup resource upon requested.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7013>
2024-06-17 16:05:00 +00:00
..
aja aja: Update to AJA NTV2 17.0.1 2024-05-11 15:54:54 +00:00
amfcodec amfcodec: Add plugin status message 2024-02-22 23:30:29 +00:00
androidmedia androidmedia: add NDK implementation of Android MediaCodec 2024-01-11 19:00:13 +00:00
applemedia vtdec: Use GST_VIDEO_DECODER_ERROR instead of aborting when frame has an ERROR flag 2024-06-17 12:42:53 +00:00
asio asio: Add support for MinGW build 2024-03-20 10:53:16 +00:00
bluez avdtpsink: post error message when failing to start 2024-02-09 10:09:13 +00:00
d3d11 d3d11decoder: Fix potential use after free 2024-04-22 13:28:06 +00:00
d3d12 d3d12videosink: Add support for window handle update 2024-06-17 16:05:00 +00:00
d3dvideosink d3dvideosink: Fix navigation event leak 2023-06-15 05:09:46 +00:00
decklink gst: Move GstQueueArray as GstVecDeque to core 2024-05-06 18:25:42 +00:00
directshow sys: avoid double definition of symbol MEDIASUBTYPE_I420 2023-03-23 00:56:04 +00:00
directsound meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
dvb doc: Fix newline char between authors 2023-05-20 05:48:23 +00:00
dwrite d3d12converter: Add support for GPU-side external fence waiting 2024-04-28 12:49:07 +00:00
fbdev meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
ipcpipeline meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
kms kmssink: Do not close the DRM prime handle twice 2024-05-23 15:45:24 -04:00
magicleap meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
mediafoundation gst: Move GstQueueArray as GstVecDeque to core 2024-05-06 18:25:42 +00:00
msdk msdkvpp: Add a huge value to inbuf pts and set mfx surface timestamp 2024-06-11 05:21:42 +00:00
nvcodec cuda: Enable x86 NVMM support again 2024-06-06 12:16:50 +00:00
opensles meson: Call pkgconfig.generate in the loop where we declare plugins dependencies 2022-09-01 21:17:35 +00:00
qsv qsvh264dec,qsvh265dec: Fix nalu leaks 2024-05-01 10:38:05 +00:00
shm shm: drop use of GSlice allocator 2023-02-03 17:48:10 +00:00
tinyalsa meson: Require tinyalsa >= 1.1.0 when building its plugin 2024-03-12 20:30:11 +00:00
uvcgadget uvcgadget: Use g_path_get_basename instead of libc basename 2024-06-12 12:20:45 -07:00
uvch264 meson: Add a wrap file for libgudev 2023-04-19 22:47:19 +00:00
v4l2codecs v4l2codecs: decoder: Reorder caps to prefer DMA_DRM ones 2024-05-09 16:37:07 +00:00
va vah26{4,5}enc: No need to assert i>=0 in frame_setup_from_gop() 2024-05-17 14:42:20 +08:00
wasapi wasapi: Fix alloc/free function mismatch 2024-02-21 21:03:32 +00:00
wasapi2 wasapi2: Adjust log level in device enumeration path 2024-06-11 11:11:30 +00:00
webview2 webview2: Add user-data-folder property 2024-05-28 16:56:09 +00:00
wic bad: Update indent 2023-02-28 10:12:31 +00:00
win32ipc win32ipc: Fix pipe handle leak 2023-08-23 18:33:04 +09:00
winks ksdeviceprovider: Fix crash while probing device caps 2024-02-09 14:09:07 +00:00
winscreencap winscreencap: Warn for deprecated plugin use 2022-12-08 17:48:11 +00:00
meson.build webview2: Add Microsoft WebView2 based web browser source 2024-03-28 10:49:39 +00:00