Tuesday, October 28, 2008

Rygel the GNOME UPnP Media Server

I am pleased to announce that gupnp-media-server project has been moved to GNOME SVN under the new name, Rygel. Currently it's a basic implementation on top of GUPnP and Tracker but I'll be putting a lot of time and love staring from next week to turn it into a very great project. Special emphases will be put into making it fit the UPnP needs of GNOME.

This would be a very good time to convince me to implement all the features you would want to see in a UPnP Media Server so I can add them to my TODO file. :)

UPDATE: While updating the jhbuild moduleset, I found out that rygel isn't buildable with latest vala/bindings. I'll try to correct the issue(s) tommorrow so don't panic if it doesn't build for you. It's just the demo effect. :)

Friday, October 17, 2008

Good news for the lazy

Jussi recently commited some major changes to Ross' gupnp-binding-tool and one of the new features is support for server-side bindings. This makes writing UPnP implementations in C even more easier. So laziness is becoming less and less of an excuse to not write UPnP stuff. :) Here is a nice document with a nice explanation of how to use it.

Tuesday, October 14, 2008

Claudio has bad memory

Claudio has bad memory so here is my feelings about both of these places in my own words:

  • Meritähti: I really like that place, nice food in a very affordable price. Also it is very near to our office, which makes it the first choice to go to for a meal before we hit another bar for good beers. However, it is most definitely not the best restaurants or bar in Helsinki. Not even one of the best ones. There are lots of very excellent restaurants in the city but of course they charge a lot more.

  • Molly Malone's: That is one of the best bars in Helsinki, lots of nice beers, nice friendly atmosphere and live concert every evening.

BTW, Bastien just committed my patch to nautilus-sendto trunk that adds support for sending files to UPnP Media Servers. I've only tested in against Nokia N81 and Media Server provided by Intel tools for UPnP but it should work for most of the Media Servers that support uploading.

Thursday, October 9, 2008

GUPnP: achievements and way forward

As most of you probably know already, GUPnP is now officially part of Maemo and therefore future internet tablets. This is a major milestone and gives a big boost to my motivation to continue my UPnP adventure. Although I try to put as much of the bits and peaces of spare time i get from my job into UPnP work and I am pretty sure the Intel (former OH) will continue their work as well, we could certainly use more hands to accelerate the development.

If you want to help, here is a short list of TODOs that you might want to have a look at and decide if you could help on any of these:

  • Bindings: Although the more bindings we have the more worlds we can conquer but what we definitely need is bindings for most popular languages in GNOME/Maemo world, namely C#/mono, Java and Python. If you are interested in helping with this, I strongly suggest you take the g-i-r route. Also if you are only interested in C# bindings, I suggest you talk to Jerome Halton who already have a half-baked solution.

  • Integration: GUPnP can't possibly become the standard UPnP framework of the GNOME world until we have:

    • plugins for Totem, Rhythmbox and Banshee enabling these apps to browse and search contents on UPnP MediaServer (MS), export playback control on the UPnP network by implementing a MediaRenderer (MR) and to redirect playback of contents to other MRs.

      You might notice that I didn't mention sharing of contents on the network, the reason for which is that I believe (and Jorn agrees) that that should be the responsibility of a dedicated MS (gupnp-media-server) as part of the desktop session. Having a dedicated MR OTOH hardly makes any sense.

    • GVFS backend for UPnP, allowing the GIO world to browse, copy and move contents to/from UPnP MS as if it was just a local filesystem.

    • PulseAudio integration: Wouldn't it be nice if I could redirect all audio output of my laptop/internet tablet to my cool UPnP-enabled speakers or my desktop machine running Totem, Rhythmbox, Banshee or better yet PulseAudio itself (which would mean p-a implements both an MR and an MR control point (CP)? This is actually part of Lennart's great plan to conquer the world so I thought I mention it here in case someone does it before Lennart gets the time to do it himself.

UPDATE: Forgot to mention a very imporant task: Porting to platforms other than Linux. We mostly use glib, libxml2 and libsoup so this shouldn't be a huge task. The only platform-specific code in the whole stack that I know of is the networking bits.