Added usage() and help() to Vrecb, and turn on -f by default.

Removed duplicate description of -r option from documentation file.
This commit is contained in:
Guido van Rossum 1993-02-05 15:34:22 +00:00
parent f0384fdb97
commit 3f2ef09f40
2 changed files with 82 additions and 54 deletions

View File

@ -1,28 +1,7 @@
#! /ufs/guido/bin/sgi/python-405
#! /ufs/guido/bin/sgi/python
# Capture a continuous CMIF movie using the Indigo video library and board
# Usage:
#
# makemovie [-r rate] [-w width] [moviefile]
# Options:
#
# -r rate : capture 1 out of every 'rate' frames (default 1)
# -w width : initial window width (default interactive placement)
# -d : drop fields if needed
# -g bits : greyscale (2, 4 or 8 bits)
# -G : 2-bit greyscale dithered
# -m : monochrome dithered
# -M value : monochrome tresholded with value
# -f : Capture fields (in stead of frames)
# -n number : Capture 'number' fields (default 60)
#
# moviefile : here goes the movie data (default film.video);
# the format is documented in cmif-film.ms
# Capture a CMIF movie using the Indigo video library and board in burst mode
# User interface:
@ -51,6 +30,38 @@ import string
import imageop
import sgi
# Usage and help functions (keep this up-to-date if you change the program!)
def usage():
print 'Usage: Vrecb [options] [moviefile]'
print
print 'Options:'
print '-r rate : capture 1 out of every "rate" frames', \
'(default and min 1)'
print '-w width : initial window width', \
'(default interactive placement)'
print '-d : drop fields if needed'
print '-g bits : greyscale (2, 4 or 8 bits)'
print '-G : 2-bit greyscale dithered'
print '-m : monochrome dithered'
print '-M value : monochrome tresholded with value'
print '-f : Capture fields (instead of frames)'
print '-n number : Capture this many frames (default 60)'
print 'moviefile : here goes the movie data (default film.video)'
def help():
print 'Press the left mouse button to start recording.'
print 'Recording time is determined by the -n option.'
print 'You can record as many times as you wish, but each'
print 'recording overwrites the output file(s) -- only the'
print 'last recording is kept.'
print
print 'Press ESC or use the window manager Quit or Close window option'
print 'to quit. If you quit before recording anything, the output'
print 'file(s) are not touched.'
# Main program
def main():
@ -65,37 +76,55 @@ def main():
fields = 0
number = 60
opts, args = getopt.getopt(sys.argv[1:], 'r:w:dg:mM:Gfn:')
for opt, arg in opts:
if opt == '-r':
rate = string.atoi(arg)
if rate < 2:
sys.stderr.write('-r rate must be >= 2\n')
sys.exit(2)
elif opt == '-w':
width = string.atoi(arg)
elif opt == '-d':
drop = 1
elif opt == '-g':
grey = 1
greybits = string.atoi(arg)
if not greybits in (2,4,8):
print 'Only 2, 4 or 8 bit greyscale supported'
elif opt == '-G':
grey = 1
greybits = -2
elif opt == '-m':
mono = 1
elif opt == '-M':
mono = 1
monotreshold = string.atoi(arg)
elif opt == '-f':
fields = 1
elif opt == '-n':
number = string.atoi(arg)
try:
opts, args = getopt.getopt(sys.argv[1:], 'r:w:dg:mM:Gfn:')
except getopt.error, msg:
sys.stdout = sys.stderr
print 'Error:', msg, '\n'
usage()
sys.exit(2)
try:
for opt, arg in opts:
if opt == '-r':
rate = string.atoi(arg)
if rate < 1:
sys.stderr.write('-r rate must be >= 1\n')
sys.exit(2)
elif opt == '-w':
width = string.atoi(arg)
elif opt == '-d':
drop = 1
elif opt == '-g':
grey = 1
greybits = string.atoi(arg)
if not greybits in (2,4,8):
sys.stderr.write( \
'Only 2, 4 or 8 bit greyscale supported\n')
sys.exit(2)
elif opt == '-G':
grey = 1
greybits = -2
elif opt == '-m':
mono = 1
elif opt == '-M':
mono = 1
monotreshold = string.atoi(arg)
elif opt == '-f':
fields = 1
elif opt == '-n':
number = string.atoi(arg)
except string.atoi_error:
sys.stdout = sys.stderr
print 'Option', opt, 'requires integer argument'
sys.exit(2)
if not fields:
print '-f option assumed until Jack fixes it'
fields = 1
if args[2:]:
sys.stderr.write('usage: Vrec [options] [file]\n')
sys.stderr.write('usage: Vrecb [options] [file]\n')
sys.exit(2)
if args:
@ -151,7 +180,7 @@ def main():
gl.qdevice(DEVICE.WINSHUT)
gl.qdevice(DEVICE.ESCKEY)
print 'Press left mouse to start recording'
help()
while 1:
dev, val = gl.qread()
@ -231,6 +260,7 @@ def record(v, info, filename, mono, grey, greybits, monotreshold, fields):
vout.packfactor = (1,-2)
else:
print 'Sorry, can only save fields at the moment'
print '(i.e. you *must* use the -f option)'
gl.wintitle(filename)
return
vout.writeheader()

View File

@ -38,8 +38,6 @@ Options for Vrec:
-q queuesize Set size of the video board circular buffer. A little
experimentation with this may lead to more video being
captured, but not always.
-r rate Set video rate. A rate of 2 tries to capture every
second frame, etc.
-P frames Preallocate diskspace for 'frames' images. This may
enable you to capture more frames.