uShare UPnP Media Server
uShare UPnP A/V & DLNA Media server – Xbox 360 Patch
uShare is a UPnP (Universal Plug and Play) media server belonging to the GeeXboX project. Its purpose is to share information about media files accessible on a given device, and then to serve up those files to any UPnP compliant client.
When I bought my Xbox 360 back in February, one of the first things I wanted to do was stream media from my desktop system for the benefits of HDTV and 5.1 sound. Seeing that I had no intention of runnning Windows, I searched for a Linux solution and came across uShare.
Unfortunately I quickly found the Xbox 360 to have a design flaw. Before viewing a media servers files, you need to choose whether you want to view its pictures, listen to its music, or watch its video. Once you make your choice you cannot view the other media types, even though they are listed. This means that if you decide to listen to a 30 second sound clip from a server, you cannot watch a slide show or view a home video without first rebooting the 360. Your only option is to go to another media server. Naturally I tried starting up a second uShare instance on a different port of the same machine, but the XBox 360 refused to notice its presence.
Motivated by frustration I decided to examine what was going on with some packet analysis (tcpdump) and good old debugging output. I quickly realized the problem was that uShare
was assigning the same UDN to every uShare instance. (Perhaps the 360 uses a dictionary indexed by the UDN, therefore overwriting UPnP servers discovered on other ports). After discovering this, I decided to write a patch that uses the already existing “-n bindingPort” CLI switch as a way to modify uShare’s MAC-based UDN.
Two hours of experimenting and testing led to this patch and a working XBox 360 media centre! And this is why I love open source.
Comments
Leave a comment Trackback