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