Development Team/Almanac/GStreamer: Difference between revisions
| Line 143: | Line 143: | ||
self.gplayWin.resize( 300, 400 ) | self.gplayWin.resize( 300, 400 ) | ||
self.gplayWin.show_all( ) | self.gplayWin.show_all( ) | ||
</pre> | |||
Alternatively, you could embed your video into a gtk.DrawingArea: | |||
<pre> | |||
class VideoWidget(gtk.DrawingArea): | |||
def __init__(self): | |||
gtk.DrawingArea.__init__(self) | |||
self.set_events(gtk.gdk.POINTER_MOTION_MASK | | |||
gtk.gdk.POINTER_MOTION_HINT_MASK | | |||
gtk.gdk.EXPOSURE_MASK | | |||
gtk.gdk.KEY_PRESS_MASK | | |||
gtk.gdk.KEY_RELEASE_MASK) | |||
self.imagesink = None | |||
self.unset_flags(gtk.DOUBLE_BUFFERED) | |||
self.set_flags(gtk.APP_PAINTABLE) | |||
def do_expose_event(self, event): | |||
if self.imagesink: | |||
self.imagesink.expose() | |||
return False | |||
else: | |||
return True | |||
def set_sink(self, sink): | |||
assert self.window.xid | |||
self.imagesink = sink | |||
self.imagesink.set_xwindow_id(self.window.xid) | |||
</pre> | </pre> | ||