GNOME Bugzilla – Bug 425580
Gstreamer backends should advertise when a filter is actually added
Last modified: 2007-06-02 02:16:04 UTC
When adding an element to the pipeline, a plugin has no way to know when the element is actually inserted and correctly linked inside the pipeline. As a side effect there is currently no standard place where one can safely retrieve the gst bus an element is emitting messages to. This could be done by adding a signal such as "element-inserted" to the PLAYER_GST_FILTER interface.
Created attachment 89102 [details] [review] add and remove callbacks for tees and filters I've only tested this with the visualisation plugin when using the crossfading backend, but it works OK there.
Created attachment 89103 [details] [review] patch This adds the above signal, and a matching pre-remove signal, to the RBPlayerGst* interfaces and makes the backends use it. I haven't done a huge amount of testing, but it seems to work fine.
OK, your approach is much less hideous than mine. For some reason I thought that using signals would be a bit awkward, but that turns out not to be the case.
Also, I've attached a patch to bug 441927 that makes use of the tee signals.
Committed to svn trunk.