summaryrefslogtreecommitdiffstats
path: root/Demo
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1992-12-24 11:41:14 (GMT)
committerGuido van Rossum <guido@python.org>1992-12-24 11:41:14 (GMT)
commit349f2b516b89c46f915a57029ed2bd33f85ff363 (patch)
tree45de319388eef872efecb252914c9cbcede6a25a /Demo
parent3f3c099e9f906a1d8d0ffdcdb8e966b2b9bde716 (diff)
downloadcpython-349f2b516b89c46f915a57029ed2bd33f85ff363.zip
cpython-349f2b516b89c46f915a57029ed2bd33f85ff363.tar.gz
cpython-349f2b516b89c46f915a57029ed2bd33f85ff363.tar.bz2
Renamed vcopy to Vcopy (it is the only old tool that's still in use)
Diffstat (limited to 'Demo')
-rwxr-xr-xDemo/sgi/video/Vcopy.py134
1 files changed, 134 insertions, 0 deletions
diff --git a/Demo/sgi/video/Vcopy.py b/Demo/sgi/video/Vcopy.py
new file mode 100755
index 0000000..f92dfdd
--- /dev/null
+++ b/Demo/sgi/video/Vcopy.py
@@ -0,0 +1,134 @@
+# Copy a video file, interactively, frame-by-frame.
+
+import sys
+import getopt
+from gl import *
+from DEVICE import *
+import VFile
+import string
+import imageop
+
+def report(time, iframe):
+ print 'Frame', iframe, ': t =', time
+
+def usage():
+ sys.stderr.write('usage: Vcopy [-t type] [-m treshold] [-a] infile outfile\n')
+ sys.stderr.write('-t Convert to other type\n')
+ sys.stderr.write('-a Automatic\n')
+ sys.stderr.write('-m Convert grey to mono with treshold\n')
+ sys.stderr.write('-d Convert grey to mono with dithering\n')
+ sys.exit(2)
+
+def help():
+ print 'Command summary:'
+ print 'n get next image from input'
+ print 'w write current image to output'
+
+def main():
+ foreground()
+ opts, args = getopt.getopt(sys.argv[1:], 't:am:d')
+ if len(args) <> 2:
+ usage()
+ [ifile, ofile] = args
+ print 'open film ', ifile
+ ifilm = VFile.VinFile().init(ifile)
+ print 'open output ', ofile
+ ofilm = VFile.VoutFile().init(ofile)
+
+ ofilm.setinfo(ifilm.getinfo())
+
+ use_grabber = 0
+ continuous = 0
+ tomono = 0
+ tomonodither = 0
+ for o, a in opts:
+ if o == '-t':
+ ofilm.format = a
+ use_grabber = 1
+ if o == '-a':
+ continuous = 1
+ if o == '-m':
+ if ifilm.format <> 'grey':
+ print '-m only supported for greyscale'
+ sys.exit(1)
+ tomono = 1
+ treshold = string.atoi(a)
+ ofilm.format = 'mono'
+ if o == '-d':
+ if ifilm.format <> 'grey':
+ print '-m only supported for greyscale'
+ sys.exit(1)
+ tomonodither = 1
+ ofilm.format = 'mono'
+
+ ofilm.writeheader()
+ #
+ prefsize(ifilm.width, ifilm.height)
+ w = winopen(ifile)
+ qdevice(KEYBD)
+ qdevice(ESCKEY)
+ qdevice(WINQUIT)
+ qdevice(WINSHUT)
+ print 'qdevice calls done'
+ #
+ help()
+ #
+ time, data, cdata = ifilm.getnextframe()
+ ifilm.showframe(data, cdata)
+ iframe = 1
+ report(time, iframe)
+ #
+ while 1:
+ if continuous:
+ dev = KEYBD
+ else:
+ dev, val = qread()
+ if dev in (ESCKEY, WINQUIT, WINSHUT):
+ break
+ if dev == REDRAW:
+ reshapeviewport()
+ elif dev == KEYBD:
+ if continuous:
+ c = '0'
+ else:
+ c = chr(val)
+ #XXX Debug
+ if c == 'R':
+ c3i(255,0,0)
+ clear()
+ if c == 'G':
+ c3i(0,255,0)
+ clear()
+ if c == 'B':
+ c3i(0,0,255)
+ clear()
+ if c == 'w' or continuous:
+ if use_grabber:
+ data, cdata = ofilm.grabframe()
+ if tomono:
+ data = imageop.grey2mono(data, \
+ ifilm.width, ifilm.height, \
+ treshold)
+ if tomonodither:
+ data = imageop.dither2mono(data, \
+ ifilm.width, ifilm.height)
+ ofilm.writeframe(time, data, cdata)
+ print 'Frame', iframe, 'written.'
+ if c == 'n' or continuous:
+ try:
+ time,data,cdata = ifilm.getnextframe()
+ ifilm.showframe(data, cdata)
+ iframe = iframe+1
+ report(time, iframe)
+ except EOFError:
+ print 'EOF'
+ if continuous:
+ break
+ ringbell()
+ elif dev == INPUTCHANGE:
+ pass
+ else:
+ print '(dev, val) =', (dev, val)
+ ofilm.close()
+
+main()