[FFmpeg-devel] [PATCH] libavcodec/qsvenc: Enable 444 encoding for RGB input
Xiang, Haihao
haihao.xiang at intel.com
Fri Feb 24 04:29:44 EET 2023
On Di, 2023-01-03 at 11:00 +0800, wenbin.chen-at-intel.com at ffmpeg.org wrote:
> From: Wenbin Chen <wenbin.chen at intel.com>
>
> 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.
> RGB is encoded using 444 chroma format when user doesn't specify the
> profile or uses rext profile, otherwise, 420 is used.
>
> Signed-off-by: Wenbin Chen <wenbin.chen at intel.com>
> ---
> libavcodec/qsvenc.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
> index 514a1e8148..150fc9c729 100644
> --- a/libavcodec/qsvenc.c
> +++ b/libavcodec/qsvenc.c
> @@ -1088,6 +1088,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;
> }
LGTM, will apply.
Thanks
Haihao
More information about the ffmpeg-devel
mailing list