aboutsummaryrefslogtreecommitdiffstats
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
parent3e4666f34cc6bbec7785b464b271c6ecf04a4d71 (diff)
downloadffmpeg-df4c7ae9db04206c7557e9eaa1b16274e1bea965.tar.gz
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.
-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, \