[FFmpeg-devel] [PATCH 2/8] avfilter: add a pointer from links to graph.
Nicolas George
nicolas.george at normalesup.org
Fri Apr 20 12:31:41 CEST 2012
Signed-off-by: Nicolas George <nicolas.george at normalesup.org>
---
libavfilter/avfilter.h | 6 ++++++
libavfilter/avfiltergraph.c | 16 ++++++++++++++++
2 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 27849e2..5964397 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -690,6 +690,12 @@ struct AVFilterLink {
AVRational time_base;
struct AVFilterPool *pool;
+
+ /**
+ * Graph the filter belongs to.
+ */
+ struct AVFilterGraph *graph;
+
};
/**
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index 334d718..e46ace5 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -374,6 +374,21 @@ int ff_avfilter_graph_config_formats(AVFilterGraph *graph, AVClass *log_ctx)
return 0;
}
+static void ff_avfilter_graph_config_pointers(AVFilterGraph *graph,
+ AVClass *log_ctx)
+{
+ unsigned i, j;;
+ AVFilterContext *f;
+
+ for (i = 0; i < graph->filter_count; i++) {
+ f = graph->filters[i];
+ for (j = 0; j < f->input_count; j++)
+ f->inputs[j]->graph = graph;
+ for (j = 0; j < f->output_count; j++)
+ f->outputs[j]->graph = graph;
+ }
+}
+
int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx)
{
int ret;
@@ -384,6 +399,7 @@ int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx)
return ret;
if ((ret = ff_avfilter_graph_config_links(graphctx, log_ctx)))
return ret;
+ ff_avfilter_graph_config_pointers(graphctx, log_ctx);
return 0;
}
--
1.7.2.5
More information about the ffmpeg-devel
mailing list