Bonobo-Media

What is Bonobo-Media?

Bonobo-Media is a set of Bonobo interfaces and a GTK+/libbonobo-based implementation for the the control of generic multimedia playback. It currently supports audio and video streams. Support for tuners is also planned.

What is Bonobo-Media not?

It is not a solution for actually delivering the media content to the end-user. You should use other infrastructures like the GNOME Multimedia Framework for that, ideally, from a Bonobo-Media stream provider.

Bonobo-Media status

Parts of Bonobo-Media are not even in the design phase, the implementation contains bugs, and the designed interfaces can be subject to changes. You should only use it if you are willing to constantly modify your programs to reflect changes in Bonobo-Media.

General design of Bonobo-Media

The general idea behind Bonobo-Media is to remote-control playback components that do the work of displaying/making audible the actual media content on their own. There are five interfaces involved:

  • Bonobo::Media::Stream: For controlling a media stream, i.e. setting/getting the playback position and starting/stopping playback.
  • Bonobo::Media::Tuneable: FIXME: DESIGN ME
  • Bonobo::Media::Video: A collection of methods specific for multimedia content containing video. This currently includes a method to get a Bonobo::Control that contains the rendered video.
  • Bonobo::Media::Audio This is a lot like the Control interface: it sets the remote EsounD server to send audio output to. It also includes volume managment methods.

The implementation

My implementation (avaliable either from the download site or the GNOME CVS server) uses the GTK+ object system, the libbonobo Bonobo implementation and the GOB preprocessor. It contains:

  • A generic Stream implementation, for easy development of new Stream providers (just subclass it)
  • A small (both in screen real estate and in size) media player control
  • A full-featured standalone media player application (just planned yet)
  • Stream providers

Back to main page

Home | Open source | Diary | Articles | Photos | Files
This XHTML page is created by Gergõ "Cactus" Érdi. Send your comments to cactus@cactus.rulez.org.
Hosted by BME.