On 09/08/2020 06:11, Linjie Fu wrote:
After adding a copy pass through path inside MSDK, x2rgb10 is now
available as an output of VPP.
Command line for CSC:
ffmpeg -hwaccel qsv -v verbose -c:v hevc_qsv -i
p010.h265 -vf scale_qsv=format=x2rgb10,hwdownload,format=x2rgb10
-vframes 1 out.yuv
Signed-off-by: Linjie Fu <linjie.justin...@gmail.com>
---
[1]Issue:
https://github.com/Intel-Media-SDK/MediaSDK/issues/1654
[2]Adding copy passthrou:
https://github.com/AntonGrishin/MediaSDK/commit/20058c0e1dbd521e2571e14f6246c48fea996094
[3]Still in need to be fixed:
https://github.com/Intel-Media-SDK/MediaSDK/pull/2268
This patch would be ready to merge after [3] is handled decently.
libavutil/hwcontext_qsv.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c
index 35a944f8f8..64cb1663d8 100644
--- a/libavutil/hwcontext_qsv.c
+++ b/libavutil/hwcontext_qsv.c
@@ -110,6 +110,10 @@ static const struct {
#if CONFIG_VAAPI
{ AV_PIX_FMT_YUYV422,
MFX_FOURCC_YUY2 },
+#if QSV_VERSION_ATLEAST(1, 9)
+ { AV_PIX_FMT_X2RGB10,
+ MFX_FOURCC_A2RGB10 },
+#endif
#if QSV_VERSION_ATLEAST(1, 27)
{ AV_PIX_FMT_Y210,
MFX_FOURCC_Y210 },
@@ -798,6 +802,10 @@ static int map_frame_to_surface(const AVFrame *frame,
mfxFrameSurface1 *surface)
surface->Data.V16 = (mfxU16 *)frame->data[0] + 3;
break;
#endif
+ case AV_PIX_FMT_X2RGB10:
+ surface->Data.A2RGB10 = (mfxA2RGB10 *)frame->data[0];
+ break;
+
default:
return MFX_ERR_UNSUPPORTED;
}
What happens to the alpha information here? We don't specify what is in the
unused bits of X2RGB10, so saying that it has an alpha component seems likely
to do something ugly in cases where that is used (e.g. overlay).
- Mark
_______________________________________________
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".