Posts

Showing posts with the label Maemo

Multiple networks and GUPnP

When GUPnP was first used at Maemo software, one of the first questions I was asked was: Can't GUPnP handle multiple network interfaces just like ClinkC (the now deprecated UPnP framework in Maemo)? The answer to that question was "yes but you have to take care of creating GUPnPContext objects for each network interface yourself" and that wasn't very convenient. This issue, accompanied by the fact that applications had to know when the interfaces go up and down to create and destroy the associated GUPnPContext object themselves, made the lives of application developers not so easy. Recently when this issue was raised on the mailing-list and bugzilla by two different people, I started to think about how to solve this issue. Keeping in view Ross ' advice I came-up with the following solution A GUPnPContextManager class that basically just have two signals: "context-available" and "context-unavailable", that it uses to create/destroy and report

Rygel 0.2.2 is out

Changes since 0.2: - Use the new (0.6.9) Tracker API. - Priority of gio-based streams are based on requested DLNA transfer mode. - GIO-based/like asynchronous plugin API. - Adapt to latest changes in gupnp-vala API. - Serialization of media objects isn't done by media objects themselves anymore, but by a new separate class, Rygel.DIDLLiteWriter. - Internal API is marked 'internal' so it doesn't get to our (Vala) API. - MediaObject now derives from GLib.Object. - Generic AsyncResult implementation, SimpleAsyncResult. - StateMachine interface that all state machines classes implement. - Visible performance improvements in Tracker plugin by proper use of Tracker APIs. - Use Filename.to_string() and therefore make Bastien happy. - Require lastest version (0.1.5) of libgee to use List.slice(). - Don't limit the number of objects returned to a client, let it decide that on it's own. - Proper handling of update notification to the client by use of a very simple bubble-

FOSDEM2009

Like many other Hacker fellows, I'll also be attending FOSDEM this year. I even have a talk at the GNOME devroom just like last year but this time I'll be mostly talking about Rygel rather than GUPnP . If you are coming to FOSDEM and happen to have any interest in Rygel, especially in how to write plugins for it don't forget to attend it.

Rygel 0.2 is out

Rygel 0.2 is out. Here is the release announcement: The major change after last release (as gupnp-media-server) is the introduction of a simple yet powerful plugin-based architecture/api: Everyone plugin: - is loaded into a separate MediaServer instance. - can implement any kind and number of resources (currently only services). - can export an icon file. - inherit it's ContentDirectory implementation from a base class that does most of the UPnP-related work. More improvements on this planned for next release. - use an intuitive API to easily export media from URIs and live GStreamer source elements over HTTP. Other changes: - Relicense under LGPL to allow proprietary plugins and ease of moving code from/to gupnp libraries. - DVB Daemon integration though a plugin. Now you can watch live channels from your PC on your PS3 for example. - Test plugin that exports one audio and video item, streaming contents from GStreamer's audiotestsrc and videotestsrc elements respect

Rygel now part of maemo plan

So it is no secret anymore that Rygel will be part of maemo platform . If you are interested in contributing to maemo, here is yet another chance. I have a big pile of TODO for Rygel so if you are interested, do contact me. In case you prefer IRC like I do, I am always on #gupnp on irc.gimp.org.

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 solu

Fire in the hole!

Many thanks to Olivier Crête , we now have a nice small library for firing holes through firewalls using a part of UPnP IGD API. This library also provides a convenient way to do all that without having to use a gmainloop. While Olivier will most probably use it in his farsight2 , I am sure this will be useful for other projects (I did not say Ekiga :)) as well.