Projects

This page details a bunch of projects, either in process, or which could be done, or have been done.

Google Summer of Code 2008 Projects (don't follow the PTP format at present)

Project Task Pages

Template PTP/Guide
Unfortunately, this page is not as up to date as it could be, and will be replaced with something relatively lightweight when practical. In the meantime it is useful to give a flavour of projects Kamaelia has been useful and used for!
Existing PTPS

PTPs to be written:
Background on Project Task Pages

Project Task Pages (PTPs) take a standard format, and recognise that feature dev, bug fix, and any other task have commonalities. PTP's aim to capture this information to make it easier to see what's going on, and assign priorities. PTP's as a result have a template format, which is based on the way Kamaelia itself is designed.

A project task page may cover a project as small as a single feature of a single component of a single module, or something as large as an entire application comprisig of several systems. The key aspect here is that each of those subsystems would also have project task pages, as and when they become necessary.

As a result Kamaelia development and management of components should naturally reflect the component system itself.

PTPs to be fleshed out

Each project here will gain its own page as soon as practical - this is a capture of current state. (This does mean also that there SHOULD be a PTP for ch of the tools listed above)
  • Kamaelia Macro - Timeshifting tools
    • DVB Tools - Tools for timeshifting in a storage efficient, automated manner
    • Database Tools for working with databases in Kamaelia (at present, very unclear what's sensible)
  • Mobile Reframer
  • Multicast RTP MPEG TS remultiplexer
  • Video Cut Detector
  • Component Integration Tasks - Small ad hoc tasks of documenting, reviewing and merging components into the mainline codebase
    • /Sketches/MH/pixFormatConversion/VideoSurface
      • pixel format conversion (yuv<->rgb)
      • Pygame surface based video display
    • /Sketches/MH/dirac/*
      • new dirac bindings
    • /Sketches/MH/Video/VideoSurface.py
      • yuv4mpeg file parsing and generation
      • Cropping and scaling of video frames
    • /Sketches/MH/audio/WAV.py
    • /Sketches/MH/audio/ToWAV.py
      • wav file parsing and generation
    • /Sketches/MH/MobileReframer/...
      • rewritten UnixProcess component (possibly needs a rename?)
      • Pipeline and Graphline that allows size limits to be set on inboxes
      • SAX stream based parser
      • Sequencer for running components in sequence
      • File reader that rate limits by the destination inbox becoming full
    • /Code/Python/Kamaelia/Tools/Whiteboard/Whiteboard/...
      • Some components are potential candidates for the mainline codebase
    • /Sketches/MH/RTP/
      • Selector (made more responsive to requests)
      • Multicast_transceiver (reduced CPU usage by using the Selector)
      • ConnectedSocketAdaptor (minor mod to support multicast transceiver)
      • RTPFramer and RTPDeframer
Challenges Related - It's worth noting that as Kamaelia matures in scope, it's capabilities are beginning to branch out well beyond these challenges
  • Lunch - The fact the world is becoming massively parallel and we need better tools to deal with this.
    • Axon - Our toolset for making concurrency easier to work with
  • Deliver - Tools and mechanisms for distributing and synchronising effectively a huge database of content
    • Macro - tools for timeshifting, but also tools for delivering content via the broadcast chain.
  • Share - Creation of tools for sharing that people can trust
    • Tools to allow the audience to trust the content they recieve
    • Tools to allow content creators to trust that their ability exploit their copyright will be kept intact
  • P2P & Multicast joining
  • Thins that aren't appropriate as project task pages here:
    • Moore's Law Growing both sides of an equation doesn't help - The Dirac project is largely aimed at dealing with these, and is outside the scope of Kamaelia
    • Open - This relates to the fact that open systems need to be able to scale. This is inherently Kamaelia's core goal regarding online delivery.


Projects are to be labelled with tags to help classify and organise them. We've chosen this over having a predefined url based hierarchical structure as it gives greater flexibility and acknowledges the fact that projects will change in status and scope over time.

Possible tags to us include:

  • Experimental (for stuff in /Sketches)
  • Tool (typically the kind of thing that ends up in /Kamaelia/Tools)
  • Example (pieces of code that exist to demonstrate functionality)
  • Mainline (work affecting the main /Code codebase)

Tools

These are relatively substantial systems in their own right. Their development, and components driving their development are ongoing.

Summer of Code 2006 Project Ideas

Each of the ideas here have been fleshed out to some degree to or another and are considered useful to differing degrees. If you're looking for a project worth doing, these are worth looking at for ideas. Aside from anything else if we've added them here there's a good chance that they've had some serious thought behind them already, bootstrapping your idea!

The following list contains the aggregated projects grouped under like for like ideas. The order of projects here has no significance One of the most interesting aspects of this list of projects is that many of them were proposed by undergraduate students, and all thought they could achieve these projects over a 3 month coding period, most of them after having done the MiniAxon tutorial.

Completed Summer of Code 2006 Projects

In some cases these were exploratory, some were concrete, some were half way. All were useful for different reasons.



 

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

This web site is powered by the same code created for the bicker manor project. For more details, contact Michael Sparks at BBC Research directly (cf contact)