Message ID | 20220117051122.628422-1-wenbin.chen@intel.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel,V5,1/4] libavcodec/qsvenc: Add max_frame_size support to hevc_qsv | expand |
Context | Check | Description |
---|---|---|
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_ppc | success | Make finished |
andriy/make_fate_ppc | success | Make fate finished |
andriy/make_aarch64_jetson | success | Make finished |
andriy/make_fate_aarch64_jetson | success | Make fate finished |
On Mon, 2022-01-17 at 13:11 +0800, Wenbin Chen wrote: > Add max_frame_size support to hevc_qsv as well. > > Signed-off-by: Wenbin Chen <wenbin.chen@intel.com> > --- > doc/encoders.texi | 3 +++ > libavcodec/qsvenc.c | 4 ++-- > 2 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/doc/encoders.texi b/doc/encoders.texi > index 7cc8be1209..68921fbd40 100644 > --- a/doc/encoders.texi > +++ b/doc/encoders.texi > @@ -3388,6 +3388,9 @@ intra refresh cycle. > @item @var{rdo} > Enable rate distortion optimization. > > +@item @var{max_frame_size} > +Maximum encoded frame size in bytes. > + > @item @var{idr_interval} > Distance (in I-frames) between IDR frames. > @table @samp > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c > index 4e7a15f060..b3728d28d5 100644 > --- a/libavcodec/qsvenc.c > +++ b/libavcodec/qsvenc.c > @@ -859,8 +859,6 @@ static int init_video_param(AVCodecContext *avctx, > QSVEncContext *q) > if (q->mbbrc >= 0) > q->extco2.MBBRC = q->mbbrc ? MFX_CODINGOPTION_ON : > MFX_CODINGOPTION_OFF; > > - if (q->max_frame_size >= 0) > - q->extco2.MaxFrameSize = q->max_frame_size; > #if QSV_HAVE_MAX_SLICE_SIZE > if (q->max_slice_size >= 0) > q->extco2.MaxSliceSize = q->max_slice_size; > @@ -889,6 +887,8 @@ static int init_video_param(AVCodecContext *avctx, > QSVEncContext *q) > if (avctx->codec_id == AV_CODEC_ID_H264 || avctx->codec_id == > AV_CODEC_ID_HEVC) { > if (q->extbrc >= 0) > q->extco2.ExtBRC = q->extbrc ? MFX_CODINGOPTION_ON : > MFX_CODINGOPTION_OFF; > + if (q->max_frame_size >= 0) > + q->extco2.MaxFrameSize = q->max_frame_size; > > #if QSV_VERSION_ATLEAST(1, 9) > if (avctx->qmin >= 0 && avctx->qmax >= 0 && avctx->qmin > avctx- > >qmax) { Patchset LGTM, will apply -Haihao
diff --git a/doc/encoders.texi b/doc/encoders.texi index 7cc8be1209..68921fbd40 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -3388,6 +3388,9 @@ intra refresh cycle. @item @var{rdo} Enable rate distortion optimization. +@item @var{max_frame_size} +Maximum encoded frame size in bytes. + @item @var{idr_interval} Distance (in I-frames) between IDR frames. @table @samp diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index 4e7a15f060..b3728d28d5 100644 --- a/libavcodec/qsvenc.c +++ b/libavcodec/qsvenc.c @@ -859,8 +859,6 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q) if (q->mbbrc >= 0) q->extco2.MBBRC = q->mbbrc ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF; - if (q->max_frame_size >= 0) - q->extco2.MaxFrameSize = q->max_frame_size; #if QSV_HAVE_MAX_SLICE_SIZE if (q->max_slice_size >= 0) q->extco2.MaxSliceSize = q->max_slice_size; @@ -889,6 +887,8 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q) if (avctx->codec_id == AV_CODEC_ID_H264 || avctx->codec_id == AV_CODEC_ID_HEVC) { if (q->extbrc >= 0) q->extco2.ExtBRC = q->extbrc ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF; + if (q->max_frame_size >= 0) + q->extco2.MaxFrameSize = q->max_frame_size; #if QSV_VERSION_ATLEAST(1, 9) if (avctx->qmin >= 0 && avctx->qmax >= 0 && avctx->qmin > avctx->qmax) {
Add max_frame_size support to hevc_qsv as well. Signed-off-by: Wenbin Chen <wenbin.chen@intel.com> --- doc/encoders.texi | 3 +++ libavcodec/qsvenc.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-)