diff options
author | Vitor Sessak <vitor1001@gmail.com> | 2008-05-24 20:41:27 +0000 |
---|---|---|
committer | Vitor Sessak <vitor1001@gmail.com> | 2008-05-24 20:41:27 +0000 |
commit | 6a0c770b216098c5fa9c8cc3b2330d3c5121199c (patch) | |
tree | 138ad714b52d64de2dc5c4b2ab9d05798cf67ab5 | |
parent | d835680e3c6aeee8998083b5d5462cf6f5308d70 (diff) | |
download | ffmpeg-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.c | 37 | ||||
-rw-r--r-- | libavfilter/graphparser.h | 21 |
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 */ |