diff mbox series

[FFmpeg-devel,1/3] hwcontext_d3d11va: add mutiple supported DXGI formats

Message ID 20230131084126.613-1-tong1.wu@intel.com
State New
Headers show
Series [FFmpeg-devel,1/3] hwcontext_d3d11va: add mutiple supported DXGI formats | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Wu, Tong1 Jan. 31, 2023, 8:41 a.m. UTC
Add support for VUYX, YUYV422, Y210, XV30, P012, Y212, XV36.

The added formats work with qsv acceleration and will not have
impact on d3d11va acceleration(-hwaccel d3d11va) since so far
these formats are still not supported by using d3d11va acceleration.

Signed-off-by: Tong Wu <tong1.wu@intel.com>
---
 libavutil/hwcontext_d3d11va.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Xiang, Haihao Feb. 7, 2023, 5:45 a.m. UTC | #1
On Di, 2023-01-31 at 16:41 +0800, Tong Wu wrote:
> Add support for VUYX, YUYV422, Y210, XV30, P012, Y212, XV36.
> 
> The added formats work with qsv acceleration and will not have
> impact on d3d11va acceleration(-hwaccel d3d11va) since so far
> these formats are still not supported by using d3d11va acceleration.

hwupload and hwdownload can work with the added formats. 

Thanks
Haihao

> 
> Signed-off-by: Tong Wu <tong1.wu@intel.com>
> ---
>  libavutil/hwcontext_d3d11va.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/libavutil/hwcontext_d3d11va.c b/libavutil/hwcontext_d3d11va.c
> index 363ec6a47d..aa50538d64 100644
> --- a/libavutil/hwcontext_d3d11va.c
> +++ b/libavutil/hwcontext_d3d11va.c
> @@ -89,6 +89,13 @@ static const struct {
>      { DXGI_FORMAT_B8G8R8A8_UNORM,    AV_PIX_FMT_BGRA },
>      { DXGI_FORMAT_R10G10B10A2_UNORM, AV_PIX_FMT_X2BGR10 },
>      { DXGI_FORMAT_R16G16B16A16_FLOAT, AV_PIX_FMT_RGBAF16 },
> +    { DXGI_FORMAT_AYUV,         AV_PIX_FMT_VUYX },
> +    { DXGI_FORMAT_YUY2,         AV_PIX_FMT_YUYV422 },
> +    { DXGI_FORMAT_Y210,         AV_PIX_FMT_Y210 },
> +    { DXGI_FORMAT_Y410,         AV_PIX_FMT_XV30 },
> +    { DXGI_FORMAT_P016,         AV_PIX_FMT_P012 },
> +    { DXGI_FORMAT_Y216,         AV_PIX_FMT_Y212 },
> +    { DXGI_FORMAT_Y416,         AV_PIX_FMT_XV36 },
>      // Special opaque formats. The pix_fmt is merely a place holder, as the
>      // opaque format cannot be accessed directly.
>      { DXGI_FORMAT_420_OPAQUE,   AV_PIX_FMT_YUV420P },
diff mbox series

Patch

diff --git a/libavutil/hwcontext_d3d11va.c b/libavutil/hwcontext_d3d11va.c
index 363ec6a47d..aa50538d64 100644
--- a/libavutil/hwcontext_d3d11va.c
+++ b/libavutil/hwcontext_d3d11va.c
@@ -89,6 +89,13 @@  static const struct {
     { DXGI_FORMAT_B8G8R8A8_UNORM,    AV_PIX_FMT_BGRA },
     { DXGI_FORMAT_R10G10B10A2_UNORM, AV_PIX_FMT_X2BGR10 },
     { DXGI_FORMAT_R16G16B16A16_FLOAT, AV_PIX_FMT_RGBAF16 },
+    { DXGI_FORMAT_AYUV,         AV_PIX_FMT_VUYX },
+    { DXGI_FORMAT_YUY2,         AV_PIX_FMT_YUYV422 },
+    { DXGI_FORMAT_Y210,         AV_PIX_FMT_Y210 },
+    { DXGI_FORMAT_Y410,         AV_PIX_FMT_XV30 },
+    { DXGI_FORMAT_P016,         AV_PIX_FMT_P012 },
+    { DXGI_FORMAT_Y216,         AV_PIX_FMT_Y212 },
+    { DXGI_FORMAT_Y416,         AV_PIX_FMT_XV36 },
     // Special opaque formats. The pix_fmt is merely a place holder, as the
     // opaque format cannot be accessed directly.
     { DXGI_FORMAT_420_OPAQUE,   AV_PIX_FMT_YUV420P },