GNOME Bugzilla – Bug 323874
[playbin] leaks sinks and threads when using gconfaudiosink
Last modified: 2006-02-06 21:44:23 UTC
The gstreamer 0.10 backend for rhythmbox uses playbin with gconfaudiosink as the
audio sink for playback. To change songs, it pauses the playbin, changes the
uri property, and starts it playing again.
gconfaudiosink creates a new audio sink when it goes through this state
transition, but for some reason the old audio sink doesn't get cleaned up, so
the thread associated with the clock stays around. I can't really tell why this
is happening, but I'm guessing there's an extra reference on the sink somewhere.
When I tried playing a file that I don't have a decoder for, the audio sink was
cleaned up correctly.
*** Bug 325700 has been marked as a duplicate of this bug. ***
Fixed in CVS:
* gst/gstbin.c: (gst_bin_dispose), (gst_bin_provide_clock_func),
Clean up references to the clock provider when disposed or when
handling a clock-lost message from it.
Unref sinks when performing a query via gst_iterator_fold, as the
gst_bin_iterate_sinks iterator refs each item. (Fixes #323874)