blob: e230c4fee320ab3b94a83515fc04ccf388214d88 [file] [log] [blame]
Guido van Rossume4bddea1991-10-30 11:52:48 +00001from gl import *
2from GL import *
3from DEVICE import *
4import time
5import sys
Guido van Rossum6f00a311991-11-06 16:13:02 +00006import getopt
Guido van Rossume4bddea1991-10-30 11:52:48 +00007
8class Struct(): pass
9epoch = Struct()
10EndOfFile = 'End of file'
11bye = 'bye'
12
Guido van Rossum27cb9911991-11-04 14:30:51 +000013def openvideo(filename):
14 f = open(filename, 'r')
15 line = f.readline()
16 if not line: raise EndOfFile
17 if line[:4] = 'CMIF': line = f.readline()
18 x = eval(line[:-1])
19 if len(x) = 3: w, h, pf = x
20 else: w, h = x; pf = 2
21 return f, w, h, pf
22
23def loadframe(f, w, h, pf):
24 line = f.readline()
25 if line = '':
Guido van Rossume4bddea1991-10-30 11:52:48 +000026 raise EndOfFile
Guido van Rossum27cb9911991-11-04 14:30:51 +000027 x = eval(line[:-1])
28 if type(x) = type(0) or type(x) = type(0.0):
29 tijd = x
30 if pf = 0:
31 size = w*h*4
32 else:
33 size = (w/pf) * (h/pf)
34 else:
35 tijd, size = x
36 f.seek(size, 1)
Guido van Rossume4bddea1991-10-30 11:52:48 +000037 return tijd
Guido van Rossum27cb9911991-11-04 14:30:51 +000038
Guido van Rossume4bddea1991-10-30 11:52:48 +000039def saveframe(name, w, h, tijd, data):
40 f = open(name, 'w')
41 f.write(`w,h` + '\n')
42 f.write(`tijd` + '\n')
43 f.write(data)
44 f.close()
Guido van Rossum27cb9911991-11-04 14:30:51 +000045
Guido van Rossume4bddea1991-10-30 11:52:48 +000046def main():
Guido van Rossum6f00a311991-11-06 16:13:02 +000047 delta = 0
48 opts, names = getopt.getopt(sys.argv[1:], 'd')
49 for opt, arg in opts:
50 if opt = '-d': delta = 1
51 if names = []:
Guido van Rossume4bddea1991-10-30 11:52:48 +000052 names = ['film.video']
53 for name in names:
Guido van Rossum6f00a311991-11-06 16:13:02 +000054 try:
55 f, w, h, pf = openvideo(name)
56 except:
57 sys.stderr.write(name + ': cannot open\n')
58 continue
Guido van Rossum27cb9911991-11-04 14:30:51 +000059 print name, ':', w, 'x', h, '; pf =', pf
Guido van Rossume4bddea1991-10-30 11:52:48 +000060 num = 0
61 try:
Guido van Rossum6f00a311991-11-06 16:13:02 +000062 otijd = 0
Guido van Rossume4bddea1991-10-30 11:52:48 +000063 while 1:
64 try:
Guido van Rossum27cb9911991-11-04 14:30:51 +000065 tijd = loadframe(f, w, h, pf)
Guido van Rossum6f00a311991-11-06 16:13:02 +000066 if delta: print '\t', tijd-otijd,
67 else: print '\t', tijd,
68 otijd = tijd
Guido van Rossume4bddea1991-10-30 11:52:48 +000069 num = num + 1
70 if num % 8 = 0:
71 print
72 except EndOfFile:
73 raise bye
74 except bye:
75 pass
76 if num % 8 <> 0:
77 print
78 f.close()
79
80main()