From 0825b461e64b5924fdee7055643db65870d2eaae Mon Sep 17 00:00:00 2001 From: Wenbin Chen Date: Fri, 9 Dec 2022 14:36:23 +0800 Subject: [PATCH] libavcodec/qsvenc: Enable 444 encoding for RGB input MSDK/VPL uses 420 chroma format as default to encode RGB, and this is not a proper usage. Now enable 444 encoding for RGB input by default. When main profile is used, RGB input is still encoded in 420 format. Signed-off-by: Wenbin Chen --- libavcodec/qsvenc.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index fc64a086e4..3607859cb8 100644 --- a/libavcodec/qsvenc.c +++ b/libavcodec/qsvenc.c @@ -1118,6 +1118,10 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q) q->extco3.MaxFrameSizeI = q->max_frame_size_i; if (q->max_frame_size_p >= 0) q->extco3.MaxFrameSizeP = q->max_frame_size_p; + if (sw_format == AV_PIX_FMT_BGRA && + (q->profile == MFX_PROFILE_HEVC_REXT || + q->profile == MFX_PROFILE_UNKNOWN)) + q->extco3.TargetChromaFormatPlus1 = MFX_CHROMAFORMAT_YUV444 + 1; q->extco3.ScenarioInfo = q->scenario; } else if (avctx->codec_id == AV_CODEC_ID_AV1) {