Platinum 0.3.0.0 Released!

October 28, 2006 No comments yet

Today I published the latest and greatest of the Platinum SDK. Among a bunch of fixes and improvements, the main cool new thing is full support for Mac OSX (and Linux obviously) thanks to the little Mac mini I bought K. a couple years ago. So the SDK is now available for Windows, Linux, Mac OSX, XBox, PSP. I am also working on some linux-based embedded platforms (gp2x, chumby, …).
Here’s the changelog I put together:

Platinum 0.3.0.0
—————
Fixes/Changes:
- Added MacOSX support.
- Fixed socket abortion problem on Linux (using a pipe).
- Complete rewrite to use threads instead of interrupt driven round-robin. The benefit is that throughput is now greatly improved (for streaming especially).
- Addded a new App: MediaCrawler
- Split up AV MediaServer code. Now the FileMediaServer is one implementation of the AV MediaServer. More to follow.
- Added README, CHANGELOG, LICENSE files

Known issues:
- AV MediaServer Search not implemented yet.
- Http server does not use a thread pool. This can be a problem with hungry ControlPoints like the Intel Tools AV MediaController.

Platinum v0.3.0.0

September 24, 2006 No comments yet

Platinum v0.3.0.0 is around the corner. The new version now supports true multithreading. No more round-robin man-made time sliced threading scheduler crap! While it was cool to have a pure pull system, it had a terrible throughput. Streaming files was terribly slow because I was only checking socket availability/status every 10ms (which means more like 100ms on Windows). So throughput was always capped to a ratio buffersize / sleep time. Anyway, this is all fixed. The Web server is screaming fast now (faster than the Intel Tools!)

More exciting features and bug fixes too!

XBMC UPnP leak found!

September 5, 2006 No comments yet

Finally, this week-end, I was able to find the crazy memory leak that had crippled XBMC. JMarshall was able to constantly reproduce it by connecting his laptop to the same network the xbox was on. Finally, a few ethereal dumps later, I found out that he was running ICS on his laptop and that ICS would respond to the XBMC UPnP M-SEARCH requests that it sends every 6 secs. So it had to be that the response was causing the leak. Of course, somehow it took me 1h to figure out how to set up ICS (you need 2 active network adapters to even see the option in XP!). Even after setting it up, it wouldn’t respond to the M-SEARCH requests for me. Instead, I was able to see what would happen when ICS go alive (and catch the NOTIFY) using the Windows version of Platinum.

After hitting a pretty big race condition bug (2 threads accessing the same device list), I assumed the leak was there. While I was talking to GeminiSer on irc describing what I found, I was also stepping through the code as it was receiving the Device Description and SCPDs and then I saw it. Right there, the leak. Somehow, I made asumptions that the SendEvents attribute in SCPDs was required and was bailing out of my parser when it couldn’t find it. Of course, I was not cleaning up the dom tree in that case!

Now I don’t know if SendEvent is optional but in any case, it’s the first time I see this problem. In any case, the latest xbmc t3ch release is leak free at last!

Rhapsody + XBMC

July 11, 2006 2 comments

Ok I have had one comment asking me about this and I responded but it’s worth its own entry so that I don’t have to repeat myself:

Even though Rhapsody is a UPnP Server, they actually use a DRM on top of it. A secure protocol must be established between a device that wants to stream from Rhapsody and Rhapsody for it to let it stream the content. The content is encrypted when it is being streamed to the device and only the device can understand how to decrypt it. A similar but different method is used by Windows Media Connect to stream protected content to ‘compatible’ devices. (A similar method is also used by iTunes and the airport express although this has been hacked).
XBMC cannot and will most likely never (legally) stream Rhapsody content, Windows Media protected content or any Premium content acquired on a Music store for that matter. The reason is that being open source, it cannot meet the robustness requirements imposed on device manufacturers by the Rhapsody service or the WMDRM-ND spec (which is what WMC implements to let you stream to compatble devices content acquired on other stores like Yahoo or Napster).
Sorry.

ps. On the flip side, if you wish to use Platinum in your device and wish to support Rhapsody, this is totally possible (and already supported) if you wish to get a commercial license for Platinum. I released it under a dual license (GPL for open source projects and Commercial for closed source projects). Please contact me directly here for more info.

Platinum 0.2.0.0 released

July 11, 2006 5 comments

Usual place.

Fixes/Changes:
- Added support for Linux, Xbox, cygwin platforms (using Scons http://scons.org)
- Now using timeouts on sockets. Fixed search not being repeatly sent.
- Moved Neptune under ThirdParty folder
- Fixed missing NptFile.cpp file.

Known issues:
- Aborting on some platforms (linux/xbox) is not immediate. Sockets cannot be easily aborted by simply calling closesocket.

SCons: A software construction tool

July 10, 2006 No comments yet

In a few days, I should be posting a new version of Platinum with support for a few new platforms, including XBox (well of course!), Linux & Cygwin. Btw, I have decided to go with SCons instead of make. It’s much easier to use and add new platform support that way. I just have to finalize one little detail and it should be ready. If anyone has suggestions on how to abort a blocking socket call (in a cross platform way), please don’t hesitate.


Categories

Archives