Browse Source

avcodec/nvenc: zero avg and max bitrate in CQ mode

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
tags/n4.3
Roman Arzumanyan Timo Rothenpieler 5 years ago
parent
commit
0842fd2c25
1 changed files with 7 additions and 2 deletions
  1. +7
    -2
      libavcodec/nvenc.c

+ 7
- 2
libavcodec/nvenc.c View File

@@ -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;
}
}



Loading…
Cancel
Save