FWIW this hacky patch fixes things, but it is surely a workaround not a
proper fix.

--- quodlibet/player/gstbe.py   2010-10-09 11:32:56.000000000 +0100
+++ /usr/lib/pymodules/python2.6/quodlibet/player/gstbe.py      2010-10-10 
13:10:48.000000000 +0100
@@ -72,15 +72,18 @@
                     "gconfaudiosink profile=music")
         pipeline, self.name = GStreamerSink(pipeline)
         if gst.version() >= (0, 10, 24):
+            self.__false_references = []
             # The output buffer is necessary to run the song-ended and
             # song-started events through QL's signal handlers before the
             # playbin2 hits EOF inside a gapless transition.
             bufbin = gst.Bin()
+            self.__false_references.append(bufbin)
             queue = gst.element_factory_make('queue')
             queue.set_property('max-size-time', 500 * gst.MSECOND)
             self._vol_element = vol = gst.element_factory_make('volume')
             pipeline = [queue, vol] + pipeline
             for idx, elem in enumerate(pipeline):
+                self.__false_references.append(elem)
                 bufbin.add(elem)
                 if idx > 0:
                     pipeline[idx-1].link(elem)
@@ -90,6 +93,7 @@
             bufbin.set_state(gst.STATE_NULL)
             if result == gst.STATE_CHANGE_FAILURE: return False
             gpad = gst.GhostPad('sink', queue.get_pad('sink'))
+            self.__false_references.append(gpad)
             bufbin.add_pad(gpad)
             self.bin = gst.element_factory_make('playbin2')
             id = self.bin.connect('about-to-finish', self.__about_to_finish)


-- 
Ian Campbell

Let us treat men and women well;
Treat them as if they were real;
Perhaps they are.
                -- Ralph Waldo Emerson

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to