examples/video-controller.py: Demo how to use the controller on videomixer.
authorStefan Kost <ensonic@users.sourceforge.net>
Thu, 31 Jan 2008 19:57:26 +0000 (19:57 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Thu, 31 Jan 2008 19:57:26 +0000 (19:57 +0000)
Original commit message from CVS:
* examples/video-controller.py:
Demo how to use the controller on videomixer.

ChangeLog
examples/video-controller.py [new file with mode: 0644]

index 1218e31..d6b9ec2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-31  Stefan Kost  <ensonic@users.sf.net>
+
+       * examples/video-controller.py:
+         Demo how to use the controller on videomixer.
+
 2008-01-31  Jan Schmidt  <Jan.Schmidt@sun.com>
 
        * gst/.cvsignore:
diff --git a/examples/video-controller.py b/examples/video-controller.py
new file mode 100644 (file)
index 0000000..4b561d1
--- /dev/null
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+# -*- Mode: Python -*-
+# vi:si:et:sw=4:sts=4:ts=4
+
+# videomixer-controller.py
+# (c) 2008 Stefan Kost <ensonic@users.sf.net>
+# Test case for the GstController using videomixer and videotestsrc
+
+import pygst
+pygst.require('0.10')
+import gst
+import time
+
+def main():
+    pipeline = gst.Pipeline("videocontroller")
+    src = gst.element_factory_make("videotestsrc", "src")
+    mix = gst.element_factory_make("videomixer", "mix")
+    conv = gst.element_factory_make("ffmpegcolorspace", "conv")
+    sink = gst.element_factory_make("autovideosink", "sink")
+    pipeline.add(src, mix, conv, sink)
+
+    spad = src.get_static_pad('src')
+    dpad = mix.get_request_pad('sink_%d')
+
+    spad.link(dpad)
+    mix.link(conv)
+    conv.link(sink)
+
+    control = gst.Controller(dpad, "xpos", "ypos")
+    control.set_interpolation_mode("xpos", gst.INTERPOLATE_LINEAR)
+    control.set_interpolation_mode("ypos", gst.INTERPOLATE_LINEAR)
+
+    control.set("xpos", 0, 0)
+    control.set("xpos", 5 * gst.SECOND, 200)
+
+    control.set("ypos", 0, 0)
+    control.set("ypos", 5 * gst.SECOND, 200)
+
+    pipeline.set_state(gst.STATE_PLAYING)
+
+    time.sleep(7)
+
+if __name__ == "__main__":
+    main()