Initial revision
diff --git a/Demo/sgi/video/Vinfo.py b/Demo/sgi/video/Vinfo.py
new file mode 100755
index 0000000..3293e41
--- /dev/null
+++ b/Demo/sgi/video/Vinfo.py
@@ -0,0 +1,38 @@
+import sys
+import VFile
+
+def main():
+	if sys.argv[1:]:
+		for filename in sys.argv[1:]:
+			process(filename)
+	else:
+		process('film.video')
+
+def process(filename):
+	vin = VFile.VinFile().init(filename)
+	print 'File:    ', filename
+	print 'Version: ', vin.version
+	print 'Size:    ', vin.width, 'x', vin.height
+	print 'Pack:    ', vin.packfactor, '; chrom:', vin.chrompack
+	print 'Bits:    ', vin.c0bits, vin.c1bits, vin.c2bits
+	print 'Format:  ', vin.format
+	print 'Offset:  ', vin.offset
+	print 'Frame times:',
+	n = 0
+	t = 0
+	while 1:
+		try:
+			t, data, cdata = vin.getnextframe()
+		except EOFError:
+			print
+			break
+		if n%8 == 0:
+			sys.stdout.write('\n')
+		sys.stdout.write('\t' + `t`)
+		n = n+1
+	print 'Total', n, 'frames in', t*0.001, 'sec.',
+	if t:
+		print '-- average', int(n*10000.0/t)*0.1, 'frames/sec',
+	print
+
+main()
diff --git a/Demo/sgi/video/Vplay.py b/Demo/sgi/video/Vplay.py
new file mode 100755
index 0000000..70e9356
--- /dev/null
+++ b/Demo/sgi/video/Vplay.py
@@ -0,0 +1,57 @@
+import sys
+import VFile
+import time
+import gl, GL
+from DEVICE import *
+
+def main():
+	if sys.argv[1:]:
+		for filename in sys.argv[1:]:
+			process(filename)
+	else:
+		process('film.video')
+
+def process(filename):
+	vin = VFile.VinFile().init(filename)
+	print 'File:    ', filename
+	print 'Version: ', vin.version
+	print 'Size:    ', vin.width, 'x', vin.height
+	print 'Pack:    ', vin.packfactor, '; chrom:', vin.chrompack
+	print 'Bits:    ', vin.c0bits, vin.c1bits, vin.c2bits
+	print 'Format:  ', vin.format
+	print 'Offset:  ', vin.offset
+	
+	gl.foreground()
+	gl.prefsize(vin.width, vin.height)
+	win = gl.winopen(filename)
+	vin.initcolormap()
+
+	gl.qdevice(ESCKEY)
+	gl.qdevice(WINSHUT)
+	gl.qdevice(WINQUIT)
+
+	t0 = time.millitimer()
+	running = 1
+	data = None
+	while 1:
+		if running:
+			try:
+				t, data, chromdata = vin.getnextframe()
+			except EOFError:
+				running = 0
+				gl.wintitle('(done)')
+		if running:
+			dt = t + t0 - time.millitimer()
+			if dt > 0:
+				time.millisleep(dt)
+				vin.showframe(data, chromdata)
+		if not running or gl.qtest():
+			dev, val = gl.qread()
+			if dev in (ESCKEY, WINSHUT, WINQUIT):
+				break
+			if dev == REDRAW:
+				gl.reshapeviewport()
+				if data:
+					vin.showframe(data, chromdata)
+
+main()