Today I fixed the upnp bookmarks pb that people have encountered. I also improved the auto-discovery by autostarting the upnp client / discovery on boot (it’s an option if you don’t like it). This helps as it gives more time to discover UPnP servers before bookmarks are selected. I also cleaned up the code a bit under the hood. Btw, the UPnP sharing option is now explained in the manual.
Today, I opened a paypal account. If you feel generous to help me out buy a 2nd Xbox so I can implement the P2P support I have been talking about, please do so by sending me donations using paypal@plutinosoft.com as the recipient. Thanks a bunch!
In a follow up to my comment, I experimented a bit tonite and indeed I was able to get the xbox to receive broadcast packets. This means that it would be possible for xboxes to find each other’s UPnP Media servers by broadcasting their search requests (and notify) on the broadcast address. This is very exciting. It would be possible to stream from one xbox to another. How sweet would that be? Of course, that means I need to buy a second xbox. Any donations are welcome ;-)
Yes! UPnP auto-discovery in xbmc now works! Per XBMCFanboy suggestion, I looked at the XBMS protocol (for auto-discovery) and realized they were using the 255.255.255.255 address to broadcast their search. I tried with Platinum and it worked! When I send a M-SEARCH request on this address & the UPnP port 1900, EVERY UPnP media servers respond to me! That means you can have more than 1 UPnP server on a host or many hosts and they will all be detected. This is very cool.
Now there’s still a pb I have to work on, since the xbox cannot receive multicast packets, it’s not able to receive the notifications when UPnP servers go away. Although it’s pretty rare, it is possible and the device would still be in the list in xbmc. Kind of a cosmetic detail but I am a complete freak when it comes to the last 5% that makes a good product a perfect one.
I haven’t done that in a long time but I pulled an allnighter today. From 9pm to 9am, working around the clock to fix the last bugs that spiff found. He couldn’t get to see Windows Media Connect. I remembered WMC didn’t seem to respond to M-SEARCH requests. Poking around the internet, I found out that actually it doesn’t respond to M-SEARCH requests issued from the same machine where WMC runs. So the whole Ssdp Proxy solution would work only if it was running on a different machine than WMC. So I was a little worried… But THEN I noticed something very strange. WMC would respond to M-SEARCH requests issued from the same machine when using Intel UPnP Sniffer in unicast mode. Somehow, the UPnPHost service had a bug that could help me!
After a few hours of debugging, I figured out that I was not setting the Host header on my SSDP packets and that UPnPHost was requiring it. After I added it (and it needed to be 239.255.255.250:1900 regardless of the destination), it worked fine. But the most amazing thing about it is that SsdpProxy is NOT required anymore! The xbox can send directly on port 1900 in unicast and wmc will respond to it (as long as it’s the only one listening on that port on the machine of course).
This is very exciting stuff. You don’t even need to set the port in the sources.xml anymore. Actually you don’t even need to add anything. XBMC has got a cool feature that lets you add new Network Locations from within xbmc, including upnp now thanks to spiff. He must have thought I was an idiot cause I couldn’t figure out what he was talking about (root bookmark, add network location, huh?).
Big thanks to spiff also for letting me become an official dev on the xbmc team. I got to meet pike, Donno, DeanPerry (aka C-Quel), jmarshall & Sollie so far. Very nice people. I’ll try to help as much as I can and not f*ck up the repo.
Long live XBMC.
Oh and it looks like the xbmc forums have been updated already about the subject ;-).
By the way, Platinum 0.1.0.0 is now available on Sourceforge. Enjoy.