=== modified file 'elisa/plugins/base/metadata_providers/gst_metadata.py' --- elisa/plugins/base/metadata_providers/gst_metadata.py 2007-11-12 15:49:46 +0000 +++ elisa/plugins/base/metadata_providers/gst_metadata.py 2007-11-12 17:08:20 +0000 @@ -40,6 +40,7 @@ self._requests = [] self._fakesinks = [] self._running = False + self._gone_to_paused = False def initialize(self): try: @@ -73,8 +74,13 @@ # set _in_reset to True here so that we don't run the # completion code on EOS - self._in_reset = True + + if self._gone_to_paused: + self._in_reset = True + else: + self._in_reset = False self._pipeline.set_state(gst.STATE_READY) + for sink in self._fakesinks: sink.set_state(gst.STATE_NULL) @@ -104,6 +110,7 @@ def _bus_message_state_changed_cb(self, bus, message): if message.src == self._pipeline: + self.debug("state changed %s", message) prev, current, pending = message.parse_state_changed() if current == gst.STATE_PAUSED: # we set _gone_to_paused here so that if we have an error we can @@ -113,9 +120,11 @@ self._done() def _bus_message_error_cb(self, bus, message): + self.debug("message error %s", message.parse_error()) self._failed(message.parse_error()) def _bus_message_eos_cb(self, bus, message): + self.debug("message eos %s in reset %s", message, self._in_reset) # don't run _done() if we get EOS because we're setting the state to # READY in _reset if not self._in_reset: