summaryrefslogtreecommitdiff
path: root/libavcodec/vaapi_encode_vp8.c
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2019-02-10 19:46:58 +0000
committerMark Thompson <sw@jkqxz.net>2019-02-25 23:34:14 +0000
commit2efd63a3158d62e7922427a19cbc9fe4b79399fa (patch)
tree6110b18a74e0da36104db0861893fa80ee581f8c /libavcodec/vaapi_encode_vp8.c
parent1e0fac76639e31eea48aa315cbca89aeb4761fde (diff)
vaapi_encode_vp8: Enable support for more RC modes
Diffstat (limited to 'libavcodec/vaapi_encode_vp8.c')
-rw-r--r--libavcodec/vaapi_encode_vp8.c16
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 },