from gl import * from GL import * from DEVICE import * import time import sys import getopt class Struct(): pass epoch = Struct() EndOfFile = 'End of file' bye = 'bye' def openvideo(filename): f = open(filename, 'r') line = f.readline() if not line: raise EndOfFile if line[:4] == 'CMIF': line = f.readline() x = eval(line[:-1]) if len(x) == 3: w, h, pf = x else: w, h = x; pf = 2 return f, w, h, pf def loadframe(f, w, h, pf): line = f.readline() if line == '': raise EndOfFile x = eval(line[:-1]) if type(x) == type(0) or type(x) == type(0.0): tijd = x if pf == 0: size = w*h*4 else: size = (w/pf) * (h/pf) else: tijd, size = x f.seek(size, 1) return tijd def main(): delta = 0 short = 0 try: opts, names = getopt.getopt(sys.argv[1:], 'ds') except getopt.error, msg: sys.stderr.write(msg + '\n') sys.stderr.write('usage: vinfo [-d] [-s] [file] ...\n') sys.exit(2) for opt, arg in opts: if opt == '-d': delta = 1 # print delta between frames elif opt == '-s': short = 1 # short: don't print times if names == []: names = ['film.video'] for name in names: try: f, w, h, pf = openvideo(name) except: sys.stderr.write(name + ': cannot open\n') continue if pf == 0: size = w*h*4 else: size = (w/pf) * (h/pf) print name, ':', w, 'x', h, '; pf =', pf, ', size =', size, if pf == 0: print '(color)', else: print '(' + `(w/pf)` + 'x' + `(h/pf)` + ')', if (w/pf)%4 <> 0: print '!!!', print num = 0 try: otijd = 0 while not short: try: tijd = loadframe(f, w, h, pf) if delta: print '\t' + `tijd-otijd`, else: print '\t' + `tijd`, otijd = tijd num = num + 1 if num % 8 == 0: print except EndOfFile: raise bye except bye: pass if num % 8 <> 0: print f.close() main()