diff mbox series

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

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

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Wu, Tong1 Feb. 14, 2023, 2:45 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.

Hwupload and hwdownload can work with the added formats.

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

Comments

Xiang, Haihao Feb. 16, 2023, 1:30 a.m. UTC | #1
On Di, 2023-02-14 at 10:45 +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.
> 
> 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 },

LGTM, thx

- Haihao
Xiang, Haihao Feb. 19, 2023, 1:57 a.m. UTC | #2
On Do, 2023-02-16 at 01:30 +0000, Xiang, Haihao wrote:
> On Di, 2023-02-14 at 10:45 +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.
> > 
> > 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 },
> 
> LGTM, thx
> 

Is there any comment about this patchset? I will push it in the next few days if
there are no objections for v3,

Thanks
Haihao
Xiang, Haihao Feb. 22, 2023, 6:38 a.m. UTC | #3
On So, 2023-02-19 at 01:57 +0000, Xiang, Haihao wrote:
> On Do, 2023-02-16 at 01:30 +0000, Xiang, Haihao wrote:
> > On Di, 2023-02-14 at 10:45 +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.
> > > 
> > > 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 },
> > 
> > LGTM, thx
> > 
> 
> Is there any comment about this patchset? I will push it in the next few days
> if
> there are no objections for v3,

Pushed, thx

- Haihao
James Almer Feb. 22, 2023, 12:46 p.m. UTC | #4
On 2/13/2023 11:45 PM, 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.
> 
> 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 },

Shouldn't this be VUYA?

> +    { 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 },
Wu, Tong1 Feb. 23, 2023, 2:54 a.m. UTC | #5
> On 2/13/2023 11:45 PM, 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.
> >
> > 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 },
> 
> Shouldn't this be VUYA?

Please refer to https://learn.microsoft.com/en-us/windows/win32/api/dxgiformat/ne-dxgiformat-dxgi_format

According to the doc, The mapping to the view channel is 
V->R8, 
U->G8, 
Y->B8, 
and A->A8.

It is equivalent to AV_PIX_FMT_VUYX in FFmpeg. Thanks.

> 
> > +    { 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 },
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org
> with subject "unsubscribe".
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 },