[gst-devel] A few quesions about gstreamer

Ronald S. Bultje rbultje at ronald.bitfreak.net
Mon Jan 17 13:49:16 CET 2005


On Mon, 2005-01-17 at 18:34, ecmproute wrote:
> Does that mean, for example, the usage and behaviour of
> gst_element_unlink might defer across different elements? I understand
> that gst_element_unlink basically boils down to gst_pad_unlink, which
> might be a function pointer in the element itself. Is there any set of
> specific rules in the context of states, that must be implemented by
> any element, when it provides a function pointer for api's like
> gst_pad_unlink.

No, not across elements. Elements can, at best, implement an 'unlinked'
signal handler, but this is A) hardly used and B) not blocking in any
way.

However, what can make a difference is pipeline buildup, that is, if the
pipeline is still iterating. If a pad is unlinked, the scheduler will
rebuild groups (since one group was divided in two) while still
iterating, which can implicate a lot of locks, interrupts and other
things, that can take up to seconds to resolve (depending on the
element). Therefore, you want to unlink in PAUSED.

Ronald
-- 
Ronald S. Bultje <rbultje at ronald.bitfreak.net>





More information about the gstreamer-devel mailing list