Commit a9c81431 authored by Vitor Sessak's avatar Vitor Sessak

Helper functions for adding new pads to filters at runtime

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

Originally committed as revision 12093 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 85322466
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#ifndef FFMPEG_AVFILTER_H #ifndef FFMPEG_AVFILTER_H
#define FFMPEG_AVFILTER_H #define FFMPEG_AVFILTER_H
#include <stddef.h>
#include "avcodec.h" #include "avcodec.h"
typedef struct AVFilterContext AVFilterContext; typedef struct AVFilterContext AVFilterContext;
...@@ -240,4 +241,36 @@ void avfilter_destroy(AVFilterContext *filter); ...@@ -240,4 +241,36 @@ void avfilter_destroy(AVFilterContext *filter);
int *avfilter_make_format_list(int len, ...); 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 */ #endif /* FFMPEG_AVFILTER_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment