summaryrefslogtreecommitdiff
path: root/libavfilter/formats.c
diff options
context:
space:
mode:
authorNicolas George <nicolas.george@normalesup.org>2012-05-18 12:43:31 +0200
committerNicolas George <nicolas.george@normalesup.org>2012-05-19 15:30:51 +0200
commit5ac9ef6493e7bf4c66cd16f7555ecf7d6929ebf6 (patch)
tree7d82806133d0ebd210e808778081ea2a26af2cbc /libavfilter/formats.c
parent0e82d317ebfc1eda840bdb714c8ecb4630dae389 (diff)
avfilter: make AVFilterFormats compatible with libav.
The list goes back to being simple integers, and avfilter_make_format64_list is fixed to work with the correct structure directly.
Diffstat (limited to 'libavfilter/formats.c')
-rw-r--r--libavfilter/formats.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/libavfilter/formats.c b/libavfilter/formats.c
index 16e14fae87..d0ff717d85 100644
--- a/libavfilter/formats.c
+++ b/libavfilter/formats.c
@@ -196,18 +196,18 @@ int64_t *ff_copy_int64_list(const int64_t * const list)
return ret;
}
-#define MAKE_FORMAT_LIST() \
- AVFilterFormats *formats; \
+#define MAKE_FORMAT_LIST(type, field, count_field) \
+ type *formats; \
int count = 0; \
if (fmts) \
for (count = 0; fmts[count] != -1; count++) \
; \
- formats = av_mallocz(sizeof(AVFilterFormats)); \
+ formats = av_mallocz(sizeof(*formats)); \
if (!formats) return NULL; \
- formats->format_count = count; \
+ formats->count_field = count; \
if (count) { \
- formats->formats = av_malloc(sizeof(*formats->formats)*count); \
- if (!formats->formats) { \
+ formats->field = av_malloc(sizeof(*formats->field)*count); \
+ if (!formats->field) { \
av_free(formats); \
return NULL; \
} \
@@ -215,7 +215,7 @@ int64_t *ff_copy_int64_list(const int64_t * const list)
AVFilterFormats *avfilter_make_format_list(const int *fmts)
{
- MAKE_FORMAT_LIST();
+ MAKE_FORMAT_LIST(AVFilterFormats, formats, format_count);
while (count--)
formats->formats[count] = fmts[count];
@@ -224,11 +224,13 @@ AVFilterFormats *avfilter_make_format_list(const int *fmts)
AVFilterChannelLayouts *avfilter_make_format64_list(const int64_t *fmts)
{
- MAKE_FORMAT_LIST();
+ MAKE_FORMAT_LIST(AVFilterChannelLayouts,
+ channel_layouts, nb_channel_layouts);
if (count)
- memcpy(formats->formats, fmts, sizeof(*formats->formats) * count);
+ memcpy(formats->channel_layouts, fmts,
+ sizeof(*formats->channel_layouts) * count);
- return (AVFilterChannelLayouts*)formats;
+ return formats;
}
#define ADD_FORMAT(f, fmt, type, list, nb) \
@@ -250,7 +252,7 @@ do { \
int avfilter_add_format(AVFilterFormats **avff, int64_t fmt)
{
- ADD_FORMAT(avff, fmt, int64_t, formats, format_count);
+ ADD_FORMAT(avff, fmt, int, formats, format_count);
}
int ff_add_channel_layout(AVFilterChannelLayouts **l, uint64_t channel_layout)