diff options
author | Timo Rothenpieler <timo@rothenpieler.org> | 2017-03-23 17:01:40 +0100 |
---|---|---|
committer | Timo Rothenpieler <timo@rothenpieler.org> | 2017-03-23 17:10:52 +0100 |
commit | 7fb2a7afa174fcd31c7707d4c93c0afc33f060b7 (patch) | |
tree | 458e88e84549732072204395e71dc8c71d65398b | |
parent | 038e6aef7a54577a3bba6666cff21f5f4e3b2d0b (diff) | |
download | ffmpeg-7fb2a7afa174fcd31c7707d4c93c0afc33f060b7.tar.gz |
avcodec/nvenc: Deprecate usage of global_quality, introducing qp
-rw-r--r-- | libavcodec/nvenc.c | 16 | ||||
-rw-r--r-- | libavcodec/nvenc.h | 1 | ||||
-rw-r--r-- | libavcodec/nvenc_h264.c | 2 | ||||
-rw-r--r-- | libavcodec/nvenc_hevc.c | 2 | ||||
-rw-r--r-- | libavcodec/version.h | 2 |
5 files changed, 17 insertions, 6 deletions
diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index 0abada0ff0..49f32228bc 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -522,10 +522,10 @@ static av_cold void set_constqp(AVCodecContext *avctx) rc->constQP.qpIntra = rc->constQP.qpInterP; rc->constQP.qpInterB = rc->constQP.qpInterP; } - } else if (avctx->global_quality > 0) { - rc->constQP.qpInterP = avctx->global_quality; - rc->constQP.qpInterB = avctx->global_quality; - rc->constQP.qpIntra = avctx->global_quality; + } else if (ctx->cqp >= 0) { + rc->constQP.qpInterP = ctx->cqp; + rc->constQP.qpInterB = ctx->cqp; + rc->constQP.qpIntra = ctx->cqp; } avctx->qmin = -1; @@ -664,6 +664,12 @@ static av_cold void nvenc_setup_rate_control(AVCodecContext *avctx) { NvencContext *ctx = avctx->priv_data; + if (avctx->global_quality > 0) + av_log(avctx, AV_LOG_WARNING, "Using global_quality with nvenc is deprecated. Use qp instead.\n"); + + if (ctx->cqp < 0 && avctx->global_quality > 0) + ctx->cqp = avctx->global_quality; + if (avctx->bit_rate > 0) { ctx->encode_config.rcParams.averageBitRate = avctx->bit_rate; } else if (ctx->encode_config.rcParams.averageBitRate > 0) { @@ -688,7 +694,7 @@ static av_cold void nvenc_setup_rate_control(AVCodecContext *avctx) } else { ctx->rc = NV_ENC_PARAMS_RC_CBR; } - } else if (avctx->global_quality > 0) { + } else if (ctx->cqp >= 0) { ctx->rc = NV_ENC_PARAMS_RC_CONSTQP; } else if (ctx->twopass) { ctx->rc = NV_ENC_PARAMS_RC_2_PASS_VBR; diff --git a/libavcodec/nvenc.h b/libavcodec/nvenc.h index cfca2efcc5..7dec5cc685 100644 --- a/libavcodec/nvenc.h +++ b/libavcodec/nvenc.h @@ -158,6 +158,7 @@ typedef struct NvencContext int init_qp_p; int init_qp_b; int init_qp_i; + int cqp; } NvencContext; int ff_nvenc_encode_init(AVCodecContext *avctx); diff --git a/libavcodec/nvenc_h264.c b/libavcodec/nvenc_h264.c index b7d4004fd3..2c55b60789 100644 --- a/libavcodec/nvenc_h264.c +++ b/libavcodec/nvenc_h264.c @@ -112,6 +112,8 @@ static const AVOption options[] = { { "init_qpP", "Initial QP value for P frame", OFFSET(init_qp_p), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 51, VE }, { "init_qpB", "Initial QP value for B frame", OFFSET(init_qp_b), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 51, VE }, { "init_qpI", "Initial QP value for I frame", OFFSET(init_qp_i), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 51, VE }, + { "qp", "Constant quantization parameter rate control method", + OFFSET(cqp), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 51, VE }, { NULL } }; diff --git a/libavcodec/nvenc_hevc.c b/libavcodec/nvenc_hevc.c index 2804d7df5a..c32ba4220b 100644 --- a/libavcodec/nvenc_hevc.c +++ b/libavcodec/nvenc_hevc.c @@ -109,6 +109,8 @@ static const AVOption options[] = { { "init_qpP", "Initial QP value for P frame", OFFSET(init_qp_p), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 51, VE }, { "init_qpB", "Initial QP value for B frame", OFFSET(init_qp_b), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 51, VE }, { "init_qpI", "Initial QP value for I frame", OFFSET(init_qp_i), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 51, VE }, + { "qp", "Constant quantization parameter rate control method", + OFFSET(cqp), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 51, VE }, { NULL } }; diff --git a/libavcodec/version.h b/libavcodec/version.h index a545464bbc..5ca008fcb5 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #define LIBAVCODEC_VERSION_MAJOR 57 #define LIBAVCODEC_VERSION_MINOR 85 -#define LIBAVCODEC_VERSION_MICRO 101 +#define LIBAVCODEC_VERSION_MICRO 102 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ |