From 210447debbcd88b728bf1c80f5acbd1434963ff2 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sat, 14 Aug 2010 14:56:57 +0200 Subject: [PATCH 1/2] Add destroy method to GStreamerOutput --- mopidy/outputs/gstreamer.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mopidy/outputs/gstreamer.py b/mopidy/outputs/gstreamer.py index d2c0af94..a28329f7 100644 --- a/mopidy/outputs/gstreamer.py +++ b/mopidy/outputs/gstreamer.py @@ -20,8 +20,11 @@ class GStreamerOutput(object): """ def __init__(self, core_queue, output_queue): - process = GStreamerProcess(core_queue, output_queue) - process.start() + self.process = GStreamerProcess(core_queue, output_queue) + self.process.start() + + def destroy(self): + self.process.terminate() class GStreamerMessagesThread(threading.Thread): def run(self): From dc27434df9e66e530247fd47270729618be65a8d Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sat, 14 Aug 2010 15:21:01 +0200 Subject: [PATCH 2/2] Fix set_state method in GStreamerOutput --- mopidy/outputs/gstreamer.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mopidy/outputs/gstreamer.py b/mopidy/outputs/gstreamer.py index a28329f7..5e64378f 100644 --- a/mopidy/outputs/gstreamer.py +++ b/mopidy/outputs/gstreamer.py @@ -159,10 +159,10 @@ class GStreamerProcess(BaseProcess): :type state_name: string :rtype: :class:`True` or :class:`False` """ - # XXX Setting state to PLAYING often returns False even if it works - result = self.gst_pipeline.set_state( - getattr(gst, 'STATE_' + state_name)) - if result == gst.STATE_CHANGE_SUCCESS: + state = getattr(gst, 'STATE_' + state_name) + self.gst_pipeline.set_state(state) + new_state = self.gst_pipeline.get_state()[1] + if new_state == state: logger.debug('Setting GStreamer state to %s: OK', state_name) return True else: