1 # Copy a video file, interactively, frame-by-frame.
11 def report(time
, iframe
):
12 print 'Frame', iframe
, ': t =', time
15 sys
.stderr
.write('usage: vcopy [-t type] [-m treshold] [-a] infile outfile\n')
16 sys
.stderr
.write('-t Convert to other type\n')
17 sys
.stderr
.write('-a Automatic\n')
18 sys
.stderr
.write('-m Convert grey to mono with treshold\n')
19 sys
.stderr
.write('-d Convert grey to mono with dithering\n')
23 print 'Command summary:'
24 print 'n get next image from input'
25 print 'w write current image to output'
29 opts
, args
= getopt
.getopt(sys
.argv
[1:], 't:am:d')
33 print 'open film ', ifile
34 ifilm
= VFile
.VinFile().init(ifile
)
35 print 'open output ', ofile
36 ofilm
= VFile
.VoutFile().init(ofile
)
38 ofilm
.setinfo(ifilm
.getinfo())
51 if ifilm
.format
<> 'grey':
52 print '-m only supported for greyscale'
55 treshold
= string
.atoi(a
)
58 if ifilm
.format
<> 'grey':
59 print '-m only supported for greyscale'
66 prefsize(ifilm
.width
, ifilm
.height
)
72 print 'qdevice calls done'
76 time
, data
, cdata
= ifilm
.getnextframe()
77 ifilm
.showframe(data
, cdata
)
86 if dev
in (ESCKEY
, WINQUIT
, WINSHUT
):
105 if c
== 'w' or continuous
:
107 data
, cdata
= ofilm
.grabframe()
109 data
= imageop
.grey2mono(data
, \
110 ifilm
.width
, ifilm
.height
, \
113 data
= imageop
.dither2mono(data
, \
114 ifilm
.width
, ifilm
.height
)
115 ofilm
.writeframe(time
, data
, cdata
)
116 print 'Frame', iframe
, 'written.'
117 if c
== 'n' or continuous
:
119 time
,data
,cdata
= ifilm
.getnextframe()
120 ifilm
.showframe(data
, cdata
)
128 elif dev
== INPUTCHANGE
:
131 print '(dev, val) =', (dev
, val
)