summaryrefslogtreecommitdiff
path: root/libavfilter/avfiltergraph.h
diff options
context:
space:
mode:
authorVitor Sessak <vitor1001@gmail.com>2008-04-04 20:06:37 +0000
committerVitor Sessak <vitor1001@gmail.com>2008-04-04 20:06:37 +0000
commit57d4a1575cf348719fa5f3205c97eada9eac8818 (patch)
tree89b6e1cbb0259fd7b47db1882efb9b987e9a307d /libavfilter/avfiltergraph.h
parent1d2067e2c7033a95a6160ff25e3455cb2c30c35f (diff)
Allow creation of filter graphs from a graph description structure which
can be created programmatically or loaded from a file. Commited in SoC by Bobby Bingham on 2007-08-14 22:27:05 Originally committed as revision 12700 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavfilter/avfiltergraph.h')
-rw-r--r--libavfilter/avfiltergraph.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/libavfilter/avfiltergraph.h b/libavfilter/avfiltergraph.h
index 309921c800..9a70868182 100644
--- a/libavfilter/avfiltergraph.h
+++ b/libavfilter/avfiltergraph.h
@@ -24,6 +24,61 @@
#include "avfilter.h"
+/** Linked-list of filters to create for an AVFilterGraphDesc */
+typedef struct AVFilterGraphDescFilter
+{
+ char *name; ///< filter instance name
+ char *filter; ///< name of filter type
+ char *args; ///< filter parameters
+ struct AVFilterGraphDescFilter *next;
+} AVFilterGraphDescFilter;
+
+/** Linked-list of links between filters */
+typedef struct AVFilterGraphDescLink
+{
+ /* TODO: allow referencing pads by name, not just by index */
+ char *src; ///< name of the source filter
+ unsigned srcpad; ///< index of the output pad on the source filter
+
+ char *dst; ///< name of the dest filter
+ unsigned dstpad; ///< index of the input pad on the dest filter
+
+ struct AVFilterGraphDescLink *next;
+} AVFilterGraphDescLink;
+
+/** Linked-list of filter pads to be exported from the graph */
+typedef struct AVFilterGraphDescExport
+{
+ /* TODO: allow referencing pads by name, not just by index */
+ char *name; ///< name of the exported pad
+ char *filter; ///< name of the filter
+ unsigned pad; ///< index of the pad to be exported
+
+ struct AVFilterGraphDescExport *next;
+} AVFilterGraphDescExport;
+
+/** Description of a graph to be loaded from a file, etc */
+typedef struct
+{
+ AVFilterGraphDescFilter *filters; ///< filters in the graph
+ AVFilterGraphDescLink *links; ///< links between the filters
+ AVFilterGraphDescExport *inputs; ///< inputs to export
+ AVFilterGraphDescExport *outputs; ///< outputs to export
+} AVFilterGraphDesc;
+
+/**
+ * Load a filter graph description from a file
+ * @param filename Name of the file from which to load the description
+ * @return Pointer to the description on success. NULL on failure
+ */
+AVFilterGraphDesc *avfilter_graph_load_desc(const char *filename);
+
+/**
+ * Free a filter graph description
+ * @param desc The graph description to free
+ */
+void avfilter_graph_free_desc(AVFilterGraphDesc *desc);
+
/**
* Add an existing filter instance to a filter graph.
* @param graph The filter graph