All pastes #417542 Raw Edit

Miscellany

public python v1 · immutable
#417542 ·published 2007-03-30 22:52 UTC
rendered paste body
#!/usr/bin/env python2.4import sys, Image, timeimport pgmrenderimport pygstpygst.require ("0.10")import gstfrom pgm import render, logfrom pgm.layout import window, groupfrom pgm.form import rectangle, stroke, color, image, labelfrom pgm.timing import controller, modifier, keyframelog.set_level(log.DEBUG)def handle_events(events):    for event in events:        event_type = event.type        if event_type == pgmrender.DELETE:            sys.exit(0)def main(args):    title = 'Stream'    if len(args) != 1:        print 'Usage: %s mediafile' % sys.argv[0]        return 1    pgmrender.init('opengl1')       win = pgmrender.create_window()    win.set_title(title, title)      drb1 = pgmrender.create_surface()    drb1.set_position(0, 0)    drb1.set_size(800, 600)    win.add_drawable(drb1, pgmrender.DRAWABLE_FAR)    lbl = label.Label()    lbl.text = "Pigment label"    win.add(lbl)        pipeline = gst.parse_launch("gnomevfssrc name=src ! decodebin name=d ! " \                                "queue ! ffmpegcolorspace ! " \                                "pgmrendersink name=sink ")    src_element = pipeline.get_by_name('src')    src_element.set_property('location', sys.argv[1])    sink_element = pipeline.get_by_name('sink')    sink_element.set_property('drawable', drb1)    pipeline.set_state(gst.STATE_PLAYING)    win.start_loop()    while 1:        events = win.get_events()        handle_events(events)        win.update()        time.sleep(0.025)if __name__ == '__main__':    sys.exit(main(sys.argv[1:]))