Browse Source

lavfi: implement ff_query_formats_all().

tags/n1.2
Nicolas George 13 years ago
parent
commit
b6b2f3433c
2 changed files with 21 additions and 2 deletions
  1. +13
    -2
      libavfilter/formats.c
  2. +8
    -0
      libavfilter/formats.h

+ 13
- 2
libavfilter/formats.c 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)


+ 8
- 0
libavfilter/formats.h 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


Loading…
Cancel
Save