diff options
author | Roman Arzumanyan <rarzumanyan@nvidia.com> | 2020-04-20 13:53:36 +0300 |
---|---|---|
committer | Timo Rothenpieler <timo@rothenpieler.org> | 2020-06-01 19:55:37 +0200 |
commit | e3883657540d4e99f0f77a3337aa37db4464eda3 (patch) | |
tree | 216034db4f9664e332a7c035807384f87e822024 | |
parent | bf7ed52c25b4e9ed15a469e9119a0d4f7cfdd1b7 (diff) | |
download | ffmpeg-e3883657540d4e99f0f77a3337aa37db4464eda3.tar.gz |
avcodec/nvenc: zero avg and max bitrate in CQ mode
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
-rw-r--r-- | libavcodec/nvenc.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index 5fa44b1819..8298aec671 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -912,12 +912,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; } } |