summaryrefslogtreecommitdiffstats
path: root/Demo/sgi/video/VGrabber.py
diff options
context:
space:
mode:
Diffstat (limited to 'Demo/sgi/video/VGrabber.py')
-rwxr-xr-xDemo/sgi/video/VGrabber.py80
1 files changed, 0 insertions, 80 deletions
diff --git a/Demo/sgi/video/VGrabber.py b/Demo/sgi/video/VGrabber.py
deleted file mode 100755
index 242ebf2..0000000
--- a/Demo/sgi/video/VGrabber.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# Class to grab frames from a window.
-# (This has fewer user-settable parameters than Displayer.)
-# It is the caller's responsibility to initialize the window and to
-# ensure that it is current when using grabframe()
-
-import gl, GL
-import VFile
-import GET
-from VFile import Error
-
-class VGrabber(VFile.VideoParams):
-
- # XXX The constructor of VideoParams is just fine, for now
-
- # Grab a frame.
- # Return (data, chromdata) just like getnextframe().
-
- def grabframe(self):
- grabber = choose_grabber(self.format)
- return grabber(self.width, self.height, self.packfactor)
-
-
-# Choose one of the grabber functions below based upon a color system name
-
-def choose_grabber(format):
- try:
- return eval('grab_' + format)
- except:
- raise Error, 'Unknown color system: ' + `format`
-
-
-# Routines to grab data, per color system (only a few really supported).
-# (These functions are used via eval with a constructed argument!)
-
-def grab_rgb(w, h, pf):
- if gl.getdisplaymode() <> GET.DMRGB:
- raise Error, 'Sorry, can only grab rgb in single-buf rgbmode'
- if pf <> (1, 1):
- raise Error, 'Sorry, only grab rgb with packfactor (1,1)'
- return gl.lrectread(0, 0, w-1, h-1), None
-
-def grab_rgb8(w, h, pf):
- if gl.getdisplaymode() <> GET.DMRGB:
- raise Error, 'Sorry, can only grab rgb8 in single-buf rgbmode'
- if pf <> (1, 1):
- raise Error, 'Sorry, can only grab rgb8 with packfactor (1,1)'
- if not VFile.is_entry_indigo():
- raise Error, 'Sorry, can only grab rgb8 on entry level Indigo'
- # XXX Dirty Dirty here.
- # XXX Set buffer to cmap mode, grab image and set it back.
- gl.cmode()
- gl.gconfig()
- gl.pixmode(GL.PM_SIZE, 8)
- data = gl.lrectread(0, 0, w-1, h-1)
- data = data[:w*h] # BUG FIX for python lrectread
- gl.RGBmode()
- gl.gconfig()
- gl.pixmode(GL.PM_SIZE, 32)
- return data, None
-
-def grab_grey(w, h, pf):
- raise Error, 'Sorry, grabbing grey not implemented'
-
-def grab_yiq(w, h, pf):
- raise Error, 'Sorry, grabbing yiq not implemented'
-
-def grab_hls(w, h, pf):
- raise Error, 'Sorry, grabbing hls not implemented'
-
-def grab_hsv(w, h, pf):
- raise Error, 'Sorry, grabbing hsv not implemented'
-
-def grab_jpeg(w, h, pf):
- data, dummy = grab_rgb(w, h, pf)
- import jpeg
- data = jpeg.compress(data, w, h, 4)
- return data, None
-
-def grab_jpeggrey(w, h, pf):
- raise Error, 'sorry, grabbing jpeggrey not implemented'