=== 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: