diff --git a/doc/encoders.texi b/doc/encoders.texi index 154d838ea2..acacf44d35 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 269386624d..4e15deaef7 100644 --- a/libavcodec/qsvenc.c +++ b/libavcodec/qsvenc.c @@ -862,8 +862,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; @@ -892,6 +890,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) {