Quoting Niklas Haas (2023-11-09 13:19:46) >Subject: avfilter/vf_format: re-use AVFilterList for pix_fmt parsing ^^^^^^^^^^^^ You mean AVFilterFormats
> From: Niklas Haas <g...@haasn.dev> > > Rewrite the format parsing code to make it more easily generalizable. In > particular, `invert_formats` does not depend on the type of format list > passed to it, which allows me to re-use this helper in an upcoming > commit. > > Slightly shortens the code, at the sole cost of doing several malloc > (ff_add_format) instead of a single malloc. > --- > libavfilter/vf_format.c | 103 +++++++++++++++++----------------------- > 1 file changed, 43 insertions(+), 60 deletions(-) > > diff --git a/libavfilter/vf_format.c b/libavfilter/vf_format.c > index 1189bd61c2..b137e3075e 100644 > --- a/libavfilter/vf_format.c > +++ b/libavfilter/vf_format.c > @@ -41,25 +41,48 @@ typedef struct FormatContext { > const AVClass *class; > char *pix_fmts; > > - /** > - * pix_fmts parsed into AVPixelFormats and terminated with > - * AV_PIX_FMT_NONE > - */ > - enum AVPixelFormat *formats; > + AVFilterFormats *formats; ///< parsed from `pix_fmts` > } FormatContext; > > static av_cold void uninit(AVFilterContext *ctx) > { > FormatContext *s = ctx->priv; > - av_freep(&s->formats); > + ff_formats_unref(&s->formats); > +} > + > +static av_cold int invert_formats(AVFilterFormats **fmts, > + AVFilterFormats *allfmts) This would look better with AVFilterFormats vertically aligned as well. Looks ok otherwise, though I'm slightly surprised we don't seem to have a function for "is format in list?". -- Anton Khirnov _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".