Guido van Rossum | 843d153 | 1992-08-18 14:16:12 +0000 | [diff] [blame] | 1 | import sys |
| 2 | import VFile |
| 3 | import time |
| 4 | import gl, GL |
| 5 | from DEVICE import * |
| 6 | |
| 7 | def main(): |
| 8 | if sys.argv[1:]: |
| 9 | for filename in sys.argv[1:]: |
| 10 | process(filename) |
| 11 | else: |
| 12 | process('film.video') |
| 13 | |
| 14 | def process(filename): |
| 15 | vin = VFile.VinFile().init(filename) |
| 16 | print 'File: ', filename |
| 17 | print 'Version: ', vin.version |
| 18 | print 'Size: ', vin.width, 'x', vin.height |
| 19 | print 'Pack: ', vin.packfactor, '; chrom:', vin.chrompack |
| 20 | print 'Bits: ', vin.c0bits, vin.c1bits, vin.c2bits |
| 21 | print 'Format: ', vin.format |
| 22 | print 'Offset: ', vin.offset |
| 23 | |
| 24 | gl.foreground() |
| 25 | gl.prefsize(vin.width, vin.height) |
Guido van Rossum | 44b8e81 | 1992-08-18 14:47:20 +0000 | [diff] [blame^] | 26 | win = gl.winopen('* ' + filename) |
Guido van Rossum | 843d153 | 1992-08-18 14:16:12 +0000 | [diff] [blame] | 27 | vin.initcolormap() |
| 28 | |
| 29 | gl.qdevice(ESCKEY) |
| 30 | gl.qdevice(WINSHUT) |
| 31 | gl.qdevice(WINQUIT) |
| 32 | |
| 33 | t0 = time.millitimer() |
| 34 | running = 1 |
| 35 | data = None |
| 36 | while 1: |
| 37 | if running: |
| 38 | try: |
| 39 | t, data, chromdata = vin.getnextframe() |
| 40 | except EOFError: |
| 41 | running = 0 |
Guido van Rossum | 44b8e81 | 1992-08-18 14:47:20 +0000 | [diff] [blame^] | 42 | gl.wintitle(filename) |
Guido van Rossum | 843d153 | 1992-08-18 14:16:12 +0000 | [diff] [blame] | 43 | if running: |
| 44 | dt = t + t0 - time.millitimer() |
| 45 | if dt > 0: |
| 46 | time.millisleep(dt) |
| 47 | vin.showframe(data, chromdata) |
| 48 | if not running or gl.qtest(): |
| 49 | dev, val = gl.qread() |
| 50 | if dev in (ESCKEY, WINSHUT, WINQUIT): |
| 51 | break |
| 52 | if dev == REDRAW: |
| 53 | gl.reshapeviewport() |
| 54 | if data: |
| 55 | vin.showframe(data, chromdata) |
| 56 | |
| 57 | main() |