[pitivi] discoverer: seek at duration / 3 when generating thumbnails.



commit 5490685bce980683a09d28973e768438eda0f170
Author: Alessandro Decina <alessandro d gmail com>
Date:   Sun Feb 21 15:52:34 2010 +0100

    discoverer: seek at duration / 3 when generating thumbnails.

 pitivi/discoverer.py |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)
---
diff --git a/pitivi/discoverer.py b/pitivi/discoverer.py
index 3471bd0..3372ddf 100644
--- a/pitivi/discoverer.py
+++ b/pitivi/discoverer.py
@@ -478,10 +478,29 @@ class Discoverer(Signallable, Loggable):
 
         return filename
 
+    def _videoPadSeekCb(self, pad):
+        try:
+            duration = self.pipeline.query_duration(gst.FORMAT_TIME)[0]
+        except gst.QueryError:
+            duration = 0
+
+        if duration:
+            self.pipeline.seek_simple(gst.FORMAT_TIME,
+                    gst.SEEK_FLAG_FLUSH, duration / 3)
+
+        pad.set_blocked_async(False, self._videoPadBlockCb)
+
+    def _videoPadBlockCb(self, pad, blocked):
+        self.debug("video pad blocked: %s" % blocked)
+        if blocked:
+            gobject.timeout_add(0, self._videoPadSeekCb, pad)
+
     def _newVideoPadCb(self, pad):
         """ a new video pad was found """
         self.debug("pad %r", pad)
 
+        pad.set_blocked_async(True, self._videoPadBlockCb)
+
         queue = gst.element_factory_make("queue")
         queue.props.max_size_bytes = 5 * 1024 * 1024
         queue.props.max_size_time = 5 * gst.SECOND



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