Guido van Rossum | e4bddea | 1991-10-30 11:52:48 +0000 | [diff] [blame] | 1 | from gl import * |
| 2 | from GL import * |
| 3 | from DEVICE import * |
| 4 | import time |
| 5 | import sys |
| 6 | |
| 7 | class Struct(): pass |
| 8 | epoch = Struct() |
| 9 | EndOfFile = 'End of file' |
| 10 | bye = 'bye' |
| 11 | |
Guido van Rossum | 27cb991 | 1991-11-04 14:30:51 +0000 | [diff] [blame^] | 12 | def 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 | |
| 22 | def loadframe(f, w, h, pf): |
| 23 | line = f.readline() |
| 24 | if line = '': |
Guido van Rossum | e4bddea | 1991-10-30 11:52:48 +0000 | [diff] [blame] | 25 | raise EndOfFile |
Guido van Rossum | 27cb991 | 1991-11-04 14:30:51 +0000 | [diff] [blame^] | 26 | 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 Rossum | e4bddea | 1991-10-30 11:52:48 +0000 | [diff] [blame] | 36 | return tijd |
Guido van Rossum | 27cb991 | 1991-11-04 14:30:51 +0000 | [diff] [blame^] | 37 | |
Guido van Rossum | e4bddea | 1991-10-30 11:52:48 +0000 | [diff] [blame] | 38 | def 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 Rossum | 27cb991 | 1991-11-04 14:30:51 +0000 | [diff] [blame^] | 44 | |
Guido van Rossum | e4bddea | 1991-10-30 11:52:48 +0000 | [diff] [blame] | 45 | def 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 Rossum | 27cb991 | 1991-11-04 14:30:51 +0000 | [diff] [blame^] | 51 | f, w, h, pf = openvideo(name) |
| 52 | print name, ':', w, 'x', h, '; pf =', pf |
Guido van Rossum | e4bddea | 1991-10-30 11:52:48 +0000 | [diff] [blame] | 53 | num = 0 |
| 54 | try: |
| 55 | while 1: |
| 56 | try: |
Guido van Rossum | 27cb991 | 1991-11-04 14:30:51 +0000 | [diff] [blame^] | 57 | tijd = loadframe(f, w, h, pf) |
Guido van Rossum | e4bddea | 1991-10-30 11:52:48 +0000 | [diff] [blame] | 58 | 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 | |
| 70 | main() |