From da763be9d705b24abdcc0b81ae946f62ba8d95ca Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sun, 15 Aug 2010 01:05:30 +0200 Subject: [PATCH] Add multiqueue to pipeline so appsrc in theory should work again --- mopidy/outputs/gstreamer.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/mopidy/outputs/gstreamer.py b/mopidy/outputs/gstreamer.py index 292b5a2e..0b694aaf 100644 --- a/mopidy/outputs/gstreamer.py +++ b/mopidy/outputs/gstreamer.py @@ -63,24 +63,31 @@ class GStreamerProcess(BaseProcess): messages_thread.start() self.gst_pipeline = gst.parse_launch(' ! '.join([ + 'multiqueue name=queue', 'volume name=volume', 'alsasink' ])) decode_bin = gst.element_factory_make('uridecodebin', 'uri') - decode_bin.connect('pad-added', self.process_new_pad, 'volume') + decode_bin.connect('pad-added', self.process_new_pad) app_src = gst.element_factory_make('appsrc', 'src') + queue = self.gst_pipeline.get_by_name('queue') self.gst_pipeline.add(decode_bin) self.gst_pipeline.add(app_src) + self.gst_uri_pad = queue.get_request_pad('sink0') + self.gst_src_pad = queue.get_request_pad('sink1') + + app_src.get_pad('src').link(self.gst_src_pad) + # Setup bus and message processor gst_bus = self.gst_pipeline.get_bus() gst_bus.add_signal_watch() gst_bus.connect('message', self.process_gst_message) - def process_new_pad(self, source, pad, target): - pad.link(self.gst_pipeline.get_by_name(target).get_pad('sink')) + def process_new_pad(self, source, pad): + pad.link(self.gst_uri_pad) def process_mopidy_message(self, message): """Process messages from the rest of Mopidy."""