Browse Source

nvenc: Remove qmin and qmax constraints for nvenc vbr

qmin and qmax are not necessary for nvenc vbr.

Also fix for using 2 pass vbr mode for slow preset through ctx->flag NVENC_TWO_PASSES.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
tags/n4.0
Ganapathy Kasi Luca Barbato 9 years ago
parent
commit
3303f86467
1 changed files with 7 additions and 8 deletions
  1. +7
    -8
      libavcodec/nvenc.c

+ 7
- 8
libavcodec/nvenc.c View File

@@ -559,12 +559,8 @@ static void nvenc_override_rate_control(AVCodecContext *avctx,
return; return;
case NV_ENC_PARAMS_RC_2_PASS_VBR: case NV_ENC_PARAMS_RC_2_PASS_VBR:
case NV_ENC_PARAMS_RC_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: case NV_ENC_PARAMS_RC_VBR_MINQP:
if (avctx->qmin < 0) { if (avctx->qmin < 0) {
av_log(avctx, AV_LOG_WARNING, av_log(avctx, AV_LOG_WARNING,
@@ -606,8 +602,11 @@ static void nvenc_setup_rate_control(AVCodecContext *avctx)
set_lossless(avctx, rc); set_lossless(avctx, rc);
} else if (avctx->global_quality > 0) { } else if (avctx->global_quality > 0) {
set_constqp(avctx, rc); 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); set_vbr(avctx, rc);
} }




Loading…
Cancel
Save