PyMash
Hiroyuki Komatsu
komatsu at taiyaki.org
Wed Sep 3 14:32:34 CDT 2003
I wrote a prototype of a python wrapper for OpenMash. The atteched
file <mash-code_pymash-5.2.diff> is the diff file for
<http:///www.openmash.org/download/5.2/mash-src-5.2.tar.gz>.
[Sample Code]
I replaced headlessVideo.mash by Chris to a python code as a sample.
(For the replacement, I had the great help of Chris. Thanks!)
Here is the core of the sample:
============================================================
from openmash import OpenMash
from openmash_VideoAgent import VideoAgent
from openmash_VideoPipeline import VideoPipeline
class HeadlessVideo:
def __init__(self, host, port, ttl = 16, key = None):
self.agent = VideoAgent(host, port, ttl)
self.pipeline = VideoPipeline(self.agent)
if key is not None:
self.agent.install_key(key)
def run (self, device_number, codec):
devices = self.pipeline.get_input_devices()
self.pipeline.select(devices[device_number], codec)
self.pipeline.start()
def enhance (self, channel = None, format = None, bps = None,
fps = None, quality = None):
self.pipeline.set_options(port = channel, norm = format, bps = bps,
fps = fps, quality = quality)
------------------------------------------------------------
def main(self, *args):
headless_video = HeadlessVideo(self.host, self.port, self.ttl,
self.key)
headless_video.run(self.device_number, self.codec)
headless_video.enhance(channel = self.channel,
format = self.format,
bps = self.bps,
fps = self.fps,
quality = self.quality)
while True:
OpenMash.update()
time.sleep(0.1)
============================================================
<mash-code>/mash/python/example/headless.py is the whole code.
[Requirement to Complie]
SWIG
AutoTools (autoconf)
Python ;-)
[How to Complile]
1. Patch this patch.
% cd <mash-code>
% patch -p1 < <mash-code_pymash-5.2.diff
2. Complie other source trees except mash.
% build tcl
% build tk
% build otcl
% build tclcl
% build gsm
% build srm
3. Create configure file in mash directory.
% cd mash
% autoconf
4. Create pymash
% ./configure --disable-devel --python-includedir=<include dir for python>
% make pymash
On my environment (Linux/Debin), python-includedir is
</usr/include/python2.3>
[How to Test]
% cd <mash-code>/mash/python
% TCLCL_IMPORT_DIRS=.. python example/headless.py 127.0.0.1 9886 -d0 &
% vic 127.0.0.1/9886
The vic would probably display test transmission from headless.py.
[How to Install]
Not implemented yet.
The current PyMash is based on smash (ie. non-Tk version).
So, as a next step, I am going to modify PyMash to handle Tk or
another window tool kit like WxPython. And then, I have a plan to
write a vic-clone in Python.
No more Tcl.
--
Hiro
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mash-code_pymash-5.2.diff
Type: application/octet-stream
Size: 23737 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/ag-dev/attachments/20030904/af485e2e/attachment.obj>
More information about the ag-dev
mailing list