[FFmpeg-devel] [PATCH v2 06/11] vaapi_encode_vp9: Enable support for more RC modes
Carl Eugen Hoyos
ceffmpeg at gmail.com
Tue Feb 5 15:25:15 EET 2019
2019-01-28 0:47 GMT+01:00, Mark Thompson <sw at jkqxz.net>:
> ---
> libavcodec/vaapi_encode_vp9.c | 41 +++++++++++++++++++++--------------
> 1 file changed, 25 insertions(+), 16 deletions(-)
>
> diff --git a/libavcodec/vaapi_encode_vp9.c b/libavcodec/vaapi_encode_vp9.c
> index 97142dcc49..f89fd0d07a 100644
> --- a/libavcodec/vaapi_encode_vp9.c
> +++ b/libavcodec/vaapi_encode_vp9.c
> @@ -178,23 +178,29 @@ static int
> vaapi_encode_vp9_init_picture_params(AVCodecContext *avctx,
>
> static av_cold int vaapi_encode_vp9_configure(AVCodecContext *avctx)
> {
> + VAAPIEncodeContext *ctx = avctx->priv_data;
> VAAPIEncodeVP9Context *priv = avctx->priv_data;
>
> - priv->q_idx_p = av_clip(avctx->global_quality, 0, VP9_MAX_QUANT);
> - if (avctx->i_quant_factor > 0.0)
> - priv->q_idx_idr = av_clip((avctx->global_quality *
> - avctx->i_quant_factor +
> - avctx->i_quant_offset) + 0.5,
> - 0, VP9_MAX_QUANT);
> - else
> - priv->q_idx_idr = priv->q_idx_p;
> - if (avctx->b_quant_factor > 0.0)
> - priv->q_idx_b = av_clip((avctx->global_quality *
> - avctx->b_quant_factor +
> - avctx->b_quant_offset) + 0.5,
> - 0, VP9_MAX_QUANT);
> - else
> - priv->q_idx_b = priv->q_idx_p;
> + if (ctx->rc_mode->quality) {
> + priv->q_idx_p = av_clip(ctx->rc_quality, 0, VP9_MAX_QUANT);
> + if (avctx->i_quant_factor > 0.0)
> + priv->q_idx_idr =
> + av_clip((avctx->i_quant_factor * priv->q_idx_p +
> + avctx->i_quant_offset) + 0.5,
> + 0, VP9_MAX_QUANT);
> + else
> + priv->q_idx_idr = priv->q_idx_p;
> + if (avctx->b_quant_factor > 0.0)
> + priv->q_idx_b =
> + av_clip((avctx->b_quant_factor * priv->q_idx_p +
> + avctx->b_quant_offset) + 0.5,
> + 0, VP9_MAX_QUANT);
> + else
> + priv->q_idx_b = priv->q_idx_p;
I will not work on this code, so I shouldn't care but this
is an exceptional example for an unreadable patch.
Carl Eugen
More information about the ffmpeg-devel
mailing list