blob: 196a0da7526bd99222107a7f2378be3bc5ca5719 [file] [log] [blame]
Guido van Rossume4bddea1991-10-30 11:52:48 +00001from gl import *
2from GL import *
3from DEVICE import *
4import time
5import sys
6
7class Struct(): pass
8epoch = Struct()
9EndOfFile = 'End of file'
10bye = 'bye'
11
Guido van Rossum27cb9911991-11-04 14:30:51 +000012def openvideo(filename):
13 f = open(filename, 'r')
14 line = f.readline()
15 if not line: raise EndOfFile
16 if line[:4] = 'CMIF': line = f.readline()
17 x = eval(line[:-1])
18 if len(x) = 3: w, h, pf = x
19 else: w, h = x; pf = 2
20 return f, w, h, pf
21
22def loadframe(f, w, h, pf):
23 line = f.readline()
24 if line = '':
Guido van Rossume4bddea1991-10-30 11:52:48 +000025 raise EndOfFile
Guido van Rossum27cb9911991-11-04 14:30:51 +000026 x = eval(line[:-1])
27 if type(x) = type(0) or type(x) = type(0.0):
28 tijd = x
29 if pf = 0:
30 size = w*h*4
31 else:
32 size = (w/pf) * (h/pf)
33 else:
34 tijd, size = x
35 f.seek(size, 1)
Guido van Rossume4bddea1991-10-30 11:52:48 +000036 return tijd
Guido van Rossum27cb9911991-11-04 14:30:51 +000037
Guido van Rossume4bddea1991-10-30 11:52:48 +000038def saveframe(name, w, h, tijd, data):
39 f = open(name, 'w')
40 f.write(`w,h` + '\n')
41 f.write(`tijd` + '\n')
42 f.write(data)
43 f.close()
Guido van Rossum27cb9911991-11-04 14:30:51 +000044
Guido van Rossume4bddea1991-10-30 11:52:48 +000045def main():
46 if len(sys.argv) > 1:
47 names = sys.argv[1:]
48 else:
49 names = ['film.video']
50 for name in names:
Guido van Rossum27cb9911991-11-04 14:30:51 +000051 f, w, h, pf = openvideo(name)
52 print name, ':', w, 'x', h, '; pf =', pf
Guido van Rossume4bddea1991-10-30 11:52:48 +000053 num = 0
54 try:
55 while 1:
56 try:
Guido van Rossum27cb9911991-11-04 14:30:51 +000057 tijd = loadframe(f, w, h, pf)
Guido van Rossume4bddea1991-10-30 11:52:48 +000058 print '\t', tijd,
59 num = num + 1
60 if num % 8 = 0:
61 print
62 except EndOfFile:
63 raise bye
64 except bye:
65 pass
66 if num % 8 <> 0:
67 print
68 f.close()
69
70main()