diff options
Diffstat (limited to 'Demo/sgi/video/Vinfo.py')
-rwxr-xr-x | Demo/sgi/video/Vinfo.py | 76 |
1 files changed, 66 insertions, 10 deletions
diff --git a/Demo/sgi/video/Vinfo.py b/Demo/sgi/video/Vinfo.py index 3293e41..2aec803 100755 --- a/Demo/sgi/video/Vinfo.py +++ b/Demo/sgi/video/Vinfo.py @@ -1,12 +1,53 @@ +#! /usr/local/python + +# Print some info about a CMIF movie file + + +# Usage: +# +# Vinfo [-d] [-q] [-s] [file] ... + + +# Options: +# +# -d : print deltas between frames instead of frame times +# -q : quick: don't read the frames +# -s : don't print times (but do count frames and print the total) +# file ... : file(s) to inspect; default film.video + + import sys +sys.path.append('/ufs/guido/src/video') import VFile +import getopt + + +# Global options + +short = 0 +quick = 0 +diffs = 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 short, quick, diffs + opts, args = getopt.getopt(sys.argv[1:], 'dqs') + for opt, arg in opts: + if opt == '-q': + quick = 1 + elif opt == '-d': + diffs = 1 + elif opt == '-s': + short = 1 + if not args: + args = ['film.video'] + for filename in args: + process(filename) + + +# Process one file def process(filename): vin = VFile.VinFile().init(filename) @@ -17,22 +58,37 @@ def process(filename): print 'Bits: ', vin.c0bits, vin.c1bits, vin.c2bits print 'Format: ', vin.format print 'Offset: ', vin.offset - print 'Frame times:', + if quick: + vin.close() + return + if not short: + print 'Frame times:', n = 0 t = 0 + told = 0 while 1: try: t, data, cdata = vin.getnextframe() except EOFError: - print + if not short: + print break - if n%8 == 0: - sys.stdout.write('\n') - sys.stdout.write('\t' + `t`) + if not short: + if n%8 == 0: + sys.stdout.write('\n') + if delta: + sys.stdout.write('\t' + `t - told`) + told = t + else: + sys.stdout.write('\t' + `t`) n = n+1 print 'Total', n, 'frames in', t*0.001, 'sec.', if t: print '-- average', int(n*10000.0/t)*0.1, 'frames/sec', print + vin.close() + + +# Don't forget to call the main program main() |