From 2a24df9357f89a9fa9d5aaeb4d2a503fa545de27 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Sat, 16 Oct 2010 10:20:53 +0000 Subject: [PATCH] Add avfilter_graph_config(). Originally committed as revision 25502 to svn://svn.ffmpeg.org/ffmpeg/trunk --- doc/APIchanges | 3 +++ ffmpeg.c | 7 +------ ffplay.c | 5 ++--- libavfilter/avfilter.h | 4 ++-- libavfilter/avfiltergraph.c | 13 +++++++++++++ libavfilter/avfiltergraph.h | 8 ++++++++ tools/graph2dot.c | 4 +--- 7 files changed, 30 insertions(+), 14 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index d126c13edd..b92e5dc907 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -13,6 +13,9 @@ libavutil: 2009-03-08 API changes, most recent first: +2010-10-16 - r25502 - lavfi 1.52.0 - avfilter_graph_config() + Add the function avfilter_graph_config() in avfiltergraph.h. + 2010-10-15 - r25493 - lavf 52.83.0 - metadata API Change demuxers to export metadata in generic format and muxers to accept generic format. Deprecate the public diff --git a/ffmpeg.c b/ffmpeg.c index 9513c7f5fc..500ec158cd 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -452,12 +452,7 @@ static int configure_filters(AVInputStream *ist, AVOutputStream *ost) return ret; } - /* configure all the filter links */ - if ((ret = avfilter_graph_check_validity(graph, NULL)) < 0) - return ret; - if ((ret = avfilter_graph_config_formats(graph, NULL)) < 0) - return ret; - if ((ret = avfilter_graph_config_links(graph, NULL)) < 0) + if ((ret = avfilter_graph_config(graph, NULL)) < 0) return ret; codec->width = ist->output_video_filter->inputs[0]->w; diff --git a/ffplay.c b/ffplay.c index 93208e2137..da12810d18 100644 --- a/ffplay.c +++ b/ffplay.c @@ -1849,9 +1849,8 @@ static int video_thread(void *arg) avfilter_graph_add_filter(graph, filt_src); avfilter_graph_add_filter(graph, filt_out); - if(avfilter_graph_check_validity(graph, NULL)) goto the_end; - if(avfilter_graph_config_formats(graph, NULL)) goto the_end; - if(avfilter_graph_config_links(graph, NULL)) goto the_end; + if (avfilter_graph_config(graph, NULL) < 0) + goto the_end; is->out_video_filter = filt_out; #endif diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index f29ebe7f6c..94928c5cd2 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -25,8 +25,8 @@ #include "libavutil/avutil.h" #define LIBAVFILTER_VERSION_MAJOR 1 -#define LIBAVFILTER_VERSION_MINOR 51 -#define LIBAVFILTER_VERSION_MICRO 1 +#define LIBAVFILTER_VERSION_MINOR 52 +#define LIBAVFILTER_VERSION_MICRO 0 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ LIBAVFILTER_VERSION_MINOR, \ diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index 2123c2806c..baffc5168b 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -202,3 +202,16 @@ int avfilter_graph_config_formats(AVFilterGraph *graph, AVClass *log_ctx) return 0; } +int avfilter_graph_config(AVFilterGraph *graphctx, AVClass *log_ctx) +{ + int ret; + + if ((ret = avfilter_graph_check_validity(graphctx, log_ctx))) + return ret; + if ((ret = avfilter_graph_config_formats(graphctx, log_ctx))) + return ret; + if ((ret = avfilter_graph_config_links(graphctx, log_ctx))) + return ret; + + return 0; +} diff --git a/libavfilter/avfiltergraph.h b/libavfilter/avfiltergraph.h index 23fc57c311..efb9cc02bc 100644 --- a/libavfilter/avfiltergraph.h +++ b/libavfilter/avfiltergraph.h @@ -69,6 +69,14 @@ int avfilter_graph_config_links(AVFilterGraph *graphctx, AVClass *log_ctx); */ int avfilter_graph_config_formats(AVFilterGraph *graphctx, AVClass *log_ctx); +/** + * Check validity and configure all the links and formats in the graph. + * + * @see avfilter_graph_check_validity(), avfilter_graph_config_links(), + * avfilter_graph_config_formats() + */ +int avfilter_graph_config(AVFilterGraph *graphctx, AVClass *log_ctx); + /** * Free a graph and destroy its links. */ diff --git a/tools/graph2dot.c b/tools/graph2dot.c index a1a68be30c..515a00342d 100644 --- a/tools/graph2dot.c +++ b/tools/graph2dot.c @@ -152,9 +152,7 @@ int main(int argc, char **argv) return 1; } - if (avfilter_graph_check_validity(graph, NULL) || - avfilter_graph_config_formats(graph, NULL) || - avfilter_graph_config_links (graph, NULL)) + if (avfilter_graph_config(graph, NULL) < 0) return 1; print_digraph(outfile, graph);