aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorWenbin Chen <wenbin.chen@intel.com>2022-12-09 14:36:23 +0800
committerHaihao Xiang <haihao.xiang@intel.com>2023-02-27 13:42:06 +0800
commit0825b461e64b5924fdee7055643db65870d2eaae (patch)
treebb555e8f2b5b59a5cf9ee137e07d53b57a9adc36 /libavcodec
parent6489e0679d0b073dabf0e5b5c8ed5418cdeeea44 (diff)
downloadffmpeg-0825b461e64b5924fdee7055643db65870d2eaae.tar.gz
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 <wenbin.chen@intel.com>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/qsvenc.c4
1 files changed, 4 insertions, 0 deletions
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) {