| 57 | return GLib.SOURCE_REMOVE |
| 58 | |
| 59 | def main(args): |
| 60 | GObject.threads_init() |
| 61 | Gst.init(None) |
| 62 | |
| 63 | pipe = Gst.Pipeline.new('dynamic') |
| 64 | src = Gst.ElementFactory.make('videotestsrc') |
| 65 | sink = Gst.ElementFactory.make('autovideosink') |
| 66 | pipe.add(src, sink) |
| 67 | src.link(sink) |
| 68 | |
| 69 | pdata = ProbeData(pipe, src) |
| 70 | |
| 71 | loop = GObject.MainLoop() |
| 72 | |
| 73 | GLib.timeout_add_seconds(1, timeout_cb, pdata) |
| 74 | |
| 75 | bus = pipe.get_bus() |
| 76 | bus.add_signal_watch() |
| 77 | bus.connect ("message", bus_call, loop) |
| 78 | |
| 79 | # start play back and listen to events |
| 80 | pipe.set_state(Gst.State.PLAYING) |
| 81 | try: |
| 82 | loop.run() |
| 83 | except: |
| 84 | pass |
| 85 | |
| 86 | # cleanup |
| 87 | pipe.set_state(Gst.State.NULL) |
| 88 | |
| 89 | if __name__ == '__main__': |
| 90 | sys.exit(main(sys.argv)) |