Make filter graph description parsing code independent of the code to
authorVitor Sessak <vitor1001@gmail.com>
Fri, 4 Apr 2008 20:07:50 +0000 (20:07 +0000)
committerVitor Sessak <vitor1001@gmail.com>
Fri, 4 Apr 2008 20:07:50 +0000 (20:07 +0000)
read said description from a file.

Commited in SoC by Bobby Bingham on 2007-12-22 17:16:21

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

libavfilter/avfiltergraph.h

index d701a3d..a96dfb8 100644 (file)
@@ -57,6 +57,16 @@ typedef struct AVFilterGraphDescExport
     struct AVFilterGraphDescExport *next;
 } AVFilterGraphDescExport;
 
+/** Sections of a filter graph description */
+typedef enum
+{
+    SEC_NONE = 0,
+    SEC_FILTERS,
+    SEC_LINKS,
+    SEC_INPUTS,
+    SEC_OUTPUTS
+} AVFilterGraphDescSection;
+
 /** Description of a graph to be loaded from a file, etc */
 typedef struct
 {
@@ -66,6 +76,30 @@ typedef struct
     AVFilterGraphDescExport *outputs;   ///< outputs to export
 } AVFilterGraphDesc;
 
+typedef struct
+{
+    AVFilterGraphDescSection section;   ///< current section being parsed
+
+    AVFilterGraphDescFilter **filterp;  ///< last parsed filter
+    AVFilterGraphDescLink   **linkp;    ///< last parsed link
+    AVFilterGraphDescExport **inputp;   ///< last parsed exported input
+    AVFilterGraphDescExport **outputp;  ///< last parsed exported output
+} AVFilterGraphDescParser;
+
+/** Parse a line of a filter graph description.
+ * @param desc   Pointer to an AVFilterGraphDesc pointer. If *desc is NULL,
+ *               a new AVFilterGraphDesc structure will be created for you.
+ *               Must be the same between multiple invocations when parsing
+ *               the same description.
+ * @param parser Parser state. Must be the same between multiple invocations
+ *               when parsing the same description
+ * @param line   Line of the graph description to parse.
+ * @return       Zero on success, negative on error.
+ */
+int avfilter_graph_parse_desc(AVFilterGraphDesc **desc,
+                              AVFilterGraphDescParser **parser,
+                              char *line);
+
 /**
  * Load a filter graph description from a file
  * @param filename Name of the file from which to load the description