![]()
Please note: The documentation here is lagging, quite badly at the moment, behind the bulk of Kamaelia, which is where all the interesting effort is going right now. Whilst everything you see here should largely still be valid, be aware that this really needs updating. We hope to rectify this ASAP. Good documenters very welcome!
Kamaelia's modules divide into 2 main sections:
This core subsystem is called "Axon" and is documented here.
This document is the starting point for Kamaelia itself. This file provides an overview of the current Kamaelia files, what they are and where appropriate, how they work. This is designed to be a living document, but not designed as raw API documentation. (There are better ways of building API documentation) Essentially the purpose of this documentis to act as "the next layer up" the documentation layers - stating how and why the different parts are joined together. Multimedia Modules Kamaelia.
|-- AOPlayer.py deprecated
|-- vorbisDecodeComponent.py `-- oggFilePlayComponent.py deprecated These three files are all related to the same purpose - playback of audio, and also decoding ogg vorbis. There are some restrictions on some of these, and there is a recommendation on which ones to use. Each of these requires a set of libraries - these are covered below. AOPlayer.py is deprecated, the actual component has moved location, and you really ought not to use this at the moment. This may change at some point in time.
oggFilePlayComponent.py is the oldest piece of code that can be used for decode and playback. It uses the official xiph python bindings to decode ogg vorbis. On the surface this is useful and if all you want to do is decode audio from a file, this does work.
This imposes some awkward restrictions on your code. This does also mean that the operation of your codebecomes subserviant to the library, rather than the library subserviant to your code.
This file contains the following components:
Current concrete subclasses:
It's worth noting that the execution here is pretty ugly, and it was the motivation for writing the next file. However, if all you want is to use libvorbisfile, oggFilePlayComponent.py can be useful. vorbisDecodeComponent.py was written to overcome the limitations metioned above. Specifically this provides 2 components - one that will accept ogg vorbis data on an inbox and provide back raw decoded audio on its outbox, and another that takes audio on its inbox and plays the audio. This provides much cleaner separation. The testing spike included shows how to use a file reading component in conjuction with these two components to provide a file reading/decode chain.
These components rely on the following libraries being installed:
The python bindings required are:
RTP Related Modules Kamaelia.
|-- bitfieldrec.py
|-- NullPayloadPreFramer.py |-- NullPayloadRTP.py |-- RTCPHeader.py |-- RTPHeader.py |-- RtpPacker.py ......
Subcomponents functionality:
-----------------------------
MIME & Disk Related modules Kamaelia.
|-- ReadFileAdaptor.py |-- MimeRequestComponent.py |-- SampleMIMERequest.txt |-- SimpleServerComponent.py |-- requestLine.py ...... Testing Modules Kamaelia.
|-- runTests.sh |-- FortuneCookie_InternetHandlingTests.py |-- test | |-- SynchronousLinks_SystemTest.py | |-- debug.conf | |-- test.log | |-- test_ConsoleEcho.py | |-- test_InternetConnection.py | |-- test_MimeRequestComponent.py | |-- test_NullPayloadRTP.py | |-- test_RtpPacker.py | |-- test_Selector.py | `-- test_requestLine.py ...... Experimentation Modules |-- Sketch | |-- AO_TEST.py | |-- DONE.list | |-- DataSteps.txt | |-- EchoCheckerProtocolComponent.py | |-- Forking.py | |-- PygameTest.py | |-- TODO.list | |-- oggFilePlayComponent-refactor.py | |-- oggPlayComponent.py | |-- rgrailspuds.txt | |-- run.log | |-- simple_decoder.py | `-- test.py ...... Support Files |-- Makefile
|-- ComponentClasses.py |-- SampleTemplateComponent.py |-- debug.conf |-- makeDocs.sh |-- afortune.pl |-- Support/ - various support files. Wav Audio comes from the OpenOffice.org suite. |-- doc/ - Autogenerated documentation |-- docs/ - More autogenerated docs ...... |
Kamaelia
is an open source project originated from and guided by BBC
Research. For more information browse the site or get in
contact.
This is an ongoing community based development site. As a result the contents of this page is the opinions of the contributors of the pages involved not the organisations involved. Specificially, this page may contain personal views which are not the views of the BBC. (the site is powered by a wiki engine)
(C) Copyright 2008 Kamaelia Contributors, including the British Broadcasting Corporation, All Rights Reserved