diff options
author | Vitor Sessak <vitor1001@gmail.com> | 2008-02-15 22:14:25 +0000 |
---|---|---|
committer | Vitor Sessak <vitor1001@gmail.com> | 2008-02-15 22:14:25 +0000 |
commit | 24c4eff6579c4a71d7a52e6882d345de3f5d25dd (patch) | |
tree | 287857c86885763ac63733ad8dd83cd32d28c909 | |
parent | 3afcca9dfd22805f8bc921077599a78331bef1c4 (diff) | |
download | ffmpeg-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.h | 13 |
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 |