[pitivi] Avoid an exception in imagefreeze if the incoming caps don't have a framerate.



commit 13b72c4a2bd0c45c9f57c12d11ba70fcc73f9bec
Author: Alessandro Decina <alessandro d gmail com>
Date:   Tue Aug 11 21:14:39 2009 +0200

    Avoid an exception in imagefreeze if the incoming caps don't have a framerate.

 pitivi/elements/imagefreeze.py |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/pitivi/elements/imagefreeze.py b/pitivi/elements/imagefreeze.py
index 9d0120a..6e6c232 100644
--- a/pitivi/elements/imagefreeze.py
+++ b/pitivi/elements/imagefreeze.py
@@ -121,15 +121,17 @@ class ImageFreeze(gst.Element):
         for candidate in intersect:
             self.debug("Trying %s" % candidate.to_string())
             if self.srcpad.peer_accept_caps(candidate):
-                self.debug("accepted !")
+                self.debug("accepted ! %s" % candidate.to_string())
                 # 4. When we have an accepted caps downstream, we store the negotiated
                 #    framerate and return
-                if not candidate.has_key("framerate"):
+                if not candidate.has_key("framerate") or \
+                        not isinstance(candidate["framerate"], gst.Fraction):
                     candidate["framerate"] = gst.Fraction(25, 1)
                 self._outputrate = candidate["framerate"]
                 self._bufferduration = gst.SECOND * self._outputrate.denom / self._outputrate.num
                 self._srccaps = candidate.copy()
-                return self.srcpad.set_caps(self._srccaps)
+                res = self.srcpad.set_caps(self._srccaps)
+                return res
 
         # 5. If we can't find an accepted candidate, we return False
         return False



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]