Message ID | 20230103030010.2413877-1-wenbin.chen@intel.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] libavcodec/qsvenc: Enable 444 encoding for RGB input | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
On Di, 2023-01-03 at 11:00 +0800, wenbin.chen-at-intel.com@ffmpeg.org wrote: > From: Wenbin Chen <wenbin.chen@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@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
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; }