New modules LiveVideo{In,Out} (interfaces will change!).
New programs V{send,receive} to send/receive video over UDP.
Comment typo changed in Vaddcache.
diff --git a/Demo/sgi/video/LiveVideoOut.py b/Demo/sgi/video/LiveVideoOut.py
new file mode 100755
index 0000000..d9c1138
--- /dev/null
+++ b/Demo/sgi/video/LiveVideoOut.py
@@ -0,0 +1,56 @@
+# Live video output (display video on the screen, presumably from the net)
+
+import gl
+from VFile import Displayer
+
+
+# Video output (displayer) class.
+
+class LiveVideoOut:
+
+ def init(self, wid, xywh, vw, vh):
+ ##print 'Init', wid, xywh
+ ##print 'video', vw, vw
+ self.vw = vw
+ self.vh = vh
+ self.disp = Displayer().init()
+ info = ('rgb8', vw, vh, 1, 8, 0, 0, 0, 0)
+ self.disp.setinfo(info)
+ self.wid = wid
+ oldwid = gl.winget()
+ gl.winset(wid)
+ self.disp.initcolormap()
+ self.resize(xywh)
+ gl.winset(oldwid)
+ return self
+
+ def resize(self, (x, y, w, h)):
+ oldwid = gl.winget()
+ gl.winset(self.wid)
+ ##print 'Resize', x, y, w, h
+ gl.winposition(x, x+w-1, y, y+h-1)
+ gl.reshapeviewport()
+ if w < self.vw or h < self.vh:
+ self.toosmall = 1
+ else:
+ self.disp.xorigin = (w-self.vw)/2
+ self.disp.yorigin = (h-self.vh)/2
+ self.toosmall = 0
+ ##print 'VIDEO OFFSET:', \
+ ## self.disp.xorigin, self.disp.yorigin
+ self.disp.clear()
+ gl.winset(oldwid)
+
+ def putnextpacket(self, pos, data):
+ if self.toosmall:
+ return
+ oldwid = gl.winget()
+ gl.winset(self.wid)
+ nline = len(data)/self.vw
+ if nline*self.vw <> len(data):
+ print 'Incorrect-sized video fragment'
+ self.disp.showpartframe(data, None, (0, pos, self.vw, nline))
+ gl.winset(oldwid)
+
+ def close(self):
+ print 'Done video out'