6 format
= SV
.RGB8_FRAMES
12 # Determine maximum window size based on signal standard
13 param
= [SV
.BROADCAST
, 0]
15 if param
[1] == SV
.PAL
:
24 # Allow resizing window if capturing RGB frames, which can be scaled
25 if format
== SV
.RGB8_FRAMES
:
26 gl
.keepaspect(width
, height
)
27 gl
.maxsize(width
, height
)
31 if format
== SV
.YUV411_FRAMES_AND_BLANKING_BUFFER
:
32 height
= height
+ SV
.BLANKING_BUFFER_SIZE
33 gl
.prefposition(300, 300+width
-1, 100, 100+height
-1)
37 win
= gl
.winopen('Continuous Capture')
40 if format
== SV
.RGB8_FRAMES
:
41 width
, height
= gl
.getsize()
42 gl
.pixmode(GL
.PM_SIZE
, 8)
44 gl
.pixmode(GL
.PM_SIZE
, 32)
46 svci
= (format
, width
, height
, queuesize
, samplingrate
)
49 svci
= v
.InitContinuousCapture(svci
)
50 width
, height
= svci
[1:3]
53 hz
= gl
.getgdesc(GL
.GD_TIMERHZ
)
54 gl
.noise(DEVICE
.TIMER0
, hz
/ framerate
)
55 gl
.qdevice(DEVICE
.TIMER0
)
56 gl
.qdevice(DEVICE
.WINQUIT
)
57 gl
.qdevice(DEVICE
.WINSHUT
)
58 gl
.qdevice(DEVICE
.ESCKEY
)
65 if dev
== DEVICE
.REDRAW
:
68 width
, height
= gl
.getsize()
69 if oldw
!= width
or oldh
!= height
:
70 v
.EndContinuousCapture()
71 gl
.viewport(0, width
-1, 0, height
-1)
72 svci
= (svci
[0], width
, height
) + svci
[3:]
73 svci
= v
.InitContinuousCapture(svci
)
74 width
, height
= svci
[1:3]
78 print fieldID
/(svci
[4]*2) - ndisplayed
,
81 elif dev
== DEVICE
.TIMER0
:
83 captureData
, fieldID
= v
.GetCaptureData()
85 if val
<> 'no data available':
88 if fieldID
- lastfieldID
<> 2*samplingrate
:
89 print lastfieldID
, fieldID
91 if svci
[0] == SV
.RGB8_FRAMES
:
92 rgbbuf
= captureData
.InterleaveFields(1)
94 rgbbuf
= captureData
.YUVtoRGB(1)
95 captureData
.UnlockCaptureData()
96 gl
.lrectwrite(0, 0, width
-1, height
-1, rgbbuf
)
97 ndisplayed
= ndisplayed
+ 1
98 elif dev
in (DEVICE
.ESCKEY
, DEVICE
.WINQUIT
, DEVICE
.WINSHUT
):
99 v
.EndContinuousCapture()
102 print fieldID
, ndisplayed
, svci
[4]
103 print 'lost', fieldID
/(svci
[4]*2) - ndisplayed
,