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

Danil Chapovalov danilchap at google.com
Mon Mar 28 17:04:47 EEST 2022


On Thu, Mar 24, 2022 at 7:27 PM James Zern <jzern at google.com> wrote:
>
> 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

As I understand, docs describe command line options.
I do not plan to expose changing qmax per frame as a command line
option, I do not see how that can be reasonably done. My intent is to
change max qp when ffmpeg is used as a library.

I agree it looks unbalanced to change just the qmax, but that is the
only parameter I currently need for my usecase. Personally I prefer to
only add features that are planned to be used.
Are there any particular configuration settings you want me to make
configurable,
or do you think it is better to support all settings that can be configurable?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4002 bytes
Desc: S/MIME Cryptographic Signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20220328/29172ed3/attachment.bin>


More information about the ffmpeg-devel mailing list