summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeungha Yang <seungha@centricular.com>2021-02-21 17:38:38 +0900
committerSeungha Yang <seungha@centricular.com>2021-02-23 03:34:11 +0900
commit8794f4b713d950eba64bda2309cf78cacb20b2a0 (patch)
tree2fa060a52c4a24ad0d9ff37e203235013d7beba4
parent6c6237fe508d932e6a2d09763d69ef394c88ada7 (diff)
downloadgstreamer-plugins-bad-8794f4b713d950eba64bda2309cf78cacb20b2a0.tar.gz
d3d11: Documentation update
* Update class metadata * for wrapper bin elements to be distinguishable from internal element. * D3D11 -> Direct3D11 for consistency * Add missing Since mark everywhere * Update plugin cache Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2029>
-rw-r--r--docs/plugins/gst_plugins_cache.json1396
-rw-r--r--sys/d3d11/gstd3d11compositor.c35
-rw-r--r--sys/d3d11/gstd3d11compositorbin.c35
-rw-r--r--sys/d3d11/gstd3d11deinterlace.cpp42
-rw-r--r--sys/d3d11/gstd3d11desktopdupsrc.c13
-rw-r--r--sys/d3d11/gstd3d11download.c24
-rw-r--r--sys/d3d11/gstd3d11h264dec.c19
-rw-r--r--sys/d3d11/gstd3d11h265dec.c19
-rw-r--r--sys/d3d11/gstd3d11mpeg2dec.c21
-rw-r--r--sys/d3d11/gstd3d11upload.c19
-rw-r--r--sys/d3d11/gstd3d11videosink.c44
-rw-r--r--sys/d3d11/gstd3d11videosinkbin.c63
-rw-r--r--sys/d3d11/gstd3d11vp8dec.c21
-rw-r--r--sys/d3d11/gstd3d11vp9dec.c21
-rw-r--r--sys/d3d11/plugin.c6
15 files changed, 1702 insertions, 76 deletions
diff --git a/docs/plugins/gst_plugins_cache.json b/docs/plugins/gst_plugins_cache.json
index 0553a5f70..995e41a0c 100644
--- a/docs/plugins/gst_plugins_cache.json
+++ b/docs/plugins/gst_plugins_cache.json
@@ -5307,11 +5307,239 @@
"d3d11": {
"description": "Direct3D11 plugin",
"elements": {
+ "d3d11colorconvert": {
+ "author": "Seungha Yang <seungha@centricular.com>",
+ "description": "Color conversion using Direct3D11",
+ "hierarchy": [
+ "GstD3D11ColorConvert",
+ "GstD3D11BaseConvert",
+ "GstD3D11BaseFilter",
+ "GstBaseTransform",
+ "GstElement",
+ "GstObject",
+ "GInitiallyUnowned",
+ "GObject"
+ ],
+ "klass": "Filter/Converter/Video/Hardware",
+ "long-name": "Direct3D11 colorspace converter",
+ "pad-templates": {
+ "sink": {
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "direction": "sink",
+ "presence": "always"
+ },
+ "src": {
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "direction": "src",
+ "presence": "always"
+ }
+ },
+ "rank": "none"
+ },
+ "d3d11compositor": {
+ "author": "Seungha Yang <seungha@centricular.com>",
+ "description": "A Direct3D11 compositor bin",
+ "hierarchy": [
+ "GstD3D11CompositorBin",
+ "GstBin",
+ "GstElement",
+ "GstObject",
+ "GInitiallyUnowned",
+ "GObject"
+ ],
+ "interfaces": [
+ "GstChildProxy"
+ ],
+ "klass": "Filter/Editor/Video/Compositor",
+ "long-name": "Direct3D11 Compositor Bin",
+ "pad-templates": {
+ "sink_%%u": {
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "direction": "sink",
+ "presence": "request",
+ "type": "GstD3D11CompositorBinInput"
+ },
+ "src": {
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "direction": "src",
+ "presence": "always",
+ "type": "GstD3D11CompositorBinPad"
+ }
+ },
+ "properties": {
+ "adapter": {
+ "blurb": "Adapter index for creating device (-1 for default)",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "0",
+ "max": "2147483647",
+ "min": "-1",
+ "mutable": "ready",
+ "readable": true,
+ "type": "gint",
+ "writable": true
+ },
+ "background": {
+ "blurb": "Background type",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "checker (0)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBackground",
+ "writable": true
+ },
+ "emit-signals": {
+ "blurb": "Send signals",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "false",
+ "mutable": "null",
+ "readable": true,
+ "type": "gboolean",
+ "writable": true
+ },
+ "latency": {
+ "blurb": "Additional latency in live mode to allow upstream to take longer to produce buffers for the current position (in nanoseconds)",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "0",
+ "max": "18446744073709551615",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "guint64",
+ "writable": true
+ },
+ "min-upstream-latency": {
+ "blurb": "When sources with a higher latency are expected to be plugged in dynamically after the aggregator has started playing, this allows overriding the minimum latency reported by the initial source(s). This is only taken into account when larger than the actually reported minimum latency. (nanoseconds)",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "0",
+ "max": "18446744073709551615",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "guint64",
+ "writable": true
+ },
+ "mixer": {
+ "blurb": "The d3d11 mixer chain to use",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "mutable": "null",
+ "readable": true,
+ "type": "GstElement",
+ "writable": false
+ },
+ "start-time": {
+ "blurb": "Start time to use if start-time-selection=set",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "18446744073709551615",
+ "max": "18446744073709551615",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "guint64",
+ "writable": true
+ },
+ "start-time-selection": {
+ "blurb": "Decides which start time is output",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "zero (0)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstAggregatorStartTimeSelection",
+ "writable": true
+ }
+ },
+ "rank": "secondary"
+ },
+ "d3d11compositorelement": {
+ "author": "Seungha Yang <seungha@centricular.com>",
+ "description": "A Direct3D11 compositor",
+ "hierarchy": [
+ "GstD3D11Compositor",
+ "GstVideoAggregator",
+ "GstAggregator",
+ "GstElement",
+ "GstObject",
+ "GInitiallyUnowned",
+ "GObject"
+ ],
+ "interfaces": [
+ "GstChildProxy"
+ ],
+ "klass": "Filter/Editor/Video/Compositor",
+ "long-name": "Direct3D11 Compositor",
+ "pad-templates": {
+ "sink_%%u": {
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA, BGRA }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "direction": "sink",
+ "presence": "request",
+ "type": "GstD3D11CompositorPad"
+ },
+ "src": {
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA, BGRA }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "direction": "src",
+ "presence": "always",
+ "type": "GstAggregatorPad"
+ }
+ },
+ "properties": {
+ "adapter": {
+ "blurb": "Adapter index for creating device (-1 for default)",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "-1",
+ "max": "2147483647",
+ "min": "-1",
+ "mutable": "ready",
+ "readable": true,
+ "type": "gint",
+ "writable": true
+ },
+ "background": {
+ "blurb": "Background type",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "checker (0)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBackground",
+ "writable": true
+ }
+ },
+ "rank": "none"
+ },
"d3d11convert": {
"author": "Seungha Yang <seungha.yang@navercorp.com>, Jeongki Kim <jeongki.kim@jeongki.kim>",
- "description": "Resizes video and allow color conversion using D3D11",
+ "description": "Resizes video and allow color conversion using Direct3D11",
"hierarchy": [
- "GstD3D11ColorConvert",
+ "GstD3D11Convert",
+ "GstD3D11BaseConvert",
"GstD3D11BaseFilter",
"GstBaseTransform",
"GstElement",
@@ -5323,21 +5551,277 @@
"long-name": "Direct3D11 colorspace converter and scaler",
"pad-templates": {
"sink": {
- "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
"direction": "sink",
"presence": "always"
},
"src": {
- "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
"direction": "src",
"presence": "always"
}
},
"rank": "none"
},
+ "d3d11deinterlace": {
+ "author": "Seungha Yang <seungha@centricular.com>",
+ "description": "A Direct3D11 based deinterlacer bin",
+ "hierarchy": [
+ "GstD3D11DeinterlaceBin",
+ "GstBin",
+ "GstElement",
+ "GstObject",
+ "GInitiallyUnowned",
+ "GObject"
+ ],
+ "interfaces": [
+ "GstChildProxy"
+ ],
+ "klass": "Filter/Effect/Video/Deinterlace/Hardware",
+ "long-name": "Direct3D11 Intel(R) Iris(R) Plus Graphics Deinterlacer Bin",
+ "pad-templates": {
+ "sink": {
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\nvideo/x-raw:\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n",
+ "direction": "sink",
+ "presence": "always"
+ },
+ "src": {
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\nvideo/x-raw:\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n",
+ "direction": "src",
+ "presence": "always"
+ }
+ },
+ "properties": {
+ "adapter": {
+ "blurb": "DXGI Adapter index for creating device",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "0",
+ "max": "-1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "guint",
+ "writable": false
+ },
+ "device-id": {
+ "blurb": "DXGI Device ID",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "35410",
+ "max": "-1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "guint",
+ "writable": false
+ },
+ "method": {
+ "blurb": "Deinterlace Method. Use can set multiple methods as a flagset and element will select one of method automatically. If deinterlacing device failed to deinterlace with given mode, fallback might happen by the device",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "bob",
+ "mutable": "ready",
+ "readable": true,
+ "type": "GstD3D11DeinterlaceMethod",
+ "writable": true
+ },
+ "qos": {
+ "blurb": "Handle Quality-of-Service events",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "false",
+ "mutable": "null",
+ "readable": true,
+ "type": "gboolean",
+ "writable": true
+ },
+ "supported-methods": {
+ "blurb": "Set of supported deinterlace methods by device",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "mocomp+adaptive+bob+blend",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11DeinterlaceMethod",
+ "writable": false
+ },
+ "vendor-id": {
+ "blurb": "DXGI Vendor ID",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "32902",
+ "max": "-1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "guint",
+ "writable": false
+ }
+ },
+ "rank": "marginal"
+ },
+ "d3d11deinterlaceelement": {
+ "author": "Seungha Yang <seungha@centricular.com>",
+ "description": "A Direct3D11 based deinterlacer",
+ "hierarchy": [
+ "GstD3D11Deinterlace",
+ "GstBaseTransform",
+ "GstElement",
+ "GstObject",
+ "GInitiallyUnowned",
+ "GObject"
+ ],
+ "klass": "Filter/Effect/Video/Deinterlace/Hardware",
+ "long-name": "Direct3D11 Intel(R) Iris(R) Plus Graphics Deinterlacer",
+ "pad-templates": {
+ "sink": {
+ "caps": "video/x-raw(memory:D3D11Memory):\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n format: { NV12 }\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n format: { NV12 }\n",
+ "direction": "sink",
+ "presence": "always"
+ },
+ "src": {
+ "caps": "video/x-raw(memory:D3D11Memory):\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n format: { NV12 }\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n format: { NV12 }\n",
+ "direction": "src",
+ "presence": "always"
+ }
+ },
+ "properties": {
+ "adapter": {
+ "blurb": "DXGI Adapter index for creating device",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "0",
+ "max": "-1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "guint",
+ "writable": false
+ },
+ "device-id": {
+ "blurb": "DXGI Device ID",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "35410",
+ "max": "-1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "guint",
+ "writable": false
+ },
+ "method": {
+ "blurb": "Deinterlace Method. Use can set multiple methods as a flagset and element will select one of method automatically. If deinterlacing device failed to deinterlace with given mode, fallback might happen by the device",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "bob",
+ "mutable": "ready",
+ "readable": true,
+ "type": "GstD3D11DeinterlaceMethod",
+ "writable": true
+ },
+ "supported-methods": {
+ "blurb": "Set of supported deinterlace methods by device",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "mocomp+adaptive+bob+blend",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11DeinterlaceMethod",
+ "writable": false
+ },
+ "vendor-id": {
+ "blurb": "DXGI Vendor ID",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "32902",
+ "max": "-1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "guint",
+ "writable": false
+ }
+ },
+ "rank": "none"
+ },
+ "d3d11desktopdupsrc": {
+ "author": "Seungha Yang <seungha@centricular.com>",
+ "description": "Capture desktop image by using Desktop Duplication API",
+ "hierarchy": [
+ "GstD3D11DesktopDupSrc",
+ "GstPushSrc",
+ "GstBaseSrc",
+ "GstElement",
+ "GstObject",
+ "GInitiallyUnowned",
+ "GObject"
+ ],
+ "klass": "Source/Video",
+ "long-name": "Direct3D11 desktop duplication src",
+ "pad-templates": {
+ "src": {
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: BGRA\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "direction": "src",
+ "presence": "always"
+ }
+ },
+ "properties": {
+ "monitor-index": {
+ "blurb": "Zero-based index for monitor to capture (-1 = primary monitor)",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "-1",
+ "max": "2147483647",
+ "min": "-1",
+ "mutable": "ready",
+ "readable": true,
+ "type": "gint",
+ "writable": true
+ },
+ "show-cursor": {
+ "blurb": "Whether to show mouse cursor",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "false",
+ "mutable": "null",
+ "readable": true,
+ "type": "gboolean",
+ "writable": true
+ }
+ },
+ "rank": "none"
+ },
"d3d11download": {
"author": "Seungha Yang <seungha.yang@navercorp.com>",
- "description": "Downloads D3D11 texture memory into system memory",
+ "description": "Downloads Direct3D11 texture memory into system memory",
"hierarchy": [
"GstD3D11Download",
"GstD3D11BaseFilter",
@@ -5351,12 +5835,12 @@
"long-name": "Direct3D11 downloader",
"pad-templates": {
"sink": {
- "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
"direction": "sink",
"presence": "always"
},
"src": {
- "caps": "video/x-raw:\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
"direction": "src",
"presence": "always"
}
@@ -5365,7 +5849,7 @@
},
"d3d11h264dec": {
"author": "Seungha Yang <seungha.yang@navercorp.com>",
- "description": "A Direct3D11 based H.264 video decoder",
+ "description": "A Direct3D11/DXVA H.264 video decoder",
"hierarchy": [
"GstD3D11H264Dec",
"GstH264Decoder",
@@ -5376,15 +5860,15 @@
"GObject"
],
"klass": "Codec/Decoder/Video/Hardware",
- "long-name": "Direct3D11 H.264 Intel(R) Iris(R) Plus Graphics Decoder",
+ "long-name": "Direct3D11/DXVA H.264 Intel(R) Iris(R) Plus Graphics Decoder",
"pad-templates": {
"sink": {
- "caps": "video/x-h264:\n stream-format: { (string)avc, (string)avc3, (string)byte-stream }\n alignment: au\n profile: { (string)high, (string)main, (string)constrained-baseline, (string)baseline }\n framerate: [ 0/1, 2147483647/1 ]\n width: [ 64, 4096 ]\n height: [ 64, 4096 ]\n",
+ "caps": "video/x-h264:\n stream-format: { (string)avc, (string)avc3, (string)byte-stream }\n alignment: au\n profile: { (string)high, (string)progressive-high, (string)constrained-high, (string)main, (string)constrained-baseline, (string)baseline }\n width: [ 64, 4096 ]\n height: [ 64, 4096 ]\n",
"direction": "sink",
"presence": "always"
},
"src": {
- "caps": "video/x-raw(memory:D3D11Memory):\n format: NV12\n framerate: [ 0/1, 2147483647/1 ]\n width: [ 64, 4096 ]\n height: [ 64, 4096 ]\nvideo/x-raw:\n format: NV12\n framerate: [ 0/1, 2147483647/1 ]\n width: [ 64, 4096 ]\n height: [ 64, 4096 ]\n",
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: NV12\n width: [ 64, 4096 ]\n height: [ 64, 4096 ]\nvideo/x-raw:\n format: NV12\n width: [ 64, 4096 ]\n height: [ 64, 4096 ]\n",
"direction": "src",
"presence": "always"
}
@@ -5437,7 +5921,7 @@
},
"d3d11h265dec": {
"author": "Seungha Yang <seungha.yang@navercorp.com>",
- "description": "A Direct3D11 based H.265 video decoder",
+ "description": "A Direct3D11/DXVA H.265 video decoder",
"hierarchy": [
"GstD3D11H265Dec",
"GstH265Decoder",
@@ -5448,15 +5932,87 @@
"GObject"
],
"klass": "Codec/Decoder/Video/Hardware",
- "long-name": "Direct3D11 H.265 Intel(R) Iris(R) Plus Graphics Decoder",
+ "long-name": "Direct3D11/DXVA H.265 Intel(R) Iris(R) Plus Graphics Decoder",
+ "pad-templates": {
+ "sink": {
+ "caps": "video/x-h265:\n stream-format: { (string)hev1, (string)hvc1, (string)byte-stream }\n alignment: au\n profile: { (string)main, (string)main-10 }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n",
+ "direction": "sink",
+ "presence": "always"
+ },
+ "src": {
+ "caps": "video/x-raw:\n format: { NV12, P010_10LE }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n\nvideo/x-raw(format:Interlaced):\n format: { NV12, P010_10LE }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n interlace-mode: alternate\n\nvideo/x-raw(memory:D3D11Memory):\n format: { NV12, P010_10LE }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n",
+ "direction": "src",
+ "presence": "always"
+ }
+ },
+ "properties": {
+ "adapter": {
+ "blurb": "DXGI Adapter index for creating device",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "0",
+ "max": "-1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "guint",
+ "writable": false
+ },
+ "device-id": {
+ "blurb": "DXGI Device ID",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "35410",
+ "max": "-1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "guint",
+ "writable": false
+ },
+ "vendor-id": {
+ "blurb": "DXGI Vendor ID",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "32902",
+ "max": "-1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "guint",
+ "writable": false
+ }
+ },
+ "rank": "secondary"
+ },
+ "d3d11mpeg2dec": {
+ "author": "Seungha Yang <seungha@centricular.com>",
+ "description": "A Direct3D11/DXVA MPEG2 video decoder",
+ "hierarchy": [
+ "GstD3D11Mpeg2Dec",
+ "GstMpeg2Decoder",
+ "GstVideoDecoder",
+ "GstElement",
+ "GstObject",
+ "GInitiallyUnowned",
+ "GObject"
+ ],
+ "klass": "Codec/Decoder/Video/Hardware",
+ "long-name": "Direct3D11/DXVA MPEG2 Intel(R) Iris(R) Plus Graphics Decoder",
"pad-templates": {
"sink": {
- "caps": "video/x-h265:\n stream-format: { (string)hev1, (string)hvc1, (string)byte-stream }\n alignment: au\n framerate: [ 0/1, 2147483647/1 ]\n profile: { (string)main, (string)main-10 }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n",
+ "caps": "video/mpeg:\n mpegversion: 2\n systemstream: false\n profile: { (string)main, (string)simple }\n width: [ 64, 1920 ]\n height: [ 64, 1920 ]\n",
"direction": "sink",
"presence": "always"
},
"src": {
- "caps": "video/x-raw(memory:D3D11Memory):\n framerate: [ 0/1, 2147483647/1 ]\n format: { NV12, P010_10LE }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\nvideo/x-raw:\n framerate: [ 0/1, 2147483647/1 ]\n format: { NV12, P010_10LE }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n",
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: NV12\n width: [ 64, 1920 ]\n height: [ 64, 1920 ]\nvideo/x-raw:\n format: NV12\n width: [ 64, 1920 ]\n height: [ 64, 1920 ]\n",
"direction": "src",
"presence": "always"
}
@@ -5507,9 +6063,38 @@
},
"rank": "secondary"
},
+ "d3d11scale": {
+ "author": "Seungha Yang <seungha@centricular.com>",
+ "description": "Resizes video using Direct3D11",
+ "hierarchy": [
+ "GstD3D11Scale",
+ "GstD3D11BaseConvert",
+ "GstD3D11BaseFilter",
+ "GstBaseTransform",
+ "GstElement",
+ "GstObject",
+ "GInitiallyUnowned",
+ "GObject"
+ ],
+ "klass": "Filter/Converter/Video/Scaler/Hardware",
+ "long-name": "Direct3D11 scaler",
+ "pad-templates": {
+ "sink": {
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "direction": "sink",
+ "presence": "always"
+ },
+ "src": {
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "direction": "src",
+ "presence": "always"
+ }
+ },
+ "rank": "none"
+ },
"d3d11upload": {
"author": "Seungha Yang <seungha.yang@navercorp.com>",
- "description": "Uploads data into D3D11 texture memory",
+ "description": "Uploads data into Direct3D11 texture memory",
"hierarchy": [
"GstD3D11Upload",
"GstD3D11BaseFilter",
@@ -5523,12 +6108,12 @@
"long-name": "Direct3D11 uploader",
"pad-templates": {
"sink": {
- "caps": "video/x-raw:\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "caps": "video/x-raw:\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
"direction": "sink",
"presence": "always"
},
"src": {
- "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
"direction": "src",
"presence": "always"
}
@@ -5537,7 +6122,7 @@
},
"d3d11videosink": {
"author": "Seungha Yang <seungha.yang@navercorp.com>",
- "description": "A Direct3D11 based videosink",
+ "description": "A Direct3D11 based videosink bin",
"hierarchy": [
"GstD3D11VideoSinkBin",
"GstBin",
@@ -5555,7 +6140,7 @@
"long-name": "Direct3D11 video sink bin",
"pad-templates": {
"sink": {
- "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
"direction": "sink",
"presence": "always"
}
@@ -5601,6 +6186,18 @@
"type": "guint",
"writable": true
},
+ "draw-on-shared-texture": {
+ "blurb": "Draw on user provided shared texture instead of window. When enabled, user can pass application's own texture to sink by using \"draw\" action signal on \"begin-draw\" signal handler, so that sink can draw video data on application's texture. Supported texture formats for user texture are DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_B8G8R8A8_UNORM, and DXGI_FORMAT_R10G10B10A2_UNORM.",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "false",
+ "mutable": "ready",
+ "readable": true,
+ "type": "gboolean",
+ "writable": true
+ },
"enable-last-sample": {
"blurb": "Enable the last-sample property",
"conditionally-available": false,
@@ -5805,7 +6402,37 @@
"writable": true
}
},
- "rank": "primary"
+ "rank": "primary",
+ "signals": {
+ "begin-draw": {
+ "args": [],
+ "return-type": "void",
+ "when": "last"
+ },
+ "draw": {
+ "action": true,
+ "args": [
+ {
+ "name": "arg0",
+ "type": "gpointer"
+ },
+ {
+ "name": "arg1",
+ "type": "guint"
+ },
+ {
+ "name": "arg2",
+ "type": "guint64"
+ },
+ {
+ "name": "arg3",
+ "type": "guint64"
+ }
+ ],
+ "return-type": "gboolean",
+ "when": "last"
+ }
+ }
},
"d3d11videosinkelement": {
"author": "Seungha Yang <seungha.yang@navercorp.com>",
@@ -5827,7 +6454,7 @@
"long-name": "Direct3D11 video sink",
"pad-templates": {
"sink": {
- "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { BGRA, RGBA, RGB10A2_LE, VUYA, NV12, P010_10LE, P016_LE, I420, I420_10LE, YUY2, UYVY, VYUY, Y210, Y410 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
"direction": "sink",
"presence": "always"
}
@@ -5847,6 +6474,18 @@
"type": "gint",
"writable": true
},
+ "draw-on-shared-texture": {
+ "blurb": "Draw on user provided shared texture instead of window. When enabled, user can pass application's own texture to sink by using \"draw\" action signal on \"begin-draw\" signal handler, so that sink can draw video data on application's texture. Supported texture formats for user texture are DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_B8G8R8A8_UNORM, and DXGI_FORMAT_R10G10B10A2_UNORM.",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "false",
+ "mutable": "ready",
+ "readable": true,
+ "type": "gboolean",
+ "writable": true
+ },
"enable-navigation-events": {
"blurb": "When enabled, navigation events are sent upstream",
"conditionally-available": false,
@@ -5896,11 +6535,41 @@
"writable": true
}
},
- "rank": "none"
+ "rank": "none",
+ "signals": {
+ "begin-draw": {
+ "args": [],
+ "return-type": "void",
+ "when": "last"
+ },
+ "draw": {
+ "action": true,
+ "args": [
+ {
+ "name": "arg0",
+ "type": "gpointer"
+ },
+ {
+ "name": "arg1",
+ "type": "guint"
+ },
+ {
+ "name": "arg2",
+ "type": "guint64"
+ },
+ {
+ "name": "arg3",
+ "type": "guint64"
+ }
+ ],
+ "return-type": "gboolean",
+ "when": "last"
+ }
+ }
},
"d3d11vp8dec": {
"author": "Seungha Yang <seungha.yang@navercorp.com>",
- "description": "A Direct3D11 based VP8 video decoder",
+ "description": "A Direct3D11/DXVA VP8 video decoder",
"hierarchy": [
"GstD3D11Vp8Dec",
"GstVp8Decoder",
@@ -5911,15 +6580,15 @@
"GObject"
],
"klass": "Codec/Decoder/Video/Hardware",
- "long-name": "Direct3D11 VP8 Intel(R) Iris(R) Plus Graphics Decoder",
+ "long-name": "Direct3D11/DXVA VP8 Intel(R) Iris(R) Plus Graphics Decoder",
"pad-templates": {
"sink": {
- "caps": "video/x-vp8:\n framerate: [ 0/1, 2147483647/1 ]\n width: [ 64, 4096 ]\n height: [ 64, 4096 ]\n",
+ "caps": "video/x-vp8:\n width: [ 64, 4096 ]\n height: [ 64, 4096 ]\n",
"direction": "sink",
"presence": "always"
},
"src": {
- "caps": "video/x-raw(memory:D3D11Memory):\n framerate: [ 0/1, 2147483647/1 ]\n format: NV12\n width: [ 64, 4096 ]\n height: [ 64, 4096 ]\nvideo/x-raw:\n framerate: [ 0/1, 2147483647/1 ]\n format: NV12\n width: [ 64, 4096 ]\n height: [ 64, 4096 ]\n",
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: NV12\n width: [ 64, 4096 ]\n height: [ 64, 4096 ]\nvideo/x-raw:\n format: NV12\n width: [ 64, 4096 ]\n height: [ 64, 4096 ]\n",
"direction": "src",
"presence": "always"
}
@@ -5972,7 +6641,7 @@
},
"d3d11vp9dec": {
"author": "Seungha Yang <seungha.yang@navercorp.com>",
- "description": "A Direct3D11 based VP9 video decoder",
+ "description": "A Direct3D11/DXVA VP9 video decoder",
"hierarchy": [
"GstD3D11Vp9Dec",
"GstVp9Decoder",
@@ -5983,15 +6652,15 @@
"GObject"
],
"klass": "Codec/Decoder/Video/Hardware",
- "long-name": "Direct3D11 VP9 Intel(R) Iris(R) Plus Graphics Decoder",
+ "long-name": "Direct3D11/DXVA VP9 Intel(R) Iris(R) Plus Graphics Decoder",
"pad-templates": {
"sink": {
- "caps": "video/x-vp9:\n framerate: [ 0/1, 2147483647/1 ]\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n",
+ "caps": "video/x-vp9:\n alignment: frame\n profile: { (string)0, (string)2 }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n",
"direction": "sink",
"presence": "always"
},
"src": {
- "caps": "video/x-raw(memory:D3D11Memory):\n framerate: [ 0/1, 2147483647/1 ]\n format: { NV12, P010_10LE }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\nvideo/x-raw:\n framerate: [ 0/1, 2147483647/1 ]\n format: { NV12, P010_10LE }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n",
+ "caps": "video/x-raw(memory:D3D11Memory):\n format: { NV12, P010_10LE }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\nvideo/x-raw:\n format: { NV12, P010_10LE }\n width: [ 64, 8192 ]\n height: [ 64, 8192 ]\n",
"direction": "src",
"presence": "always"
}
@@ -6046,6 +6715,18 @@
"filename": "gstd3d11",
"license": "LGPL",
"other-types": {
+ "GstD3D11BaseConvert": {
+ "hierarchy": [
+ "GstD3D11BaseConvert",
+ "GstD3D11BaseFilter",
+ "GstBaseTransform",
+ "GstElement",
+ "GstObject",
+ "GInitiallyUnowned",
+ "GObject"
+ ],
+ "kind": "object"
+ },
"GstD3D11BaseFilter": {
"hierarchy": [
"GstD3D11BaseFilter",
@@ -6073,6 +6754,659 @@
}
}
},
+ "GstD3D11CompositorBackground": {
+ "kind": "enum",
+ "values": [
+ {
+ "desc": "Checker pattern",
+ "name": "checker",
+ "value": "0"
+ },
+ {
+ "desc": "Black",
+ "name": "black",
+ "value": "1"
+ },
+ {
+ "desc": "White",
+ "name": "white",
+ "value": "2"
+ },
+ {
+ "desc": "Transparent Background to enable further compositing",
+ "name": "transparent",
+ "value": "3"
+ }
+ ]
+ },
+ "GstD3D11CompositorBinInput": {
+ "hierarchy": [
+ "GstD3D11CompositorBinInput",
+ "GstD3D11CompositorBinPad",
+ "GstGhostPad",
+ "GstProxyPad",
+ "GstPad",
+ "GstObject",
+ "GInitiallyUnowned",
+ "GObject"
+ ],
+ "kind": "object",
+ "properties": {
+ "alpha": {
+ "blurb": "Alpha of the picture",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "gdouble",
+ "writable": true
+ },
+ "blend-dest-alpha": {
+ "blurb": "Blend factor for destination alpha, \"*-color\" values are not allowed",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "zero (0)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBlend",
+ "writable": true
+ },
+ "blend-dest-rgb": {
+ "blurb": "Blend factor for destination RGB",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "zero (0)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBlend",
+ "writable": true
+ },
+ "blend-factor-alpha": {
+ "blurb": "Blend factor for alpha component when blend type is \"blend-factor\" or \"inv-blend-factor\"",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "gfloat",
+ "writable": true
+ },
+ "blend-factor-blue": {
+ "blurb": "Blend factor for blue component when blend type is \"blend-factor\" or \"inv-blend-factor\"",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "gfloat",
+ "writable": true
+ },
+ "blend-factor-green": {
+ "blurb": "Blend factor for green component when blend type is \"blend-factor\" or \"inv-blend-factor\"",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "gfloat",
+ "writable": true
+ },
+ "blend-factor-red": {
+ "blurb": "Blend factor for red component when blend type is \"blend-factor\" or \"inv-blend-factor\"",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "gfloat",
+ "writable": true
+ },
+ "blend-op-alpha": {
+ "blurb": "Blend equation for alpha",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "add (0)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBlendOperation",
+ "writable": true
+ },
+ "blend-op-rgb": {
+ "blurb": "Blend equation for RGB",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "add (0)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBlendOperation",
+ "writable": true
+ },
+ "blend-src-alpha": {
+ "blurb": "Blend factor for source alpha, \"*-color\" values are not allowed",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "zero (0)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBlend",
+ "writable": true
+ },
+ "blend-src-rgb": {
+ "blurb": "Blend factor for source RGB",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "zero (0)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBlend",
+ "writable": true
+ },
+ "height": {
+ "blurb": "Height of the picture",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "2147483647",
+ "min": "-2147483648",
+ "mutable": "null",
+ "readable": true,
+ "type": "gint",
+ "writable": true
+ },
+ "max-last-buffer-repeat": {
+ "blurb": "Repeat last buffer for time (in ns, -1=until EOS), behaviour on EOS is not affected",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "0",
+ "max": "18446744073709551615",
+ "min": "0",
+ "mutable": "playing",
+ "readable": true,
+ "type": "guint64",
+ "writable": true
+ },
+ "repeat-after-eos": {
+ "blurb": "Repeat the last frame after EOS until all pads are EOS",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "false",
+ "mutable": "null",
+ "readable": true,
+ "type": "gboolean",
+ "writable": true
+ },
+ "width": {
+ "blurb": "Width of the picture",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "2147483647",
+ "min": "-2147483648",
+ "mutable": "null",
+ "readable": true,
+ "type": "gint",
+ "writable": true
+ },
+ "xpos": {
+ "blurb": "X position of the picture",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "2147483647",
+ "min": "-2147483648",
+ "mutable": "null",
+ "readable": true,
+ "type": "gint",
+ "writable": true
+ },
+ "ypos": {
+ "blurb": "Y position of the picture",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "2147483647",
+ "min": "-2147483648",
+ "mutable": "null",
+ "readable": true,
+ "type": "gint",
+ "writable": true
+ },
+ "zorder": {
+ "blurb": "Z Order of the picture",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "-1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "guint",
+ "writable": true
+ }
+ }
+ },
+ "GstD3D11CompositorBinPad": {
+ "hierarchy": [
+ "GstD3D11CompositorBinPad",
+ "GstGhostPad",
+ "GstProxyPad",
+ "GstPad",
+ "GstObject",
+ "GInitiallyUnowned",
+ "GObject"
+ ],
+ "kind": "object",
+ "properties": {
+ "emit-signals": {
+ "blurb": "Send signals to signal data consumption",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "false",
+ "mutable": "null",
+ "readable": true,
+ "type": "gboolean",
+ "writable": true
+ }
+ },
+ "signals": {
+ "buffer-consumed": {
+ "args": [
+ {
+ "name": "arg0",
+ "type": "GstBuffer"
+ }
+ ],
+ "return-type": "void",
+ "when": "first"
+ }
+ }
+ },
+ "GstD3D11CompositorBlend": {
+ "kind": "enum",
+ "values": [
+ {
+ "desc": "The blend factor is (0, 0, 0, 0)",
+ "name": "zero",
+ "value": "0"
+ },
+ {
+ "desc": "The blend factor is (1, 1, 1, 1)",
+ "name": "one",
+ "value": "1"
+ },
+ {
+ "desc": "The blend factor is (Rs, Gs, Bs, As)",
+ "name": "src-color",
+ "value": "2"
+ },
+ {
+ "desc": "The blend factor is (1 - Rs, 1 - Gs, 1 - Bs, 1 - As)",
+ "name": "inv-src-color",
+ "value": "3"
+ },
+ {
+ "desc": "The blend factor is (As, As, As, As)",
+ "name": "src-alpha",
+ "value": "4"
+ },
+ {
+ "desc": "The blend factor is (1 - As, 1 - As, 1 - As, 1 - As)",
+ "name": "inv-src-alpha",
+ "value": "5"
+ },
+ {
+ "desc": "The blend factor is (Ad, Ad, Ad, Ad)",
+ "name": "dest-alpha",
+ "value": "6"
+ },
+ {
+ "desc": "The blend factor is (1 - Ad, 1 - Ad, 1 - Ad, 1 - Ad)",
+ "name": "inv-dest-alpha",
+ "value": "7"
+ },
+ {
+ "desc": "The blend factor is (Rd, Gd, Bd, Ad)",
+ "name": "dest-color",
+ "value": "8"
+ },
+ {
+ "desc": "The blend factor is (1 - Rd, 1 - Gd, 1 - Bd, 1 - Ad)",
+ "name": "inv-dest-color",
+ "value": "9"
+ },
+ {
+ "desc": "The blend factor is (f, f, f, 1); where f = min(As, 1 - Ad)",
+ "name": "src-alpha-sat",
+ "value": "10"
+ },
+ {
+ "desc": "User defined blend factor",
+ "name": "blend-factor",
+ "value": "11"
+ },
+ {
+ "desc": "Inverse of user defined blend factor",
+ "name": "inv-blend-factor",
+ "value": "12"
+ }
+ ]
+ },
+ "GstD3D11CompositorBlendOperation": {
+ "kind": "enum",
+ "values": [
+ {
+ "desc": "Add source and background",
+ "name": "add",
+ "value": "0"
+ },
+ {
+ "desc": "Subtract source from background",
+ "name": "subtract",
+ "value": "1"
+ },
+ {
+ "desc": "Subtract background from source",
+ "name": "rev-subtract",
+ "value": "2"
+ },
+ {
+ "desc": "Minimum of source and background",
+ "name": "min",
+ "value": "3"
+ },
+ {
+ "desc": "Maximum of source and background",
+ "name": "max",
+ "value": "4"
+ }
+ ]
+ },
+ "GstD3D11CompositorPad": {
+ "hierarchy": [
+ "GstD3D11CompositorPad",
+ "GstVideoAggregatorPad",
+ "GstAggregatorPad",
+ "GstPad",
+ "GstObject",
+ "GInitiallyUnowned",
+ "GObject"
+ ],
+ "kind": "object",
+ "properties": {
+ "alpha": {
+ "blurb": "Alpha of the picture",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "1",
+ "max": "1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "gdouble",
+ "writable": true
+ },
+ "blend-dest-alpha": {
+ "blurb": "Blend factor for destination alpha, \"*-color\" values are not allowed",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "inv-src-alpha (5)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBlend",
+ "writable": true
+ },
+ "blend-dest-rgb": {
+ "blurb": "Blend factor for destination RGB",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "inv-src-alpha (5)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBlend",
+ "writable": true
+ },
+ "blend-factor-alpha": {
+ "blurb": "Blend factor for alpha component when blend type is \"blend-factor\" or \"inv-blend-factor\"",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "1",
+ "max": "1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "gfloat",
+ "writable": true
+ },
+ "blend-factor-blue": {
+ "blurb": "Blend factor for blue component when blend type is \"blend-factor\" or \"inv-blend-factor\"",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "1",
+ "max": "1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "gfloat",
+ "writable": true
+ },
+ "blend-factor-green": {
+ "blurb": "Blend factor for green component when blend type is \"blend-factor\" or \"inv-blend-factor\"",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "1",
+ "max": "1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "gfloat",
+ "writable": true
+ },
+ "blend-factor-red": {
+ "blurb": "Blend factor for red component when blend type is \"blend-factor\" or \"inv-blend-factor\"",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "1",
+ "max": "1",
+ "min": "0",
+ "mutable": "null",
+ "readable": true,
+ "type": "gfloat",
+ "writable": true
+ },
+ "blend-op-alpha": {
+ "blurb": "Blend equation for alpha",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "add (0)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBlendOperation",
+ "writable": true
+ },
+ "blend-op-rgb": {
+ "blurb": "Blend equation for RGB",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "add (0)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBlendOperation",
+ "writable": true
+ },
+ "blend-src-alpha": {
+ "blurb": "Blend factor for source alpha, \"*-color\" values are not allowed",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "one (1)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBlend",
+ "writable": true
+ },
+ "blend-src-rgb": {
+ "blurb": "Blend factor for source RGB",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "src-alpha (4)",
+ "mutable": "null",
+ "readable": true,
+ "type": "GstD3D11CompositorBlend",
+ "writable": true
+ },
+ "height": {
+ "blurb": "Height of the picture",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "2147483647",
+ "min": "-2147483648",
+ "mutable": "null",
+ "readable": true,
+ "type": "gint",
+ "writable": true
+ },
+ "width": {
+ "blurb": "Width of the picture",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "2147483647",
+ "min": "-2147483648",
+ "mutable": "null",
+ "readable": true,
+ "type": "gint",
+ "writable": true
+ },
+ "xpos": {
+ "blurb": "X position of the picture",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "2147483647",
+ "min": "-2147483648",
+ "mutable": "null",
+ "readable": true,
+ "type": "gint",
+ "writable": true
+ },
+ "ypos": {
+ "blurb": "Y position of the picture",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": true,
+ "default": "0",
+ "max": "2147483647",
+ "min": "-2147483648",
+ "mutable": "null",
+ "readable": true,
+ "type": "gint",
+ "writable": true
+ }
+ }
+ },
+ "GstD3D11DeinterlaceMethod": {
+ "kind": "flags",
+ "values": [
+ {
+ "desc": "Blend: Blending top/bottom field pictures into one frame. Framerate will be preserved (e.g., 60i -> 30p)",
+ "name": "blend",
+ "value": "0x00000001"
+ },
+ {
+ "desc": "Bob: Interpolating missing lines by using the adjacent lines. Framerate will be doubled (e,g, 60i -> 60p)",
+ "name": "bob",
+ "value": "0x00000002"
+ },
+ {
+ "desc": "Adaptive: Interpolating missing lines by using spatial/temporal references. Framerate will be doubled (e,g, 60i -> 60p)",
+ "name": "adaptive",
+ "value": "0x00000004"
+ },
+ {
+ "desc": "Motion Compensation: Recreating missing lines by using motion vector. Framerate will be doubled (e,g, 60i -> 60p)",
+ "name": "mocomp",
+ "value": "0x00000008"
+ }
+ ]
+ },
"GstD3D11WindowFullscreenToggleMode": {
"kind": "flags",
"values": [
diff --git a/sys/d3d11/gstd3d11compositor.c b/sys/d3d11/gstd3d11compositor.c
index f8bad2894..4a41cc93e 100644
--- a/sys/d3d11/gstd3d11compositor.c
+++ b/sys/d3d11/gstd3d11compositor.c
@@ -22,6 +22,16 @@
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:element-d3d11compositorelement
+ * @title: d3d11compositorelement
+ *
+ * A Direct3D11 based video compositing element.
+ *
+ * Since: 1.20
+ *
+ */
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -47,6 +57,8 @@ GST_DEBUG_CATEGORY_EXTERN (gst_d3d11_compositor_debug);
* Find the minimum of source 1 and source 2
* @GST_D3D11_COMPOSITOR_BLEND_OP_MAX:
* Find the maximum of source 1 and source 2
+ *
+ * Since: 1.20
*/
GType
gst_d3d11_compositor_blend_operation_get_type (void)
@@ -167,6 +179,8 @@ gst_d3d11_compositor_blend_operation_to_native (GstD3D11CompositorBlendOperation
* ID3D11DeviceContext::OMSetBlendState.
* The pre-blend operation inverts the blend factor,
* generating 1 - blend_factor.
+ *
+ * Since: 1.20
*/
GType
gst_d3d11_compositor_blend_get_type (void)
@@ -290,6 +304,13 @@ gst_d3d11_compositor_blend_to_native (GstD3D11CompositorBlend blend)
return D3D11_BLEND_ZERO;
}
+/**
+ * GstD3D11CompositorBackground:
+ *
+ * Background mode
+ *
+ * Since: 1.20
+ */
GType
gst_d3d11_compositor_background_get_type (void)
{
@@ -359,6 +380,11 @@ static const gchar checker_ps_src[] =
"}\n";
/* *INDENT-ON* */
+/**
+ * GstD3D11CompositorPad:
+ *
+ * Since: 1.20
+ */
struct _GstD3D11CompositorPad
{
GstVideoAggregatorConvertPad parent;
@@ -566,6 +592,9 @@ gst_d3d11_compositor_pad_class_init (GstD3D11CompositorPadClass * klass)
GST_DEBUG_FUNCPTR (gst_d3d11_compositor_pad_prepare_frame);
vaggpadclass->clean_frame =
GST_DEBUG_FUNCPTR (gst_d3d11_compositor_pad_clean_frame);
+
+ gst_type_mark_as_plugin_api (GST_TYPE_D3D11_COMPOSITOR_BLEND, 0);
+ gst_type_mark_as_plugin_api (GST_TYPE_D3D11_COMPOSITOR_BLEND_OPERATION, 0);
}
static void
@@ -1329,8 +1358,10 @@ gst_d3d11_compositor_class_init (GstD3D11CompositorClass * klass)
gst_element_class_set_static_metadata (element_class, "Direct3D11 Compositor",
"Filter/Editor/Video/Compositor",
- "Composite multiple video streams via D3D11 API",
- "Seungha Yang <seungha@centricular.com>");
+ "A Direct3D11 compositor", "Seungha Yang <seungha@centricular.com>");
+
+ gst_type_mark_as_plugin_api (GST_TYPE_COMPOSITOR_BACKGROUND, 0);
+ gst_type_mark_as_plugin_api (GST_TYPE_D3D11_COMPOSITOR_PAD, 0);
}
static void
diff --git a/sys/d3d11/gstd3d11compositorbin.c b/sys/d3d11/gstd3d11compositorbin.c
index 25fb07cf8..e50c1a299 100644
--- a/sys/d3d11/gstd3d11compositorbin.c
+++ b/sys/d3d11/gstd3d11compositorbin.c
@@ -19,6 +19,25 @@
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:element-d3d11compositor
+ * @title: d3d11compositor
+ *
+ * A convenient bin which wraps #d3d11compositorelement for video composition
+ * with other helper elements to handle color conversion and memory transfer
+ * between Direct3D11 and system memory space.
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 d3d11compositor name=c ! d3d11videosink \
+ * videotestsrc ! video/x-raw,width=320,height=240 ! c. \
+ * videotestsrc pattern=ball ! video/x-raw,width=100,height=100 ! c.
+ * ```
+ *
+ * Since: 1.20
+ *
+ */
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -54,6 +73,11 @@ enum
static guint gst_d3d11_compositor_bin_pad_signals[SIGNAL_PAD_LAST] = { 0 };
+/**
+ * GstD3D11CompositorBinPad:
+ *
+ * Since: 1.20
+ */
struct _GstD3D11CompositorBinPad
{
GstGhostPad parent;
@@ -225,6 +249,11 @@ enum
#define DEFAULT_INPUT_BLEND_DEST_RGB GST_D3D11_COMPOSITOR_BLEND_INV_SRC_ALPHA
#define DEFAULT_INPUT_BLEND_DEST_ALPHA GST_D3D11_COMPOSITOR_BLEND_INV_SRC_ALPHA
+/**
+ * GstD3D11CompositorBinInput:
+ *
+ * Since: 1.20
+ */
struct _GstD3D11CompositorBinInput
{
GstD3D11CompositorBinPad parent;
@@ -544,8 +573,7 @@ gst_d3d11_compositor_bin_class_init (GstD3D11CompositorBinClass * klass)
gst_element_class_set_static_metadata (element_class,
"Direct3D11 Compositor Bin",
"Filter/Editor/Video/Compositor",
- "Composite multiple video streams via D3D11 API",
- "Seungha Yang <seungha@centricular.com>");
+ "A Direct3D11 compositor bin", "Seungha Yang <seungha@centricular.com>");
caps = gst_d3d11_get_updated_template_caps (&sink_template_caps);
gst_element_class_add_pad_template (element_class,
@@ -612,6 +640,9 @@ gst_d3d11_compositor_bin_class_init (GstD3D11CompositorBinClass * klass)
g_param_spec_enum ("background", "Background", "Background type",
GST_TYPE_COMPOSITOR_BACKGROUND,
DEFAULT_BACKGROUND, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ gst_type_mark_as_plugin_api (GST_TYPE_D3D11_COMPOSITOR_BIN_PAD, 0);
+ gst_type_mark_as_plugin_api (GST_TYPE_D3D11_COMPOSITOR_BIN_INPUT, 0);
}
static void
diff --git a/sys/d3d11/gstd3d11deinterlace.cpp b/sys/d3d11/gstd3d11deinterlace.cpp
index 170d88a65..8188b8e09 100644
--- a/sys/d3d11/gstd3d11deinterlace.cpp
+++ b/sys/d3d11/gstd3d11deinterlace.cpp
@@ -17,6 +17,19 @@
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:element-d3d11deinterlaceelement
+ * @title: d3d11deinterlaceelement
+ *
+ * Deinterlacing interlaced video frames to progressive video frames by using
+ * ID3D11VideoProcessor API. Depending on the hardware it runs on,
+ * this element will only support a very limited set of video formats.
+ * Use #d3d11deinterlace instead, which will take care of conversion.
+ *
+ * Since: 1.20
+ *
+ */
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -101,6 +114,13 @@ typedef enum
/* TODO: INVERSE_TELECINE */
} GstD3D11DeinterlaceMethod;
+/**
+ * GstD3D11DeinterlaceMethod:
+ *
+ * Deinterlacing method
+ *
+ * Since: 1.20
+ */
#define GST_TYPE_D3D11_DEINTERLACE_METHOD (gst_d3d11_deinterlace_method_type())
static GType
@@ -400,6 +420,9 @@ gst_d3d11_deinterlace_class_init (GstD3D11DeinterlaceClass * klass,
klass->device_caps = cdata->device_caps;
gst_d3d11_deinterlace_class_data_unref (cdata);
+
+ gst_type_mark_as_plugin_api (GST_TYPE_D3D11_DEINTERLACE_METHOD,
+ (GstPluginAPIFlags) 0);
}
static void
@@ -1853,6 +1876,23 @@ done:
return ret;
}
+/**
+ * SECTION:element-d3d11deinterlace
+ * @title: d3d11deinterlace
+ * @short_description: A Direct3D11 based deinterlace element
+ *
+ * Deinterlacing interlaced video frames to progressive video frames by using
+ * ID3D11VideoProcessor API.
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 filesrc location=/path/to/h264/file ! parsebin ! d3d11h264dec ! d3d11deinterlace ! d3d11videosink
+ * ```
+ *
+ * Since: 1.20
+ *
+ */
+
/* GstD3D11DeinterlaceBin */
enum
{
@@ -1999,7 +2039,7 @@ gst_d3d11_deinterlace_bin_class_init (GstD3D11DeinterlaceBinClass * klass,
cdata->description);
gst_element_class_set_metadata (element_class, long_name,
"Filter/Effect/Video/Deinterlace/Hardware",
- "A Direct3D11 based deinterlacer",
+ "A Direct3D11 based deinterlacer bin",
"Seungha Yang <seungha@centricular.com>");
g_free (long_name);
diff --git a/sys/d3d11/gstd3d11desktopdupsrc.c b/sys/d3d11/gstd3d11desktopdupsrc.c
index 191ef6e1b..5d8bbb3ea 100644
--- a/sys/d3d11/gstd3d11desktopdupsrc.c
+++ b/sys/d3d11/gstd3d11desktopdupsrc.c
@@ -22,15 +22,14 @@
* SECTION:element-d3d11desktopdupsrc
* @title: d3d11desktopdupsrc
*
- * This element uses DXGI Desktop Duplication API.
- * The default is capturing the whole desktop, but #GstD3D11DesktopDupSrc:x,
- * #GstD3D11DesktopDupSrc:y, #GstD3D11DesktopDupSrc:width and
- * #GstD3D11DesktopDupSrc:height can be used to select a particular region.
+ * A DXGI Desktop Duplication API based screen capture element
*
- * ## Example pipelines
- * |[
+ * ## Example launch line
+ * ```
* gst-launch-1.0 d3d11desktopdupsrc ! queue ! d3d11videosink
- * ]| Capture the desktop and display it.
+ * ```
+ *
+ * Since: 1.20
*/
#ifdef HAVE_CONFIG_H
diff --git a/sys/d3d11/gstd3d11download.c b/sys/d3d11/gstd3d11download.c
index d2ce88319..8191bd5aa 100644
--- a/sys/d3d11/gstd3d11download.c
+++ b/sys/d3d11/gstd3d11download.c
@@ -17,6 +17,28 @@
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:element-d3d11download
+ * @title: d3d11download
+ * @short_description: Downloads Direct3D11 texture memory into system memory
+ *
+ * Downloads Direct3D11 texture memory into system memory
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 filesrc location=test_h264.mp4 ! parsebin ! d3d11h264dec ! \
+ * d3d11convert ! d3d11download ! video/x-raw,width=640,height=480 ! mfh264enc ! \
+ * h264parse ! mp4mux ! filesink location=output.mp4
+ * ```
+ * This pipeline will resize decoded (by #d3d11h264dec) frames to 640x480
+ * resolution by using #d3d11convert. Then it will be copied into system memory
+ * by d3d11download. Finally downloaded frames will be encoded as a new
+ * H.264 stream via #mfh264enc and muxed via mp4mux
+ *
+ * Since: 1.18
+ *
+ */
+
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
@@ -102,7 +124,7 @@ gst_d3d11_download_class_init (GstD3D11DownloadClass * klass)
gst_element_class_set_static_metadata (element_class,
"Direct3D11 downloader", "Filter/Video",
- "Downloads D3D11 texture memory into system memory",
+ "Downloads Direct3D11 texture memory into system memory",
"Seungha Yang <seungha.yang@navercorp.com>");
trans_class->passthrough_on_same_caps = TRUE;
diff --git a/sys/d3d11/gstd3d11h264dec.c b/sys/d3d11/gstd3d11h264dec.c
index f26553588..104a5f13d 100644
--- a/sys/d3d11/gstd3d11h264dec.c
+++ b/sys/d3d11/gstd3d11h264dec.c
@@ -47,6 +47,21 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+/**
+ * SECTION:element-d3d11h264dec
+ * @title: d3d11h264dec
+ *
+ * A Direct3D11/DXVA based H.264 video decoder
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 filesrc location=/path/to/h264/file ! parsebin ! d3d11h264dec ! d3d11videosink
+ * ```
+ *
+ * Since: 1.18
+ *
+ */
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -202,11 +217,11 @@ gst_d3d11_h264_dec_class_init (GstD3D11H264DecClass * klass, gpointer data)
element_class->set_context =
GST_DEBUG_FUNCPTR (gst_d3d11_h264_dec_set_context);
- long_name = g_strdup_printf ("Direct3D11 H.264 %s Decoder",
+ long_name = g_strdup_printf ("Direct3D11/DXVA H.264 %s Decoder",
cdata->description);
gst_element_class_set_metadata (element_class, long_name,
"Codec/Decoder/Video/Hardware",
- "A Direct3D11 based H.264 video decoder",
+ "A Direct3D11/DXVA H.264 video decoder",
"Seungha Yang <seungha.yang@navercorp.com>");
g_free (long_name);
diff --git a/sys/d3d11/gstd3d11h265dec.c b/sys/d3d11/gstd3d11h265dec.c
index 7f5b0e5f6..9bd8cc112 100644
--- a/sys/d3d11/gstd3d11h265dec.c
+++ b/sys/d3d11/gstd3d11h265dec.c
@@ -17,6 +17,21 @@
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:element-d3d11h265dec
+ * @title: d3d11h265dec
+ *
+ * A Direct3D11/DXVA based H.265 video decoder
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 filesrc location=/path/to/hevc/file ! parsebin ! d3d11h265dec ! d3d11videosink
+ * ```
+ *
+ * Since: 1.18
+ *
+ */
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -174,11 +189,11 @@ gst_d3d11_h265_dec_class_init (GstD3D11H265DecClass * klass, gpointer data)
element_class->set_context =
GST_DEBUG_FUNCPTR (gst_d3d11_h265_dec_set_context);
- long_name = g_strdup_printf ("Direct3D11 H.265 %s Decoder",
+ long_name = g_strdup_printf ("Direct3D11/DXVA H.265 %s Decoder",
cdata->description);
gst_element_class_set_metadata (element_class, long_name,
"Codec/Decoder/Video/Hardware",
- "A Direct3D11 based H.265 video decoder",
+ "A Direct3D11/DXVA H.265 video decoder",
"Seungha Yang <seungha.yang@navercorp.com>");
g_free (long_name);
diff --git a/sys/d3d11/gstd3d11mpeg2dec.c b/sys/d3d11/gstd3d11mpeg2dec.c
index f9b6da9b0..b9682d83e 100644
--- a/sys/d3d11/gstd3d11mpeg2dec.c
+++ b/sys/d3d11/gstd3d11mpeg2dec.c
@@ -17,6 +17,21 @@
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:element-d3d11mpeg2dec
+ * @title: d3d11mpeg2dec
+ *
+ * A Direct3D11/DXVA based MPEG-2 video decoder
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 filesrc location=/path/to/mpeg2/file ! parsebin ! d3d11mpeg2dec ! d3d11videosink
+ * ```
+ *
+ * Since: 1.20
+ *
+ */
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -167,9 +182,9 @@ gst_d3d11_mpeg2_dec_class_init (GstD3D11Mpeg2DecClass * klass, gpointer data)
GST_DEBUG_FUNCPTR (gst_d3d11_mpeg2_dec_set_context);
long_name =
- g_strdup_printf ("Direct3D11 MPEG2 %s Decoder", cdata->description);
+ g_strdup_printf ("Direct3D11/DXVA MPEG2 %s Decoder", cdata->description);
gst_element_class_set_metadata (element_class, long_name,
- "Codec/Decoder/Video/Hardware", "A Direct3D11 based MPEG2 video decoder",
+ "Codec/Decoder/Video/Hardware", "A Direct3D11/DXVA MPEG2 video decoder",
"Seungha Yang <seungha@centricular.com>");
g_free (long_name);
@@ -606,6 +621,7 @@ gst_d3d11_mpeg2_dec_start_picture (GstMpeg2Decoder * decoder,
break;
}
+ /* *INDENT-OFF* */
pic_params.wPicWidthInMBminus1 = self->width_in_mb - 1;
pic_params.wPicHeightInMBminus1 = (self->height_in_mb >> is_field) - 1;
pic_params.bMacroblockWidthMinus1 = 15;
@@ -624,6 +640,7 @@ gst_d3d11_mpeg2_dec_start_picture (GstMpeg2Decoder * decoder,
pic_params.bPicScanMethod = slice->pic_ext->alternate_scan;
pic_params.wBitstreamFcodes = _pack_f_codes (slice->pic_ext->f_code);
pic_params.wBitstreamPCEelements = _pack_pce_elements (slice);
+ /* *INDENT-ON* */
GST_TRACE_OBJECT (self, "Getting picture param decoder buffer");
if (!gst_d3d11_decoder_get_decoder_buffer (self->d3d11_decoder,
diff --git a/sys/d3d11/gstd3d11upload.c b/sys/d3d11/gstd3d11upload.c
index 73ea368a8..39794ccd3 100644
--- a/sys/d3d11/gstd3d11upload.c
+++ b/sys/d3d11/gstd3d11upload.c
@@ -17,6 +17,23 @@
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:element-d3d11upload
+ * @title: d3d11upload
+ *
+ * Upload video frame to Direct3D11 texture memory
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 videotestsrc ! d3d11upload ! d3d11videosinkelement
+ * ```
+ * This pipeline will upload video test frame (system memory) into Direct3D11
+ * textures and d3d11videosinkelement will display frames on screen.
+ *
+ * Since: 1.18
+ *
+ */
+
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
@@ -102,7 +119,7 @@ gst_d3d11_upload_class_init (GstD3D11UploadClass * klass)
gst_element_class_set_static_metadata (element_class,
"Direct3D11 uploader", "Filter/Video",
- "Uploads data into D3D11 texture memory",
+ "Uploads data into Direct3D11 texture memory",
"Seungha Yang <seungha.yang@navercorp.com>");
trans_class->passthrough_on_same_caps = TRUE;
diff --git a/sys/d3d11/gstd3d11videosink.c b/sys/d3d11/gstd3d11videosink.c
index c9c3fc7a4..98d43d3ff 100644
--- a/sys/d3d11/gstd3d11videosink.c
+++ b/sys/d3d11/gstd3d11videosink.c
@@ -18,6 +18,24 @@
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:element-d3d11videosinkelement
+ * @title: d3d11videosinkelement
+ *
+ * Direct3D11 based video render element. This element allows only Direct3D11
+ * textures as a input. Use #d3d11videosink instead which is a convenient
+ * wrapper of #d3d11videosinkelement with #d3d11upload.
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 videotestsrc ! d3d11upload ! d3d11videosinkelement
+ * ```
+ * This pipeline will display test video stream on screen via d3d11videosinkelement
+ *
+ * Since: 1.18
+ *
+ */
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -221,9 +239,10 @@ gst_d3d11_video_sink_class_init (GstD3D11VideoSinkClass * klass)
/**
* GstD3D11VideoSink:draw-on-shared-texture:
*
- * Instrcut the sink to draw on a shared texture provided by user.
- * User must watch "begin-draw" signal and should call "draw" method
- * on the "begin-draw" signal handler.
+ * Instruct the sink to draw on a shared texture provided by user.
+ * User must watch #d3d11videosinkelement::begin-draw signal and should call
+ * #d3d11videosinkelement::draw method on the #d3d11videosinkelement::begin-draw
+ * signal handler.
*
* Currently supported formats for user texture are:
* - DXGI_FORMAT_R8G8B8A8_UNORM
@@ -247,11 +266,12 @@ gst_d3d11_video_sink_class_init (GstD3D11VideoSinkClass * klass)
G_PARAM_STATIC_STRINGS));
/**
- * GstD3D11VideoSink:begin-draw:
- * @videosink: the d3d11videosink
+ * GstD3D11VideoSink::begin-draw:
+ * @videosink: the #d3d11videosinkelement
*
- * Signal that sink has a texture to draw. Application needs to invoke "draw"
- * action signal before returning from "begin-draw" signal handler.
+ * Emitted when sink has a texture to draw. Application needs to invoke
+ * #d3d11videosinkelement::draw action signal before returning from
+ * #d3d11videosinkelement::begin-draw signal handler.
*
* Since: 1.20
*/
@@ -261,18 +281,18 @@ gst_d3d11_video_sink_class_init (GstD3D11VideoSinkClass * klass)
NULL, NULL, NULL, G_TYPE_NONE, 0, G_TYPE_NONE);
/**
- * GstD3D11VideoSink:draw:
- * @videosink: the d3d11videosink
+ * GstD3D11VideoSink::draw:
+ * @videosink: the #d3d11videosinkelement
* @shard_handle: a pointer to HANDLE
* @texture_misc_flags: a D3D11_RESOURCE_MISC_FLAG value
* @acquire_key: a key value used for IDXGIKeyedMutex::AcquireSync
* @release_key: a key value used for IDXGIKeyedMutex::ReleaseSync
*
- * Draws on shared texture. @shard_handle must be a valid pointer to HANDLE
- * which was obtained via IDXGIResource::GetSharedHandle or
+ * Draws on a shared texture. @shard_handle must be a valid pointer to
+ * a HANDLE which was obtained via IDXGIResource::GetSharedHandle or
* IDXGIResource1::CreateSharedHandle.
*
- * If texture was created with D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX flag,
+ * If the texture was created with D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX flag,
* caller must specify valid @acquire_key and @release_key.
* Otherwise (i.e., created with D3D11_RESOURCE_MISC_SHARED flag),
* @acquire_key and @release_key will be ignored.
diff --git a/sys/d3d11/gstd3d11videosinkbin.c b/sys/d3d11/gstd3d11videosinkbin.c
index c73d7fe4e..5107ce895 100644
--- a/sys/d3d11/gstd3d11videosinkbin.c
+++ b/sys/d3d11/gstd3d11videosinkbin.c
@@ -18,6 +18,22 @@
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:element-d3d11videosink
+ * @title: d3d11videosink
+ *
+ * Direct3D11 based video render element
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 videotestsrc ! d3d11videosink
+ * ```
+ * This pipeline will display test video stream on screen via #d3d11videosink
+ *
+ * Since: 1.18
+ *
+ */
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -264,6 +280,22 @@ gst_d3d11_video_sink_bin_class_init (GstD3D11VideoSinkBinClass * klass)
GST_PARAM_CONDITIONALLY_AVAILABLE | GST_PARAM_MUTABLE_READY |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
#endif
+
+ /**
+ * GstD3D11VideoSinkBin:draw-on-shared-texture:
+ *
+ * Instruct the sink to draw on a shared texture provided by user.
+ * User must watch #d3d11videosink::begin-draw signal and should call
+ * #d3d11videosink::draw method on the #d3d11videosink::begin-draw
+ * signal handler.
+ *
+ * Currently supported formats for user texture are:
+ * - DXGI_FORMAT_R8G8B8A8_UNORM
+ * - DXGI_FORMAT_B8G8R8A8_UNORM
+ * - DXGI_FORMAT_R10G10B10A2_UNORM
+ *
+ * Since: 1.20
+ */
g_object_class_install_property (gobject_class, PROP_DRAW_ON_SHARED_TEXTURE,
g_param_spec_boolean ("draw-on-shared-texture",
"Draw on shared texture",
@@ -278,11 +310,40 @@ gst_d3d11_video_sink_bin_class_init (GstD3D11VideoSinkBinClass * klass)
G_PARAM_READWRITE | GST_PARAM_MUTABLE_READY |
G_PARAM_STATIC_STRINGS));
+ /**
+ * GstD3D11VideoSinkBin::begin-draw:
+ * @videosink: the #d3d11videosink
+ *
+ * Emitted when sink has a texture to draw. Application needs to invoke
+ * #d3d11videosink::draw action signal before returning from
+ * #d3d11videosink::begin-draw signal handler.
+ *
+ * Since: 1.20
+ */
gst_d3d11_video_sink_bin_signals[SIGNAL_BEGIN_DRAW] =
g_signal_new ("begin-draw", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstD3D11VideoSinkBinClass, begin_draw),
NULL, NULL, NULL, G_TYPE_NONE, 0, G_TYPE_NONE);
+ /**
+ * GstD3D11VideoSinkBin::draw:
+ * @videosink: the #d3d11videosink
+ * @shard_handle: a pointer to HANDLE
+ * @texture_misc_flags: a D3D11_RESOURCE_MISC_FLAG value
+ * @acquire_key: a key value used for IDXGIKeyedMutex::AcquireSync
+ * @release_key: a key value used for IDXGIKeyedMutex::ReleaseSync
+ *
+ * Draws on a shared texture. @shard_handle must be a valid pointer to
+ * a HANDLE which was obtained via IDXGIResource::GetSharedHandle or
+ * IDXGIResource1::CreateSharedHandle.
+ *
+ * If the texture was created with D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX flag,
+ * caller must specify valid @acquire_key and @release_key.
+ * Otherwise (i.e., created with D3D11_RESOURCE_MISC_SHARED flag),
+ * @acquire_key and @release_key will be ignored.
+ *
+ * Since: 1.20
+ */
gst_d3d11_video_sink_bin_signals[SIGNAL_DRAW] =
g_signal_new ("draw", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
@@ -294,7 +355,7 @@ gst_d3d11_video_sink_bin_class_init (GstD3D11VideoSinkBinClass * klass)
gst_element_class_set_static_metadata (element_class,
"Direct3D11 video sink bin", "Sink/Video",
- "A Direct3D11 based videosink",
+ "A Direct3D11 based videosink bin",
"Seungha Yang <seungha.yang@navercorp.com>");
caps = gst_d3d11_get_updated_template_caps (&pad_template_caps);
diff --git a/sys/d3d11/gstd3d11vp8dec.c b/sys/d3d11/gstd3d11vp8dec.c
index 78394e27b..0990fc0b0 100644
--- a/sys/d3d11/gstd3d11vp8dec.c
+++ b/sys/d3d11/gstd3d11vp8dec.c
@@ -17,6 +17,21 @@
* Boston, MA 02110-1301, USA.
*/
+/**
+ * SECTION:element-d3d11vp8dec
+ * @title: d3d11vp8dec
+ *
+ * A Direct3D11/DXVA based VP8 video decoder
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 filesrc location=/path/to/vp8/file ! parsebin ! d3d11vp8dec ! d3d11videosink
+ * ```
+ *
+ * Since: 1.18
+ *
+ */
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -142,10 +157,10 @@ gst_d3d11_vp8_dec_class_init (GstD3D11Vp8DecClass * klass, gpointer data)
element_class->set_context =
GST_DEBUG_FUNCPTR (gst_d3d11_vp8_dec_set_context);
- long_name = g_strdup_printf ("Direct3D11 VP8 %s Decoder", cdata->description);
+ long_name =
+ g_strdup_printf ("Direct3D11/DXVA VP8 %s Decoder", cdata->description);
gst_element_class_set_metadata (element_class, long_name,
- "Codec/Decoder/Video/Hardware",
- "A Direct3D11 based VP8 video decoder",
+ "Codec/Decoder/Video/Hardware", "A Direct3D11/DXVA VP8 video decoder",
"Seungha Yang <seungha.yang@navercorp.com>");
g_free (long_name);
diff --git a/sys/d3d11/gstd3d11vp9dec.c b/sys/d3d11/gstd3d11vp9dec.c
index f98fb7c00..c74961b57 100644
--- a/sys/d3d11/gstd3d11vp9dec.c
+++ b/sys/d3d11/gstd3d11vp9dec.c
@@ -47,6 +47,21 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+/**
+ * SECTION:element-d3d11vp9dec
+ * @title: d3d11vp9dec
+ *
+ * A Direct3D11/DXVA based VP9 video decoder
+ *
+ * ## Example launch line
+ * ```
+ * gst-launch-1.0 filesrc location=/path/to/vp9/file ! parsebin ! d3d11vp9dec ! d3d11videosink
+ * ```
+ *
+ * Since: 1.18
+ *
+ */
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
@@ -180,10 +195,10 @@ gst_d3d11_vp9_dec_class_init (GstD3D11Vp9DecClass * klass, gpointer data)
element_class->set_context =
GST_DEBUG_FUNCPTR (gst_d3d11_vp9_dec_set_context);
- long_name = g_strdup_printf ("Direct3D11 VP9 %s Decoder", cdata->description);
+ long_name =
+ g_strdup_printf ("Direct3D11/DXVA VP9 %s Decoder", cdata->description);
gst_element_class_set_metadata (element_class, long_name,
- "Codec/Decoder/Video/Hardware",
- "A Direct3D11 based VP9 video decoder",
+ "Codec/Decoder/Video/Hardware", "A Direct3D11/DXVA VP9 video decoder",
"Seungha Yang <seungha.yang@navercorp.com>");
g_free (long_name);
diff --git a/sys/d3d11/plugin.c b/sys/d3d11/plugin.c
index eaaaf6fe8..f3d20371d 100644
--- a/sys/d3d11/plugin.c
+++ b/sys/d3d11/plugin.c
@@ -81,12 +81,6 @@ plugin_init (GstPlugin * plugin)
D3D_FEATURE_LEVEL max_feature_level = D3D_FEATURE_LEVEL_9_3;
guint i;
- /**
- * plugin-d3d11:
- *
- * Since: 1.18
- */
-
GST_DEBUG_CATEGORY_INIT (gst_d3d11_debug, "d3d11", 0, "direct3d 11 plugin");
GST_DEBUG_CATEGORY_INIT (gst_d3d11_shader_debug,
"d3d11shader", 0, "d3d11shader");