1 #!/ufs/guido/bin/sgi/python
3 # Decompress a jpeg or jpeggrey video file to rgb format
8 # Vunjpeg [infile [outfile]]
13 # infile : input file (default film.video)
14 # outfile : output file (default out.video)
19 sys
.path
.append('/ufs/guido/src/video')
23 # Main program -- mostly command line parsing
28 args
.append('film.video')
30 args
.append('out.video')
32 sys
.stderr
.write('usage: Vunjpeg [infile [outfile]]\n')
34 sts
= process(args
[0], args
[1])
38 # Copy one file to another
40 def process(infilename
, outfilename
):
42 vin
= VFile
.BasicVinFile(infilename
)
44 sys
.stderr
.write(infilename
+ ': I/O error: ' + `msg`
+ '\n')
46 except VFile
.Error
, msg
:
47 sys
.stderr
.write(msg
+ '\n')
50 sys
.stderr
.write(infilename
+ ': EOF in video file\n')
54 vout
= VFile
.BasicVoutFile(outfilename
)
56 sys
.stderr
.write(outfilename
+ ': I/O error: ' + `msg`
+ '\n')
62 width
, height
= vin
.getsize()
64 elif info
[0] == 'jpeggrey':
66 width
, height
= vin
.getsize()
68 width
, height
= width
/pf
, height
/pf
71 sys
.stderr
.write('Vunjpeg: input not in jpeg[grey] format\n')
73 info
= (format
,) + info
[1:]
80 t
, data
, cdata
= vin
.getnextframe()
82 sys
.stderr
.write('Frame ' + `n`
+ '...')
83 data
, w
, h
, b
= jpeg
.decompress(data
)
84 if (w
, h
, b
) <> (width
, height
, bytes
):
85 sys
.stderr
.write('jpeg data has wrong size\n')
88 vout
.writeframe(t
, data
, None)
89 sys
.stderr
.write('\n')
95 # Don't forget to call the main program