diff options
author | Mark Thompson <sw@jkqxz.net> | 2019-02-10 19:46:58 +0000 |
---|---|---|
committer | Mark Thompson <sw@jkqxz.net> | 2019-02-25 23:34:14 +0000 |
commit | 2efd63a3158d62e7922427a19cbc9fe4b79399fa (patch) | |
tree | 6110b18a74e0da36104db0861893fa80ee581f8c /libavcodec | |
parent | 1e0fac76639e31eea48aa315cbca89aeb4761fde (diff) | |
download | ffmpeg-2efd63a3158d62e7922427a19cbc9fe4b79399fa.tar.gz |
vaapi_encode_vp8: Enable support for more RC modes
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/vaapi_encode_vp8.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/libavcodec/vaapi_encode_vp8.c b/libavcodec/vaapi_encode_vp8.c index 166636cd84..ddbe4c9075 100644 --- a/libavcodec/vaapi_encode_vp8.c +++ b/libavcodec/vaapi_encode_vp8.c @@ -161,14 +161,15 @@ static int vaapi_encode_vp8_write_quant_table(AVCodecContext *avctx, static av_cold int vaapi_encode_vp8_configure(AVCodecContext *avctx) { + VAAPIEncodeContext *ctx = avctx->priv_data; VAAPIEncodeVP8Context *priv = avctx->priv_data; - priv->q_index_p = av_clip(avctx->global_quality, 0, VP8_MAX_QUANT); + priv->q_index_p = av_clip(ctx->rc_quality, 0, VP8_MAX_QUANT); if (avctx->i_quant_factor > 0.0) - priv->q_index_i = av_clip((avctx->global_quality * - avctx->i_quant_factor + - avctx->i_quant_offset) + 0.5, - 0, VP8_MAX_QUANT); + priv->q_index_i = + av_clip((avctx->i_quant_factor * priv->q_index_p + + avctx->i_quant_offset) + 0.5, + 0, VP8_MAX_QUANT); else priv->q_index_i = priv->q_index_p; @@ -185,6 +186,8 @@ static const VAAPIEncodeType vaapi_encode_type_vp8 = { .configure = &vaapi_encode_vp8_configure, + .default_quality = 40, + .sequence_params_size = sizeof(VAEncSequenceParameterBufferVP8), .init_sequence_params = &vaapi_encode_vp8_init_sequence_params, @@ -215,6 +218,8 @@ static av_cold int vaapi_encode_vp8_init(AVCodecContext *avctx) #define FLAGS (AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM) static const AVOption vaapi_encode_vp8_options[] = { VAAPI_ENCODE_COMMON_OPTIONS, + VAAPI_ENCODE_RC_OPTIONS, + { "loop_filter_level", "Loop filter level", OFFSET(loop_filter_level), AV_OPT_TYPE_INT, { .i64 = 16 }, 0, 63, FLAGS }, { "loop_filter_sharpness", "Loop filter sharpness", @@ -226,7 +231,6 @@ static const AVCodecDefault vaapi_encode_vp8_defaults[] = { { "b", "0" }, { "bf", "0" }, { "g", "120" }, - { "global_quality", "40" }, { "qmin", "-1" }, { "qmax", "-1" }, { NULL }, |