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 323874 - [playbin] leaks sinks and threads when using gconfaudiosink
[playbin] leaks sinks and threads when using gconfaudiosink
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: 0.10.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 325700 (view as bug list)
Depends on:
Reported: 2005-12-12 13:25 UTC by Jonathan Matthew
Modified: 2006-02-06 21:44 UTC
See Also:
GNOME target: ---
GNOME version: ---

Description Jonathan Matthew 2005-12-12 13:25:48 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.
Comment 1 Jonathan Matthew 2006-01-03 23:59:07 UTC
*** Bug 325700 has been marked as a duplicate of this bug. ***
Comment 2 Jan Schmidt 2006-01-27 01:49:30 UTC
Fixed in CVS:
        * gst/gstbin.c: (gst_bin_dispose), (gst_bin_provide_clock_func),
        (gst_bin_remove_func), (gst_bin_handle_message_func),
        (bin_query_duration_fold), (bin_query_generic_fold):
        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)