summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorStefano Sabatini <stefano.sabatini-lala@poste.it>2011-08-18 14:58:47 +0200
committerStefano Sabatini <stefano.sabatini-lala@poste.it>2011-08-22 10:34:43 +0200
commitdf4c7ae9db04206c7557e9eaa1b16274e1bea965 (patch)
treea027af9e1def3445792c9521c9a284d719a45534 /libavfilter
parent3e4666f34cc6bbec7785b464b271c6ecf04a4d71 (diff)
asink_abuffer: extend ABufferSinkContext to make it accept lists of formats in input
This is required for the pending lavfi indev extension, also consistent with the video buffer sink.
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/asink_abuffer.c18
-rw-r--r--libavfilter/asink_abuffer.h6
-rw-r--r--libavfilter/avfilter.h2
3 files changed, 11 insertions, 15 deletions
diff --git a/libavfilter/asink_abuffer.c b/libavfilter/asink_abuffer.c
index f4e7740b6d..25950d83a1 100644
--- a/libavfilter/asink_abuffer.c
+++ b/libavfilter/asink_abuffer.c
@@ -46,22 +46,18 @@ static int init(AVFilterContext *ctx, const char *args, void *opaque)
static int query_formats(AVFilterContext *ctx)
{
ABufferSinkContext *abuffersink = ctx->priv;
- AVFilterFormats *formats;
- int ret;
+ AVFilterFormats *formats = NULL;
- formats = NULL;
- if ((ret = avfilter_add_format(&formats, abuffersink->sample_fmt)) < 0)
- return ret;
+ if (!(formats = avfilter_make_format_list(abuffersink->sample_fmts)))
+ return AVERROR(ENOMEM);
avfilter_set_common_sample_formats(ctx, formats);
- formats = NULL;
- if ((ret = avfilter_add_format(&formats, abuffersink->channel_layout)) < 0)
- return ret;
+ if (!(formats = avfilter_make_format64_list(abuffersink->channel_layouts)))
+ return AVERROR(ENOMEM);
avfilter_set_common_channel_layouts(ctx, formats);
- formats = NULL;
- if ((ret = avfilter_add_format(&formats, abuffersink->planar)) < 0)
- return ret;
+ if (!(formats = avfilter_make_format_list(abuffersink->packing_fmts)))
+ return AVERROR(ENOMEM);
avfilter_set_common_packing_formats(ctx, formats);
return 0;
diff --git a/libavfilter/asink_abuffer.h b/libavfilter/asink_abuffer.h
index 2c039fb3af..d0b822a2a3 100644
--- a/libavfilter/asink_abuffer.h
+++ b/libavfilter/asink_abuffer.h
@@ -27,9 +27,9 @@
#include "avfilter.h"
typedef struct {
- enum AVSampleFormat sample_fmt;
- int64_t channel_layout;
- int planar;
+ const enum AVSampleFormat *sample_fmts; ///< list of allowed sample formats, terminated by -1
+ const int64_t *channel_layouts; ///< list of allowed channel layouts, terminated by -1
+ const int *packing_fmts; ///< list of allowed packing formats, terminated by -1
} ABufferSinkContext;
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 03fc83a85b..e7b70fb454 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -30,7 +30,7 @@
#define LIBAVFILTER_VERSION_MAJOR 2
#define LIBAVFILTER_VERSION_MINOR 34
-#define LIBAVFILTER_VERSION_MICRO 1
+#define LIBAVFILTER_VERSION_MICRO 2
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
LIBAVFILTER_VERSION_MINOR, \