[FFmpeg-cvslog] lavc/qsvenc_hevc: add qmax/qmin support for HEVC encoding
Linjie Fu
git at videolan.org
Sun Jul 5 18:45:14 EEST 2020
ffmpeg | branch: master | Linjie Fu <linjie.fu at intel.com> | Wed Mar 11 18:39:28 2020 +0800| [c2d000ec27af1a5cd5341a67e941e0313879ab18] | committer: Zhong Li
lavc/qsvenc_hevc: add qmax/qmin support for HEVC encoding
Add qmax/qmin support for HEVC software bitrate control(SWBRC).
Limitations:
- RateControlMethod != MFX_RATECONTROL_CQP
- with EXTBRC ON
Signed-off-by: Dmitry Rogozhkin <dmitry.v.rogozhkin at intel.com>
Signed-off-by: Linjie Fu <linjie.fu at intel.com>
Signed-off-by: Zhong Li <zhongli_dev at 126.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c2d000ec27af1a5cd5341a67e941e0313879ab18
---
libavcodec/qsvenc.c | 11 +++++------
libavcodec/qsvenc_hevc.c | 2 ++
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index ed4539f697..1ed8f5d973 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -735,6 +735,11 @@ FF_ENABLE_DEPRECATION_WARNINGS
if (q->adaptive_b >= 0)
q->extco2.AdaptiveB = q->adaptive_b ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF;
#endif
+ }
+
+ 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 QSV_VERSION_ATLEAST(1, 9)
if (avctx->qmin >= 0 && avctx->qmax >= 0 && avctx->qmin > avctx->qmax) {
@@ -750,12 +755,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
q->extco2.MaxQPP = q->extco2.MaxQPB = q->extco2.MaxQPI;
}
#endif
- }
-
- 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;
-
q->extco2.Header.BufferId = MFX_EXTBUFF_CODING_OPTION2;
q->extco2.Header.BufferSz = sizeof(q->extco2);
diff --git a/libavcodec/qsvenc_hevc.c b/libavcodec/qsvenc_hevc.c
index 88c78a8135..347f30655e 100644
--- a/libavcodec/qsvenc_hevc.c
+++ b/libavcodec/qsvenc_hevc.c
@@ -263,6 +263,8 @@ static const AVCodecDefault qsv_enc_defaults[] = {
// same as the x264 default
{ "g", "248" },
{ "bf", "8" },
+ { "qmin", "-1" },
+ { "qmax", "-1" },
{ "trellis", "-1" },
{ "flags", "+cgop" },
#if FF_API_PRIVATE_OPT
More information about the ffmpeg-cvslog
mailing list