After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 499048 - Filter insertion and removal on non-xfade backend is not robust.
Filter insertion and removal on non-xfade backend is not robust.
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: playback
HEAD
Other Linux
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-11-22 21:33 UTC by Christophe Dehais
Modified: 2009-11-10 13:07 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Christophe Dehais 2007-11-22 21:33:31 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.
Comment 1 Jonathan Matthew 2009-11-08 12:13:03 UTC
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.
Comment 2 Jonathan Matthew 2009-11-10 13:07:37 UTC
remaining issue fixed in commit 2221a3885edb753013fbb6119ae3f092ee5698b5