GNOME Bugzilla – Bug 499048
Filter insertion and removal on non-xfade backend is not robust.
Last modified: 2009-11-10 13:07:37 UTC
Insertion and removal of filters on the non-xfade backend is not robust (using trunk) in several ways: * insertion while playing will stop playback. Playback will start again if asking to play a new song. * removal while playing or while playback is paused will hang RB completely. I used the python console with the simple code: import gst a = gst.element_factory_make ("volume"); shell.props.shell_player.props.player.add_filter(a) b = gst.element_factory_make ("audioinvert"); shell.props.shell_player.props.player.add_filter(b) and also experienced such problems while working on #76522.
mostly fixed in commit 30e234d59187c098ab49c29a6fed1b4bb0e7ad3d The remaining problem is that removing a filter while the pipeline is paused causes deadlock. Setting the element state to NULL involves taking the streaming lock, which is held by the streaming thread in this case.
remaining issue fixed in commit 2221a3885edb753013fbb6119ae3f092ee5698b5