Preface

This document is part of the LiveSupport project, Copyright © 2004 Media Development Loan Fund, under the GNU GPL.

Scope

This document describes the software architecture of LiveSupport.

This document contains embedded SVG figures, thus an SVG capable browser is needed to view it, or an SVG plugin like Adobe's SVG Viewer.

Software Architecture

The software architecture is contained in Poseidon 2 format.

Scheduler

The software architecture for the Scheduler component:

Playlist editor

The software architecture for the Playlist Editor:

Components

A brief summary of the software components appearing in the figures above:

Scheduler

The LiveSupport Scheduler, responsible for executing playlists.

Playlist editor

The LiveSupport Playlist editor, a graphical user interface component.

Media Archive

The LiveSupport Media Archive component.

Local storage

The LiveSupport Local Storage component.

Helix Client Library

A media library developed by the Helix Community and Real Networks. This library provides support for the SMIL playlist format and Ogg Vorbis and MP3 audio formats.

OSS

Open Sound System, a cross-platform low level audio API for accessing analog audio devices. This is the de-facto standard audio API for Linux until kernel 2.4.

ALSA

Advanced Linux Sound Architecture, a more advanced low level audio API. This is the de-facto standard audio API for Linux since kernel 2.6.

GTK+

The GIMP Toolkit, a cross-platform graphical user interface API.

Discussion

Among the software components listed above, OSS, ALSA and GTK+ are industry standard, and are straightforward to use. But the Helix Client Library is a special library, the open sourced version of Real Network's streaming libraries.

Tests were made to make sure Helix indeed compiles and runs fine on the target platform. All libraries where successfully compiled and SMIL playlists were successfully played. For this, the splay command line sample program was used, which is part of the Helix codebase. For compiling helix client libraries, refer to the Getting Started with the Helix Sources pages. The settings used for successful compilation:

[0] Set BIF branch (hxclient_1_3_0_neptunex)
[1] Set Target(s) (splay)
[2] Set Profile (helix-client-all-defines)
[3] run: build
[4] Toggle make depend & makefiles (-e -n)
[5] Toggle release (-trelease)
[6] Toggle 'make clean'  (-c)
[7] Toggle clobber (Dangerous!) (-C)
[8] Toggle halt-on-error (-p green)
[9] Toggle verbose mode (-v)
[10] Toggle static build (-tnodll)
[11] Checkout source for selected target now
[12] Set Tag/Branch/Timestamp
[13] Help Page (full help in build/doc/index.html)
[14] run history: build
[Q] Quit