mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 02:15:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| import sys
 | |
| import sv, SV
 | |
| import gl, GL, DEVICE
 | |
| 
 | |
| def main():
 | |
| 	format = SV.RGB8_FRAMES
 | |
| 	requestedwidth = SV.PAL_XMAX
 | |
| 	queuesize = 30
 | |
| 	if sys.argv[1:]:
 | |
| 		queuesize = eval(sys.argv[1])
 | |
| 
 | |
| 	v = sv.OpenVideo()
 | |
| 	svci = (format, requestedwidth, 0, queuesize, 0)
 | |
| 
 | |
| 	go = raw_input('Press return to capture ' + `queuesize` + ' frames: ')
 | |
| 	result = v.CaptureBurst(svci)
 | |
| 	svci, buffer, bitvec = result
 | |
| ##	svci, buffer = result # XXX If bit vector not yet implemented
 | |
| 
 | |
| 	print 'Captured', svci[3], 'frames, i.e.', len(buffer)/1024, 'K bytes'
 | |
| 
 | |
| 	w, h = svci[1:3]
 | |
| 	framesize = w * h
 | |
| 
 | |
| 	gl.prefposition(300, 300+w-1, 100, 100+h-1)
 | |
| 	gl.foreground()
 | |
| 	win = gl.winopen('Burst Capture')
 | |
| 	gl.RGBmode()
 | |
| 	gl.gconfig()
 | |
| 	gl.qdevice(DEVICE.LEFTMOUSE)
 | |
| 	gl.qdevice(DEVICE.ESCKEY)
 | |
| 
 | |
| 	print 'Click left mouse for next frame'
 | |
| 
 | |
| 	for i in range(svci[3]):
 | |
| 		inverted_frame = sv.RGB8toRGB32(1, \
 | |
| 			  buffer[i*framesize:(i+1)*framesize], w, h)
 | |
| 		gl.lrectwrite(0, 0, w-1, h-1, inverted_frame)
 | |
| 		while 1:
 | |
| 			dev, val = gl.qread()
 | |
| 			if dev == DEVICE.LEFTMOUSE and val == 1:
 | |
| 				break
 | |
| 			if dev == DEVICE.REDRAW:
 | |
| 				gl.lrectwrite(0, 0, w-1, h-1, inverted_frame)
 | |
| 			if dev == DEVICE.ESCKEY:
 | |
| 				v.CloseVideo()
 | |
| 				gl.winclose(win)
 | |
| 				return
 | |
| 	v.CloseVideo()
 | |
| 	gl.winclose(win)
 | |
| 
 | |
| main()
 | 
