Google Summer of Code/2008
Template:Current event Google is sponsoring their forth annual Summer of Code (SoC) in the summer of 2008, this entail sponsoring students to work on assorted open source projects as well as sponsoring mentors in those same projects, everyone wins! Note that The XBMC Project has not yet been selected as one of the approved mentoring organizations howeever we do plan to apply this year. This page will be used to possible project ideas for the Google Summer of Code 2008 season, and also once track the status of each project and how well each student are doing.
1 How to apply
1.1 Before you can apply
Before you can apply make sure you are qualified enough to apply:
- You have to know how to program in C++ (and know C) fairly well.
- We would like you to first submit a small patch that fixes a bug or adds a feature to XBMC. By doing that we will know that you are qualified for the task or not. At the bottom of this page there will be a list of possible Qualification Tasks, specific ideas that could be performed to show your skill, however you are free to submit anything you feel might be of value to XBMC. The qualification task can be done after you have filed you application.
- Submit a good application through the formal Google Summer of Code process during the application timeframe.
- You have to have >35 hours per week to put into the project.
- You ca not have another job at the same time as the SoC project.
If you are interested in participating in the Google Summer of Code you will need to register at the official SoC site linked above and file an official application. Traditionally, top applications are fairly detailed. Look at this application here for inspiration. The Drupal project has also prepared a couple of good guidelines:
Each accepted project will be developed in its own sandbox (SVN branch), separate from the main XBMC codebase. Naturally, the end goal of each of the accepted XBMC projects ought to be to have that code in shape for acceptance into the production codebase. This page will track the status of each project and how well each student are doing.
2 Current Status
- To Come.
3 Project Proposals
- To Come.
Qualifications for a good Summer of Code proposal:
- Discrete, well-defined, modular
- Comprised of a series of measurable sub-goals
- Based on open specs that are available free of charge
- Based on complete specs
An example of a good proposal is the implementation of a new feature or function that is not yet available in XBMC.
An example of a less desirable proposal is one that's not as measurable, such as refactoring an existing API. Bad proposals tend to be ones that would require touching a lot of core code.
- Localized/isolated code projects = good
- Global code refactoring = bad
3.2 Proposal ideas up for discussion
Most of the proposal in this list are just some project ideas we are kicking around, (which, by no means, limits any prospective proposals). So you are more than welcome to come up with a new unique idea that you think falls into the scope of XBMC and the Google Summer of Code spirit.
NOTE! THIS LIST IS NOT THE FINAL PROPOSALS WE ARE SUBMITTING!
- PVR front-end GUI that is skinnable and a API can can support multiple HTPC/DVR-backend clients
- PVR software support (API to control channel-swapping and stream Live-TV of a third-party backend)
- Linux VDR (Video Disk Recorder) client that can control a LinVDR server
- MediaPortal client to control MediaPortal back-end (TV-Server)
- Windows Media Center Extender client that can control Microsoft Windows MCE
- MyTheatre client to control MyTheatre as a back-end
- ProgDVB client that can control ProgDVB as a back-end
- Pictures database; scan EXIF (and IPTC) tags into a db and add a library-mode view
- Native DVB television in XBMC for Linux via v4l/v4l2 library and FFmpeg (inside DVDPlayer)
- Latest FFmpeg SVN already have v4l/v4l2 support, but no tuning or channel-swapping features
- Skinnable XMLTV GUI (TV-Guide) frontend in XBMC and a method of downloading new listings.xml
- Extend XBMC's Scraper API to also download, music and games metadata, and weather-forecasts
- Unified Subtitle Parser Library for XBMC's in-house DVDPlayer video-player core
- Create a Unified Subtitle Parser Library for external and embedded subtitle, plus a FFmpeg wrapper for it
- Add full VCD/SVCD menu support to XBMC (possibly via xine-vcdnav/vcdx from Xine)
- Add native support for text-display from CDG Karaoke Audio-CDs (possibly via libcdio)
- As this would otheriwse be a small task (since XBMC already uses libcdio for other features such as ISO/IMG images reader and ISO 9660 reader on the Xbox), one would also expect this proposal to also include additonal karaoke functions and features under XBMC for Linux, such as microphone support (with recording and enabling the use of those microphones under both audio and video playback, and maybe even voice-mask filters), and possibly Lyrics3v2 display on top of visualizations and screensavers.
- Fully port XBMC for Mac OS X to compile and run Mac OS X 10.4.x (Tiger)
- Fully port XBMC for Mac OS X to compile and run on PowerPC (PPC) architecture
3.3 Projects with Mentors (official approved projects)
- To come.
4 Qualification tasks
Please add a note here if you choose to work on a Qualification task to avoid duplicate work, (to do that you first need to register an account on this wiki and request 'ninja status' from a Team-XBMC member for that account).
Many students will probably apply for the Google Summer of Code and wish to work on a sexy multimedia project such as XBMC. All students will probably also claim to be hard workers, but we need a real method of determining which students have a higher probability for success. Thus, we will use this qualification system (adopted from FFmpeg SoC 2007 season). A student must successfully first complete a qualification task in order to be considered for an XBMC SoC project. In doing so, a student demonstrates that they:
- Were willing to commit some time during the Summer of Code application review period in order to prove themselves can code C++ satisfactorily and with the same general style expected of the XBMC codebase.
- Can wrap their head around the XBMC codebase.
- Can interact with the XBMC development team via the forum an IRC.
- Can accept feedback and revise the code after a review until it is suitable for inclusion in the main XBMC codebase.
Frequent Objection #1: "But I don't have time to do a qualification task!" Then how do we know you will have time to work on your task during the summer? The qualification tasks are selected to be fairly trivial by XBMC standards and should not be too difficult for a prospective XBMC contributor. If they are too difficult, maybe XBMC is not the project for you. Also, be encouraged by the fact that the application review period comes after the application submission deadline; i.e., you can work on a qualification task after you submit an application to XBMC. But you will not be considered for an SoC project slot unless you have satisfactorily completed a qualification task.
Process: If you are truly interested in applying for XBMC's Summer of Code and, by extension, interested in working on a qualification task, the first step is to register a XBMC Community Forum Account, a SourceForge.NET Account and a XBMC Wiki Account (plus apply to get 'ninja status' for the Wiki by contacting a Team-XBMC member), and then publicly indicate that your interest and which project you plan to work on.
4.1 Linux 64-bit x86 compiling
- Patches to make XBMC for Linux closer to compile on 64-bit x86 architecture.
4.2 Mac OS X 64-bit x86 compiling
- Patches to make XBMC for Mac OS X closer to compile on 64-bit x86 architecture.
4.3 Windows (Win32) compiling
- Patches to make XBMC for Windows (from the linuxport branch) closer to fully work a Windows XP (32-bit x86) architecture.
4.4 Legacy Tasks
- Cleanup an old abandoned patch and resubmit it for new review and SVN commit apporval. http://sourceforge.net/tracker/?group_id=87054&atid=581840