コード例 #1
0
def open(title):
    h, v = G.def_pos
    width, height = G.def_size
    if h > 0 or v > 0:
        # Choose arbitrary defaults
        if h < 0:
            h = 10
        if v < 0:
            v = 30
        if width <= 0:
            width = 400
        if height <= 0:
            height = 300
        gl.prefposition(h, h + width, 1024 - v, 1024 - v - height)
    elif width > 0 or height > 0:
        if width <= 0:
            width = 400
        if height <= 0:
            height = 300
        gl.prefsize(width, height)
    from glstdwwin import WindowObject

    win = WindowObject()._init(title)
    G.windowmap[` win._gid `] = win
    return win
コード例 #2
0
ファイル: plat-irix6jpeg.py プロジェクト: kusaku/wot_scripts
def show(file):
    import gl, GL, DEVICE
    jpegdata = open(file, 'r').read()
    imgdata, width, height, bytesperpixel = decompress(jpegdata)
    gl.foreground()
    gl.prefsize(width, height)
    win = gl.winopen(file)
    if bytesperpixel == 1:
        gl.cmode()
        gl.pixmode(GL.PM_SIZE, 8)
        gl.gconfig()
        for i in range(256):
            gl.mapcolor(i, i, i, i)

    else:
        gl.RGBmode()
        gl.pixmode(GL.PM_SIZE, 32)
        gl.gconfig()
    gl.qdevice(DEVICE.REDRAW)
    gl.qdevice(DEVICE.ESCKEY)
    gl.qdevice(DEVICE.WINQUIT)
    gl.qdevice(DEVICE.WINSHUT)
    gl.lrectwrite(0, 0, width - 1, height - 1, imgdata)
    while 1:
        dev, val = gl.qread()
        if dev in (DEVICE.ESCKEY, DEVICE.WINSHUT, DEVICE.WINQUIT):
            break
        if dev == DEVICE.REDRAW:
            gl.lrectwrite(0, 0, width - 1, height - 1, imgdata)

    gl.winclose(win)
    newjpegdata = compress(imgdata, width, height, bytesperpixel)
    open('/tmp/j.jpg', 'w').write(newjpegdata)
コード例 #3
0
ファイル: jpeg.py プロジェクト: webiumsk/WOT-0.9.15-CT
def show(file):
    import gl, GL, DEVICE
    jpegdata = open(file, 'r').read()
    imgdata, width, height, bytesperpixel = decompress(jpegdata)
    gl.foreground()
    gl.prefsize(width, height)
    win = gl.winopen(file)
    if bytesperpixel == 1:
        gl.cmode()
        gl.pixmode(GL.PM_SIZE, 8)
        gl.gconfig()
        for i in range(256):
            gl.mapcolor(i, i, i, i)

    else:
        gl.RGBmode()
        gl.pixmode(GL.PM_SIZE, 32)
        gl.gconfig()
    gl.qdevice(DEVICE.REDRAW)
    gl.qdevice(DEVICE.ESCKEY)
    gl.qdevice(DEVICE.WINQUIT)
    gl.qdevice(DEVICE.WINSHUT)
    gl.lrectwrite(0, 0, width - 1, height - 1, imgdata)
    while 1:
        dev, val = gl.qread()
        if dev in (DEVICE.ESCKEY, DEVICE.WINSHUT, DEVICE.WINQUIT):
            break
        if dev == DEVICE.REDRAW:
            gl.lrectwrite(0, 0, width - 1, height - 1, imgdata)

    gl.winclose(win)
    newjpegdata = compress(imgdata, width, height, bytesperpixel)
    open('/tmp/j.jpg', 'w').write(newjpegdata)
コード例 #4
0
ファイル: Viewer.py プロジェクト: Claruarius/stblinux-2.6.37
	def show(self):
		if self.wid < 0:
			gl.foreground()
			gl.prefsize(self.vin.width, self.vin.height)
			self.wid = gl.winopen(self.title)
			gl.clear()
			self.vin.initcolormap()
		gl.winset(self.wid)
		if self.qindex >= self.qsize:
			self.vin.clear()
			return
		dt, d, cd = self.vin.getrandomframe(self.qindex)
		self.vin.showframe(d, cd)
コード例 #5
0
 def show(self):
     if self.wid < 0:
         gl.foreground()
         gl.prefsize(self.vin.width, self.vin.height)
         self.wid = gl.winopen(self.title)
         gl.clear()
         self.vin.initcolormap()
     gl.winset(self.wid)
     if self.qindex >= self.qsize:
         self.vin.clear()
         return
     dt, d, cd = self.vin.getrandomframe(self.qindex)
     self.vin.showframe(d, cd)
コード例 #6
0
ファイル: Viewer.py プロジェクト: Claruarius/stblinux-2.6.37
	def show(self):
		if self.wid < 0:
			gl.foreground()
			gl.prefsize(self.vout.width, self.vout.height)
			self.wid = gl.winopen(self.title)
			gl.clear()
			self.vout.initcolormap()
		gl.winset(self.wid)
		if not self.queue:
			self.vout.clear()
			return
		dt, d, cd = self.queue[-1]
		self.vout.showframe(d, cd)
コード例 #7
0
 def show(self):
     if self.wid < 0:
         gl.foreground()
         gl.prefsize(self.vout.width, self.vout.height)
         self.wid = gl.winopen(self.title)
         gl.clear()
         self.vout.initcolormap()
     gl.winset(self.wid)
     if not self.queue:
         self.vout.clear()
         return
     dt, d, cd = self.queue[-1]
     self.vout.showframe(d, cd)
コード例 #8
0
 def __init__(self, filename, title, *args):
     try:
         self.vin = VFile.VinFile(filename)
     except (EOFError, VFile.Error):
         raise IOError, 'bad video input file'
     self.vin.warmcache()
     if not title:
         title = os.path.split(filename)[1]
     self.filename = filename
     self.title = title
     self.qsize = len(self.vin.index)
     gl.foreground()
     gl.prefsize(self.vin.width, self.vin.height)
     self.wid = -1
     self.reset()
コード例 #9
0
ファイル: Viewer.py プロジェクト: Claruarius/stblinux-2.6.37
	def __init__(self, filename, title, *args):
		try:
			self.vin = VFile.VinFile(filename)
		except (EOFError, VFile.Error):
			raise IOError, 'bad video input file'
		self.vin.warmcache()
		if not title:
			title = os.path.split(filename)[1]
		self.filename = filename
		self.title = title
		self.qsize = len(self.vin.index)
		gl.foreground()
		gl.prefsize(self.vin.width, self.vin.height)
		self.wid = -1
		self.reset()
コード例 #10
0
def main():
	gl.foreground()
	gl.prefsize(SV.PAL_XMAX, SV.PAL_YMAX)
	win = gl.winopen('video test')
	v = sv.OpenVideo()
	params = [SV.VIDEO_MODE, SV.COMP, SV.BROADCAST, SV.PAL]
	v.SetParam(params)
	v.BindGLWindow(win, SV.IN_REPLACE)
	gl.qdevice(DEVICE.ESCKEY)
	gl.qdevice(DEVICE.WINQUIT)
	gl.qdevice(DEVICE.WINSHUT)
	while 1:
		dev, val = gl.qread()
		if dev in (DEVICE.ESCKEY, DEVICE.WINSHUT, DEVICE.WINQUIT):
			v.CloseVideo()
			gl.winclose(win)
			return
コード例 #11
0
ファイル: simpleinput.py プロジェクト: 8Banana/py1.0
def main():
    gl.foreground()
    gl.prefsize(SV.PAL_XMAX, SV.PAL_YMAX)
    win = gl.winopen('video test')
    v = sv.OpenVideo()
    params = [SV.VIDEO_MODE, SV.COMP, SV.BROADCAST, SV.PAL]
    v.SetParam(params)
    v.BindGLWindow(win, SV.IN_REPLACE)
    gl.qdevice(DEVICE.ESCKEY)
    gl.qdevice(DEVICE.WINQUIT)
    gl.qdevice(DEVICE.WINSHUT)
    while 1:
        dev, val = gl.qread()
        if dev in (DEVICE.ESCKEY, DEVICE.WINSHUT, DEVICE.WINQUIT):
            v.CloseVideo()
            gl.winclose(win)
            return
コード例 #12
0
def gltest():
	import gl, fm
	gl.foreground()
	W, H = 1000, 800
	gl.prefsize(W, H)
	wid = gl.winopen('gltest')
	gl.ortho2(0, W, H, 0)
	gl.color(7)
	gl.clear()
	gl.color(0)
	fp = openfile()
	TSTART()
	fmt = GLFormatter().init(5, 0, W)
	feedfile(fp, fmt)
	fmt.flush()
	TSTOP()
	import time
	time.sleep(5)
コード例 #13
0
ファイル: VFile.py プロジェクト: asottile/ancient-pythons
def test():
	import time
	if sys.argv[1:]: filename = sys.argv[1]
	else: filename = 'film.video'
	vin = VinFile(filename)
	vin.printinfo()
	gl.foreground()
	gl.prefsize(vin.getsize())
	wid = gl.winopen(filename)
	vin.initcolormap()
	t0 = time.time()
	while 1:
		try: t, data, cdata = vin.getnextframe()
		except EOFError: break
		dt = t0 + t - time.time()
		if dt > 0: time.time(dt)
		vin.showframe(data, cdata)
	time.sleep(2)
コード例 #14
0
def gltest():
    import gl, fm
    gl.foreground()
    W, H = 1000, 800
    gl.prefsize(W, H)
    wid = gl.winopen('gltest')
    gl.ortho2(0, W, H, 0)
    gl.color(7)
    gl.clear()
    gl.color(0)
    fp = openfile()
    TSTART()
    fmt = GLFormatter().init(5, 0, W)
    feedfile(fp, fmt)
    fmt.flush()
    TSTOP()
    import time
    time.sleep(5)
コード例 #15
0
def open(title):
    h, v = G.def_pos
    width, height = G.def_size
    if h > 0 or v > 0:
        # Choose arbitrary defaults
        if h < 0: h = 10
        if v < 0: v = 30
        if width <= 0: width = 400
        if height <= 0: height = 300
        gl.prefposition(h, h + width, 1024 - v, 1024 - v - height)
    elif width > 0 or height > 0:
        if width <= 0: width = 400
        if height <= 0: height = 300
        gl.prefsize(width, height)
    from glstdwwin import WindowObject
    win = WindowObject()._init(title)
    G.windowmap[ ` win._gid `] = win
    return win
コード例 #16
0
def test():
    import time
    if sys.argv[1:]: filename = sys.argv[1]
    else: filename = 'film.video'
    vin = VinFile(filename)
    vin.printinfo()
    gl.foreground()
    gl.prefsize(vin.getsize())
    wid = gl.winopen(filename)
    vin.initcolormap()
    t0 = time.time()
    while 1:
        try:
            t, data, cdata = vin.getnextframe()
        except EOFError:
            break
        dt = t0 + t - time.time()
        if dt > 0: time.time(dt)
        vin.showframe(data, cdata)
    time.sleep(2)
コード例 #17
0
ファイル: imageview.py プロジェクト: 8Banana/py1.0
def imageview(file):
	import cl, CL, gl, GL, DEVICE

	filep = open(file, 'r')
	header = filep.read(16)
	filep.seek(0)
	scheme = cl.QueryScheme(header)
	decomp = cl.OpenDecompressor(scheme)
	headersize = cl.QueryMaxHeaderSize(scheme)
	header = filep.read(headersize)
	filep.seek(0)
	headersize = decomp.ReadHeader(header)
	width = decomp.GetParam(CL.IMAGE_WIDTH)
	height = decomp.GetParam(CL.IMAGE_HEIGHT)
	params = [CL.ORIGINAL_FORMAT, CL.RGBX, \
		  CL.ORIENTATION, CL.BOTTOM_UP, \
		  CL.FRAME_BUFFER_SIZE, width*height*CL.BytesPerPixel(CL.RGBX)]
	decomp.SetParams(params)

	image = decomp.Decompress(1, filep.read())
	filep.close()
	decomp.CloseDecompressor()

	gl.foreground()
	gl.prefsize(width, height)
	win = gl.winopen(file)
	gl.RGBmode()
	gl.pixmode(GL.PM_SIZE, 32)
	gl.gconfig()
	gl.qdevice(DEVICE.REDRAW)
	gl.qdevice(DEVICE.ESCKEY)
	gl.qdevice(DEVICE.WINQUIT)
	gl.qdevice(DEVICE.WINSHUT)
	gl.lrectwrite(0, 0, width-1, height-1, image)
	while 1:
		dev, val = gl.qread()
		if dev in (DEVICE.ESCKEY, DEVICE.WINSHUT, DEVICE.WINQUIT):
			break
		if dev == DEVICE.REDRAW:
			gl.lrectwrite(0, 0, width-1, height-1, image)
	gl.winclose(win)
コード例 #18
0
def testGL():
    import gl, GL, fmt
    if sys.argv[1:]: file = sys.argv[1]
    else: file = 'test.html'
    data = open(file, 'r').read()
    W, H = 600, 600
    gl.foreground()
    gl.prefsize(W, H)
    wid = gl.winopen('testGL')
    gl.ortho2(0, W, H, 0)
    gl.color(GL.WHITE)
    gl.clear()
    gl.color(GL.BLACK)
    b = fmt.GLBackEnd(wid)
    f = fmt.BaseFormatter(b.d, b)
    p = FormattingParser(f, GLStylesheet)
    p.feed(data)
    p.close()
    b.finish()
    #
    import time
    time.sleep(5)
コード例 #19
0
ファイル: htmllib.py プロジェクト: asottile/ancient-pythons
def testGL():
	import gl, GL, fmt
	if sys.argv[1:]: file = sys.argv[1]
	else: file = 'test.html'
	data = open(file, 'r').read()
	W, H = 600, 600
	gl.foreground()
	gl.prefsize(W, H)
	wid = gl.winopen('testGL')
	gl.ortho2(0, W, H, 0)
	gl.color(GL.WHITE)
	gl.clear()
	gl.color(GL.BLACK)
	b = fmt.GLBackEnd(wid)
	f = fmt.BaseFormatter(b.d, b)
	p = FormattingParser(f, GLStylesheet)
	p.feed(data)
	p.close()
	b.finish()
	#
	import time
	time.sleep(5)
コード例 #20
0
ファイル: Vplay.py プロジェクト: mcyril/ravel-ftn
#! /usr/bin/env python
# Play CMIF movie files

# Help function
def help():
	print 'Usage: Vplay [options] [file] ...'
	print
	print 'Options:'
	print '-M magnify : magnify the image by the given factor'
	print '-d         : write some debug stuff on stderr'
	print '-l         : loop, playing the movie over and over again'
	print '-m delta   : drop frames closer than delta seconds (default 0.)'
	print '-n         : don\'t wait after each file'
	print '-q         : quiet, no informative messages'
	print '-r delta   : regenerate input time base delta seconds apart'
	print '-s speed   : speed change factor (default 1.0)'
	print '-t         : use a 2nd thread for read-ahead'
	print '-x left    : window offset from left of screen'
	print '-y top     : window offset from top of screen'
	print '-w width   : window width'
	print '-h height  : window height'
	print '-b color   : background color (white,black or (r,g,b))'
	print 'file ...   : file(s) to play; default film.video'
	print
	print 'User interface:'
	print 'Press the left mouse button to stop or restart the movie.'
	print 'Press ESC or use the window manager Close or Quit command'
	print 'to close the window and play the next file (if any).'

# Imported modules
コード例 #21
0
#! /usr/bin/env python
# Send live video UDP packets.
# Usage: Vsend [-b] [-h height] [-p port] [-s size] [-t ttl] [-w width]
#              [host] ..
import sys
import time
import struct
import string
from socket import *
from SOCKET import *
import gl, GL, DEVICE
sys.path.append('/ufs/guido/src/video')
import LiveVideoIn
import LiveVideoOut
import SV
import getopt
from IN import *
from senddefs import *

def usage(msg):
    print msg
    print 'usage: Vsend [-b] [-h height] [-p port] [-s size] [-t ttl] [-c type] [-m]',
    print '[-w width] [host] ...'
    print '-b        : broadcast on local net'
    print '-h height : window height (default ' + ` DEFHEIGHT ` + ')'
    print '-p port   : port to use (default ' + ` DEFPORT ` + ')'
    print '-t ttl    : time-to-live (multicast only; default 1)'
    print '-s size   : max packet size (default ' + ` DEFPKTMAX ` + ')'
    print '-w width  : window width (default ' + ` DEFWIDTH ` + ')'
    print '-c type   : Type: rgb8, mono or grey (default rgb8)'
コード例 #22
0
ファイル: Vplay.py プロジェクト: Claruarius/stblinux-2.6.37
	gl.foreground()

	width, height = int(vin.width * magnify), int(vin.height * magnify)
	xborder = yborder = 0
	if xwsiz:
		vin.xorigin = (xwsiz - width)/2
		width = xwsiz
	if ywsiz:
		vin.yorigin = (ywsiz - height)/2
		height = ywsiz
	if xoff <> None and yoff <> None:
		scrheight = gl.getgdesc(GL.GD_YPMAX)
		gl.prefposition(xoff, xoff+width-1, \
			scrheight-yoff-height, scrheight-yoff-1)
	else:
		gl.prefsize(width, height)

	win = gl.winopen(filename)
	gl.clear()

	if quiet: vin.quiet = 1
	vin.initcolormap()

	if bgcolor:
		r, g, b = bgcolor
		vin.clearto(r,g,b)

	gl.qdevice(ESCKEY)
	gl.qdevice(WINSHUT)
	gl.qdevice(WINQUIT)
	gl.qdevice(LEFTMOUSE)
コード例 #23
0
ファイル: glwww.py プロジェクト: asottile/ancient-pythons
	import T
	if not sys.argv[1:]:
		print 'usage: www file'
		sys.exit(2)
	file = sys.argv[1]
	try:
		fp = open(file, 'r')
		data = fp.read()
		fp.close()
	except IOError, msg:
		print file, ':', msg
		sys.exit(1)

	W, H = 600, 600
	gl.foreground()
	gl.prefsize(W, H)
	wid = gl.winopen('glwww')
	gl.color(GL.WHITE)
	gl.clear()
	gl.ortho2(0, W, H, 0)
	gl.color(GL.BLACK)
	T.TSTART()
	fmt = GLFormatter().init(5, 0, W-5)
	p = html.FormattingParser().init(fmt, GLStylesheet)
	p.feed(data)
	p.close()
	T.TSTOP()
	gl.wintitle(p.title)
	import time
	time.sleep(5)
コード例 #24
0
ファイル: rgbgrab.py プロジェクト: mcyril/ravel-ftn
import sys
コード例 #25
0
ファイル: rgbgrab.py プロジェクト: mcyril/ravel-ftn
import sys
コード例 #26
0
ファイル: glwww.py プロジェクト: olympu/ancient-pythons
    import T
    if not sys.argv[1:]:
        print 'usage: www file'
        sys.exit(2)
    file = sys.argv[1]
    try:
        fp = open(file, 'r')
        data = fp.read()
        fp.close()
    except IOError, msg:
        print file, ':', msg
        sys.exit(1)

    W, H = 600, 600
    gl.foreground()
    gl.prefsize(W, H)
    wid = gl.winopen('glwww')
    gl.color(GL.WHITE)
    gl.clear()
    gl.ortho2(0, W, H, 0)
    gl.color(GL.BLACK)
    T.TSTART()
    fmt = GLFormatter().init(5, 0, W - 5)
    p = html.FormattingParser().init(fmt, GLStylesheet)
    p.feed(data)
    p.close()
    T.TSTOP()
    gl.wintitle(p.title)
    import time
    time.sleep(5)
コード例 #27
0
ファイル: VFile.py プロジェクト: mcyril/ravel-ftn
# Classes to read and write CMIF video files.
コード例 #28
0
ファイル: aplay.py プロジェクト: mcyril/ravel-ftn
#! /usr/bin/env python
# Play synchronous video and audio.
# Highly experimental!
import sys
import getopt
import string
import os
import VFile
import aifc
import gl, GL, DEVICE
import al, AL

def usage():
	sys.stderr.write( \
		'usage: aplay [-o offset] [-q qsize] videofile audiofile\n')
	sys.exit(2)
def main():
	offset = 0
	qsize = 0 # This defaults to 1/10 second of sound
	videofile = 'film.video'
	audiofile = 'film.aiff'
	try:
		opts, args = getopt.getopt(sys.argv[1:], 'o:q:')
	except getopt.error, msg:
		sys.stderr.write(msg + '\n')
		usage()
	try:
		for o, a in opts:
			if o == '-o':
				offset = string.atoi(a)
コード例 #29
0
ファイル: Viewer.py プロジェクト: mcyril/ravel-ftn
import gl, GL
コード例 #30
0
ファイル: Vreceive.py プロジェクト: olympu/ancient-pythons
    try:
        for opt, optarg in opts:
            if opt == '-p':
                port = string.atoi(optarg)
            if opt == '-m':
                group = gethostbyname(optarg)
            if opt == '-c':
                vtype = optarg
    except string.atoi_error, msg:
        usage('bad integer: ' + msg)

    s = opensocket(group, port)

    gl.foreground()
    gl.prefsize(width, height)
    wid = gl.winopen('Vreceive')
    gl.winconstraints()
    gl.qdevice(DEVICE.ESCKEY)
    gl.qdevice(DEVICE.WINSHUT)
    gl.qdevice(DEVICE.WINQUIT)

    lvo = LiveVideoOut.LiveVideoOut(wid, width, height, vtype)

    ifdlist = [gl.qgetfd(), s.fileno()]
    ofdlist = []
    xfdlist = []
    timeout = 1.0
    selectargs = (ifdlist, ofdlist, xfdlist, timeout)

    while 1:
コード例 #31
0
ファイル: jpeg.py プロジェクト: mcyril/ravel-ftn
# Implement 'jpeg' interface using SGI's compression library
コード例 #32
0
ファイル: Dsend.py プロジェクト: mcyril/ravel-ftn
#! /usr/bin/env python
# Send live video UDP packets.
# Usage: Vsend [-b] [-h height] [-p port] [-s size] [-t ttl] [-w width]
#              [host] ..
import sys
import time
import struct
import string
import math
from socket import *
from SOCKET import *
import gl, GL, DEVICE
sys.path.append('/ufs/guido/src/video')
import DisplayVideoIn
import LiveVideoOut
import SV
import getopt
from IN import *
from senddefs import *

def usage(msg):
    print msg
    print 'usage: Vsend [-b] [-h height] [-p port] [-s size] [-t ttl] [-c type] [-m]',
    print '[-w width] [host] ...'
    print '-b        : broadcast on local net'
    print '-h height : window height (default ' + ` DEFHEIGHT ` + ')'
    print '-p port   : port to use (default ' + ` DEFPORT ` + ')'
    print '-t ttl    : time-to-live (multicast only; default 1)'
    print '-s size   : max packet size (default ' + ` DEFPKTMAX ` + ')'
    print '-S size   : use this packet size/window size'
コード例 #33
0
    c.setchannels(ain.getnchannels())
    c.setwidth(ain.getsampwidth())
    nullsample = '\0' * ain.getsampwidth()
    samples_per_second = ain.getnchannels() * ain.getframerate()
    if qsize <= 0: qsize = samples_per_second / 10
    qsize = max(qsize, 512)
    c.setqueuesize(qsize)
    saveparams = [AL.OUTPUT_RATE, 0]
    al.getparams(AL.DEFAULT_DEVICE, saveparams)
    newparams = [AL.OUTPUT_RATE, ain.getframerate()]
    al.setparams(AL.DEFAULT_DEVICE, newparams)
    aport = al.openport(audiofile, 'w', c)

    print 'Opening video output window..'
    gl.foreground()
    gl.prefsize(vin.width, vin.height)
    wid = gl.winopen(videofile + ' + ' + audiofile)
    gl.clear()
    vin.initcolormap()

    print 'Playing..'
    gl.qdevice(DEVICE.ESCKEY)
    gl.qdevice(DEVICE.LEFTARROWKEY)
    gl.qdevice(DEVICE.RIGHTARROWKEY)
    ##	gl.qdevice(DEVICE.UPARROWKEY)
    ##	gl.qdevice(DEVICE.DOWNARROWKEY)
    gl.qdevice(DEVICE.SPACEKEY)

    while 1:
        samples_written = 0
        samples_read = 0
コード例 #34
0
ファイル: Dsend.py プロジェクト: mcyril/ravel-ftn
#! /usr/bin/env python
# Send live video UDP packets.
# Usage: Vsend [-b] [-h height] [-p port] [-s size] [-t ttl] [-w width]
#              [host] ..
import sys
import time
import struct
import string
import math
from socket import *
from SOCKET import *
import gl, GL, DEVICE
sys.path.append('/ufs/guido/src/video')
import DisplayVideoIn
import LiveVideoOut
import SV
import getopt
from IN import *
from senddefs import *
def usage(msg):
	print msg
	print 'usage: Vsend [-b] [-h height] [-p port] [-s size] [-t ttl] [-c type] [-m]',
	print '[-w width] [host] ...'
	print '-b        : broadcast on local net'
	print '-h height : window height (default ' + `DEFHEIGHT` + ')'
	print '-p port   : port to use (default ' + `DEFPORT` + ')'
	print '-t ttl    : time-to-live (multicast only; default 1)'
	print '-s size   : max packet size (default ' + `DEFPKTMAX` + ')'
	print '-S size   : use this packet size/window size'
	print '-w width  : window width (default ' + `DEFWIDTH` + ')'
コード例 #35
0
ファイル: aplay.py プロジェクト: asottile/ancient-pythons
	c.setchannels(ain.getnchannels())
	c.setwidth(ain.getsampwidth())
	nullsample = '\0' * ain.getsampwidth()
	samples_per_second = ain.getnchannels() * ain.getframerate()
	if qsize <= 0: qsize = samples_per_second / 10
	qsize = max(qsize, 512)
	c.setqueuesize(qsize)
	saveparams = [AL.OUTPUT_RATE, 0]
	al.getparams(AL.DEFAULT_DEVICE, saveparams)
	newparams = [AL.OUTPUT_RATE, ain.getframerate()]
	al.setparams(AL.DEFAULT_DEVICE, newparams)
	aport = al.openport(audiofile, 'w', c)

	print 'Opening video output window..'
	gl.foreground()
	gl.prefsize(vin.width, vin.height)
	wid = gl.winopen(videofile + ' + ' + audiofile)
	gl.clear()
	vin.initcolormap()

	print 'Playing..'
	gl.qdevice(DEVICE.ESCKEY)
	gl.qdevice(DEVICE.LEFTARROWKEY)
	gl.qdevice(DEVICE.RIGHTARROWKEY)
##	gl.qdevice(DEVICE.UPARROWKEY)
##	gl.qdevice(DEVICE.DOWNARROWKEY)
	gl.qdevice(DEVICE.SPACEKEY)

	while 1:
		samples_written = 0
		samples_read = 0
コード例 #36
0
ファイル: Vrecc.py プロジェクト: nagayev/old-python
def main():
    format = SV.RGB8_FRAMES
    rate = 1
    width = 0
    drop = 0
    mono = 0
    grey = 0
    greybits = 0
    monotreshold = -1
    fields = 0
    number = 60

    opts, args = getopt.getopt(sys.argv[1:], 'r:w:dg:mM:Gfn:')
    for opt, arg in opts:
        if opt == '-r':
            rate = string.atoi(arg)
            if rate < 2:
                sys.stderr.write('-r rate must be >= 2\n')
                sys.exit(2)
        elif opt == '-w':
            width = string.atoi(arg)
        elif opt == '-d':
            drop = 1
        elif opt == '-g':
            grey = 1
            greybits = string.atoi(arg)
            if not greybits in (2, 4, 8):
                print 'Only 2, 4 or 8 bit greyscale supported'
        elif opt == '-G':
            grey = 1
            greybits = -2
        elif opt == '-m':
            mono = 1
        elif opt == '-M':
            mono = 1
            monotreshold = string.atoi(arg)
        elif opt == '-f':
            fields = 1
        elif opt == '-n':
            number = string.atoi(arg)

    if args[2:]:
        sys.stderr.write('usage: Vrec [options] [file]\n')
        sys.exit(2)

    if args:
        filename = args[0]
    else:
        filename = 'film.video'

    v = sv.OpenVideo()
    # Determine maximum window size based on signal standard
    param = [SV.BROADCAST, 0]
    v.GetParam(param)
    if param[1] == SV.PAL:
        x = SV.PAL_XMAX
        y = SV.PAL_YMAX
    elif param[1] == SV.NTSC:
        x = SV.NTSC_XMAX
        y = SV.NTSC_YMAX
    else:
        print 'Unknown video standard', param[1]
        sys.exit(1)

    gl.foreground()
    gl.maxsize(x, y)
    gl.keepaspect(x, y)
    gl.stepunit(8, 6)
    if width:
        gl.prefsize(width, width * 3 / 4)
    win = gl.winopen(filename)
    if width:
        gl.maxsize(x, y)
        gl.keepaspect(x, y)
        gl.stepunit(8, 6)
        gl.winconstraints()
    x, y = gl.getsize()
    print x, 'x', y

    v.SetSize(x, y)

    if drop:
        param = [SV.FIELDDROP, 1, SV.GENLOCK, SV.GENLOCK_OFF]
    else:
        param = [SV.FIELDDROP, 0, SV.GENLOCK, SV.GENLOCK_ON]
    if mono or grey:
        param = param + [SV.COLOR, SV.MONO, SV.INPUT_BYPASS, 1]
    else:
        param = param + [SV.COLOR, SV.DEFAULT_COLOR, SV.INPUT_BYPASS, 0]
    v.SetParam(param)

    v.BindGLWindow(win, SV.IN_REPLACE)

    gl.qdevice(DEVICE.LEFTMOUSE)
    gl.qdevice(DEVICE.WINQUIT)
    gl.qdevice(DEVICE.WINSHUT)
    gl.qdevice(DEVICE.ESCKEY)

    print 'Press left mouse to start recording'

    while 1:
        dev, val = gl.qread()
        if dev == DEVICE.LEFTMOUSE:
            if val == 1:
                info = format, x, y, number, rate
                record(v, info, filename, mono, grey, \
                   greybits, monotreshold, fields)
        elif dev == DEVICE.REDRAW:
            # Window resize (or move)
            x, y = gl.getsize()
            print x, 'x', y
            v.SetSize(x, y)
            v.BindGLWindow(win, SV.IN_REPLACE)
        elif dev in (DEVICE.ESCKEY, DEVICE.WINQUIT, DEVICE.WINSHUT):
            # Quit
            v.CloseVideo()
            gl.winclose(win)
            break
コード例 #37
0
ファイル: Vplay.py プロジェクト: mcyril/ravel-ftn
#! /usr/bin/env python
# Play CMIF movie files
# Help function

def help():
    print 'Usage: Vplay [options] [file] ...'
    print
    print 'Options:'
    print '-M magnify : magnify the image by the given factor'
    print '-d         : write some debug stuff on stderr'
    print '-l         : loop, playing the movie over and over again'
    print '-m delta   : drop frames closer than delta seconds (default 0.)'
    print '-n         : don\'t wait after each file'
    print '-q         : quiet, no informative messages'
    print '-r delta   : regenerate input time base delta seconds apart'
    print '-s speed   : speed change factor (default 1.0)'
    print '-t         : use a 2nd thread for read-ahead'
    print '-x left    : window offset from left of screen'
    print '-y top     : window offset from top of screen'
    print '-w width   : window width'
    print '-h height  : window height'
    print '-b color   : background color (white,black or (r,g,b))'
    print 'file ...   : file(s) to play; default film.video'
    print
    print 'User interface:'
    print 'Press the left mouse button to stop or restart the movie.'
    print 'Press ESC or use the window manager Close or Quit command'
    print 'to close the window and play the next file (if any).'

# Imported modules
コード例 #38
0
ファイル: Viewer.py プロジェクト: mcyril/ravel-ftn
import gl, GL
コード例 #39
0
ファイル: Vsend.py プロジェクト: mcyril/ravel-ftn
#! /usr/bin/env python
# Send live video UDP packets.
# Usage: Vsend [-b] [-h height] [-p port] [-s size] [-t ttl] [-w width]
#              [host] ..
import sys
import time
import struct
import string
from socket import *
from SOCKET import *
import gl, GL, DEVICE
sys.path.append('/ufs/guido/src/video')
import LiveVideoIn
import LiveVideoOut
import SV
import getopt
from IN import *
from senddefs import *
def usage(msg):
	print msg
	print 'usage: Vsend [-b] [-h height] [-p port] [-s size] [-t ttl] [-c type] [-m]',
	print '[-w width] [host] ...'
	print '-b        : broadcast on local net'
	print '-h height : window height (default ' + `DEFHEIGHT` + ')'
	print '-p port   : port to use (default ' + `DEFPORT` + ')'
	print '-t ttl    : time-to-live (multicast only; default 1)'
	print '-s size   : max packet size (default ' + `DEFPKTMAX` + ')'
	print '-w width  : window width (default ' + `DEFWIDTH` + ')'
	print '-c type   : Type: rgb8, mono or grey (default rgb8)'
	print '[host] ...: host(s) to send to (default multicast to ' + \
コード例 #40
0
ファイル: VFile.py プロジェクト: mcyril/ravel-ftn
# Classes to read and write CMIF video files.
コード例 #41
0
def main():
	QSIZE = 16
	TIME = 5
	audio = 0

	opts, args = getopt.getopt(sys.argv[1:], 'aq:t:')
	for opt, arg in opts:
		if opt == '-a':
			audio = 1
		elif opt == '-q':
			QSIZE = string.atoi(arg)
		elif opt == '-t':
			TIME = string.atoi(arg)

	if args:
		filename = args[0]
	else:
		filename = 'film.video'

	if audio:
		if args[1:]:
			audiofilename = args[1]
		else:
			audiofilename = 'film.aiff'

	gl.foreground()

	x, y = SV.PAL_XMAX / 4, SV.PAL_YMAX / 4
	print x, 'x', y

	gl.minsize(40, 30)
	gl.stepunit(8, 6)
	gl.maxsize(SV.PAL_XMAX, SV.PAL_YMAX)
	gl.keepaspect(SV.PAL_XMAX, SV.PAL_YMAX)
	win = gl.winopen(filename)
	x, y = gl.getsize()
	print x, 'x', y

	v = sv.OpenVideo()
	v.BindGLWindow(win, SV.IN_REPLACE)
	v.SetSize(x, y)
	v.BindGLWindow(win, SV.IN_REPLACE)

	v.SetCaptureFormat(SV.RGB_FRAMES)
	v.SetCaptureMode(SV.BLOCKING_CAPTURE)
	v.SetQueueSize(QSIZE)
	v.InitCapture()
	if v.GetQueueSize() != QSIZE:
		QSIZE = v.GetQueueSize()
		print 'Warning: QSIZE reduced to', QSIZE

	gl.qdevice(DEVICE.LEFTMOUSE)
	gl.qdevice(DEVICE.WINQUIT)
	gl.qdevice(DEVICE.WINSHUT)
	gl.qdevice(DEVICE.ESCKEY)

	print 'Click left mouse to start recording', TIME, 'seconds'
	ofile = None
	afile = None
	# Mouse down opens the file & freezes window
	# Mouse up starts recording frames

	while 1:
		dev, val = gl.qread()
		if dev == DEVICE.LEFTMOUSE:
			# Start recording
			if val == 1:
				# Mouse down -- preparations
				if ofile == None:
					ofile = VFile.VoutFile().init(filename)
					ofile.format = 'rgb8'
					ofile.width = x
					ofile.height = y
					ofile.writeheader()
					# XXX other format bits?
				# The window can't be resized from now
				gl.prefsize(x, y)
				gl.winconstraints()
				gl.wintitle('* ' + filename)
				if audio:
					afile = initaudio(audiofilename)
				continue
			# Mouse up -- start actual recording
			global recording, stop_recording
			if audio:
				stop_recording = 0
				recording.release()
			t0 = time.millitimer()
			v.StartCapture()
			while 1:
				t = time.millitimer() - t0
				if t >= TIME*1000:
					break
				if v.GetCaptured() > 2:
					doframe(v, ofile, x, y, t)
			v.StopCapture()
			stop_recording = 1
			while v.GetCaptured() > 0:
				doframe(v, ofile, x, y, t)
				t = time.millitimer() - t0
			gl.wintitle(filename)
		elif dev == DEVICE.REDRAW:
			# Window resize (or move)
			x, y = gl.getsize()
			print x, 'x', y
			v.SetSize(x, y)
			v.BindGLWindow(win, SV.IN_REPLACE)
		elif dev in (DEVICE.ESCKEY, DEVICE.WINQUIT, DEVICE.WINSHUT):
			# Quit
			if ofile:
				ofile.close()
			if afile:
				afile.destroy()
			posix._exit(0)
			# EndCapture dumps core...
			v.EndCapture()
			v.CloseVideo()
			gl.winclose(win)