summaryrefslogtreecommitdiffstats
path: root/Demo/sgi/video/Vplay.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1992-08-18 17:01:02 (GMT)
committerGuido van Rossum <guido@python.org>1992-08-18 17:01:02 (GMT)
commit82534fd828fd8760382f2502f6c04c48a79ea28f (patch)
tree6a747ae15183cecfe340681099a78b4e2bd41cb6 /Demo/sgi/video/Vplay.py
parentbc0eb9967d21ddaa783fc34d445e504b6552e242 (diff)
downloadcpython-82534fd828fd8760382f2502f6c04c48a79ea28f.zip
cpython-82534fd828fd8760382f2502f6c04c48a79ea28f.tar.gz
cpython-82534fd828fd8760382f2502f6c04c48a79ea28f.tar.bz2
Add comments and options
Diffstat (limited to 'Demo/sgi/video/Vplay.py')
-rwxr-xr-xDemo/sgi/video/Vplay.py93
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()