* [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