[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