[FFmpeg-cvslog] r12093 - trunk/libavfilter/avfilter.h

vitor subversion
Fri Feb 15 23:13:30 CET 2008


Author: vitor
Date: Fri Feb 15 23:13:30 2008
New Revision: 12093

Log:
Helper functions for adding new pads to filters at runtime

Commited in SoC by Bobby Bingham on 2007-08-07 22:31:56


Modified:
   trunk/libavfilter/avfilter.h

Modified: trunk/libavfilter/avfilter.h
==============================================================================
--- trunk/libavfilter/avfilter.h	(original)
+++ trunk/libavfilter/avfilter.h	Fri Feb 15 23:13:30 2008
@@ -22,6 +22,7 @@
 #ifndef FFMPEG_AVFILTER_H
 #define FFMPEG_AVFILTER_H
 
+#include <stddef.h>
 #include "avcodec.h"
 
 typedef struct AVFilterContext AVFilterContext;
@@ -240,4 +241,36 @@ void avfilter_destroy(AVFilterContext *f
 
 int *avfilter_make_format_list(int len, ...);
 
+/**
+ * Insert a new pad
+ * @param idx Insertion point.  Pad is inserted at the end if this point
+ *            is beyond the end of the list of pads.
+ * @param count Pointer to the number of pads in the list
+ * @param padidx_off Offset within an AVFilterLink structure to the element
+ *                   to increment when inserting a new pad causes link
+ *                   numbering to change
+ * @param pads Pointer to the pointer to the beginning of the list of pads
+ * @param links Pointer to the pointer to the beginning of the list of links
+ * @param newpad The new pad to add. A copy is made when adding.
+ */
+void avfilter_insert_pad(unsigned idx, unsigned *count, size_t padidx_off,
+                         AVFilterPad **pads, AVFilterLink ***links,
+                         AVFilterPad *newpad);
+
+/** insert a new input pad for the filter */
+static inline void avfilter_insert_inpad(AVFilterContext *f, unsigned index,
+                                         AVFilterPad *p)
+{
+    avfilter_insert_pad(index, &f->input_count, offsetof(AVFilterLink, dstpad),
+                        &f->input_pads, &f->inputs, p);
+}
+
+/** insert a new output pad for the filter */
+static inline void avfilter_insert_outpad(AVFilterContext *f, unsigned index,
+                                          AVFilterPad *p)
+{
+    avfilter_insert_pad(index, &f->output_count, offsetof(AVFilterLink, srcpad),
+                        &f->output_pads, &f->outputs, p);
+}
+
 #endif  /* FFMPEG_AVFILTER_H */




More information about the ffmpeg-cvslog mailing list