Pass the inputs and outputs of avfilter_parse_graph() with a AVFilterInOut linked...
authorVitor Sessak <vitor1001@gmail.com>
Sat, 24 May 2008 20:41:27 +0000 (20:41 +0000)
committerVitor Sessak <vitor1001@gmail.com>
Sat, 24 May 2008 20:41:27 +0000 (20:41 +0000)
Commited in SoC by Vitor Sessak on 2008-04-23 20:40:49

Originally committed as revision 13338 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavfilter/graphparser.c
libavfilter/graphparser.h

index 436d287b8df95c08ea4ab2d5eb4841ea5bb18f25..69ec8ec6a53c39d93a998a9f0e8874218ae58979 100644 (file)
@@ -23,6 +23,7 @@
 #include <ctype.h>
 #include <string.h>
 
+#include "graphparser.h"
 #include "avfilter.h"
 #include "avfiltergraph.h"
 
@@ -149,24 +150,6 @@ static void parse_link_name(const char **buf, char **name, AVClass *log_ctx)
     }
 }
 
-
-enum LinkType {
-    LinkTypeIn,
-    LinkTypeOut,
-};
-
-/**
- * A linked-list of the inputs/outputs of the filter chain.
- */
-typedef struct AVFilterInOut {
-    enum LinkType type;
-    const char *name;
-    AVFilterContext *filter;
-    int pad_idx;
-
-    struct AVFilterInOut *next;
-} AVFilterInOut;
-
 static void free_inout(AVFilterInOut *head)
 {
     while(head) {
@@ -363,28 +346,14 @@ static int parse_outputs(const char **buf, AVFilterInOut **currInputs,
  * Parse a string describing a filter graph.
  */
 int avfilter_parse_graph(AVFilterGraph *graph, const char *filters,
-                         AVFilterContext *in, int inpad,
-                         AVFilterContext *out, int outpad,
-                         AVClass *log_ctx)
+                         AVFilterInOut *inouts, AVClass *log_ctx)
 {
     int index = 0;
     char chr = 0;
     int pad = 0;
 
     AVFilterInOut *currInputs = NULL;
-    AVFilterInOut *openLinks  = av_malloc(sizeof(AVFilterInOut));
-
-    openLinks->name    = "in";
-    openLinks->filter  = in;
-    openLinks->type    = LinkTypeOut;
-    openLinks->pad_idx = inpad;
-    openLinks->next    = av_malloc(sizeof(AVFilterInOut));
-
-    openLinks->next->name    = "out";
-    openLinks->next->filter  = out;
-    openLinks->next->type    = LinkTypeIn;
-    openLinks->next->pad_idx = outpad;
-    openLinks->next->next    = NULL;
+    AVFilterInOut *openLinks  = inouts;
 
     do {
         AVFilterContext *filter;
index c255824e271c77aa4e7086e08514e665c3eefcb3..410179e4236137fe56f709462726f76588e92724 100644 (file)
 #include "avfilter.h"
 #include "avfiltergraph.h"
 
+enum LinkType {
+    LinkTypeIn,
+    LinkTypeOut,
+};
+
+/**
+ * A linked-list of the inputs/outputs of the filter chain.
+ */
+typedef struct AVFilterInOut {
+    enum LinkType type;
+    const char *name;
+    AVFilterContext *filter;
+    int pad_idx;
+
+    struct AVFilterInOut *next;
+} AVFilterInOut;
+
 /**
  * Add to a graph a graph described by a string.
  * @param graph   the filter graph where to link the parsed graph context
@@ -36,8 +53,6 @@
  * @return        zero on success, -1 on error
  */
 int avfilter_parse_graph(AVFilterGraph *graph, const char *filters,
-                         AVFilterContext *in, int inpad,
-                         AVFilterContext *out, int outpad,
-                         AVClass *log_ctx);
+                         AVFilterInOut *inouts, AVClass *log_ctx);
 
 #endif  /* FFMPEG_GRAPHPARSER_H */