[FFmpeg-devel] [PATCH] avcodec/libvpxenc: enable dynamic max quantizer parameter reconfiguration

James Zern jzern at google.com
Thu Mar 24 20:27:20 EET 2022


On Thu, Mar 24, 2022 at 6:12 AM Danil Chapovalov
<danilchap-at-google.com at ffmpeg.org> wrote:
>
> ---
>  libavcodec/libvpxenc.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
> index dff1d06b0e..463a658bb0 100644
> --- a/libavcodec/libvpxenc.c
> +++ b/libavcodec/libvpxenc.c
> @@ -1625,6 +1625,12 @@ static int vpx_encode(AVCodecContext *avctx, AVPacket *pkt,
>      vpx_svc_layer_id_t layer_id;
>      int layer_id_valid = 0;
>
> +    if (avctx->qmax >= 0 && enccfg->rc_max_quantizer != avctx->qmax) {
> +        struct vpx_codec_enc_cfg cfg = *enccfg;
> +        cfg.rc_max_quantizer = avctx->qmax;
> +        vpx_codec_enc_config_set(&ctx->encoder, &cfg);
> +    }
> +

Jan, I think this was what you were suggesting, no?
The docs could be updated to note qmax can be changed per-frame
[1][2]. Saying that, it does seem a bit unbalanced to only do qmax
here.

[1] https://ffmpeg.org/ffmpeg-codecs.html#libvpx
[2] https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/doc/encoders.texi#l2000


More information about the ffmpeg-devel mailing list