[FFmpeg-devel] [PATCH] Allow to modify max qp configuration parameter in libvpx without reseting the encoder

Jan Ekström jeebjp at gmail.com
Mon Mar 14 17:27:36 EET 2022


On Mon, Mar 14, 2022 at 3:05 PM Danil Chapovalov
<danilchap-at-google.com at ffmpeg.org> wrote:
>
> ---

Probably something a la

avcodec/libvpxenc: enable dynamic quantizer reconfiguration

?

>  libavcodec/libvpxenc.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
> index 8f94ba15dc..45baeed435 100644
> --- a/libavcodec/libvpxenc.c
> +++ b/libavcodec/libvpxenc.c
> @@ -1658,6 +1658,13 @@ static int vpx_encode(AVCodecContext *avctx, AVPacket *pkt,
>                  flags |= strtoul(en->value, NULL, 10);
>              }
>
> +            en = av_dict_get(frame->metadata, "max-quantizer", NULL, 0);
> +            if (en) {
> +                struct vpx_codec_enc_cfg cfg = *enccfg;
> +                cfg.rc_max_quantizer = strtoul(en->value, NULL, 10);
> +                vpx_codec_enc_config_set(&ctx->encoder, &cfg);
> +            }
> +

There is side data already defined for quantizers, AVVideoEncParams /
AV_FRAME_DATA_VIDEO_ENC_PARAMS .

In other words, this should be handled in a similar manner to ROI, not
as an ad-hoc metadata key in the AVFrame.

Cheers,
Jan


More information about the ffmpeg-devel mailing list