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; } -- 2.28.0 _______________________________________________ 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".