From 222bbf4998280a2c28c2594769e5d1e299ae7586 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Thu, 19 Aug 2010 00:56:24 +0200 Subject: [PATCH] Only block set state when handling async changes --- 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 982c7a79..61b4f19b 100644 --- a/mopidy/outputs/gstreamer.py +++ b/mopidy/outputs/gstreamer.py @@ -173,13 +173,13 @@ class GStreamerProcess(BaseProcess): """ result = self.gst_pipeline.set_state( getattr(gst, 'STATE_' + state_name)) - # Block until state change has occured, required for at least the local - # backends seek functionality. (Optional solution is to block in set - # position to ensure that change occours) - self.gst_pipeline.get_state() if result == gst.STATE_CHANGE_FAILURE: logger.warning('Setting GStreamer state to %s: failed', state_name) return False + elif result == gst.STATE_CHANGE_ASYNC: + # Block until ready + self.gst_pipeline.get_state() + return True else: logger.debug('Setting GStreamer state to %s: OK', state_name) return True