aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVitor Sessak <vitor1001@gmail.com>2008-05-24 20:41:27 +0000
committerVitor Sessak <vitor1001@gmail.com>2008-05-24 20:41:27 +0000
commit6a0c770b216098c5fa9c8cc3b2330d3c5121199c (patch)
tree138ad714b52d64de2dc5c4b2ab9d05798cf67ab5
parentd835680e3c6aeee8998083b5d5462cf6f5308d70 (diff)
downloadffmpeg-6a0c770b216098c5fa9c8cc3b2330d3c5121199c.tar.gz
Pass the inputs and outputs of avfilter_parse_graph() with a AVFilterInOut linked list
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
-rw-r--r--libavfilter/graphparser.c37
-rw-r--r--libavfilter/graphparser.h21
2 files changed, 21 insertions, 37 deletions
diff --git a/libavfilter/graphparser.c b/libavfilter/graphparser.c
index 436d287b8d..69ec8ec6a5 100644
--- a/libavfilter/graphparser.c
+++ b/libavfilter/graphparser.c
@@ -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;
diff --git a/libavfilter/graphparser.h b/libavfilter/graphparser.h
index c255824e27..410179e423 100644
--- a/libavfilter/graphparser.h
+++ b/libavfilter/graphparser.h
@@ -25,6 +25,23 @@
#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 */