lavfi: handle NULL lists in avfilter_make_format_list

This commit is contained in:
Mina Nagy Zaki 2011-06-07 17:42:32 +03:00 committed by Stefano Sabatini
parent 9e4cb03a93
commit 47d2ca3205
2 changed files with 11 additions and 7 deletions

View File

@ -27,7 +27,7 @@
#define LIBAVFILTER_VERSION_MAJOR 2
#define LIBAVFILTER_VERSION_MINOR 14
#define LIBAVFILTER_VERSION_MICRO 0
#define LIBAVFILTER_VERSION_MICRO 1
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
LIBAVFILTER_VERSION_MINOR, \
@ -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);

View File

@ -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;
}