This was added in libva 2.1.0 (VAAPI 1.1.0). Use AVCodecContext.qmax, matching the existing behaviour for qmin, and clean up the defaults so that we only pass min/max when explicitly set. --- doc/encoders.texi | 3 ++- libavcodec/vaapi_encode.c | 3 +++ libavcodec/vaapi_encode_h264.c | 3 ++- libavcodec/vaapi_encode_h265.c | 2 ++ libavcodec/vaapi_encode_mpeg2.c | 2 ++ libavcodec/vaapi_encode_vp8.c | 2 ++ libavcodec/vaapi_encode_vp9.c | 2 ++ 7 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/doc/encoders.texi b/doc/encoders.texi index 0c0a307987..861f9f4f1f 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -2588,7 +2588,8 @@ Speed / quality tradeoff: higher values are faster / worse quality. Size / quality tradeoff: higher values are smaller / worse quality. @item @option{qmin} -(only: @option{qmax} is not supported) +@item +@option{qmax} @item @option{i_qfactor} / @option{i_quant_factor} @item diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index 6188423935..39c622dacc 100644 --- a/libavcodec/vaapi_encode.c +++ b/libavcodec/vaapi_encode.c @@ -1415,6 +1415,9 @@ static av_cold int vaapi_encode_init_rate_control(AVCodecContext *avctx) .initial_qp = 0, .min_qp = (avctx->qmin > 0 ? avctx->qmin : 0), .basic_unit_size = 0, +#if VA_CHECK_VERSION(1, 1, 0) + .max_qp = (avctx->qmax > 0 ? avctx->qmax : 0), +#endif }; vaapi_encode_add_global_param(avctx, &ctx->rc_params.misc, sizeof(ctx->rc_params)); diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c index e75b91eb55..514805d0c2 100644 --- a/libavcodec/vaapi_encode_h264.c +++ b/libavcodec/vaapi_encode_h264.c @@ -1027,7 +1027,8 @@ static const AVCodecDefault vaapi_encode_h264_defaults[] = { { "i_qoffset", "0" }, { "b_qfactor", "6/5" }, { "b_qoffset", "0" }, - { "qmin", "0" }, + { "qmin", "-1" }, + { "qmax", "-1" }, { NULL }, }; diff --git a/libavcodec/vaapi_encode_h265.c b/libavcodec/vaapi_encode_h265.c index fa9d838bdc..8a31a73148 100644 --- a/libavcodec/vaapi_encode_h265.c +++ b/libavcodec/vaapi_encode_h265.c @@ -992,6 +992,8 @@ static const AVCodecDefault vaapi_encode_h265_defaults[] = { { "i_qoffset", "0" }, { "b_qfactor", "6/5" }, { "b_qoffset", "0" }, + { "qmin", "-1" }, + { "qmax", "-1" }, { NULL }, }; diff --git a/libavcodec/vaapi_encode_mpeg2.c b/libavcodec/vaapi_encode_mpeg2.c index b7189b2d67..42ddb0a284 100644 --- a/libavcodec/vaapi_encode_mpeg2.c +++ b/libavcodec/vaapi_encode_mpeg2.c @@ -673,6 +673,8 @@ static const AVCodecDefault vaapi_encode_mpeg2_defaults[] = { { "b_qfactor", "6/5" }, { "b_qoffset", "0" }, { "global_quality", "10" }, + { "qmin", "-1" }, + { "qmax", "-1" }, { NULL }, }; diff --git a/libavcodec/vaapi_encode_vp8.c b/libavcodec/vaapi_encode_vp8.c index dd7943133e..2026e3276b 100644 --- a/libavcodec/vaapi_encode_vp8.c +++ b/libavcodec/vaapi_encode_vp8.c @@ -228,6 +228,8 @@ static const AVCodecDefault vaapi_encode_vp8_defaults[] = { { "bf", "0" }, { "g", "120" }, { "global_quality", "40" }, + { "qmin", "-1" }, + { "qmax", "-1" }, { NULL }, }; diff --git a/libavcodec/vaapi_encode_vp9.c b/libavcodec/vaapi_encode_vp9.c index 794b308fa5..fa77b9b298 100644 --- a/libavcodec/vaapi_encode_vp9.c +++ b/libavcodec/vaapi_encode_vp9.c @@ -253,6 +253,8 @@ static const AVCodecDefault vaapi_encode_vp9_defaults[] = { { "bf", "0" }, { "g", "250" }, { "global_quality", "100" }, + { "qmin", "-1" }, + { "qmax", "-1" }, { NULL }, }; -- 2.16.3 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel