diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 4b24508f5f..269d566d5f 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -77,6 +77,23 @@ int avfilter_graph_check_validity(AVFilterGraph *graph, AVClass *log_ctx) return 0; } +int avfilter_graph_config_links(AVFilterGraph *graph, AVClass *log_ctx) +{ + AVFilterContext *filt; + int i, ret; + + for (i=0; i < graph->filter_count; i++) { + filt = graph->filters[i]; + + if (!filt->output_count) { + if ((ret = avfilter_config_links(filt))) + return ret; + } + } + + return 0; +} + AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, char *name) { int i; diff --git a/libavfilter/avfiltergraph.h b/libavfilter/avfiltergraph.h index fdae73c564..c78d53f0a3 100644 --- a/libavfilter/avfiltergraph.h +++ b/libavfilter/avfiltergraph.h @@ -56,6 +56,13 @@ int avfilter_graph_add_filter(AVFilterGraph *graphctx, AVFilterContext *filter); */ int avfilter_graph_check_validity(AVFilterGraph *graphctx, AVClass *log_ctx); +/** + * Configures all the links of graphctx. + * + * @return 0 in case of success, a negative value otherwise + */ +int avfilter_graph_config_links(AVFilterGraph *graphctx, AVClass *log_ctx); + /** * Configures the formats of all the links in the graph. */