Posts

Showing posts with the label GUPnP

A week of Xbox fun

While my MediaServer implementation is still in it's very infancy, I was already asked by more than two people if it will work with Xbox. I didn't have a clue since I don't have an Xbox so I asked Naba if i can visit him on some weekend to find some clues but he was kind enough to lend it for a week instead. For the past one week I had been having lots of fun with it. This nice page by Frank Scholz gave me headstart and I was able to get Xbox see my MediaServer rather sooner. The only other achievement I had in the whole week is that Xbox is able to see the videos but can't play it (most probably because I don't give it all the metadata it requests). The good thing is that now i have a very good idea of what Xbox expects from my MediaServer and I am very hopeful on getting my MediaServer working with Xbox at some point. Here is the log of all the SOAP messages I get from Xbox for anyone interested.

GUPnP presentation at GUADEC

So my GUPnP presentation for GUADEC has been accepted and scheduled for 14:30 on 11 Jul 2008. It will be essentially the same talk I delivered at FOSDEM but this time I'll try to make sure the demos really do work. :) If you missed it at FOSDEM, don't commit the same mistake at GUADEC. :)

gupnp-media-server coming soon..

Image
Next on my TODO is a desktop-wide UPnP MediaServer based on tracker . Basically, it will make all of your media availabe to other UPnP devices that is tagged as "shared via UPnP". I already have a working dummy implementation, based on code from Jorn's rhythmbox plugin. I call it "dummy" because ATM it only exports a hardcoded list of media files. Here is a screenshot of Windows Media Player playing music from it using on2share plugin:

SOAP support dropped from libsoup

Soon after I announced the release of gupnp- tools / av , someone pointed out that libsoup-2.4 is already out and therefore gssdp and gupnp needs to be ported to the new API. I am already done with the porting of gssdp and most of the gupnp (thanks to Dan Winship for being so helpful) but then came the shock: the SOAP support has suddenly been dropped from libsoup. I blamed my ignorance on me not being subscribed to libsoup ML so I started to dig into the archives but failed to find any mention of this change. I know how to solve this issue and I am sure Dan will help me out in this one as well but IMO APIs should be deprecated first and then removed in the next major release.

GUPnP Tools 0.3 released

Image
This release features AV Control Point, a simple media player UI that enables one to discover and play multimedia contents available on a network. Hopefully a useful tool to test and debug UPnP MediaServer and MediaRenderer implementations. [Zeeshan Ali] Other changes in this release: - Desktop file for each tool. [Ross Burton, Zeeshan Ali] - New Icons. [Vinicius Depizzol] - Various misc improvements and fixes. [Zeeshan Ali] Download from http://gupnp.org/sources/gupnp-tools/gupnp-tools-0.3.tar.gz Here is a screenshot of GUPnP AV CP in action:

Introducing GUPnP A/V

The first release of GUPnP A/V is now available . GUPnP A/V is a small utility library that aims to ease the handling and implementation of UPnP A/V profiles. GUPnP A/V is free software released under the GNU LGPL.

GUPnP 0.8 released

While I was having fun with the extremely slow Internet connection here and other family issues, Jorn rolled-out another GUPnP release . Here is the release announcement: GUPnP 0.8 ========= - New API allowing for subclassing of resource types. [Zeeshan Ali, Jorn Baayen] - GUPnPDeviceInfo returns subresources with version greater or equal than requested version. [Jorn Baayen] - Servers announce versions less or equal than implemented version. [Jorn Baayen] - Make gupnp_context_get_server() public. [Jorn Baayen] - GError arguments added to all error signals. [Jorn Baayen] - Improved resubscription handling. [Jorn Baayen] - Various other fixes and internal improvements [Ross Burton, Zeeshan Ali, Jorn Baayen]. One big reason to roll out a release at this point was to make way for a gupnp-av and gupnp-tools release, which will follow shortly so stay tuned. :)

Too much depression

As the only male child in the family, it was always considered to be my responsibility to take care of my mom and (mentally disabled) sister, Erum. Implicit in this assumption is another assumption that I will marry a girl that will be a house wife and would happily take care of everything at home while I would be busy making money. I could have made piece with the former assumption but the latter would obviously involve me enslaving another person and that simply goes against my basic principles of morality. When i moved to Finland two years ago, i thought i will be able to live the rest of my life independent and free as at that time it seemed very likely that my mom and Erum will soon be moving to Canada with my sister, Uzma (Api) and her family. Unfortunately, the Canadian authorities denied them immigration an year after i moved to Finland (7 years after the application was submitted) based on the argument that they will be a burden on their social system despite Api's continu

GUPnP presentation at FOSDEM

Image
My GUPnP presentation at FOSDEM turned out to be not so un successful after all: Anyone interested in the presentation material can get it here .

FOSDEM2008

If you have been looking for a better reason to go all the way to Brussels to attend FOSDEM , look no further; I'll be presenting GUPnP there. :)

GUPnP news in c't

Recently the c't magazine mentioned our dear GUPnP project and published some pictures of my UI (I am hoping to see it tomorrow *if* Stefan remembers to bring it to office). That resulted in at least one person getting interested in our project. AFAIK, everything worked out of the box on his Fedora Core 6 but he was unable to see anything in any of the client-side tools. After a few mails and some help from Christian , it turned out to be the default firewall settings on fedora.

GUPnP AV CP

Image
They say, a picture is worth a thousand words, so here is the gupnp-av-cp playing a song from my n81 on the coherence media renderer: Many thanks to Frank Scholz and Visa Smolander for helping me in making sense out of UPnP specs, otherwise I still would have been confused on how to implement them. The CP is not yet ready but I will try to complete it before the end of the year 2007. I would like to avail this opportunity to make it very clear to everyone that I have nothing against Coherence project and/or python, in fact I have been using Coherence myself extensively to test my GUPnP code. The reason people get the impression that I am against coherence/python is that I express the following reservations of mine regarding python, quite often and I end-up giving a wrong impression: 1. I do not believe that python is ready for embedded systems yet and vice versa. Both python and embedded systems need some time before they can be happily married. 2. There is also the fact that when I wo

From 28M to 2.7M

Image
As some of you already know, I've been working on a simple AV-specific control-point as part of gupnp-tools. While at it, I've been trying to keep the UPnP AV parts as separate and generic as possible so that they could be move to a separate library later on. One of the first things that everyone wanted to create a nice wrapper for is the ugly DIDL-Lite. Jorn tried his best to convince me and others to not create a GObject for representing each DIDL-Lite object but I didn't listen and ended-up writing a very resource hungry API. To see what i mean, please look at memory usage of gupnp-av-cp after populating it's treeview with the content hierarchy exported by coherence: I was quite sure that most of this 28M is taken by xmlDoc and I was right. Now that I have got rid of xmlDoc usage and replaced the gobjects with an API to deal with xmlNodes, here is how the memory usage looks like: For people who are curious on how this simple AV control-point would look like, here is

GUPnPResourceFactory

As soon as I started to write gupnp-av-cp, I realized that I need to subclass resource (device and service) proxy classes but the resource proxies are created by the control point object on discovery and there was no way of telling control point to create objects of your subclass instead. The obvious solution that comes to mind is to add an API to control point for registering your subclass' gtype against a UPnP resource type. Unfortunately, that won't work since device proxies also create device proxies for embedded proxies and services. So the final solution, which is already implemented and committed to svn is a separate class, GUPnPResourceFactory whose sole responsibility is to create resource and resource proxy objects and to provide an API for registering and unregistering UPnP resource type to gtype assignments. Each GUPnPControlPoint and GUPnPDeviceInfo-derived object is assigned a GUPnPResourceFactory object on creation. You can get a pointer to the factory used by th

GUPnP Release announcements

GUPnP Tools 0.2 =============== This release features Network Light, a UPnP-enabled software-based light bulb that provides Switch Power and Dimming services, as defined by UPnP forum as 'DimmableLight v1.0". It is mainly intended to be a simple example of a UPnP device based on GUPnP, and a demonstration of simplistic yet powerful GUPnP API. It can also be used to debug generic and DimmableLight control points. Changes to Universal Control Point in this release: - Use of gtk stock icons wherever appropriate. - New cool icons from Lapo Calamandrei, licensed under GPL - Use icon from the Device, if available, to represent it. - Subscribe to services, by default. - Ability to copy&paste details and events. - Lots of code cleanup and refactoring and misc fixes. GUPnP 0.6 ========= - Added service signal autoconnection feature in the spirit of glade_xml_signal_autoconnect(). [Zeeshan Ali] - Fixed various bugs related to object destruction. Fixes #500, 503. [Jorn Baayen] -