diff options
author | Guido van Rossum <guido@python.org> | 1992-08-18 17:01:02 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1992-08-18 17:01:02 (GMT) |
commit | 82534fd828fd8760382f2502f6c04c48a79ea28f (patch) | |
tree | 6a747ae15183cecfe340681099a78b4e2bd41cb6 /Demo/sgi/video/Vplay.py | |
parent | bc0eb9967d21ddaa783fc34d445e504b6552e242 (diff) | |
download | cpython-82534fd828fd8760382f2502f6c04c48a79ea28f.zip cpython-82534fd828fd8760382f2502f6c04c48a79ea28f.tar.gz cpython-82534fd828fd8760382f2502f6c04c48a79ea28f.tar.bz2 |
Add comments and options
Diffstat (limited to 'Demo/sgi/video/Vplay.py')
-rwxr-xr-x | Demo/sgi/video/Vplay.py | 93 |
1 files changed, 85 insertions, 8 deletions
diff --git a/Demo/sgi/video/Vplay.py b/Demo/sgi/video/Vplay.py index 1b9c80c..ce82b68 100755 --- a/Demo/sgi/video/Vplay.py +++ b/Demo/sgi/video/Vplay.py @@ -1,15 +1,63 @@ +#! /usr/local/python + +# Play CMIF movie files + + +# Usage: +# +# Vplay [-l] [-m maginfy] [file] ... + + +# Options: +# +# -l : loop, playing the movie over and over again +# -m magnify : magnify the image by the given factor +# file ... : file(s) to play; default film.video + + +# User interface: +# +# Place the windo where you want it. The size is determined by the +# movie file and the -m option. +# +# Press ESC or select the window manager Quit or Close window option +# to close a window; if more files are given the window for the next +# file now pops up. + + import sys +sys.path.append('/ufs/guido/src/video') import VFile import time import gl, GL from DEVICE import * +import getopt +import string + + +# Global options + +magnify = 1 +looping = 0 + + +# Main program -- mostly command line parsing def main(): - if sys.argv[1:]: - for filename in sys.argv[1:]: - process(filename) - else: - process('film.video') + global magnify, looping + opts, args = getopt.getopt(sys.argv[1:], 'lm:') + for opt, arg in opts: + if opt == '-l': + looping = 1 + elif opt == '-m': + magnify = string.atoi(arg) + if not args: + args = ['film.video'] + for filename in args: + process(filename) + + +# Process one file def process(filename): vin = VFile.VinFile().init(filename) @@ -20,9 +68,10 @@ def process(filename): print 'Bits: ', vin.c0bits, vin.c1bits, vin.c2bits print 'Format: ', vin.format print 'Offset: ', vin.offset + vin.magnify = magnify gl.foreground() - gl.prefsize(vin.width, vin.height) + gl.prefsize(vin.width * magnify, vin.height * magnify) win = gl.winopen('* ' + filename) vin.initcolormap() @@ -33,25 +82,53 @@ def process(filename): t0 = time.millitimer() running = 1 data = None + t = 0 + n = 0 while 1: if running: try: t, data, chromdata = vin.getnextframe() + n = n+1 except EOFError: - running = 0 + t1 = time.millitimer() gl.wintitle(filename) + print 'Recorded:', n, + print 'frames in', t*0.001, 'sec.', + if t: + print '-- average', + print int(n*10000.0/t)*0.1, + print 'frames/sec', + print + t = t1-t0 + print 'Played:', n, + print 'frames in', t*0.001, 'sec.', + if t: + print '-- average', + print int(n*10000.0/t)*0.1, + print 'frames/sec', + print + if looping and n > 0: + vin.rewind() + vin.magnify = magnify + continue + else: + running = 0 if running: dt = t + t0 - time.millitimer() if dt > 0: time.millisleep(dt) - vin.showframe(data, chromdata) + vin.showframe(data, chromdata) if not running or gl.qtest(): dev, val = gl.qread() if dev in (ESCKEY, WINSHUT, WINQUIT): + gl.winclose(win) break if dev == REDRAW: gl.reshapeviewport() if data: vin.showframe(data, chromdata) + +# Don't forget to call the main program + main() |