It’s been a while since I last blogged about Rygel. Many things have happened since, mainly in features and documentation.

Features

Exchangeable media engines: We’ve loosened the dependency on GStreamer a bit. While it is still our first-class transcoding and general media handling library, it is now possible to substitute it with other media processing libraries. A simple example is included in the source.

Change tracking. This is a feature introduced in the UPnP content directory specification version 3. It allows clients to, well, track the changes that happen on the server in detail for synchronization purposes. It’s implemented in the framework and as a demonstration in the MediaExport plug-in.

GStreamer 1.0 support. As the rest of GNOME, we transitioned to GStreamer 1.0.

Playlist support. Rygel now generates playlists for containers on-the-fly and the renderer framework supports automatic playback of them. The only format that’s supported currently is one of the two formats defined by DLNA, DIDL_S, which is just the same format that is used by UPnP AV to describe the media content on a server.

Playspeed support. A renderer now can announce that it supports different speeds and directions than normal forward playback.

API

There was another split-up into a renderer framework library and a specific implementation of a renderer using GStreamer which again may be used in your own programs. This is mainly due to the aforementioned change in media backend flexibility.

Otherwise we’re working on making the API easier to use from C and other languages through introspection.

Documentation

There’s been a lot of effort into extending our sparse documentation. It is currently concentrating on the APIsideofthings but will be extended to a higher level as well soon.

Misc

There is an example now that implements a DLNA renderer which is running in full-screen

There are several examples for the most common init systems to run Rygel as a system service if wanted

Helium 0.6.0 is available. It mostly contains back-end changes, but several user-visible changes as well:

Improved seeking

The handling of seeking in the player view has been improved. The area that reacts to the
seeking has been enlarged and the the flicking doesn’t steal the events anymore. A tool-tip will show the current seek position.

Filtering

It is now possible to filter the list of media files. To activate the filter input, just drag down and pull the list at the top as in every other program on the device. By default the filtering will only work on the titles. This can be changed in settings to match against most of the other meta-data as well.

Debugging

It’s now possible to log the UPnP traffic to help debugging of interoperability issues. By default, the log file is written to MyDocs to enable easy transfer of the log files via mass storage mode.

If you try to test GStreamer 0.11 there’s this nice gst-uninstalled script; somehow that didn’t work for me as soon as I tried to use more non-gst interdependent libraries so I opted to use jhbuild. Luckily that’s quite easy with the stock gnome jhbuild moduleset.

To do that, I created a new .jhbuildrc-gst-0.11 with the following modifications. skip and modules can of course be adjusted to own needs.

Since Echofon cut off custom-built Firefoxes I was looking for a new twitter client. The only one matching my needs was Pino. Unfortunately since the mandatory activation of OAuth in twitter it stopped working. But: No fear! I hacked it to use librest which supports OAuth ootb. Currently it is a bit flaky (crashes at startup sometimes for no obvious reason) and there is no easy way to log in. It currently uses librest’s demo consumer keys which is probably not the most fortunate thing to do. I will request own credentials as soon as it runs more stable. Stay tuned for updates, I will push it to a public repository really soon.