On 8/29/2022 4:27 AM, Xiang, Haihao wrote:
From: Haihao Xiang <haihao.xi...@intel.com>
AV_PIX_FMT_VUYX is used in FFmpeg for 8bit 4:4:4 content on Intel HW,
and MFX_FOURCC_AYUV is used in the SDK
Sounds like you want the VUYA pixfmt instead.
---
libavutil/hwcontext_qsv.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c
index 510f422562..a3350eae0f 100644
--- a/libavutil/hwcontext_qsv.c
+++ b/libavutil/hwcontext_qsv.c
@@ -119,6 +119,8 @@ static const struct {
MFX_FOURCC_YUY2 },
{ AV_PIX_FMT_Y210,
MFX_FOURCC_Y210 },
+ { AV_PIX_FMT_VUYX,
+ MFX_FOURCC_AYUV },
#endif
};
@@ -1502,6 +1504,12 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface)
surface->Data.U16 = (mfxU16 *)frame->data[0] + 1;
surface->Data.V16 = (mfxU16 *)frame->data[0] + 3;
break;
+ case AV_PIX_FMT_VUYX:
+ surface->Data.V = frame->data[0];
+ surface->Data.U = frame->data[0] + 1;
+ surface->Data.Y = frame->data[0] + 2;
+ surface->Data.A = frame->data[0] + 3;
This will go wrong with VUYX. You need to use AV_PIX_FMT_VUYA.
+ break;
#endif
default:
return MFX_ERR_UNSUPPORTED;
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".