mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-29 23:32:33 +00:00
d3d11: Add support for planar RGB formats
Adding RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, and GBRA_12LE format support Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3392>
This commit is contained in:
parent
b4d59e4e43
commit
d0572622fa
5 changed files with 312 additions and 106 deletions
|
@ -7323,12 +7323,12 @@
|
||||||
"klass": "Filter/Converter/Video/Hardware",
|
"klass": "Filter/Converter/Video/Hardware",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"sink": {
|
"sink": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||||
"direction": "sink",
|
"direction": "sink",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
},
|
},
|
||||||
"src": {
|
"src": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||||
"direction": "src",
|
"direction": "src",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
}
|
}
|
||||||
|
@ -7379,7 +7379,7 @@
|
||||||
"klass": "Filter/Editor/Video/Compositor",
|
"klass": "Filter/Editor/Video/Compositor",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"sink_%%u": {
|
"sink_%%u": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||||
"direction": "sink",
|
"direction": "sink",
|
||||||
"presence": "request",
|
"presence": "request",
|
||||||
"type": "GstD3D11CompositorPad"
|
"type": "GstD3D11CompositorPad"
|
||||||
|
@ -7440,12 +7440,12 @@
|
||||||
"klass": "Filter/Converter/Scaler/Effect/Video/Hardware",
|
"klass": "Filter/Converter/Scaler/Effect/Video/Hardware",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"sink": {
|
"sink": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||||
"direction": "sink",
|
"direction": "sink",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
},
|
},
|
||||||
"src": {
|
"src": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||||
"direction": "src",
|
"direction": "src",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
}
|
}
|
||||||
|
@ -7521,12 +7521,12 @@
|
||||||
"klass": "Filter/Effect/Video/Deinterlace/Hardware",
|
"klass": "Filter/Effect/Video/Deinterlace/Hardware",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"sink": {
|
"sink": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n",
|
||||||
"direction": "sink",
|
"direction": "sink",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
},
|
},
|
||||||
"src": {
|
"src": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n",
|
||||||
"direction": "src",
|
"direction": "src",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
}
|
}
|
||||||
|
@ -7722,12 +7722,12 @@
|
||||||
"klass": "Filter/Video",
|
"klass": "Filter/Video",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"sink": {
|
"sink": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||||
"direction": "sink",
|
"direction": "sink",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
},
|
},
|
||||||
"src": {
|
"src": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||||
"direction": "src",
|
"direction": "src",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
}
|
}
|
||||||
|
@ -7963,12 +7963,12 @@
|
||||||
"klass": "Filter/Converter/Video/Scaler/Hardware",
|
"klass": "Filter/Converter/Video/Scaler/Hardware",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"sink": {
|
"sink": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||||
"direction": "sink",
|
"direction": "sink",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
},
|
},
|
||||||
"src": {
|
"src": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||||
"direction": "src",
|
"direction": "src",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
}
|
}
|
||||||
|
@ -8188,7 +8188,7 @@
|
||||||
"klass": "Source/Video",
|
"klass": "Source/Video",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"src": {
|
"src": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||||
"direction": "src",
|
"direction": "src",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
}
|
}
|
||||||
|
@ -8250,12 +8250,12 @@
|
||||||
"klass": "Filter/Video",
|
"klass": "Filter/Video",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"sink": {
|
"sink": {
|
||||||
"caps": "video/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
"caps": "video/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||||
"direction": "sink",
|
"direction": "sink",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
},
|
},
|
||||||
"src": {
|
"src": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||||
"direction": "src",
|
"direction": "src",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
}
|
}
|
||||||
|
@ -8281,7 +8281,7 @@
|
||||||
"klass": "Sink/Video",
|
"klass": "Sink/Video",
|
||||||
"pad-templates": {
|
"pad-templates": {
|
||||||
"sink": {
|
"sink": {
|
||||||
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
"caps": "video/x-raw(memory:D3D11Memory):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:D3D11Memory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\nvideo/x-raw:\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, GBRA, GBRA_10LE, GBRA_12LE, Y410, YUY2 }\n width: [ 1, 16384 ]\n height: [ 1, 16384 ]\n framerate: [ 0/1, 2147483647/1 ]\n",
|
||||||
"direction": "sink",
|
"direction": "sink",
|
||||||
"presence": "always"
|
"presence": "always"
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,8 @@ G_BEGIN_DECLS
|
||||||
"RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, " \
|
"RGBA64_LE, RGB10A2_LE, BGRA, RGBA, BGRx, RGBx, VUYA, NV12, NV21, " \
|
||||||
"P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, " \
|
"P010_10LE, P012_LE, P016_LE, I420, YV12, I420_10LE, I420_12LE, " \
|
||||||
"Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, " \
|
"Y42B, I422_10LE, I422_12LE, Y444, Y444_10LE, Y444_12LE, Y444_16LE, " \
|
||||||
"GRAY8, GRAY16_LE, AYUV, AYUV64"
|
"GRAY8, GRAY16_LE, AYUV, AYUV64, RGBP, BGRP, GBR, GBR_10LE, GBR_12LE, " \
|
||||||
|
"GBRA, GBRA_10LE, GBRA_12LE"
|
||||||
|
|
||||||
#define GST_D3D11_EXTRA_IN_FORMATS \
|
#define GST_D3D11_EXTRA_IN_FORMATS \
|
||||||
"Y410, YUY2"
|
"Y410, YUY2"
|
||||||
|
@ -86,6 +87,12 @@ void gst_d3d11_device_dxgi_debug (GstD3D11Device * device,
|
||||||
{ DXGI_FORMAT_ ##d, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, \
|
{ DXGI_FORMAT_ ##d, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN }, \
|
||||||
(D3D11_FORMAT_SUPPORT) (D3D11_FORMAT_SUPPORT_RENDER_TARGET | D3D11_FORMAT_SUPPORT_SHADER_SAMPLE) }
|
(D3D11_FORMAT_SUPPORT) (D3D11_FORMAT_SUPPORT_RENDER_TARGET | D3D11_FORMAT_SUPPORT_SHADER_SAMPLE) }
|
||||||
|
|
||||||
|
#define MAKE_FORMAT_MAP_RGBP(g,d,a) \
|
||||||
|
{ GST_VIDEO_FORMAT_ ##g, DXGI_FORMAT_UNKNOWN, \
|
||||||
|
{ DXGI_FORMAT_ ##d, DXGI_FORMAT_ ##d, DXGI_FORMAT_ ##d, DXGI_FORMAT_ ##a }, \
|
||||||
|
{ DXGI_FORMAT_ ##d, DXGI_FORMAT_ ##d, DXGI_FORMAT_ ##d, DXGI_FORMAT_ ##a }, \
|
||||||
|
(D3D11_FORMAT_SUPPORT) (D3D11_FORMAT_SUPPORT_RENDER_TARGET | D3D11_FORMAT_SUPPORT_SHADER_SAMPLE) }
|
||||||
|
|
||||||
static const GstD3D11Format _gst_d3d11_default_format_map[] = {
|
static const GstD3D11Format _gst_d3d11_default_format_map[] = {
|
||||||
MAKE_FORMAT_MAP_RGB (BGRA, B8G8R8A8_UNORM),
|
MAKE_FORMAT_MAP_RGB (BGRA, B8G8R8A8_UNORM),
|
||||||
MAKE_FORMAT_MAP_RGB (RGBA, R8G8B8A8_UNORM),
|
MAKE_FORMAT_MAP_RGB (RGBA, R8G8B8A8_UNORM),
|
||||||
|
@ -123,6 +130,14 @@ static const GstD3D11Format _gst_d3d11_default_format_map[] = {
|
||||||
D3D11_FORMAT_SUPPORT_SHADER_SAMPLE),
|
D3D11_FORMAT_SUPPORT_SHADER_SAMPLE),
|
||||||
MAKE_FORMAT_MAP_YUV_FULL (YUY2, YUY2, R8G8B8A8_UNORM, UNKNOWN, UNKNOWN, UNKNOWN,
|
MAKE_FORMAT_MAP_YUV_FULL (YUY2, YUY2, R8G8B8A8_UNORM, UNKNOWN, UNKNOWN, UNKNOWN,
|
||||||
D3D11_FORMAT_SUPPORT_SHADER_SAMPLE),
|
D3D11_FORMAT_SUPPORT_SHADER_SAMPLE),
|
||||||
|
MAKE_FORMAT_MAP_RGBP (RGBP, R8_UNORM, UNKNOWN),
|
||||||
|
MAKE_FORMAT_MAP_RGBP (BGRP, R8_UNORM, UNKNOWN),
|
||||||
|
MAKE_FORMAT_MAP_RGBP (GBR, R8_UNORM, UNKNOWN),
|
||||||
|
MAKE_FORMAT_MAP_RGBP (GBR_10LE, R16_UNORM, UNKNOWN),
|
||||||
|
MAKE_FORMAT_MAP_RGBP (GBR_12LE, R16_UNORM, UNKNOWN),
|
||||||
|
MAKE_FORMAT_MAP_RGBP (GBRA, R8_UNORM, R8_UNORM),
|
||||||
|
MAKE_FORMAT_MAP_RGBP (GBRA_10LE, R16_UNORM, R16_UNORM),
|
||||||
|
MAKE_FORMAT_MAP_RGBP (GBRA_12LE, R16_UNORM, R16_UNORM),
|
||||||
};
|
};
|
||||||
|
|
||||||
#undef MAKE_FORMAT_MAP_YUV
|
#undef MAKE_FORMAT_MAP_YUV
|
||||||
|
|
|
@ -140,6 +140,15 @@ static const gchar templ_OUTPUT_THREE_PLANES[] =
|
||||||
" float4 Plane_2: SV_TARGET2;\n"
|
" float4 Plane_2: SV_TARGET2;\n"
|
||||||
"};";
|
"};";
|
||||||
|
|
||||||
|
static const gchar templ_OUTPUT_FOUR_PLANES[] =
|
||||||
|
"struct PS_OUTPUT\n"
|
||||||
|
"{\n"
|
||||||
|
" float4 Plane_0: SV_TARGET0;\n"
|
||||||
|
" float4 Plane_1: SV_TARGET1;\n"
|
||||||
|
" float4 Plane_2: SV_TARGET2;\n"
|
||||||
|
" float4 Plane_3: SV_TARGET3;\n"
|
||||||
|
"};";
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
const gchar *output_template;
|
const gchar *output_template;
|
||||||
|
@ -151,12 +160,14 @@ enum
|
||||||
OUTPUT_SINGLE_PLANE = 0,
|
OUTPUT_SINGLE_PLANE = 0,
|
||||||
OUTPUT_TWO_PLANES,
|
OUTPUT_TWO_PLANES,
|
||||||
OUTPUT_THREE_PLANES,
|
OUTPUT_THREE_PLANES,
|
||||||
|
OUTPUT_FOUR_PLANES,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const PSOutputType output_types[] = {
|
static const PSOutputType output_types[] = {
|
||||||
{templ_OUTPUT_SINGLE_PLANE, 1},
|
{templ_OUTPUT_SINGLE_PLANE, 1},
|
||||||
{templ_OUTPUT_TWO_PLANES, 2},
|
{templ_OUTPUT_TWO_PLANES, 2},
|
||||||
{templ_OUTPUT_THREE_PLANES, 3},
|
{templ_OUTPUT_THREE_PLANES, 3},
|
||||||
|
{templ_OUTPUT_FOUR_PLANES, 4},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* colorspace conversion */
|
/* colorspace conversion */
|
||||||
|
@ -266,12 +277,23 @@ static const gchar templ_SAMPLE_PLANAR[] =
|
||||||
"float4 sample_texture (float2 uv)\n"
|
"float4 sample_texture (float2 uv)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" float3 sample;\n"
|
" float3 sample;\n"
|
||||||
" sample.x = shaderTexture[0].Sample(samplerState, uv).x;\n"
|
" sample.%c = shaderTexture[0].Sample(samplerState, uv).x;\n"
|
||||||
" sample.%c = shaderTexture[1].Sample(samplerState, uv).x;\n"
|
" sample.%c = shaderTexture[1].Sample(samplerState, uv).x;\n"
|
||||||
" sample.%c = shaderTexture[2].Sample(samplerState, uv).x;\n"
|
" sample.%c = shaderTexture[2].Sample(samplerState, uv).x;\n"
|
||||||
" return float4 (saturate(sample * %d), 1.0);\n"
|
" return float4 (saturate(sample * %d), 1.0);\n"
|
||||||
"}";
|
"}";
|
||||||
|
|
||||||
|
static const gchar templ_SAMPLE_PLANAR_4[] =
|
||||||
|
"float4 sample_texture (float2 uv)\n"
|
||||||
|
"{\n"
|
||||||
|
" float4 sample;\n"
|
||||||
|
" sample.%c = shaderTexture[0].Sample(samplerState, uv).x;\n"
|
||||||
|
" sample.%c = shaderTexture[1].Sample(samplerState, uv).x;\n"
|
||||||
|
" sample.%c = shaderTexture[2].Sample(samplerState, uv).x;\n"
|
||||||
|
" sample.%c = shaderTexture[3].Sample(samplerState, uv).x;\n"
|
||||||
|
" return saturate(sample * %d);\n"
|
||||||
|
"}";
|
||||||
|
|
||||||
static const gchar templ_SAMPLE_PLANAR_CHROMA[] =
|
static const gchar templ_SAMPLE_PLANAR_CHROMA[] =
|
||||||
"float4 sample_texture (float2 uv)\n"
|
"float4 sample_texture (float2 uv)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
|
@ -370,24 +392,47 @@ static const gchar templ_OUTPUT_CHROMA_PLANAR_SCALED[] =
|
||||||
" return output;\n"
|
" return output;\n"
|
||||||
"}";
|
"}";
|
||||||
|
|
||||||
static const gchar templ_OUTPUT_Y444[] =
|
static const gchar templ_OUTPUT_PLANAR[] =
|
||||||
"PS_OUTPUT build_output (float4 sample)\n"
|
"PS_OUTPUT build_output (float4 sample)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" PS_OUTPUT output;\n"
|
" PS_OUTPUT output;\n"
|
||||||
" output.Plane_0 = float4 (sample.x, 0.0, 0.0, 1.0);\n"
|
" output.Plane_0 = float4 (sample.%c, 0.0, 0.0, 1.0);\n"
|
||||||
" output.Plane_1 = float4 (sample.y, 0.0, 0.0, 1.0);\n"
|
" output.Plane_1 = float4 (sample.%c, 0.0, 0.0, 1.0);\n"
|
||||||
" output.Plane_2 = float4 (sample.z, 0.0, 0.0, 1.0);\n"
|
" output.Plane_2 = float4 (sample.%c, 0.0, 0.0, 1.0);\n"
|
||||||
" return output;\n"
|
" return output;\n"
|
||||||
"}";
|
"}";
|
||||||
|
|
||||||
static const gchar templ_OUTPUT_Y444_SCALED[] =
|
static const gchar templ_OUTPUT_PLANAR_SCALED[] =
|
||||||
"PS_OUTPUT build_output (float4 sample)\n"
|
"PS_OUTPUT build_output (float4 sample)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" PS_OUTPUT output;\n"
|
" PS_OUTPUT output;\n"
|
||||||
" float3 scaled = sample.xyz / %d;\n"
|
" float3 scaled = sample.xyz / %d;\n"
|
||||||
" output.Plane_0 = float4 (scaled.x, 0.0, 0.0, 1.0);\n"
|
" output.Plane_0 = float4 (scaled.%c, 0.0, 0.0, 1.0);\n"
|
||||||
" output.Plane_1 = float4 (scaled.y, 0.0, 0.0, 1.0);\n"
|
" output.Plane_1 = float4 (scaled.%c, 0.0, 0.0, 1.0);\n"
|
||||||
" output.Plane_2 = float4 (scaled.z, 0.0, 0.0, 1.0);\n"
|
" output.Plane_2 = float4 (scaled.%c, 0.0, 0.0, 1.0);\n"
|
||||||
|
" return output;\n"
|
||||||
|
"}";
|
||||||
|
|
||||||
|
static const gchar templ_OUTPUT_PLANAR_4[] =
|
||||||
|
"PS_OUTPUT build_output (float4 sample)\n"
|
||||||
|
"{\n"
|
||||||
|
" PS_OUTPUT output;\n"
|
||||||
|
" output.Plane_0 = float4 (sample.%c, 0.0, 0.0, 1.0);\n"
|
||||||
|
" output.Plane_1 = float4 (sample.%c, 0.0, 0.0, 1.0);\n"
|
||||||
|
" output.Plane_2 = float4 (sample.%c, 0.0, 0.0, 1.0);\n"
|
||||||
|
" output.Plane_3 = float4 (sample.%c, 0.0, 0.0, 1.0);\n"
|
||||||
|
" return output;\n"
|
||||||
|
"}";
|
||||||
|
|
||||||
|
static const gchar templ_OUTPUT_PLANAR_4_SCALED[] =
|
||||||
|
"PS_OUTPUT build_output (float4 sample)\n"
|
||||||
|
"{\n"
|
||||||
|
" PS_OUTPUT output;\n"
|
||||||
|
" float4 scaled = sample / %d;\n"
|
||||||
|
" output.Plane_0 = float4 (scaled.%c, 0.0, 0.0, 1.0);\n"
|
||||||
|
" output.Plane_1 = float4 (scaled.%c, 0.0, 0.0, 1.0);\n"
|
||||||
|
" output.Plane_2 = float4 (scaled.%c, 0.0, 0.0, 1.0);\n"
|
||||||
|
" output.Plane_3 = float4 (scaled.%c, 0.0, 0.0, 1.0);\n"
|
||||||
" return output;\n"
|
" return output;\n"
|
||||||
"}";
|
"}";
|
||||||
|
|
||||||
|
@ -1089,18 +1134,22 @@ get_packed_yuv_components (GstVideoFormat format, gchar * y, gchar * u,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
get_planar_component (GstVideoFormat format, gchar * u, gchar * v,
|
get_planar_component (GstVideoFormat format, gchar * x, gchar * y, gchar * z,
|
||||||
guint * scale)
|
gchar * w, guint * scale)
|
||||||
{
|
{
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case GST_VIDEO_FORMAT_I420_10LE:
|
case GST_VIDEO_FORMAT_I420_10LE:
|
||||||
case GST_VIDEO_FORMAT_I422_10LE:
|
case GST_VIDEO_FORMAT_I422_10LE:
|
||||||
case GST_VIDEO_FORMAT_Y444_10LE:
|
case GST_VIDEO_FORMAT_Y444_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_10LE:
|
||||||
*scale = (1 << 6);
|
*scale = (1 << 6);
|
||||||
break;
|
break;
|
||||||
case GST_VIDEO_FORMAT_I420_12LE:
|
case GST_VIDEO_FORMAT_I420_12LE:
|
||||||
case GST_VIDEO_FORMAT_I422_12LE:
|
case GST_VIDEO_FORMAT_I422_12LE:
|
||||||
case GST_VIDEO_FORMAT_Y444_12LE:
|
case GST_VIDEO_FORMAT_Y444_12LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_12LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_12LE:
|
||||||
*scale = (1 << 4);
|
*scale = (1 << 4);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1108,12 +1157,42 @@ get_planar_component (GstVideoFormat format, gchar * u, gchar * v,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (format == GST_VIDEO_FORMAT_YV12) {
|
switch (format) {
|
||||||
*u = 'z';
|
case GST_VIDEO_FORMAT_RGBP:
|
||||||
*v = 'y';
|
*x = 'x';
|
||||||
} else {
|
*y = 'y';
|
||||||
*u = 'y';
|
*z = 'z';
|
||||||
*v = 'z';
|
break;
|
||||||
|
case GST_VIDEO_FORMAT_BGRP:
|
||||||
|
*x = 'z';
|
||||||
|
*y = 'y';
|
||||||
|
*z = 'x';
|
||||||
|
break;
|
||||||
|
case GST_VIDEO_FORMAT_GBR:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_12LE:
|
||||||
|
*x = 'y';
|
||||||
|
*y = 'z';
|
||||||
|
*z = 'x';
|
||||||
|
break;
|
||||||
|
case GST_VIDEO_FORMAT_GBRA:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_12LE:
|
||||||
|
*x = 'y';
|
||||||
|
*y = 'z';
|
||||||
|
*z = 'x';
|
||||||
|
*w = 'w';
|
||||||
|
break;
|
||||||
|
case GST_VIDEO_FORMAT_YV12:
|
||||||
|
*x = 'x';
|
||||||
|
*y = 'z';
|
||||||
|
*z = 'y';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
*x = 'x';
|
||||||
|
*y = 'y';
|
||||||
|
*z = 'z';
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1768,6 +1847,14 @@ gst_d3d11_converter_update_dest_rect (GstD3D11Converter * self)
|
||||||
case GST_VIDEO_FORMAT_Y444_10LE:
|
case GST_VIDEO_FORMAT_Y444_10LE:
|
||||||
case GST_VIDEO_FORMAT_Y444_12LE:
|
case GST_VIDEO_FORMAT_Y444_12LE:
|
||||||
case GST_VIDEO_FORMAT_Y444_16LE:
|
case GST_VIDEO_FORMAT_Y444_16LE:
|
||||||
|
case GST_VIDEO_FORMAT_RGBP:
|
||||||
|
case GST_VIDEO_FORMAT_BGRP:
|
||||||
|
case GST_VIDEO_FORMAT_GBR:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_12LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_12LE:
|
||||||
for (guint i = 1; i < GST_VIDEO_INFO_N_PLANES (&priv->out_info); i++)
|
for (guint i = 1; i < GST_VIDEO_INFO_N_PLANES (&priv->out_info); i++)
|
||||||
priv->viewport[i] = priv->viewport[0];
|
priv->viewport[i] = priv->viewport[0];
|
||||||
break;
|
break;
|
||||||
|
@ -1840,10 +1927,10 @@ gst_d3d11_converter_prepare_output (GstD3D11Converter * self,
|
||||||
case GST_VIDEO_FORMAT_Y42B:
|
case GST_VIDEO_FORMAT_Y42B:
|
||||||
case GST_VIDEO_FORMAT_I422_10LE:
|
case GST_VIDEO_FORMAT_I422_10LE:
|
||||||
case GST_VIDEO_FORMAT_I422_12LE:{
|
case GST_VIDEO_FORMAT_I422_12LE:{
|
||||||
gchar u, v;
|
gchar y, u, v, w;
|
||||||
guint scale;
|
guint scale;
|
||||||
|
|
||||||
get_planar_component (format, &u, &v, &scale);
|
get_planar_component (format, &y, &u, &v, &w, &scale);
|
||||||
|
|
||||||
cinfo->ps_output[0] = &output_types[OUTPUT_SINGLE_PLANE];
|
cinfo->ps_output[0] = &output_types[OUTPUT_SINGLE_PLANE];
|
||||||
cinfo->ps_output[1] = &output_types[OUTPUT_TWO_PLANES];
|
cinfo->ps_output[1] = &output_types[OUTPUT_TWO_PLANES];
|
||||||
|
@ -1864,18 +1951,44 @@ gst_d3d11_converter_prepare_output (GstD3D11Converter * self,
|
||||||
case GST_VIDEO_FORMAT_Y444:
|
case GST_VIDEO_FORMAT_Y444:
|
||||||
case GST_VIDEO_FORMAT_Y444_10LE:
|
case GST_VIDEO_FORMAT_Y444_10LE:
|
||||||
case GST_VIDEO_FORMAT_Y444_12LE:
|
case GST_VIDEO_FORMAT_Y444_12LE:
|
||||||
case GST_VIDEO_FORMAT_Y444_16LE:{
|
case GST_VIDEO_FORMAT_Y444_16LE:
|
||||||
gchar u, v;
|
case GST_VIDEO_FORMAT_RGBP:
|
||||||
|
case GST_VIDEO_FORMAT_BGRP:
|
||||||
|
case GST_VIDEO_FORMAT_GBR:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_12LE:
|
||||||
|
{
|
||||||
|
gchar x, y, z, w;
|
||||||
guint scale;
|
guint scale;
|
||||||
|
|
||||||
get_planar_component (format, &u, &v, &scale);
|
get_planar_component (format, &x, &y, &z, &w, &scale);
|
||||||
|
|
||||||
cinfo->ps_output[0] = &output_types[OUTPUT_THREE_PLANES];
|
cinfo->ps_output[0] = &output_types[OUTPUT_THREE_PLANES];
|
||||||
if (info->finfo->depth[0] == 8) {
|
if (info->finfo->depth[0] == 8) {
|
||||||
cinfo->build_output_func[0] = g_strdup (templ_OUTPUT_Y444);
|
cinfo->build_output_func[0] = g_strdup_printf (templ_OUTPUT_PLANAR,
|
||||||
|
x, y, z);
|
||||||
} else {
|
} else {
|
||||||
cinfo->build_output_func[0] = g_strdup_printf (templ_OUTPUT_Y444_SCALED,
|
cinfo->build_output_func[0] =
|
||||||
scale);
|
g_strdup_printf (templ_OUTPUT_PLANAR_SCALED, scale, x, y, z);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case GST_VIDEO_FORMAT_GBRA:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_12LE:
|
||||||
|
{
|
||||||
|
gchar x, y, z, w;
|
||||||
|
guint scale;
|
||||||
|
|
||||||
|
get_planar_component (format, &x, &y, &z, &w, &scale);
|
||||||
|
|
||||||
|
cinfo->ps_output[0] = &output_types[OUTPUT_FOUR_PLANES];
|
||||||
|
if (info->finfo->depth[0] == 8) {
|
||||||
|
cinfo->build_output_func[0] = g_strdup_printf (templ_OUTPUT_PLANAR_4,
|
||||||
|
x, y, z, w);
|
||||||
|
} else {
|
||||||
|
cinfo->build_output_func[0] =
|
||||||
|
g_strdup_printf (templ_OUTPUT_PLANAR_4_SCALED, scale, x, y, z, w);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1980,14 +2093,15 @@ gst_d3d11_converter_prepare_sample_texture (GstD3D11Converter * self,
|
||||||
case GST_VIDEO_FORMAT_Y444:
|
case GST_VIDEO_FORMAT_Y444:
|
||||||
case GST_VIDEO_FORMAT_Y444_10LE:
|
case GST_VIDEO_FORMAT_Y444_10LE:
|
||||||
case GST_VIDEO_FORMAT_Y444_12LE:
|
case GST_VIDEO_FORMAT_Y444_12LE:
|
||||||
case GST_VIDEO_FORMAT_Y444_16LE:{
|
case GST_VIDEO_FORMAT_Y444_16LE:
|
||||||
gchar u, v;
|
{
|
||||||
|
gchar x, y, z, w;
|
||||||
guint scale;
|
guint scale;
|
||||||
|
|
||||||
get_planar_component (format, &u, &v, &scale);
|
get_planar_component (format, &x, &y, &z, &w, &scale);
|
||||||
if (out_rgb) {
|
if (out_rgb) {
|
||||||
cinfo->sample_texture_func[0] = g_strdup_printf (templ_SAMPLE_PLANAR,
|
cinfo->sample_texture_func[0] = g_strdup_printf (templ_SAMPLE_PLANAR,
|
||||||
u, v, scale);
|
x, y, z, scale);
|
||||||
} else if (out_gray) {
|
} else if (out_gray) {
|
||||||
cinfo->sample_texture_func[0] =
|
cinfo->sample_texture_func[0] =
|
||||||
g_strdup_printf (templ_SAMPLE_YUV_LUMA_SCALED, scale);
|
g_strdup_printf (templ_SAMPLE_YUV_LUMA_SCALED, scale);
|
||||||
|
@ -1996,16 +2110,16 @@ gst_d3d11_converter_prepare_sample_texture (GstD3D11Converter * self,
|
||||||
cinfo->ps_output[0] == &output_types[OUTPUT_THREE_PLANES]) {
|
cinfo->ps_output[0] == &output_types[OUTPUT_THREE_PLANES]) {
|
||||||
/* YUV packed or Y444 */
|
/* YUV packed or Y444 */
|
||||||
cinfo->sample_texture_func[0] = g_strdup_printf (templ_SAMPLE_PLANAR,
|
cinfo->sample_texture_func[0] = g_strdup_printf (templ_SAMPLE_PLANAR,
|
||||||
u, v, scale);
|
x, y, z, scale);
|
||||||
} else {
|
} else {
|
||||||
if (priv->fast_path) {
|
if (priv->fast_path) {
|
||||||
cinfo->sample_texture_func[0] =
|
cinfo->sample_texture_func[0] =
|
||||||
g_strdup_printf (templ_SAMPLE_YUV_LUMA_SCALED, scale);
|
g_strdup_printf (templ_SAMPLE_YUV_LUMA_SCALED, scale);
|
||||||
cinfo->sample_texture_func[1] =
|
cinfo->sample_texture_func[1] =
|
||||||
g_strdup_printf (templ_SAMPLE_PLANAR_CHROMA, u, v, scale);
|
g_strdup_printf (templ_SAMPLE_PLANAR_CHROMA, y, z, scale);
|
||||||
} else {
|
} else {
|
||||||
cinfo->sample_texture_func[0] =
|
cinfo->sample_texture_func[0] =
|
||||||
g_strdup_printf (templ_SAMPLE_PLANAR, u, v, scale);
|
g_strdup_printf (templ_SAMPLE_PLANAR, x, y, z, scale);
|
||||||
cinfo->sample_texture_func[1] =
|
cinfo->sample_texture_func[1] =
|
||||||
g_strdup (cinfo->sample_texture_func[0]);
|
g_strdup (cinfo->sample_texture_func[0]);
|
||||||
}
|
}
|
||||||
|
@ -2015,6 +2129,35 @@ gst_d3d11_converter_prepare_sample_texture (GstD3D11Converter * self,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
/* RGB planar */
|
||||||
|
case GST_VIDEO_FORMAT_RGBP:
|
||||||
|
case GST_VIDEO_FORMAT_BGRP:
|
||||||
|
case GST_VIDEO_FORMAT_GBR:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_12LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_12LE:
|
||||||
|
{
|
||||||
|
gchar x, y, z, w;
|
||||||
|
guint scale;
|
||||||
|
|
||||||
|
get_planar_component (format, &x, &y, &z, &w, &scale);
|
||||||
|
|
||||||
|
if (GST_VIDEO_INFO_N_PLANES (in_info) == 4) {
|
||||||
|
cinfo->sample_texture_func[0] = g_strdup_printf (templ_SAMPLE_PLANAR_4,
|
||||||
|
x, y, z, w, scale);
|
||||||
|
} else {
|
||||||
|
cinfo->sample_texture_func[0] = g_strdup_printf (templ_SAMPLE_PLANAR,
|
||||||
|
x, y, z, scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cinfo->ps_output[1]) {
|
||||||
|
cinfo->sample_texture_func[1] =
|
||||||
|
g_strdup (cinfo->sample_texture_func[0]);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
/* yuv packed */
|
/* yuv packed */
|
||||||
case GST_VIDEO_FORMAT_Y410:{
|
case GST_VIDEO_FORMAT_Y410:{
|
||||||
|
@ -2634,23 +2777,45 @@ gst_d3d11_converter_calculate_border_color (GstD3D11Converter * self)
|
||||||
GST_DEBUG_OBJECT (self, "Calculated background color ARGB: %f, %f, %f, %f",
|
GST_DEBUG_OBJECT (self, "Calculated background color ARGB: %f, %f, %f, %f",
|
||||||
a, converted[0], converted[1], converted[2]);
|
a, converted[0], converted[1], converted[2]);
|
||||||
|
|
||||||
if (GST_VIDEO_INFO_IS_RGB (out_info) || GST_VIDEO_INFO_IS_GRAY (out_info)) {
|
/* background color for video processor */
|
||||||
/* background color for video processor */
|
priv->background_color.RGBA.R = converted[0];
|
||||||
priv->background_color.RGBA.R = converted[0];
|
priv->background_color.RGBA.G = converted[1];
|
||||||
priv->background_color.RGBA.G = converted[1];
|
priv->background_color.RGBA.B = converted[2];
|
||||||
priv->background_color.RGBA.B = converted[2];
|
priv->background_color.RGBA.A = a;
|
||||||
priv->background_color.RGBA.A = a;
|
|
||||||
|
|
||||||
|
/* scale down if output is planar high bitdepth format */
|
||||||
|
switch (format) {
|
||||||
|
case GST_VIDEO_FORMAT_I420_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_I422_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_Y444_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_10LE:
|
||||||
|
for (guint i = 0; i < 3; i++) {
|
||||||
|
converted[i] /= 64.0;
|
||||||
|
}
|
||||||
|
a /= 64.0;
|
||||||
|
break;
|
||||||
|
case GST_VIDEO_FORMAT_I420_12LE:
|
||||||
|
case GST_VIDEO_FORMAT_I422_12LE:
|
||||||
|
case GST_VIDEO_FORMAT_Y444_12LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_12LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_12LE:
|
||||||
|
for (guint i = 0; i < 3; i++) {
|
||||||
|
converted[i] /= 16.0;
|
||||||
|
}
|
||||||
|
a /= 16.0;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((GST_VIDEO_INFO_IS_RGB (out_info) &&
|
||||||
|
GST_VIDEO_INFO_N_PLANES (out_info) == 1) ||
|
||||||
|
GST_VIDEO_INFO_IS_GRAY (out_info)) {
|
||||||
for (guint i = 0; i < 3; i++)
|
for (guint i = 0; i < 3; i++)
|
||||||
priv->clear_color[0][i] = converted[i];
|
priv->clear_color[0][i] = converted[i];
|
||||||
priv->clear_color[0][3] = a;
|
priv->clear_color[0][3] = a;
|
||||||
} else {
|
} else {
|
||||||
/* background color for video processor */
|
|
||||||
priv->background_color.YCbCr.Y = converted[0];
|
|
||||||
priv->background_color.YCbCr.Cb = converted[1];
|
|
||||||
priv->background_color.YCbCr.Cr = converted[2];
|
|
||||||
priv->background_color.YCbCr.A = a;
|
|
||||||
|
|
||||||
switch (format) {
|
switch (format) {
|
||||||
case GST_VIDEO_FORMAT_VUYA:
|
case GST_VIDEO_FORMAT_VUYA:
|
||||||
priv->clear_color[0][0] = converted[2];
|
priv->clear_color[0][0] = converted[2];
|
||||||
|
@ -2713,6 +2878,31 @@ gst_d3d11_converter_calculate_border_color (GstD3D11Converter * self)
|
||||||
priv->clear_color[2][2] = 0;
|
priv->clear_color[2][2] = 0;
|
||||||
priv->clear_color[2][3] = 1.0;
|
priv->clear_color[2][3] = 1.0;
|
||||||
break;
|
break;
|
||||||
|
case GST_VIDEO_FORMAT_RGBP:
|
||||||
|
priv->clear_color[0][0] = converted[0];
|
||||||
|
priv->clear_color[1][0] = converted[1];
|
||||||
|
priv->clear_color[2][0] = converted[2];
|
||||||
|
break;
|
||||||
|
case GST_VIDEO_FORMAT_BGRP:
|
||||||
|
priv->clear_color[0][0] = converted[2];
|
||||||
|
priv->clear_color[1][0] = converted[1];
|
||||||
|
priv->clear_color[2][0] = converted[0];
|
||||||
|
break;
|
||||||
|
case GST_VIDEO_FORMAT_GBR:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_12LE:
|
||||||
|
priv->clear_color[0][0] = converted[1];
|
||||||
|
priv->clear_color[1][0] = converted[2];
|
||||||
|
priv->clear_color[2][0] = converted[0];
|
||||||
|
break;
|
||||||
|
case GST_VIDEO_FORMAT_GBRA:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_12LE:
|
||||||
|
priv->clear_color[0][0] = converted[1];
|
||||||
|
priv->clear_color[1][0] = converted[2];
|
||||||
|
priv->clear_color[2][0] = converted[0];
|
||||||
|
priv->clear_color[3][0] = a;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
g_assert_not_reached ();
|
g_assert_not_reached ();
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -543,7 +543,7 @@ gst_d3d11_device_setup_format_table (GstD3D11Device * self)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/* YUV non-DXGI native formats */
|
/* non-DXGI native formats */
|
||||||
case GST_VIDEO_FORMAT_NV21:
|
case GST_VIDEO_FORMAT_NV21:
|
||||||
case GST_VIDEO_FORMAT_I420:
|
case GST_VIDEO_FORMAT_I420:
|
||||||
case GST_VIDEO_FORMAT_YV12:
|
case GST_VIDEO_FORMAT_YV12:
|
||||||
|
@ -557,7 +557,17 @@ gst_d3d11_device_setup_format_table (GstD3D11Device * self)
|
||||||
case GST_VIDEO_FORMAT_Y444_12LE:
|
case GST_VIDEO_FORMAT_Y444_12LE:
|
||||||
case GST_VIDEO_FORMAT_Y444_16LE:
|
case GST_VIDEO_FORMAT_Y444_16LE:
|
||||||
case GST_VIDEO_FORMAT_AYUV:
|
case GST_VIDEO_FORMAT_AYUV:
|
||||||
case GST_VIDEO_FORMAT_AYUV64:{
|
case GST_VIDEO_FORMAT_AYUV64:
|
||||||
|
/* RGB planar formats */
|
||||||
|
case GST_VIDEO_FORMAT_RGBP:
|
||||||
|
case GST_VIDEO_FORMAT_BGRP:
|
||||||
|
case GST_VIDEO_FORMAT_GBR:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBR_12LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_10LE:
|
||||||
|
case GST_VIDEO_FORMAT_GBRA_12LE:
|
||||||
|
{
|
||||||
gboolean supported = TRUE;
|
gboolean supported = TRUE;
|
||||||
|
|
||||||
native = FALSE;
|
native = FALSE;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* GStreamer
|
/* GStreamer
|
||||||
*
|
*
|
||||||
* unit test for d3d11colorconvert element
|
* unit test for d3d11convert element
|
||||||
* Copyright (C) 2019 Matthew Waters <matthew@centricular.com>
|
* Copyright (C) 2019 Matthew Waters <matthew@centricular.com>
|
||||||
* Copyright (C) 2019 Seungha Yang <seungha.yang@navercorp.com>
|
* Copyright (C) 2019 Seungha Yang <seungha.yang@navercorp.com>
|
||||||
*
|
*
|
||||||
|
@ -54,11 +54,12 @@ static const gchar *YUV_FORMATS[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static const gchar *RGB_FORMATS[] = {
|
static const gchar *RGB_FORMATS[] = {
|
||||||
"BGRA", "RGBA", "RGB10A2_LE", "BGRx", "RGBx", "RGBA64_LE"
|
"BGRA", "RGBA", "RGB10A2_LE", "BGRx", "RGBx", "RGBA64_LE", "RGBP", "BGRP",
|
||||||
|
"GBR", "GBR_10LE", "GBR_12LE", "GBRA", "GBRA_10LE", "GBRA_12LE"
|
||||||
};
|
};
|
||||||
|
|
||||||
static const gchar *PACKED_YUV_FORMATS[] = {
|
static const gchar *PACKED_YUV_FORMATS[] = {
|
||||||
"Y410",
|
"Y410", "YUY2",
|
||||||
};
|
};
|
||||||
|
|
||||||
static const gchar *GRAY_FORMATS[] = {
|
static const gchar *GRAY_FORMATS[] = {
|
||||||
|
@ -70,7 +71,7 @@ static TestFrame test_rgba_reorder[] = {
|
||||||
{1, 1, GST_VIDEO_FORMAT_BGRA, {(guint8 *) & bgra_reorder_data}},
|
{1, 1, GST_VIDEO_FORMAT_BGRA, {(guint8 *) & bgra_reorder_data}},
|
||||||
};
|
};
|
||||||
|
|
||||||
GST_START_TEST (test_d3d11_color_convert_rgba_reorder)
|
GST_START_TEST (test_d3d11_convert_rgba_reorder)
|
||||||
{
|
{
|
||||||
GstHarness *h =
|
GstHarness *h =
|
||||||
gst_harness_new_parse ("d3d11upload ! d3d11convert ! d3d11download");
|
gst_harness_new_parse ("d3d11upload ! d3d11convert ! d3d11download");
|
||||||
|
@ -157,8 +158,10 @@ run_convert_pipelne (const gchar * in_format, const gchar * out_format)
|
||||||
GMainLoop *loop = g_main_loop_new (NULL, FALSE);
|
GMainLoop *loop = g_main_loop_new (NULL, FALSE);
|
||||||
gchar *pipeline_str =
|
gchar *pipeline_str =
|
||||||
g_strdup_printf ("videotestsrc num-buffers=1 is-live=true ! "
|
g_strdup_printf ("videotestsrc num-buffers=1 is-live=true ! "
|
||||||
"video/x-raw,format=%s,framerate=3/1 ! d3d11upload ! "
|
"video/x-raw,format=%s,framerate=3/1,width=128,height=64,"
|
||||||
"d3d11convert ! d3d11download ! video/x-raw,format=%s ! "
|
"pixel-aspect-ratio=1/1 ! d3d11upload ! "
|
||||||
|
"d3d11convert border-color=0xffffaaaaaaaaaaaa ! d3d11download ! "
|
||||||
|
"video/x-raw,format=%s,width=320,height=240,pixel-aspect-ratio=1/1 ! "
|
||||||
"videoconvert ! %s", in_format, out_format,
|
"videoconvert ! %s", in_format, out_format,
|
||||||
run_visual_test ? "d3d11videosink" : "fakesink");
|
run_visual_test ? "d3d11videosink" : "fakesink");
|
||||||
GstElement *pipeline;
|
GstElement *pipeline;
|
||||||
|
@ -180,15 +183,12 @@ run_convert_pipelne (const gchar * in_format, const gchar * out_format)
|
||||||
g_main_loop_unref (loop);
|
g_main_loop_unref (loop);
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_START_TEST (test_d3d11_color_convert_yuv_yuv)
|
GST_START_TEST (test_d3d11_convert_yuv_yuv)
|
||||||
{
|
{
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
for (i = 0; i < G_N_ELEMENTS (YUV_FORMATS); i++) {
|
for (i = 0; i < G_N_ELEMENTS (YUV_FORMATS); i++) {
|
||||||
for (j = 0; j < G_N_ELEMENTS (YUV_FORMATS); j++) {
|
for (j = 0; j < G_N_ELEMENTS (YUV_FORMATS); j++) {
|
||||||
if (i == j)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
GST_DEBUG ("run conversion %s to %s", YUV_FORMATS[i], YUV_FORMATS[j]);
|
GST_DEBUG ("run conversion %s to %s", YUV_FORMATS[i], YUV_FORMATS[j]);
|
||||||
run_convert_pipelne (YUV_FORMATS[i], YUV_FORMATS[j]);
|
run_convert_pipelne (YUV_FORMATS[i], YUV_FORMATS[j]);
|
||||||
}
|
}
|
||||||
|
@ -197,15 +197,12 @@ GST_START_TEST (test_d3d11_color_convert_yuv_yuv)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
GST_START_TEST (test_d3d11_color_convert_yuv_rgb)
|
GST_START_TEST (test_d3d11_convert_yuv_rgb)
|
||||||
{
|
{
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
for (i = 0; i < G_N_ELEMENTS (YUV_FORMATS); i++) {
|
for (i = 0; i < G_N_ELEMENTS (YUV_FORMATS); i++) {
|
||||||
for (j = 0; j < G_N_ELEMENTS (RGB_FORMATS); j++) {
|
for (j = 0; j < G_N_ELEMENTS (RGB_FORMATS); j++) {
|
||||||
if (i == j)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
GST_DEBUG ("run conversion %s to %s", YUV_FORMATS[i], RGB_FORMATS[j]);
|
GST_DEBUG ("run conversion %s to %s", YUV_FORMATS[i], RGB_FORMATS[j]);
|
||||||
run_convert_pipelne (YUV_FORMATS[i], RGB_FORMATS[j]);
|
run_convert_pipelne (YUV_FORMATS[i], RGB_FORMATS[j]);
|
||||||
}
|
}
|
||||||
|
@ -214,15 +211,12 @@ GST_START_TEST (test_d3d11_color_convert_yuv_rgb)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
GST_START_TEST (test_d3d11_color_convert_yuv_gray)
|
GST_START_TEST (test_d3d11_convert_yuv_gray)
|
||||||
{
|
{
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
for (i = 0; i < G_N_ELEMENTS (YUV_FORMATS); i++) {
|
for (i = 0; i < G_N_ELEMENTS (YUV_FORMATS); i++) {
|
||||||
for (j = 0; j < G_N_ELEMENTS (GRAY_FORMATS); j++) {
|
for (j = 0; j < G_N_ELEMENTS (GRAY_FORMATS); j++) {
|
||||||
if (i == j)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
GST_DEBUG ("run conversion %s to %s", YUV_FORMATS[i], GRAY_FORMATS[j]);
|
GST_DEBUG ("run conversion %s to %s", YUV_FORMATS[i], GRAY_FORMATS[j]);
|
||||||
run_convert_pipelne (YUV_FORMATS[i], GRAY_FORMATS[j]);
|
run_convert_pipelne (YUV_FORMATS[i], GRAY_FORMATS[j]);
|
||||||
}
|
}
|
||||||
|
@ -231,7 +225,7 @@ GST_START_TEST (test_d3d11_color_convert_yuv_gray)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
GST_START_TEST (test_d3d11_color_convert_rgb_yuv)
|
GST_START_TEST (test_d3d11_convert_rgb_yuv)
|
||||||
{
|
{
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
|
@ -245,15 +239,12 @@ GST_START_TEST (test_d3d11_color_convert_rgb_yuv)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
GST_START_TEST (test_d3d11_color_convert_rgb_rgb)
|
GST_START_TEST (test_d3d11_convert_rgb_rgb)
|
||||||
{
|
{
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
for (i = 0; i < G_N_ELEMENTS (RGB_FORMATS); i++) {
|
for (i = 0; i < G_N_ELEMENTS (RGB_FORMATS); i++) {
|
||||||
for (j = 0; j < G_N_ELEMENTS (RGB_FORMATS); j++) {
|
for (j = 0; j < G_N_ELEMENTS (RGB_FORMATS); j++) {
|
||||||
if (i == j)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
GST_DEBUG ("run conversion %s to %s", RGB_FORMATS[i], RGB_FORMATS[j]);
|
GST_DEBUG ("run conversion %s to %s", RGB_FORMATS[i], RGB_FORMATS[j]);
|
||||||
run_convert_pipelne (RGB_FORMATS[i], RGB_FORMATS[j]);
|
run_convert_pipelne (RGB_FORMATS[i], RGB_FORMATS[j]);
|
||||||
}
|
}
|
||||||
|
@ -262,7 +253,7 @@ GST_START_TEST (test_d3d11_color_convert_rgb_rgb)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
GST_START_TEST (test_d3d11_color_convert_rgb_gray)
|
GST_START_TEST (test_d3d11_convert_rgb_gray)
|
||||||
{
|
{
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
|
@ -276,7 +267,7 @@ GST_START_TEST (test_d3d11_color_convert_rgb_gray)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
GST_START_TEST (test_d3d11_color_convert_packed_yuv_yuv)
|
GST_START_TEST (test_d3d11_convert_packed_yuv_yuv)
|
||||||
{
|
{
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
|
@ -291,7 +282,7 @@ GST_START_TEST (test_d3d11_color_convert_packed_yuv_yuv)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
GST_START_TEST (test_d3d11_color_convert_packed_yuv_rgb)
|
GST_START_TEST (test_d3d11_convert_packed_yuv_rgb)
|
||||||
{
|
{
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
|
@ -306,7 +297,7 @@ GST_START_TEST (test_d3d11_color_convert_packed_yuv_rgb)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
GST_START_TEST (test_d3d11_color_convert_packed_yuv_gray)
|
GST_START_TEST (test_d3d11_convert_packed_yuv_gray)
|
||||||
{
|
{
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
|
@ -321,7 +312,7 @@ GST_START_TEST (test_d3d11_color_convert_packed_yuv_gray)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
GST_START_TEST (test_d3d11_color_convert_gray_yuv)
|
GST_START_TEST (test_d3d11_convert_gray_yuv)
|
||||||
{
|
{
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
|
@ -335,7 +326,7 @@ GST_START_TEST (test_d3d11_color_convert_gray_yuv)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
GST_START_TEST (test_d3d11_color_convert_gray_rgb)
|
GST_START_TEST (test_d3d11_convert_gray_rgb)
|
||||||
{
|
{
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
|
@ -350,33 +341,33 @@ GST_START_TEST (test_d3d11_color_convert_gray_rgb)
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
static Suite *
|
static Suite *
|
||||||
d3d11colorconvert_suite (void)
|
d3d11convert_suite (void)
|
||||||
{
|
{
|
||||||
Suite *s = suite_create ("d3d11colorconvert");
|
Suite *s = suite_create ("d3d11convert");
|
||||||
TCase *tc_basic = tcase_create ("general");
|
TCase *tc_basic = tcase_create ("general");
|
||||||
|
|
||||||
run_visual_test = g_getenv ("ENABLE_D3D11_VISUAL_TEST");
|
run_visual_test = g_getenv ("ENABLE_D3D11_VISUAL_TEST");
|
||||||
|
|
||||||
suite_add_tcase (s, tc_basic);
|
suite_add_tcase (s, tc_basic);
|
||||||
tcase_add_test (tc_basic, test_d3d11_color_convert_rgba_reorder);
|
tcase_add_test (tc_basic, test_d3d11_convert_rgba_reorder);
|
||||||
|
|
||||||
/* XXX: Some methods for device's capability checking and initialization
|
/* XXX: Some methods for device's capability checking and initialization
|
||||||
* are plugin internal. Enable conversion tests only when it's enabled */
|
* are plugin internal. Enable conversion tests only when it's enabled */
|
||||||
if (g_getenv ("ENABLE_D3D11_CONVERSION_TEST")) {
|
if (g_getenv ("ENABLE_D3D11_CONVERSION_TEST")) {
|
||||||
tcase_add_test (tc_basic, test_d3d11_color_convert_yuv_yuv);
|
tcase_add_test (tc_basic, test_d3d11_convert_yuv_yuv);
|
||||||
tcase_add_test (tc_basic, test_d3d11_color_convert_yuv_rgb);
|
tcase_add_test (tc_basic, test_d3d11_convert_yuv_rgb);
|
||||||
tcase_add_test (tc_basic, test_d3d11_color_convert_yuv_gray);
|
tcase_add_test (tc_basic, test_d3d11_convert_yuv_gray);
|
||||||
tcase_add_test (tc_basic, test_d3d11_color_convert_rgb_yuv);
|
tcase_add_test (tc_basic, test_d3d11_convert_rgb_yuv);
|
||||||
tcase_add_test (tc_basic, test_d3d11_color_convert_rgb_rgb);
|
tcase_add_test (tc_basic, test_d3d11_convert_rgb_rgb);
|
||||||
tcase_add_test (tc_basic, test_d3d11_color_convert_rgb_gray);
|
tcase_add_test (tc_basic, test_d3d11_convert_rgb_gray);
|
||||||
tcase_add_test (tc_basic, test_d3d11_color_convert_packed_yuv_yuv);
|
tcase_add_test (tc_basic, test_d3d11_convert_packed_yuv_yuv);
|
||||||
tcase_add_test (tc_basic, test_d3d11_color_convert_packed_yuv_rgb);
|
tcase_add_test (tc_basic, test_d3d11_convert_packed_yuv_rgb);
|
||||||
tcase_add_test (tc_basic, test_d3d11_color_convert_packed_yuv_gray);
|
tcase_add_test (tc_basic, test_d3d11_convert_packed_yuv_gray);
|
||||||
tcase_add_test (tc_basic, test_d3d11_color_convert_gray_yuv);
|
tcase_add_test (tc_basic, test_d3d11_convert_gray_yuv);
|
||||||
tcase_add_test (tc_basic, test_d3d11_color_convert_gray_rgb);
|
tcase_add_test (tc_basic, test_d3d11_convert_gray_rgb);
|
||||||
}
|
}
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_CHECK_MAIN (d3d11colorconvert);
|
GST_CHECK_MAIN (d3d11convert);
|
||||||
|
|
Loading…
Reference in a new issue