From: Limin Wang <lance.lmw...@gmail.com> Signed-off-by: Limin Wang <lance.lmw...@gmail.com> --- doc/encoders.texi | 10 ++++++++-- libavcodec/libsvtav1.c | 10 +++++++++- libavcodec/version.h | 2 +- 3 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/doc/encoders.texi b/doc/encoders.texi index 64d604e..e7f61ff 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -1807,8 +1807,11 @@ Set the rate control mode to use. Possible modes: @table @option @item cqp -Constant quantizer: use fixed values of qindex (dependent on the frame type) -throughout the stream. This mode is the default. +Constant quantizer(crf: -1): use fixed values of qindex (dependent on the frame type) +throughout the stream. + +Constant quality(crf > 0): maintain a constant QP throughout the stream. This mode is +the default. @item vbr Variable bitrate: use a target bitrate for the whole stream. @@ -1826,6 +1829,9 @@ Set the minimum quantizer to use when using a bitrate mode. @item qp Set the quantizer used in cqp rate control mode (0-63). +@item crf +Select the quality for constant quality mode (0-63). + @item sc_detection Enable scene change detection. diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c index 509d92d..f982bb6 100644 --- a/libavcodec/libsvtav1.c +++ b/libavcodec/libsvtav1.c @@ -66,6 +66,7 @@ typedef struct SvtContext { int rc_mode; int scd; int qp; + int crf; int tier; @@ -210,6 +211,10 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param, param->min_qp_allowed = avctx->qmin; } else { param->enable_tpl_la = 0; /* CQP need turn off enable_tp_la */ + if ( svt_enc->crf > 0) { + param->qp = svt_enc->crf; + param->enable_tpl_la = 1; + } } /* 2 = IDR, closed GOP, 1 = CRA, open GOP */ @@ -523,13 +528,16 @@ static const AVOption options[] = { { "rc", "Bit rate control mode", OFFSET(rc_mode), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 2, VE , "rc"}, - { "cqp", "Constant quantizer", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, INT_MIN, INT_MAX, VE, "rc" }, + { "cqp", "Constant quantizer(crf: -1), Constant quality(crf > 0)", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, INT_MIN, INT_MAX, VE, "rc" }, { "vbr", "Variable Bit Rate, use a target bitrate for the entire stream", 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, INT_MIN, INT_MAX, VE, "rc" }, { "cvbr", "Constrained Variable Bit Rate, use a target bitrate for each GOP", 0, AV_OPT_TYPE_CONST,{ .i64 = 2 }, INT_MIN, INT_MAX, VE, "rc" }, { "qp", "Quantizer to use with cqp rate control mode", OFFSET(qp), AV_OPT_TYPE_INT, { .i64 = 50 }, 0, 63, VE }, + { "crf", "Select the quality for constant quality mode, set to -1 for cqp rate control mode", OFFSET(crf), + AV_OPT_TYPE_INT, { .i64 = 50 }, -1, 63, VE }, + { "sc_detection", "Scene change detection", OFFSET(scd), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, diff --git a/libavcodec/version.h b/libavcodec/version.h index 4b4fe54..b0a741b 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #define LIBAVCODEC_VERSION_MAJOR 59 #define LIBAVCODEC_VERSION_MINOR 7 -#define LIBAVCODEC_VERSION_MICRO 103 +#define LIBAVCODEC_VERSION_MICRO 104 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ -- 1.8.3.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".