[FFmpeg-cvslog] libavcodec/qsvenc: Enable 444 encoding for RGB input

Wenbin Chen git at videolan.org
Mon Feb 27 07:56:22 EET 2023


ffmpeg | branch: master | Wenbin Chen <wenbin.chen at intel.com> | Fri Dec  9 14:36:23 2022 +0800| [0825b461e64b5924fdee7055643db65870d2eaae] | committer: Haihao Xiang

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 at intel.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0825b461e64b5924fdee7055643db65870d2eaae
---

 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) {



More information about the ffmpeg-cvslog mailing list