diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 875ef0edca..8a067b80ea 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -49,6 +49,20 @@ void avfilter_graph_add_filter(AVFilterContext *graphctx, AVFilterContext *filte graph->filters[graph->filter_count - 1] = filter; } +int avfilter_graph_config_links(AVFilterContext *graphctx) +{ + GraphContext *graph = graphctx->priv; + int i, j; + + for(i = 0; i < graph->filter_count; i ++) { + for(j = 0; j < graph->filters[i]->input_count; j ++) + if(avfilter_config_link(graph->filters[i]->inputs[j])) + return -1; + } + + return 0; +} + static AVFilterContext *create_filter_with_args(const char *filt, void *opaque) { AVFilterContext *ret; diff --git a/libavfilter/avfiltergraph.h b/libavfilter/avfiltergraph.h index 9b0783d277..309921c800 100644 --- a/libavfilter/avfiltergraph.h +++ b/libavfilter/avfiltergraph.h @@ -31,4 +31,9 @@ */ void avfilter_graph_add_filter(AVFilterContext *graphctx, AVFilterContext *filter); +/** + * Configure the colorspace, resolution, etc of all links in the graph + */ +int avfilter_graph_config_links(AVFilterContext *graphctx); + #endif /* FFMPEG_AVFILTER_H */