Seungha Yang
0c378091a0
d3d12screencapturedevice: Avoid false device removal on monitor reconfiguration
...
Post device-changed instead of device-removed/device-added when
only HMONITOR or display position changed without actual device change.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9472 >
2025-08-01 12:51:46 +00:00
Marc-André Lureau
78f0f61523
meson: d3d12: Add support for MinGW DirectXMath package
...
This is a similar issue that was found for d3d11:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6495
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9464 >
2025-07-31 15:09:34 +00:00
Seungha Yang
461e3946d4
d3d12: Add support for dewarping fisheye images
...
Add d3d12fisheyedewarp element that performs fisheye image dewarping
using D3D12. A UV remap LUT texture is generated via a compute shader,
and the actual remapping is performed in a pixel shader using this LUT
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9441 >
2025-07-27 01:22:28 +09:00
Seungha Yang
4f932ee081
d3d12swapchainsink: Add last-rendered-sample action signal
...
Add a new action signal to allow applications to capture
the most recently rendered frame directly from the swapchain
back buffer.
Unlike the existing "last-sample" property, which exposes
the raw input sample before any sink-side processing, this
signal captures the final displayed image after any internal
image processing (e.g., UV remap, color balance, overlay) has been
applied.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9423 >
2025-07-22 12:02:15 +00:00
Seungha Yang
0d1cd40097
d3d12swapchainsink: Update uv-remap signal to support background color
...
Allow per viewport background color setting
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9393 >
2025-07-17 12:55:11 +00:00
Seungha Yang
fc73216671
d3d12swapchainsink: Fix force-aspect-ratio change in playing state
...
Set output updated flag so that viewport can be calculated again
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9392 >
2025-07-14 17:07:35 +00:00
Seungha Yang
239a679fbf
d3d12screencapture: Add support for monitor add/remove in device provider
...
Update device list on WM_DISPLAYCHANGE event
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4521
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9330 >
2025-07-04 18:47:58 +00:00
Seungha Yang
e3d0a8d83e
d3d12screencapturesrc: Fix OS handle leaks/random crash in WGC mode
...
Multiple DispatcherQueues per thread seems to be causing OS handle leak
and random crashes were observed. Instead of creating
thread/DispatcherQueue per GstD3D12GraphicsCapture object,
reuse only single thread and DispatcherQueue
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4351
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9153 >
2025-06-25 14:30:56 +00:00
Seungha Yang
c5fd61c908
d3d12swapchainsink: Add uv-remap and redraw action signal
...
New uv-remap signal can be used for UV coordinate remap operation
in videosink, and redraw signal can allow updating view even in paused
state
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9209 >
2025-06-17 22:18:32 +00:00
Seungha Yang
4735e765a3
d3d12decoder: Use interlace info in input caps
...
... instead of relying on only parsed values from bitstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9170 >
2025-06-04 16:07:24 +00:00
Seungha Yang
aa0c257d4c
d3d12compositor: Fix negative position handling
...
Negative positions should be cropped out
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4249
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9158 >
2025-06-01 18:21:28 +00:00
Seungha Yang
343cde7f87
d3d12compositor: Fix critical warnings
...
compositor will record rendering commands using multiple threads
(i.e., blending commands are recoded using thread pool, and
background one is recorded on aggregate thread).
And there can be temporary refcount increase (so not writable).
Updates fence once all rendering commands have been submitted.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9157 >
2025-06-01 23:02:33 +09:00
Seungha Yang
d5dfa3ef5e
d3d12screencapturesrc: Fix desktop handle leak
...
Calling CloseDesktop() on a handle that is currently in use will fail.
Close the handle after current desktop handle change
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9136 >
2025-05-29 17:19:33 +00:00
Seungha Yang
4d87ffb8f3
d3d12decoder: Workaround for NVIDIA crash on resolution change
...
Recent NVIDIA driver seems to crash on resolution change
if ID3D12VideoDecoder and ID3D12VideoDecodeCommandList are reused.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4415
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8968 >
2025-05-12 23:40:13 +00:00
Seungha Yang
5db574fc35
d3d12: Add d3d12remap element
...
Adding new element to support pixel remapping operation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8887 >
2025-05-02 22:10:58 +09:00
Seungha Yang
39f4b1ee4d
d3d12: Update root signature flags for old Windows10
...
Use root signature flags which are part of initial Direct3D12 release.
Old OS does not understand newly introduced flags
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8469 >
2025-02-13 13:39:11 +00:00
Seungha Yang
967ab2dc50
d3d12screencapturesrc: Fix infinite negotiation on resolution change
...
Updates crop rect if previous capture got error. The error might
result from resolution change.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8444 >
2025-02-11 00:34:00 +00:00
Seungha Yang
1902b5ca1b
d3d12screencapturesrc: Fix capturing rotated monitor
...
Acquired and reconstructed frames will have different resolution
if monitor is rotated. Use the copying logic of d3d11 implementation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8444 >
2025-02-11 00:34:00 +00:00
Seungha Yang
561714a454
d3d12convert: Add max-mip-levels property
...
Add support for automatic mipmap generation depending on viewport size
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290 >
2025-01-15 03:03:47 +09:00
Seungha Yang
caf6f36276
d3d12swapchainsink: Add max-mip-level property
...
Add support for automatic mipmap generation depending on viewport size
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290 >
2025-01-15 03:03:42 +09:00
Seungha Yang
11d4b59b73
d3d12videosink: Add max-mip-level property
...
Add support for automatic mipmap generation depending on viewport size
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290 >
2025-01-14 17:23:04 +00:00
Seungha Yang
b14448dd37
d3d12mipmapping: Add support for GRAY output
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290 >
2025-01-14 17:23:04 +00:00
Seungha Yang
65c23885d4
d3d12mipmapping: Skip alpha sampling if possible
...
If input format has no alpha and output format has no alpha,
skip alpha sampling which can reduce the number of instruction slots
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290 >
2025-01-14 17:23:04 +00:00
Seungha Yang
1e243d0960
d3d12: Move mipgen to libs
...
converter object will use mipgen object
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8290 >
2025-01-14 17:23:04 +00:00
Mathieu Duponchelle
3de86b2b97
docs: port plugins to explicit sources
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8273 >
2025-01-13 19:17:13 +01:00
Edward Hervey
67b5414c24
d3d12: Disable implicit fallthrough checks
...
There are some missing explicit fallthrough statements in the direct headers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8229 >
2025-01-13 12:51:46 +00:00
Seungha Yang
f7e70e5261
d3d12mipmapping: Add mip-levels property
...
Generating full levels would result in waste of GPU resource
depending on rendering usecase. Adding a property to make it
controllable
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8255 >
2025-01-08 22:46:14 +00:00
Seungha Yang
ca82e717c6
d3d12mipmapping: Add YUV and 64bits output formats
...
Add support for YUV and 64bits output formats to avoid
colorspace conversion and bitdepth loss
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8255 >
2025-01-08 22:46:13 +00:00
Seungha Yang
126d6f0815
d3d12screencapturesrc: Add support for HDR capture in DDA mode
...
Use IDXGIOutput5::DuplicateOutput1() if HDR is enabled.
Note that scRGB color space is not defined in GStreamer,
this element will output SDR tonemapped frame
with linear or reinhard filtering.
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3834
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8227 >
2025-01-02 06:55:33 +09:00
Seungha Yang
ca56fd285a
d3d12: Add "Since" markers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8220 >
2024-12-29 14:24:55 +00:00
Seungha Yang
eac069b46d
d3d12: Add d3d12deinterlace element
...
Adding D3D12 compute shader based deinterlace element
with YADIF filtering
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8140 >
2024-12-14 12:09:23 +00:00
Seungha Yang
44cb3025ff
d3d12: Add gst_d3d12_flush_all_devices() method
...
... and removing implicit flushing behavior on GstD3D12Device::finalize
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7929 >
2024-11-20 15:44:58 +00:00
Seungha Yang
43fc9525ca
d3d12swapchainsink: Fix error when the sink is reused
...
Release backbuffer just before releasing swapchain
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7867 >
2024-11-12 12:03:18 +00:00
Seungha Yang
80831f77f3
d3d12swapchainsink: Add support for GstColorBalance interface
...
... and adding hue, saturation, brightness, and contrast properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7817 >
2024-11-03 21:33:37 +00:00
Seungha Yang
c051070121
d3d12convert: Add support for GstColorBalance interface
...
... and adding hue, saturation, brightness, and contrast properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7817 >
2024-11-03 21:33:37 +00:00
Seungha Yang
dc414415a5
d3d12videosink: Add support for GstColorBalance interface
...
... and adding hue, saturation, brightness, and contrast properties
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7817 >
2024-11-03 21:33:37 +00:00
Seungha Yang
d33f5a1de9
d3d12videosink: Add support for mouse scroll events
...
Handle WM_MOUSEHWHEEL and WM_MOUSEWHEEL events
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7774 >
2024-10-31 15:57:43 +00:00
Seungha Yang
8c3d516a14
d3d12: Additional fixes for MinGW build
...
Various fixes for GCC build, including actual bug fixes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7722 >
2024-10-24 06:54:30 +09:00
Seungha Yang
703cc1783e
d3d12: Fix MinGW build with installed DirectX-Headers
...
Required for cerbero MinGW build
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7154 >
2024-10-22 21:25:11 +00:00
Seungha Yang
fb6a5c8a0c
d3d12mipmapping: Fix debug category
...
Fixing copying-and-pasting mistake
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7701 >
2024-10-20 16:01:10 +00:00
L. E. Segovia
4af2121189
meson: d3d12: fix build with MinGW GCC 14
...
Also apply the d3d11 fix since both use the same header.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7658 >
2024-10-12 19:01:46 -03:00
Seungha Yang
7c06001705
d3d12: Shorten various names
...
Update names of various objects and method to be shorter, for instance
GstD3D12CommandAllocator is changed to GstD3D12CmdAlloc.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7642 >
2024-10-10 10:35:36 -04:00
Sebastian Dröge
b7b24573ce
common: Use more efficient versions of GstCapsFeatures API where possible
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7432 >
2024-09-26 19:26:18 +03:00
Seungha Yang
2d91521dfc
d3d12: Fix resource allocation on old Windows version
...
D3D12_HEAP_FLAG_CREATE_NOT_ZEROED flag was introduced as of
Windows 10 May 2020 Update, and older versions don't understand
the heap flag. Checks the feature support and enables the
D3D12_HEAP_FLAG_CREATE_NOT_ZEROED only if it's supported by OS
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7573 >
2024-09-26 12:48:55 +00:00
Seungha Yang
86af5a5f20
d3d12: Add colorconvert and scale elements
...
In addition to existing d3d12convert element which supports
color conversion and rescale at once, adding
separate color-conversion-only and scale-only elements
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7560 >
2024-09-24 20:58:47 +09:00
Seungha Yang
cef201734c
d3d12: Add d3d12mipmapping element
...
Adding a new element for texture conversion from single mip level
texture to mipmapping enabled RGBA texture
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7555 >
2024-09-23 13:52:37 +00:00
Seungha Yang
51e1834e81
d3d12: Use D3D12_FILTER_MIN_MAG_MIP_LINEAR filter by default
...
... instead of D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT, since we supports
mipmap texture now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7555 >
2024-09-23 13:52:37 +00:00
Seungha Yang
71d26ee4f8
d3d12swapchainsink: Add auto-resize mode
...
Automatically resize swapchain backbuffer to be identical to
stream resolution if user calls resize() signal with zero resolution
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7550 >
2024-09-20 19:19:15 +00:00
Seungha Yang
9dee102867
d3d12swapchainsink: Add support for MSAA
...
Adding "msaa" property and enable MSAA if supported by device
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7550 >
2024-09-20 19:19:15 +00:00
Seungha Yang
ce5321be68
d3d12videosink: Use converter config for initial MSAA setup
...
Avoid redundant pso creation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7550 >
2024-09-20 19:19:15 +00:00