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
signature.asc
Description: This is a digitally signed message part

