[FFmpeg-devel] [PATCH] qsvenc_hevc: Enable look ahead with ExtBRC
Haihao Xiang
haihao.xiang at intel.com
Sat Oct 9 04:59:49 EEST 2021
From: Daniel Socek <daniel.socek at intel.com>
Signed-off-by: Daniel Socek <daniel.socek at intel.com>
Signed-off-by: Haihao Xiang <haihao.xiang at intel.com>
---
libavcodec/qsvenc.c | 3 +++
libavcodec/qsvenc_hevc.c | 1 +
2 files changed, 4 insertions(+)
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index 06f55604b5..e21a9b1207 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -610,6 +610,9 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q)
switch (q->param.mfx.RateControlMethod) {
case MFX_RATECONTROL_CBR:
case MFX_RATECONTROL_VBR:
+ if (q->extbrc) {
+ q->extco2.LookAheadDepth = q->look_ahead_depth;
+ }
#if QSV_HAVE_VCM
case MFX_RATECONTROL_VCM:
#endif
diff --git a/libavcodec/qsvenc_hevc.c b/libavcodec/qsvenc_hevc.c
index b7b2f5633e..8af2aa0c07 100644
--- a/libavcodec/qsvenc_hevc.c
+++ b/libavcodec/qsvenc_hevc.c
@@ -248,6 +248,7 @@ static const AVOption options[] = {
{ "tile_rows", "Number of rows for tiled encoding", OFFSET(qsv.tile_rows), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, UINT16_MAX, VE },
{ "recovery_point_sei", "Insert recovery point SEI messages", OFFSET(qsv.recovery_point_sei), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VE },
{ "aud", "Insert the Access Unit Delimiter NAL", OFFSET(qsv.aud), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE},
+ { "look_ahead_depth", "Depth of look ahead in number frames", OFFSET(qsv.look_ahead_depth), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 100, VE },
{ NULL },
};
--
2.17.1
More information about the ffmpeg-devel
mailing list