lavfi: replace avfilter_open() with avfilter_graph_alloc_filter().

Since we do not support "standalone" filters not attached to an
AVFilterGraph, we should not have a public function to create such
filters. In addition that function is horribly named, the action it does
cannot be possibly described as "opening" a filter.
This commit is contained in:
Anton Khirnov 2013-03-31 08:28:11 +02:00
parent 38f0c0781a
commit bc1a985ba0
7 changed files with 83 additions and 20 deletions

View file

@ -81,12 +81,12 @@ int avfilter_graph_create_filter(AVFilterContext **filt_ctx, AVFilter *filt,
{
int ret;
if ((ret = avfilter_open(filt_ctx, filt, name)) < 0)
goto fail;
*filt_ctx = avfilter_graph_alloc_filter(graph_ctx, filt, name);
if (!*filt_ctx)
return AVERROR(ENOMEM);
if ((ret = avfilter_init_filter(*filt_ctx, args, opaque)) < 0)
goto fail;
if ((ret = avfilter_graph_add_filter(graph_ctx, *filt_ctx)) < 0)
goto fail;
return 0;
fail:
@ -96,6 +96,32 @@ fail:
return ret;
}
AVFilterContext *avfilter_graph_alloc_filter(AVFilterGraph *graph,
const AVFilter *filter,
const char *name)
{
AVFilterContext **filters, *s;
s = ff_filter_alloc(filter, name);
if (!s)
return NULL;
filters = av_realloc(graph->filters, sizeof(*filters) * (graph->nb_filters + 1));
if (!filters) {
avfilter_free(s);
return NULL;
}
graph->filters = filters;
graph->filters[graph->nb_filters++] = s;
#if FF_API_FOO_COUNT
graph->filter_count = graph->nb_filters;
#endif
return s;
}
/**
* Check for the validity of graph.
*