From 7721ae3db8b2c0a7dc4f6041358b1d9e50c91719 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Wed, 11 Aug 2010 19:04:36 +0200 Subject: [PATCH] GStreamerProcess: Move all gst init till after the process has started --- mopidy/outputs/gstreamer.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/mopidy/outputs/gstreamer.py b/mopidy/outputs/gstreamer.py index 2a282d95..d3746729 100644 --- a/mopidy/outputs/gstreamer.py +++ b/mopidy/outputs/gstreamer.py @@ -29,8 +29,25 @@ class GStreamerProcess(BaseProcess): """ def __init__(self, core_queue): + super(GStreamerProcess, self).__init__() self.core_queue = core_queue + self.gobject_context = None + self.gst_pipeline = None + self.gst_bus = None + self.gst_bus_id = None + self.gst_uri_src = None + self.gst_data_src = None + self.gst_volume = None + self.gst_sink = None + def _run(self): + self.setup() + while True: + message = self.core_queue.get() + self.process_core_message(message) + self.gobject_context.iteration(True) + + def setup(self): # See http://www.jejik.com/articles/2007/01/ # python-gstreamer_threading_and_the_main_loop/ for details. gobject.threads_init() @@ -68,11 +85,6 @@ class GStreamerProcess(BaseProcess): gst.element_link_many(self.gst_data_src, self.gst_volume, self.gst_sink) - def _run(self): - while True: - # TODO Handle commands - self.gobject_context.iteration(True) - def process_core_message(self, message): """Processes messages from the rest of Mopidy.""" pass # TODO