UPnP audio renderer released

1 minute read

A very early version of my UPnP audio-renderer had been released on Gitorius https://gitorious.org/gupnp-audio-renderer (Update 2011-08-01: It has been renamed to m3player and been moved to here). It implements the necessary parts of the UPnP MediaRenderer specification.

The implementation is based on excellent frameworks like:

The initial target for the renderer is the OpenWRT platform (see previous articles about a WiFi music player). I decided to use C instead of Vala (that was a decision against Rygel) as the memory constraints are very limited and I need to save memory whereever possible. Although my C language skills are a bit rusty, I did not want to learn another language. Additionally, the usage of Vala would increase the effort to port the whole vala stuff to the OpenWRT build-system. Luckily GStreamer and GLib are already available on OpenWRT.

Update 2011-07-31: Porting Vala packages to OpenWRT seems to be less complex as many source tarballs already contain the C source, generated by the valac pre-compiler, so no valac must be available during the OpenWRT build process.

The requirements for the implementation are:

  1. audio-only renderer (usually routers do not have displays) with a focus on MP3
  2. small memory footprint (my router has only 32MB available)
  3. easy porting to different platforms (not dependent to where Vala has been ported)
  4. support for presets (which can be switched by pressing a button on the router device)

The renderer is being tested with the UPnP Control Point UPnPlay on my HTC Legend.

The next steps are:

  1. Rounding the rough edges
  2. Packaging for Debian/Ubuntu
  3. Makefiles for OpenWRT
  4. Cleaning up the codebase

Update 2011-07-31: The gupnp-audio-renderer has been renamed to m3ddity-player and it found a home here.