aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVitor Sessak <vitor1001@gmail.com>2008-02-15 22:14:25 +0000
committerVitor Sessak <vitor1001@gmail.com>2008-02-15 22:14:25 +0000
commit24c4eff6579c4a71d7a52e6882d345de3f5d25dd (patch)
tree287857c86885763ac63733ad8dd83cd32d28c909
parent3afcca9dfd22805f8bc921077599a78331bef1c4 (diff)
downloadffmpeg-24c4eff6579c4a71d7a52e6882d345de3f5d25dd.tar.gz
Rework link property configuration system.
This can now handle filters which are added to graphs out of order, including auto-inserted scale filters. As an added bonus, it can now detect circular filter chains which wouldn't work anyway. Commited in SoC by Bobby Bingham on 2007-12-24 03:22:10 Originally committed as revision 12107 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavfilter/avfilter.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 4a48defdb6..1c61dec12c 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -381,6 +381,13 @@ struct AVFilterLink
AVFilterContext *dst; ///< dest filter
unsigned int dstpad; ///< index of the input pad on the dest filter
+ /** stage of the initialization of the link properties (dimensions, etc) */
+ enum {
+ AVLINK_UNINIT = 0, ///< not started
+ AVLINK_STARTINIT, ///< started, but incomplete
+ AVLINK_INIT ///< complete
+ } init_state;
+
int w; ///< agreed upon image width
int h; ///< agreed upon image height
enum PixelFormat format; ///< agreed upon image colorspace
@@ -418,11 +425,11 @@ int avfilter_link(AVFilterContext *src, unsigned srcpad,
AVFilterContext *dst, unsigned dstpad);
/**
- * Negotiate the colorspace, dimensions, etc of a link
- * @param link The link to negotiate the properties of
+ * Negotiate the colorspace, dimensions, etc of all inputs to a filter.
+ * @param filter The filter to negotiate the properties for its inputs
* @return Zero on successful negotiation
*/
-int avfilter_config_link(AVFilterLink *link);
+int avfilter_config_links(AVFilterContext *filter);
/**
* Request a picture buffer with a specific set of permissions