view · edit · print · history

The problem

RealAudio format is still fully closed source, so there are no NDA-free projects supporting it. Although a reverse engineered codec is included in MPlayer?, it is based on floating point arithmetic and is not suitable for the FPU-less XScale? processor mounted on NSLU2.

The solution

The Helix project made available to the general public a fixed point codec and the Real streaming format handler, but only in binary form (a static library). The simplest command line player with audio stream support can be built in the following way.

NB: the binary library is available only in little-endian format, so your distribution must be little -endian too (e.g. debianslug).

NB2?: obviously you need a USB soundcard and proper ALSA drivers :-)

  1. In order to correctly link to the binary library, your toolchain must be FPA based (which is the default for gcc 3.3 or older). For a debian host, you can for instance install the scratchbox packet scratchbox-toolchain-arm-gcc3.3-glibc2.3
  2. Register and get (after a few hours) a valid login to access the non-restricted section of the Helix CVS server. Follow the instructions listed at https://common.helixcommunity.org/2004/devdocs/quickstart(approve sites) to correctly setup the build system.
  3. Set the target environment variable with the command export SYSTEM_ID=linux-2.2-libc6-armv4l-cross-gcc3.2
  4. Run the build.py script in a temporary directory
  5. Select the hxclient_1_5_0_cayenne CVS branch (menu item [0])
  6. Select the splay_audio_all target (menu item [1])
  7. Select the helix-client-audio-all-fixpt profile (menu item [2])
  8. Toggle release build (menu item [5])
  9. Start the buildprocess (menu item [3])

Don't worry if the process seems to hang at certain points: some libraries (like the RALF lossless format) are not available for our SYSTEM_ID, but one can live without them.

You should end up with a 'release' directory with the 'splay' application in it, along with the codecs as dynamic .so libraries. Move all of them to your box. You should be able to listen to the BBC now (http://www.bbc.co.uk/radio1/realaudio/media/r1live.rpm(approve sites))!

Splay is a minimal demo application supporting MP3s? (but not VORBIS), however madplay is far more efficient in terms of CPU demand.

view · edit · print · history · Last edited by Ettore.
Originally by Ettore.
Page last modified on October 19, 2006, at 11:04 AM