Some time ago I posted about our work to bring Grilo content to D-Bus world (rygel-grilo), so other applications (mainly Rygel) could consume it. This was done using a specification written by Zeeshan, MediaServer1 specification, originally intended to be used with Rygel.
During its development, some issues arised with the specification, so Zeeshan and I were refining the specification. Finally, with the help of Lennart, we reached a final version that we expect can fulfill clients requirements.
Thus, what does come with rygel-grilo? First of all, I would say that right now rygel-grilo is not a very good name as other applications than Rygel can consume the content (as we will see later). I think grilo-mediaserver1 would be a better name. Let’s see if we change it in the future.
As I was telling, rygel-grilo consist of two parts:
A library to implement both MediaServer1 producers and consumers.
Rygel-grilo program itself, which exports Grilo content through D-Bus.
The library is intended for those who want to develop either a MediaServer1 client or a MediaServer1 server with glib: it provides an easy API to use, hiding all D-Bus stuff. In fact, rygel-grilo itself is implemented using this library.
As said previously, not only Rygel can consume content through this specification: other applications can implement this specification to consume the content too.
As an example, we have implemented a plugin for Totem that is able to get content using this MediaServer1 specification. Again, we have used the library that comes with rygel-grilo to ease the implementation.
The following video shows Totem getting content from Grilo through MediaServer1 specification:
Moreover, my workmate Joaquim also developed a plugin for Rhythmbox that is able to retrieve content using also MediaServer1 specification. Thus, Grilo can feed both Totem and Rhythmbox.
It is worth to note how easy is developing an application or plugin that gets content from MediaServer1. So I would expect more plugins coming soon.