[FFmpeg-devel] [PATCH] Add enable_keyframe_filtering option for libaom-av1 encoder.

Bohan Li bohanli at google.com
Mon Oct 26 23:12:35 EET 2020


Thank you for the prompt response! I'll fix the typo, add documentation and
re-submit.

Regarding the last comment, the enable-keyframe-filtering parameter was a
boolean, but recently there is one more option added to libaom
(--enable-keyframe-filtering=2), so I thought it would be better to use
 AV_OPT_TYPE_INT here so people who build libaom from source could use that
option.

Please let me know if there are any concerns with it.

Thanks and best regards,
Bohan


On Mon, Oct 26, 2020 at 2:07 PM James Almer <jamrial at gmail.com> wrote:

> On 10/26/2020 6:01 PM, Bohan Li wrote:
> > Signed-off-by: Bohan Li <bohanli at google.com>
> > ---
> >  libavcodec/libaomenc.c | 5 +++++
> >  1 file changed, 5 insertions(+)
>
> Missing documentation.
>
> >
> > diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c
> > index 2b0581b15a..a5d9843ae2 100644
> > --- a/libavcodec/libaomenc.c
> > +++ b/libavcodec/libaomenc.c
> > @@ -124,6 +124,7 @@ typedef struct AOMEncoderContext {
> >      int enable_diff_wtd_comp;
> >      int enable_dist_wtd_comp;
> >      int enable_dual_filter;
> > +    int enable_keyframe_filtering;
> >  } AOMContext;
> >
> >  static const char *const ctlidstr[] = {
> > @@ -192,6 +193,7 @@ static const char *const ctlidstr[] = {
> >      [AV1E_SET_REDUCED_REFERENCE_SET]    =
> "AV1E_SET_REDUCED_REFERENCE_SET",
> >      [AV1E_SET_ENABLE_SMOOTH_INTERINTRA] =
> "AV1E_SET_ENABLE_SMOOTH_INTERINTRA",
> >      [AV1E_SET_ENABLE_REF_FRAME_MVS]     =
> "AV1E_SET_ENABLE_REF_FRAME_MVS",
> > +    [AV1E_SET_ENABLE_KEYFRAME_FILTERING] =
> "AV1E_SET_ENABLE_KEYFRAME_FILTRING"
>
> FILTRING typo.
>
> >  #endif
> >  };
> >
> > @@ -812,6 +814,8 @@ static av_cold int aom_init(AVCodecContext *avctx,
> >          codecctl_int(avctx, AV1E_SET_ENABLE_ONESIDED_COMP,
> ctx->enable_onesided_comp);
> >      if (ctx->enable_smooth_interintra >= 0)
> >          codecctl_int(avctx, AV1E_SET_ENABLE_SMOOTH_INTERINTRA,
> ctx->enable_smooth_interintra);
> > +    if (ctx->enable_keyframe_filtering >= 0)
> > +        codecctl_int(avctx, AV1E_SET_ENABLE_KEYFRAME_FILTERING,
> ctx->enable_keyframe_filtering);
> >  #endif
> >
> >      codecctl_int(avctx, AOME_SET_STATIC_THRESHOLD, ctx->static_thresh);
> > @@ -1261,6 +1265,7 @@ static const AVOption options[] = {
> >      { "enable-masked-comp",           "Enable masked compound",
>                     OFFSET(enable_masked_comp),           AV_OPT_TYPE_BOOL,
> {.i64 = -1}, -1, 1, VE},
> >      { "enable-interintra-comp",       "Enable interintra compound",
>                     OFFSET(enable_interintra_comp),       AV_OPT_TYPE_BOOL,
> {.i64 = -1}, -1, 1, VE},
> >      { "enable-smooth-interintra",     "Enable smooth interintra mode",
>                    OFFSET(enable_smooth_interintra),     AV_OPT_TYPE_BOOL,
> {.i64 = -1}, -1, 1, VE},
> > +    { "enable-keyframe-filtering",    "Enable keyframe filtering
> type",                    OFFSET(enable_keyframe_filtering),
> AV_OPT_TYPE_INT,  {.i64 = -1}, -1, 3, VE},
>
> It's a boolean, so use AV_OPT_TYPE_BOOL.
>
> >      { NULL },
> >  };
> >
> >
>
> _______________________________________________
> 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".


More information about the ffmpeg-devel mailing list