[FFmpeg-devel] [PATCH] avcodec/libaomenc: Expose the allintra usage mode

Vignesh Venkatasubramanian vigneshv at google.com
Wed May 18 20:37:46 EEST 2022


On Wed, May 18, 2022 at 10:01 AM James Almer <jamrial at gmail.com> wrote:
>
>
>
> On 5/18/2022 1:39 PM, Vignesh Venkatasubramanian wrote:
> > libaom added an usage=allintra mode for doing better with still
> > images. Expose that in the ffmpeg's wrapper. This is especially
> > useful for encoding still AVIF images.
> >
> > Signed-off-by: Vignesh Venkatasubramanian <vigneshv at google.com>
> > ---
> >   libavcodec/libaomenc.c | 3 +++
> >   1 file changed, 3 insertions(+)
> >
> > diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c
> > index 0411773bbf..d93d1b5e3c 100644
> > --- a/libavcodec/libaomenc.c
> > +++ b/libavcodec/libaomenc.c
> > @@ -1300,6 +1300,9 @@ static const AVOption options[] = {
> >       { "usage",           "Quality and compression efficiency vs speed trade-off", OFFSET(usage), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, VE, "usage"},
> >       { "good",            "Good quality",      0, AV_OPT_TYPE_CONST, {.i64 = 0 /* AOM_USAGE_GOOD_QUALITY */}, 0, 0, VE, "usage"},
> >       { "realtime",        "Realtime encoding", 0, AV_OPT_TYPE_CONST, {.i64 = 1 /* AOM_USAGE_REALTIME */},     0, 0, VE, "usage"},
> > +#ifdef AOM_USAGE_ALL_INTRA
>
> There's no need to wrap this if you're not using the actual define below.
> Realtime above was added without a wrapper because libaom versions that
> don't support usage == 1 just ignore the value if given (or error out).
> I expect the same for this allintra one.
>
> It's better from an API pov that lavc always accepts the "allintra"
> constant value for the usage avoption, and not depend on the libaom
> version used at link time.
>

Makes sense. Removed the #ifdef.

> > +    { "allintra",        "All Intra encoding", 0, AV_OPT_TYPE_CONST, {.i64 = 2 /* AOM_USAGE_ALL_INTRA */},    0, 0, VE, "usage"},
> > +#endif
> >       { "tune",            "The metric that the encoder tunes for. Automatically chosen by the encoder by default", OFFSET(tune), AV_OPT_TYPE_INT, {.i64 = -1}, -1, AOM_TUNE_SSIM, VE, "tune"},
> >       { "psnr",            NULL,         0, AV_OPT_TYPE_CONST, {.i64 = AOM_TUNE_PSNR}, 0, 0, VE, "tune"},
> >       { "ssim",            NULL,         0, AV_OPT_TYPE_CONST, {.i64 = AOM_TUNE_SSIM}, 0, 0, VE, "tune"},
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".



-- 
Vignesh


More information about the ffmpeg-devel mailing list