lavfi: implement ff_query_formats_all().

This commit is contained in:
Nicolas George 2012-12-26 16:47:18 +01:00
parent 7bb98b753b
commit b6b2f3433c
2 changed files with 21 additions and 2 deletions

View File

@ -516,7 +516,8 @@ void ff_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats)
ff_formats_ref, formats);
}
int ff_default_query_formats(AVFilterContext *ctx)
static int default_query_formats_common(AVFilterContext *ctx,
AVFilterChannelLayouts *(layouts)(void))
{
enum AVMediaType type = ctx->inputs && ctx->inputs [0] ? ctx->inputs [0]->type :
ctx->outputs && ctx->outputs[0] ? ctx->outputs[0]->type :
@ -524,13 +525,23 @@ int ff_default_query_formats(AVFilterContext *ctx)
ff_set_common_formats(ctx, ff_all_formats(type));
if (type == AVMEDIA_TYPE_AUDIO) {
ff_set_common_channel_layouts(ctx, ff_all_channel_layouts());
ff_set_common_channel_layouts(ctx, layouts());
ff_set_common_samplerates(ctx, ff_all_samplerates());
}
return 0;
}
int ff_default_query_formats(AVFilterContext *ctx)
{
return default_query_formats_common(ctx, ff_all_channel_layouts);
}
int ff_query_formats_all(AVFilterContext *ctx)
{
return default_query_formats_common(ctx, ff_all_channel_counts);
}
/* internal functions for parsing audio format arguments */
int ff_parse_pixel_format(enum AVPixelFormat *ret, const char *arg, void *log_ctx)

View File

@ -172,6 +172,14 @@ void ff_channel_layouts_changeref(AVFilterChannelLayouts **oldref,
int ff_default_query_formats(AVFilterContext *ctx);
/**
* Set the formats list to all existing formats.
* This function behaves like ff_default_query_formats(), except it also
* accepts channel layouts with unknown disposition. It should only be used
* with audio filters.
*/
int ff_query_formats_all(AVFilterContext *ctx);
/**
* Create a list of supported formats. This is intended for use in