Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- import pygst
- pygst.require("0.10")
- import gst
- import pygtk
- import gtk
- import gtk.glade
- import cairo
- class Main:
- def __init__(self):
- # Create gui bits and bobs
- self.wTree = gtk.glade.XML("gui.glade", "mainwindow")
- signals = {
- "on_play_clicked" : self.OnPlay,
- "on_stop_clicked" : self.OnStop,
- "on_quit_clicked" : self.OnQuit,
- }
- self.wTree.signal_autoconnect(signals)
- # Create GStreamer bits and bobs
- self.pipeline = gst.Pipeline("mypipeline")
- self.videotestsrc = gst.element_factory_make("videotestsrc", "source")
- self.pipeline.add(self.videotestsrc)
- self.adaptor1 = gst.element_factory_make("ffmpegcolorspace", "adaptor1");
- self.pipeline.add(self.adaptor1)
- self.cairooverlay = gst.element_factory_make("cairooverlay")
- self.cairooverlay.connect("draw", self.OnDraw)
- self.pipeline.add(self.cairooverlay)
- self.adaptor2 = gst.element_factory_make("ffmpegcolorspace", "adaptor2");
- self.pipeline.add(self.adaptor2)
- self.sink = gst.element_factory_make("autovideosink")
- self.pipeline.add(self.sink)
- self.videotestsrc.link(self.adaptor1)
- self.adaptor1.link(self.cairooverlay)
- self.cairooverlay.link(self.adaptor2)
- self.adaptor2.link(self.sink)
- self.window = self.wTree.get_widget("mainwindow")
- self.window.show_all()
- def OnPlay(self, widget):
- print "play"
- self.pipeline.set_state(gst.STATE_PLAYING)
- def OnStop(self, widget):
- print "stop"
- self.pipeline.set_state(gst.STATE_READY)
- def OnQuit(self, widget):
- gtk.main_quit()
- def OnDraw(this, overlay, cr, timestamp, duration): # one argument ommited
- # draw text
- #cr.select_font_face('Sans')
- #cr.set_font_size(60) # em-square height is 90 pixels
- #cr.move_to(10, 90) # move to point (x, y) = (10, 90)
- #cr.set_source_rgb(1.00, 0.83, 0.00) # yellow
- cr.show_text('Hello World')
- # finish up
- cr.stroke() # commit to surface
- start=Main()
- gtk.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement