All pastes #770852 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-11-12 17:12 UTC
rendered paste body
=== 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: