]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Renamed vcopy to Vcopy (it is the only old tool that's still in use)
authorGuido van Rossum <guido@python.org>
Thu, 24 Dec 1992 11:41:14 +0000 (11:41 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 24 Dec 1992 11:41:14 +0000 (11:41 +0000)
Demo/sgi/video/Vcopy.py [new file with mode: 0755]

diff --git a/Demo/sgi/video/Vcopy.py b/Demo/sgi/video/Vcopy.py
new file mode 100755 (executable)
index 0000000..f92dfdd
--- /dev/null
@@ -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()