gstreamer/sys/d3d11
Seungha Yang 2ca298d459 d3d11: Re-implement Desktop Duplication source
Add a new video source element "d3d11desktopdupsrc" for capturing desktop image
via Desktop Duplication based on Microsoft's Desktop Duplication sample available at
https://github.com/microsoft/Windows-classic-samples/tree/master/Samples/DXGIDesktopDuplication

This element is expected to be a replacement of existing dxgiscreencapsrc
element in winscreencap plugin.

Currently this element can support (but dxgiscreencapsrc cannot)
- Copying captured D3D11 texture to output buffer without download
- Support desktop session transition
  e.g., can capture desktop without error even in case that
  "Lock desktop" and "Permission dialog"
- Multiple d3d11desktopdupsrc elements can capture the same monitor

Not yet implemented features
- Cropping rect is not implemented, but that can be handled by downstream
- Mult-monitor is not supported. But that is also can be implemented by
  downstream element for example via multiple d3d11desktopdup elements
  with d3d11compositor

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1855>
2020-12-22 19:23:25 +00:00
..
gstd3d11_fwd.h d3d11: Move to G_DECLARE_FINAL_TYPE 2020-10-04 15:44:03 +00:00
gstd3d11basefilter.c plugins: Update for documentation of Windows plugins 2020-07-02 17:21:29 +02:00
gstd3d11basefilter.h d3d11: Move to G_DECLARE_FINAL_TYPE 2020-10-04 15:44:03 +00:00
gstd3d11bufferpool.c d3d11: Don't hold staging texture 2020-10-04 15:44:03 +00:00
gstd3d11bufferpool.h d3d11: Refactor d3d11 memory and dxgi format usage 2019-12-05 02:29:18 +00:00
gstd3d11colorconvert.c d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11colorconvert.h d3d11convert: Add new subclasses for only color convert or resize 2020-10-16 17:02:15 +00:00
gstd3d11colorconverter.c d3d11: Add support for packed 4:2:2 and 4:4:4 10bits formats 2020-11-20 02:28:54 +09:00
gstd3d11colorconverter.h d3d11colorconverter: Allow setting alpha value to use 2020-10-16 17:02:15 +00:00
gstd3d11compositor.c d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11compositor.h d3d11: Introduce d3d11compositor element 2020-10-16 17:02:15 +00:00
gstd3d11compositorbin.c d3d11: Introduce d3d11compositor element 2020-10-16 17:02:15 +00:00
gstd3d11compositorbin.h d3d11: Introduce d3d11compositor element 2020-10-16 17:02:15 +00:00
gstd3d11decoder.c d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11decoder.h d3d11h264dec: Add support for interlaced stream 2020-11-13 15:25:43 +00:00
gstd3d11desktopdup.cpp d3d11: Re-implement Desktop Duplication source 2020-12-22 19:23:25 +00:00
gstd3d11desktopdup.h d3d11: Re-implement Desktop Duplication source 2020-12-22 19:23:25 +00:00
gstd3d11desktopdupsrc.c d3d11: Re-implement Desktop Duplication source 2020-12-22 19:23:25 +00:00
gstd3d11desktopdupsrc.h d3d11: Re-implement Desktop Duplication source 2020-12-22 19:23:25 +00:00
gstd3d11device.c d3d11device: Add an optional flags argument for creating device 2020-12-22 01:14:54 +09:00
gstd3d11device.h d3d11device: Add an optional flags argument for creating device 2020-12-22 01:14:54 +09:00
gstd3d11download.c d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11download.h d3d11: Move to G_DECLARE_FINAL_TYPE 2020-10-04 15:44:03 +00:00
gstd3d11format.c d3d11: Add support for packed 4:2:2 and 4:4:4 10bits formats 2020-11-20 02:28:54 +09:00
gstd3d11format.h d3d11: Add support for packed 4:2:2 and 4:4:4 10bits formats 2020-11-20 02:28:54 +09:00
gstd3d11h264dec.c d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11h264dec.h d3d11decoder: Register elements per GPU device with capability check 2020-02-18 11:58:45 +00:00
gstd3d11h265dec.c d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11h265dec.h d3d11decoder: Register elements per GPU device with capability check 2020-02-18 11:58:45 +00:00
gstd3d11memory.c d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11memory.h d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11overlaycompositor.c d3d11device: Remove optional helper methods 2020-12-21 01:02:37 +09:00
gstd3d11overlaycompositor.h d3d11: Clarify target rect to be updated 2020-10-16 17:02:15 +00:00
gstd3d11shader.c d3d11shader: Allow drawing without shader resource view 2020-10-16 17:02:15 +00:00
gstd3d11shader.h d3d11colorconverter: Add support conversion with blending 2020-10-16 17:02:15 +00:00
gstd3d11upload.c d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11upload.h d3d11: Move to G_DECLARE_FINAL_TYPE 2020-10-04 15:44:03 +00:00
gstd3d11utils.c d3d11device: Add an optional flags argument for creating device 2020-12-22 01:14:54 +09:00
gstd3d11utils.h d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11videoprocessor.c d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11videoprocessor.h d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11videosink.c d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11videosink.h d3d11: Move to G_DECLARE_FINAL_TYPE 2020-10-04 15:44:03 +00:00
gstd3d11videosinkbin.c d3d11videosink: Add a property to support rendering statistics data on window 2020-12-04 05:22:14 +09:00
gstd3d11videosinkbin.h d3d11: Move to G_DECLARE_FINAL_TYPE 2020-10-04 15:44:03 +00:00
gstd3d11vp8dec.c d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11vp8dec.h d3d11decoder: Add VP8 decoder element 2020-04-22 23:20:44 +00:00
gstd3d11vp9dec.c d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11vp9dec.h d3d11decoder: Register elements per GPU device with capability check 2020-02-18 11:58:45 +00:00
gstd3d11window.cpp d3d11: Privatize d3d11memory implementation 2020-12-21 01:02:37 +09:00
gstd3d11window.h d3d11videosink: Add a property to support rendering statistics data on window 2020-12-04 05:22:14 +09:00
gstd3d11window_corewindow.cpp d3d11device: Remove optional helper methods 2020-12-21 01:02:37 +09:00
gstd3d11window_corewindow.h d3d11: Add support for Universal Windows Platform 2020-01-06 20:14:51 +09:00
gstd3d11window_swapchainpanel.cpp d3d11device: Remove optional helper methods 2020-12-21 01:02:37 +09:00
gstd3d11window_swapchainpanel.h d3d11: Add support for Universal Windows Platform 2020-01-06 20:14:51 +09:00
gstd3d11window_win32.cpp d3d11device: Remove optional helper methods 2020-12-21 01:02:37 +09:00
gstd3d11window_win32.h d3d11: Add support for Universal Windows Platform 2020-01-06 20:14:51 +09:00
meson.build d3d11: Re-implement Desktop Duplication source 2020-12-22 19:23:25 +00:00
plugin.c d3d11: Re-implement Desktop Duplication source 2020-12-22 19:23:25 +00:00