Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH 1/2] lavu/hwcontext_qsv: add support for UYVY
@ 2023-02-03  6:34 Xiang, Haihao
  2023-02-03  6:34 ` [FFmpeg-devel] [PATCH 2/2] lavfi/vf_vpp_qsv: support UYVY in system memory Xiang, Haihao
  2023-02-06  7:52 ` [FFmpeg-devel] [PATCH 1/2] lavu/hwcontext_qsv: add support for UYVY Xiang, Haihao
  0 siblings, 2 replies; 3+ messages in thread
From: Xiang, Haihao @ 2023-02-03  6:34 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Haihao Xiang

From: Haihao Xiang <haihao.xiang@intel.com>

The SDK supports UYVY from version 1.17, and VPP may support UYVY
input on Linux [1]

$ ffmpeg -loglevel verbose -init_hw_device qsv=intel -f lavfi -i \
yuvtestsrc -vf \
"format=uyvy422,hwupload=extra_hw_frames=32,vpp_qsv=format=nv12" \
-f null -

[1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/samples/readme-vpp_linux.md

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
---
 libavutil/hwcontext_qsv.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c
index ec0f72b329..42851d4fd5 100644
--- a/libavutil/hwcontext_qsv.c
+++ b/libavutil/hwcontext_qsv.c
@@ -118,6 +118,8 @@ static const struct {
 #if CONFIG_VAAPI
     { AV_PIX_FMT_YUYV422,
                        MFX_FOURCC_YUY2, 0 },
+    { AV_PIX_FMT_UYVY422,
+                       MFX_FOURCC_UYVY, 0 },
     { AV_PIX_FMT_Y210,
                        MFX_FOURCC_Y210, 1 },
     // VUYX is used for VAAPI child device,
@@ -1556,6 +1558,11 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
         // use the value from the frame.
         surface->Data.A = frame->data[0] + 6;
         break;
+    case AV_PIX_FMT_UYVY422:
+        surface->Data.Y = frame->data[0] + 1;
+        surface->Data.U = frame->data[0];
+        surface->Data.V = frame->data[0] + 2;
+        break;
 #endif
     default:
         return MFX_ERR_UNSUPPORTED;
-- 
2.17.1

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [FFmpeg-devel] [PATCH 2/2] lavfi/vf_vpp_qsv: support UYVY in system memory
  2023-02-03  6:34 [FFmpeg-devel] [PATCH 1/2] lavu/hwcontext_qsv: add support for UYVY Xiang, Haihao
@ 2023-02-03  6:34 ` Xiang, Haihao
  2023-02-06  7:52 ` [FFmpeg-devel] [PATCH 1/2] lavu/hwcontext_qsv: add support for UYVY Xiang, Haihao
  1 sibling, 0 replies; 3+ messages in thread
From: Xiang, Haihao @ 2023-02-03  6:34 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Haihao Xiang

From: Haihao Xiang <haihao.xiang@intel.com>

It only works on Linux

$ ffmpeg -loglevel verbose -init_hw_device qsv=intel -f lavfi -i \
yuvtestsrc -vf "format=uyvy422,vpp_qsv=format=nv12" -f null -

Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
---
 libavfilter/qsvvpp.c     | 9 +++++++++
 libavfilter/vf_vpp_qsv.c | 3 +++
 2 files changed, 12 insertions(+)

diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c
index 7e64944f2c..e181e7b584 100644
--- a/libavfilter/qsvvpp.c
+++ b/libavfilter/qsvvpp.c
@@ -247,6 +247,10 @@ static int pix_fmt_to_mfx_fourcc(int format)
         return MFX_FOURCC_RGB4;
     case AV_PIX_FMT_P010:
         return MFX_FOURCC_P010;
+#if CONFIG_VAAPI
+    case AV_PIX_FMT_UYVY422:
+        return MFX_FOURCC_UYVY;
+#endif
     }
 
     return MFX_FOURCC_NV12;
@@ -276,6 +280,11 @@ static int map_frame_to_surface(AVFrame *frame, mfxFrameSurface1 *surface)
         surface->Data.R = frame->data[0] + 2;
         surface->Data.A = frame->data[0] + 3;
         break;
+    case AV_PIX_FMT_UYVY422:
+        surface->Data.Y = frame->data[0] + 1;
+        surface->Data.U = frame->data[0];
+        surface->Data.V = frame->data[0] + 2;
+        break;
     default:
         return MFX_ERR_UNSUPPORTED;
     }
diff --git a/libavfilter/vf_vpp_qsv.c b/libavfilter/vf_vpp_qsv.c
index 010b69943a..65484fa091 100644
--- a/libavfilter/vf_vpp_qsv.c
+++ b/libavfilter/vf_vpp_qsv.c
@@ -703,6 +703,9 @@ static int vpp_query_formats(AVFilterContext *ctx)
         AV_PIX_FMT_YUYV422,
         AV_PIX_FMT_RGB32,
         AV_PIX_FMT_P010,
+#if CONFIG_VAAPI
+        AV_PIX_FMT_UYVY422,
+#endif
         AV_PIX_FMT_QSV,
         AV_PIX_FMT_NONE
     };
-- 
2.17.1

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [FFmpeg-devel] [PATCH 1/2] lavu/hwcontext_qsv: add support for UYVY
  2023-02-03  6:34 [FFmpeg-devel] [PATCH 1/2] lavu/hwcontext_qsv: add support for UYVY Xiang, Haihao
  2023-02-03  6:34 ` [FFmpeg-devel] [PATCH 2/2] lavfi/vf_vpp_qsv: support UYVY in system memory Xiang, Haihao
@ 2023-02-06  7:52 ` Xiang, Haihao
  1 sibling, 0 replies; 3+ messages in thread
From: Xiang, Haihao @ 2023-02-06  7:52 UTC (permalink / raw)
  To: ffmpeg-devel

On Vr, 2023-02-03 at 14:34 +0800, Xiang, Haihao wrote:
> From: Haihao Xiang <haihao.xiang@intel.com>
> 
> The SDK supports UYVY from version 1.17, and VPP may support UYVY
> input on Linux [1]
> 
> $ ffmpeg -loglevel verbose -init_hw_device qsv=intel -f lavfi -i \
> yuvtestsrc -vf \
> "format=uyvy422,hwupload=extra_hw_frames=32,vpp_qsv=format=nv12" \
> -f null -
> 
> [1] 
> https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/samples/readme-vpp_linux.md
> 
> Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
> ---
>  libavutil/hwcontext_qsv.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c
> index ec0f72b329..42851d4fd5 100644
> --- a/libavutil/hwcontext_qsv.c
> +++ b/libavutil/hwcontext_qsv.c
> @@ -118,6 +118,8 @@ static const struct {
>  #if CONFIG_VAAPI
>      { AV_PIX_FMT_YUYV422,
>                         MFX_FOURCC_YUY2, 0 },
> +    { AV_PIX_FMT_UYVY422,
> +                       MFX_FOURCC_UYVY, 0 },
>      { AV_PIX_FMT_Y210,
>                         MFX_FOURCC_Y210, 1 },
>      // VUYX is used for VAAPI child device,
> @@ -1556,6 +1558,11 @@ static int map_frame_to_surface(const AVFrame *frame,
> mfxFrameSurface1 *surface)
>          // use the value from the frame.
>          surface->Data.A = frame->data[0] + 6;
>          break;
> +    case AV_PIX_FMT_UYVY422:
> +        surface->Data.Y = frame->data[0] + 1;
> +        surface->Data.U = frame->data[0];
> +        surface->Data.V = frame->data[0] + 2;
> +        break;
>  #endif
>      default:
>          return MFX_ERR_UNSUPPORTED;

Will apply this patchset.

- Haihao

_______________________________________________
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".

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-02-06  7:53 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-03  6:34 [FFmpeg-devel] [PATCH 1/2] lavu/hwcontext_qsv: add support for UYVY Xiang, Haihao
2023-02-03  6:34 ` [FFmpeg-devel] [PATCH 2/2] lavfi/vf_vpp_qsv: support UYVY in system memory Xiang, Haihao
2023-02-06  7:52 ` [FFmpeg-devel] [PATCH 1/2] lavu/hwcontext_qsv: add support for UYVY Xiang, Haihao

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git