On date Wednesday 2011-06-08 01:55:53 +0200, Stefano Sabatini encoded: > On date Tuesday 2011-06-07 17:51:27 +0300, Mina Nagy Zaki encoded: > > This makes an empty list mean 'all formats supported'. This will simplify > > some > > things for the format negotiation later on. Before the patch, returning an > > empty list in query_formats() would simply mean no format supported, which > > is > > non-sensical. This way a lot of unnecessary merging of 'all formats' lists > > is > > avoided. > > > > > > -- > > Mina > > > From 46347d6ded4272430a386696065af5a6f9993abb Mon Sep 17 00:00:00 2001 > > From: Mina Nagy Zaki <[email protected]> > > Date: Tue, 7 Jun 2011 17:42:32 +0300 > > Subject: [PATCH 1/2] lavfi: Make avfilter_make_format_list handle NULL > > lists. > > > > --- > > libavfilter/avfilter.h | 3 ++- > > libavfilter/formats.c | 13 ++++++++----- > > 2 files changed, 10 insertions(+), 6 deletions(-) > > > > diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h > > index 9b1ea2d..0375a38 100644 > > --- a/libavfilter/avfilter.h > > +++ b/libavfilter/avfilter.h > > @@ -233,7 +233,8 @@ typedef struct AVFilterFormats { > > * Create a list of supported formats. This is intended for use in > > * AVFilter->query_formats(). > > * > > - * @param fmts list of media formats, terminated by -1 > > + * @param fmts list of media formats, terminated by -1. If NULL an > > + * empty list is created. > > * @return the format list, with no existing references > > */ > > AVFilterFormats *avfilter_make_format_list(const int *fmts); > > diff --git a/libavfilter/formats.c b/libavfilter/formats.c > > index 101ef09..ec7fca3 100644 > > --- a/libavfilter/formats.c > > +++ b/libavfilter/formats.c > > @@ -73,15 +73,18 @@ AVFilterFormats *avfilter_merge_formats(AVFilterFormats > > *a, AVFilterFormats *b) > > AVFilterFormats *avfilter_make_format_list(const int *fmts) > > { > > AVFilterFormats *formats; > > - int count; > > + int count = 0; > > > > - for (count = 0; fmts[count] != -1; count++) > > - ; > > + if (fmts) > > + for (count = 0; fmts[count] != -1; count++) > > + ; > > > > formats = av_mallocz(sizeof(AVFilterFormats)); > > - formats->formats = av_malloc(sizeof(*formats->formats) * count); > > formats->format_count = count; > > - memcpy(formats->formats, fmts, sizeof(*formats->formats) * count); > > + if (count) { > > + formats->formats = av_malloc(sizeof(*formats->formats) * count); > > + memcpy(formats->formats, fmts, sizeof(*formats->formats) * count); > > + } > > > > return formats; > > } > > -- > > 1.7.4.4 > > Makes sense, I'll apply it tomorrow if I see no objections.
Pushed. -- FFmpeg = Fostering and Frenzy Mind-dumbing Pitiless Elegant Glue _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
