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.
This commit is contained in:
Stefano Sabatini 2011-08-18 14:58:47 +02:00
parent 3e4666f34c
commit df4c7ae9db
3 changed files with 11 additions and 15 deletions

View File

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

View File

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

View File

@ -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, \