return;
case NV_ENC_PARAMS_RC_2_PASS_VBR:
case NV_ENC_PARAMS_RC_VBR:
- if (avctx->qmin < 0 && avctx->qmax < 0) {
- av_log(avctx, AV_LOG_WARNING,
- "The variable bitrate rate-control requires "
- "the 'qmin' and/or 'qmax' option set.\n");
- return;
- }
+ set_vbr(avctx, rc);
+ break;
case NV_ENC_PARAMS_RC_VBR_MINQP:
if (avctx->qmin < 0) {
av_log(avctx, AV_LOG_WARNING,
set_lossless(avctx, rc);
} else if (avctx->global_quality > 0) {
set_constqp(avctx, rc);
- } else if (avctx->qmin >= 0 && avctx->qmax >= 0) {
- rc->rateControlMode = NV_ENC_PARAMS_RC_VBR;
+ } else {
+ if (ctx->flags & NVENC_TWO_PASSES)
+ rc->rateControlMode = NV_ENC_PARAMS_RC_2_PASS_VBR;
+ else
+ rc->rateControlMode = NV_ENC_PARAMS_RC_VBR;
set_vbr(avctx, rc);
}