fix 64px timelines

This commit is contained in:
j 2010-08-20 12:11:17 +02:00
commit 83db829cf8
3 changed files with 40 additions and 16 deletions

View file

@ -17,7 +17,7 @@ from imagesink import ImageSink
class Video(gst.Pipeline):
def __init__(self, uri):
def __init__(self, uri, framerate='25/1'):
gst.Pipeline.__init__(self)
self.duration = -1
# queue of timestamps
@ -37,10 +37,16 @@ class Video(gst.Pipeline):
self.sbin = SingleDecodeBin(caps=gst.Caps("video/x-raw-rgb;video/x-raw-yuv"),
uri=self.uri)
self.csp = gst.element_factory_make("ffmpegcolorspace")
self.rate = gst.element_factory_make("videorate")
self.queue = gst.element_factory_make("queue")
self.sink = ImageSink()
self.sink.connect('frame', self._frameCb)
self.add(self.sbin, self.csp, self.sink)
self.add(self.sbin, self.csp, self.queue, self.rate, self.sink)
self.queue.link(self.rate)
self.rate.link(self.csp, gst.Caps("video/x-raw-yuv,framerate=%s"%framerate))
self.csp.link(self.sink)
self.sbin.connect('pad-added', self._sbinPadAddedCb)
@ -54,7 +60,7 @@ class Video(gst.Pipeline):
def _sbinPadAddedCb(self, unused_sbin, pad):
self.log("pad : %s" % pad)
pad.link(self.csp.get_pad("sink"))
pad.link(self.queue.get_pad("sink"))
def _frameCb(self, unused_thsink, frame, timestamp):
self.log("image:%s, timestamp:%s" % (frame, gst.TIME_ARGS(timestamp)))