I am a student from CPE Lyon, France. I have used XBMC for a long time (since the early XBMC4XBOX days), and now that my C/C++ skills are good enough to let me participate to a Google summer of code, I feel quite natural to repay the XBMC team. Moreover, it is a way to get started with XBMC development, and I plan to code outside of GSOC too ;-).

So, here are my proposals :
- First, I quite enjoyed last year's proposal to let XBMC stream audio from a movie to a smartphone. As far as I know, this project has not been picked up. It would of course involve some kind of precise synchronization between the server and the client. An NTP implementation could do it, or it may be a part of the upnp standard, I don't know.

-Secondly, and I find this one more interesting, would be :

Form from the wiki Wrote:AWESOME STEAM CLIENT INTEGRATION INSIDE XBMC

Name: Mayeul Cantan (Sorry, I forgot to introduce myself)forum/e-mail:[email protected] / mayeul.cantan [at] gmail.comSummary: As the steam platform expands in the living room, I find it quite natural to integrate it COMPLETELY inside XBMC, to provide the ultimate media center experience. I am thinking about XBMC4XBOX, where you just have a "Games" category, which lists all the installed games. You just hit "A" and you are ready to play. Then, a shortcut brutally close the game and you are back to XBMC ;-)How will I achieve this: I am going to send a mail to Valve software to see if they are interested in the project. If not, it would be much more difficult to list the existing games. I am also thinking about In-Home streaming : it would be wonderful to be able to stream your games to XBMC on <Insert platform name here> : Raspberry Pi, Apple TV, Android boxes, and a lot more!What will the project focus on: Communication with the steam client process. I do not attend to replace the steam client. Eventually to integrate it partially inside of XBMC (at least games, eventually streaming and friends)Benefits: Valve software would of course directly benefit from it. I can only see a few reasons why they wouldn't cooperate. For XBMC, that would just be yet another "killer" feature. From a user perspective, It would mean a "steambox" media center, which is pretty cool ;-). Goals: At least retrieve a list of games installed and launch these from a linux client. We can launch a game trough the steam:// protocol. To retrieve the game list, we can parse the stdout output of the steam process, since it says "Adding license for app XXXXXX". Of course, we must then add a steam scrapper for games. (I know this fits more into the "how will I achieve it" category). Maybe provide a link to steam big picture too (I think there's already a plugin for this).What does it touch in XBMC: This would require to expand the game category. Unfortunately, I don't think it's a feature wanted by all the XBMC users. Then, we should add some options to enable/disable the multiple features of the steam integration. I think we can use some parts of the existing video decoding API of xbmc to make the streaming thing work.Requirements: Good knowledge of the way the steam client integrates itself with others processes, that's why valve's cooperation is a plus. Then, there is some knowledge of XBMC internals, too.Possible mentors: Place to add possible mentors (Team-XBMC will add this).

I forked the XBMC project a while ago, but I didn't have time to look at it yet. I don't have much time with my studies. Fortunately, this will change this summer.
I can also perform some web development, but I would be rather slow, since I don't know that much about web APIs.
That's it... for now. I think I had another idea, but I can't remember it

So, I would like your feedback : which of these projects seems the most appealing to you?

I honestly don't personally see the point if the first item... Why doesn't the user use a Bluetooth headset?

As for the second, while that would be very awesome, how would one overcome this scenario:
XBMCallows the user to select which screen to run their XBMC on. In personally have it run on the secondary, which is actually in a room separate from the PC. Most all games open and work only on the primary screen. This would mean that unless XBMC becomes a full fledge steam OS like receiver, there would be a big disconnect between XBMC and the launched game...

As a person who users the official XBMC remote for iOS a ton, I'd personally love support for audio out in this way. Ever since I saw the Roku3 remote, I've been jealous. Also, I have an iPhone. Don't have bluetooth headphones.

As far as the steam client goes, I the problem suggested by edrikk shouldn't really apply, as, if we were using software based out of SteamOS, we'd be stuck using OpenELEC or XBMCbuntu anyway. The big question mark I have is just how open is the SteamOS software? Is there enough open source code (or open APIs) available to integrate it in this way into XBMC?

We could use this output to generate a list of the games owned, then use the steam:// protocol to launch games : for rogue legacy, you just issue the command "steam steam://rungameid/241600"

Then, to launch a game on the same screen as XBMC, I have some ideas : on Linux, even if I don't know the insides of an X.org server, I think we can force the game to display on a specific screen, or even spawn an other X server just for the game. With Wayland (not here yet, though), I think we could use subsurfaces.
On Windows, unfortunately, the only way I know is to change the primary display (this is how steam bigpicture works)

Of course, this would be WAY better if Valve could open up their software a bit. I will ask them as soon as I have some time to do so (I have exams the coming week).

About the first item, now :
I don't personally own a bluetooth headset, and I don't have a bluetooth transmitter on each of my computers (I have a usb transmitter that I can use, but there is a lot of devices that don't have built-in bluetooth). Moreover, this would allow to stream different languages to different smartphones. I can think about some situations where this would be useful.

Now, for the implementation, we could add a "request audio" in the app, which "asks" XBMC to stream audio. This could be done via the web interface (more secure, and more control over synchronization), or with upnp/dlna.

As I can only work on one of these Items during the summer, which one would you prefer to be completed first?

I think audio streaming has a better chance of being successfull in the end, doesn't it? So I'd probably do that if you're interested in it. For the steam integration I'd probably first wait for retroplayer to be merged into XBMC to have the games library already present etc.

About retroplayer merge : I can fork a retroplayer branch and work with it as a base, instead of master. I am going to write a mail to valve software, but I doubt they will answer it.
I think I will probably end up picking the streaming project, since I am interested in this feature (sorry ;-) ). However, if I work on the steam thing, I will let you know

1) What benefit would launching a steam game on linux provide?
--I don't intend this as a jest or knock against linux, because it's a great media center extension platform

2) The majority of gamers I know (not a ton, but quite a few) only game on one computer, whether or not they have multiples

3) I myself have a gaming rig separate from my server/htpc. Everyone I know who does this uses windows to date, and the only reason is dev-house development models. Steam is available on linux, but when I checked my small 20 title library wasn't compatible outside of windows (dx)

4) RCB will scrape metadata for your steam games and launch/return from within XBMC by moving the shortcuts into a separate folder

--> A generally improved xbmc server/client model would be nice, but for now a gamesdb doesn't exist the way movies, tv shows, music, and pvr information exists. I'm not sure that retroplayer has this either, anyone ? A gamesdb seems like a necessity for a game server, even if the linux clients are only capable of playing back the retroarch roms in your library

1) This would benefit valve's vision of the steambox, as well as providing more flexibility than on windows (see #6 : it would be possible to force the display used). Moreover, if the streaming option is implemented, this would allow to stream almost any game to any platform (provided there's an XBMC build for it) Imagine for example playing Skyrim on a raspberry pi... There are more and more games on Linux, and the operating system does provide a lot of tools to allow flexible communication between processes (I am thinking about dbus, but it's not the only one). Developer-wise, it's just better.

2) That's the point of streaming. Moreover, valve could implement "headless" streaming. Tins is possible on Linux, thanks to the X server (and, hopefully soon, Wayland). It might be possible on windows too, but I doubt it. Since everything is centered around the GUI, this one is far less modular :-). Headless streaming means you wouldn't see the game window on the server, so you can just keep on using your computer for almost everything else while the game is displayed on another computer.

3) The library is growing more and more. It's a chicken-and-egg problem : few users=>few games because of the restricted audience=>few games... Maybe it's time to jump in, and that's what valve did. 110 of my 275 games are supported on Linux. That's 40%. (I must admit I now almost exclusively buy Linux games, so this must be a bit overrated. Steam currently lists 338 Linux games over 2613 Windows ones, for 699 Mac ones : 13% Linux, 27% mac. This is just one year after the Linux beta, and there was already a big Windows-only game list). There is a real potential here, and Windows might not stand up for long, even if the tux OS has still a long way to go.

4) I don't know about RCB. Is this an add-on? The idea of shortcuts is a good one, but I think we can have a better integration, and more features.
EDIT : Figured out

About retroplayer, this is quite new for me too, I didn't see this one come (my studies are taking a lot of time). I remember reading about a game database somewhere, but I wouldn't swear it. I totally agree with you on the game database. This would allow more flexibility, and a more unified access to the content.

With that said, keep in mind that XBMC won't participate to this GSOC, so I will be unlikely to work on this during the summer. I will probably try to implement these features if I have time to do so, but this won't be a full time job.

Quick Links

About Kodi

Kodi is a free and open source media player application developed by the XBMC Foundation, a non-profit technology consortium.

Kodi is available for multiple operating-systems and hardware platforms, featuring a 10-foot user interface for use with televisions and remote controls. It allows users to play and view most videos, music, podcasts, and other digital media files from local and network storage media and the internet.