gstreamer/subprojects/gst-plugins-bad/tests/examples
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
..
audiomixmatrix Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
avsamplesink Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
camerabin2 meson: Always use forward slashes in defines with paths 2023-07-12 21:17:25 +00:00
codecparsers Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
codecs examples: Add test code to verify decoder caps update 2022-11-16 13:12:38 +00:00
cuda examples: cuda: Add CUDA memory synchronization example 2024-06-06 11:27:26 +00:00
d3d11 examples: d3d11: Add inter-device synchronization example 2024-03-19 10:55:19 +00:00
d3d12 d3d12videosink: Add support for window handle update 2024-06-17 16:05:00 +00:00
directfb Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
gtk gtkwaylandsink test: Add navigationtest to example 2022-08-02 16:34:13 +00:00
ipcpipeline Remove glib and gobject dependencies everywhere 2022-04-01 16:32:17 +00:00
mediafoundation mfvideoencoder: Handle dynamic property update 2022-05-28 23:12:53 +09:00
mpegts mpegts: Fix include headers 2023-04-04 20:54:50 +00:00
msdk Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
mxf Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
nvcodec structure: Allow STRICT flag only in _serialize_full() 2024-02-09 15:45:33 +00:00
opencv Remove glib and gobject dependencies everywhere 2022-04-01 16:32:17 +00:00
qsv tests: examples: Stop duplicating keyboard interaction handler code 2022-05-26 18:52:35 +00:00
qt6d3d11 qt6d3d11: Add Direct3D11 Qt6 QML sink 2023-06-21 15:32:17 +00:00
uvch264 Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00
va examples: va: add option for enabling alive stream 2024-05-16 14:54:40 +02:00
waylandsink gstwayland: Move reusable parts of the waylandsink into a library 2022-06-06 14:36:39 +02:00
webrtc examples: set perfect-timestamp=true on opusenc 2024-04-02 22:08:31 +00:00
wpe Remove glib and gobject dependencies everywhere 2022-04-01 16:32:17 +00:00
key-handler.c tests: examples: Stop duplicating keyboard interaction handler code 2022-05-26 18:52:35 +00:00
key-handler.h tests: examples: Stop duplicating keyboard interaction handler code 2022-05-26 18:52:35 +00:00
meson.build examples: cuda: Add CUDA memory synchronization example 2024-06-06 11:27:26 +00:00
playout.c Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir 2021-09-24 16:14:36 -03:00