This Chromecast tech is as closed source as it gets.
A Chromecast app using the Google Chromecast SDK must be *approved* by Google.
From the developer's site download page:
"Note: You may not publicly distribute or ship your Google Cast application without written permission from Google, per the terms of service described below"
YOU MAY NOT PUBLICLY DISTRIBUTE CODE CONTAINING THIS SDK OR REFERENCING THESE APIs WITHOUT A WRITTEN AGREEMENT WITH GOOGLE ALLOWING YOU TO DO SO.
You cannot just download it, integrate it in an app and be done. Google will look over your shoulder to approve it. That is not nice.
Then, for developping, you need the USB dongle and whitelist it for developement with this fantastic
form.
So if I want to make a Googlecast app, I need Google's approval.
That is not developer friendly. And If it was, they would have allowed to use desktop Chrome as a Chromecast receiver (
issue on bugtracker), and not attaching dubious strings to app distribution.
Now, suppose you want to make XBMC a Receiver, obviously without Google's blessing. It is a closed protocol. So first you have to reverse engineer it. Given the tight control Google seems to seek
on both Senders and Receivers, this is not good news.
The protocol itself seems simple (JSON data transmitted over a Websocket). Multicast used for discovery. Noone knows
yet if traffic is encrypted.
And there's the codec problem. It supports a ridiculous minimalistic list of codecs.
In fact it supports only html5 codecs, which makes sense since it runs in a browser.
For a Sender wanting to send to regular Receivers (eg, the official dongle), prepare to reeencode/remux all videos to mp4.
If making a custom Receiver, you can probably support more codecs.
My guess is that the protocol will be reverse-engineered, with OSS libraries allowing to write Senders and Receivers.
What Google will do then, nobody knows.
So to conclude, Google wants to achieve super tight control over who does what with this technology, and that's very disappointing.
It is probable they target large Internet media content providers (Hulu, Pandora, Spotify, ...) and do not care much about the rest.