[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