diff --git a/mopidy/gstreamer.py b/mopidy/gstreamer.py index 255e7d7d..0e866135 100644 --- a/mopidy/gstreamer.py +++ b/mopidy/gstreamer.py @@ -284,7 +284,7 @@ class GStreamer(ThreadingActor): def remove_output(self, output): logger.debug('Trying to remove %s', output.get_name()) - if name not in self._outputs: + if output not in self._outputs: return # FIXME raise mopidy exception of some sort? src = self._taginject.get_pad('src') src.set_blocked_async(True, self._blocked_callback, output) @@ -293,9 +293,8 @@ class GStreamer(ThreadingActor): gst.element_unlink_many(self._tee, output) output.set_state(gst.STATE_NULL) self._pipeline.remove(output) - self._outputs.remove(output) pad.set_blocked(False) - + self._outputs.remove(output) logger.warning(u'Removed %s', output.get_name()) def connect_message_handler(self, element, handler): diff --git a/mopidy/outputs/__init__.py b/mopidy/outputs/__init__.py index 8cf57c53..b59566b3 100644 --- a/mopidy/outputs/__init__.py +++ b/mopidy/outputs/__init__.py @@ -31,7 +31,7 @@ class BaseOutput(object): def connect(self): """Attach output to GStreamer pipeline""" - self.gstreamer.connect_output(self) + self.gstreamer.connect_output(self.bin) self.on_connect() def on_connect(self): @@ -39,7 +39,7 @@ class BaseOutput(object): def remove(self): """Remove output from GStreamer pipeline""" - self.gstreamer.remove_output(self) + self.gstreamer.remove_output(self.bin) self.on_remove() def on_remove(self):