From: Vitor Sessak Date: Fri, 15 Feb 2008 22:14:25 +0000 (+0000) Subject: Rework link property configuration system. X-Git-Tag: v0.5~5856 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=24c4eff6579c4a71d7a52e6882d345de3f5d25dd;p=platform%2Fupstream%2Flibav.git 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 --- diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index 4a48def..1c61dec 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