From 0842fd2c25c050e595083ba1e8c5176da3d55c9b Mon Sep 17 00:00:00 2001 From: Roman Arzumanyan Date: Mon, 20 Apr 2020 13:53:36 +0300 Subject: [PATCH] avcodec/nvenc: zero avg and max bitrate in CQ mode Signed-off-by: Timo Rothenpieler --- libavcodec/nvenc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index cbdddd33f9..a9f9600fde 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -947,12 +947,17 @@ static av_cold void nvenc_setup_rate_control(AVCodecContext *avctx) if (ctx->zerolatency) ctx->encode_config.rcParams.zeroReorderDelay = 1; - if (ctx->quality) - { + if (ctx->quality) { //convert from float to fixed point 8.8 int tmp_quality = (int)(ctx->quality * 256.0f); ctx->encode_config.rcParams.targetQuality = (uint8_t)(tmp_quality >> 8); ctx->encode_config.rcParams.targetQualityLSB = (uint8_t)(tmp_quality & 0xff); + + av_log(avctx, AV_LOG_VERBOSE, "CQ(%d) mode enabled.\n", tmp_quality); + + //CQ mode shall discard max & avg bitrate; + avctx->bit_rate = ctx->encode_config.rcParams.averageBitRate = 0; + avctx->rc_max_rate = ctx->encode_config.rcParams.maxBitRate = 0; } }