91 lines
1.8 KiB
Python
Executable File
91 lines
1.8 KiB
Python
Executable File
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()
|