Google Summer of Code 2008

From XBMC
Jump to: navigation, search

XBMC has been accepted into the Google Summer of Code 2008!

Google is sponsoring their fourth annual Summer of Code (GSoC) 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! XBMC has been selected as one of the approved mentoring organizations for this year's GSoC. This page will be used for possible project ideas for the Google Summer of Code 2008 season, and also track the status of each project and how well each student is doing.

The primary administrator for this year's XBMC GSoC is Staffan Lindberg (a.k.a. Pike)
The backup administrator for this year's XBMC GSoC is Sean Soria (a.k.a. malloc)
...sorry, Andreas Setterlind (a.k.a. Gamester17) has got a new job in real-life so he can not continue as GSoC administrator this summer.

NOTE! If you are a student who wishes to be involved with an XBMC GSoC project, one of the first and best steps you can take is to register an account on XBMC community forum, (sooner rather than later), and indicate your interest. Also, make sure that you complete a qualification task as soon as possible to be eligible for a XBMC SoC project, (no qualification task = no project, that is Team-XBMC policy, not Google).

Contents

1 Introduction to XBMC

XBMC (formerly "XBox Media Center") is a free and open source cross-platform media center, designed to be the hub of your entertainment system. XBMC was originally established in 2002, at that time being developed as media player software for the first-generation Xbox game-console. XBMC has since been ported to run natively under Linux, Mac OS X, and Microsoft Windows operating-systems. XBMC has so far been translated to over 30 languages, won three SourceForge Community Choice Awards (Best Multimedia Project and Best Game Project in 2006, and best project for Gamers in 2008) and been a nominated finalist for a number of other awards. Today XBMC have a very broad international community of active developers, graphic artists, and devoted users.

1.1 Developing XBMC

The XBMC code structure uses a fairly modular design (with libraries and DLLs) who's structure is large, though relatively easy to grasp. XBMC's source code is predominantly C++, though there is a small splattering of C libraries and assembler for good measure. XBMC for uses the Microsoft DirectX multimedia framework (Direct3D) on the Xbox, and the SDL (Simple DirectMedia Layer) framework with OpenGL rendering for other operating-system platforms versions of XBMC, (ie. Linux, Mac OS X, and Microsoft Windows).

The main XBMC program is developed using Microsoft Visual Studio for the Xbox and win32 builds, and there are KDevelop project files for Linux, and Xcode (and Eclipse) project files for Mac OS X. For the Xbox version a copy of the latest Microsoft Xbox SDK (a.k.a. XDK) and DirectX 9.0 SDK Update (Summer 2004) is also required, though obviously this is not required for any other of the platforms that XBMC can be compiled for.

XBMC's code also contains three player cores: One core based on MPlayer that is only available to the Xbox version of XBMC, another in-house developed (FFmpeg-based) dedicated video-player core (which also supports DVD-Video movies with menus), and an in-house developed dedicated music-player core.

NOTE! For more detailed information on where to get started with XBMC development please see Appendix D (Development_Notes) in this wiki.
TIP! Microsoft DreamSpark student program is currently (and over this summer) giving free access to their development software.

2 How To Apply as a Student

2.1 Before you can apply

Before you can apply make sure you are qualified to apply:

2.2 Applying

If you are interested in participating in the Google Summer of Code you will need to register at the official GSoC site linked below and file an official application. Traditionally, the top applications are fairly detailed - you really need to sell yourself as well as your idea proposal. Look for example at this application here for inspiration. The official guide from Google can be found here:

TIP! The Drupal project has also prepared a couple of good guidelines that might be useful, see:

The application could have similar sections as in the following:

Name:
E-mail Address:
Project Title:
Project Goals:
Project Benefits:  How does your project benefit XBMC and its community?
Project Tasks and Deliverables: Break your project into tasks or pieces.
    Describe in detail what you plan to accomplish and what the results will be.
Project Schedule:  Estimate how long your project will take and how much time you
    have to dedicate on it. Try to establish a timed roadmap of the tasks to do.
Personal Statement:  Tell us about yourself.  Describe why you are better than any
    other applicant for this project. Your previous experiences with XBMC (if any).

2.3 Google SoC Development Process

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.

3 Current Status

3.1 Schedule

Official timeline: http://code.google.com/soc/2008/faqs.html#0.1_timeline

4 Project Proposals

4.1 Overview

Qualifications for a good Summer of Code proposal:

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.

To re-iterate:

4.2 Students Project Proposals

Feel free to enter a link to your proposal here if you are a college student and you will apply to Google Summer of Code this year:

4.3 Projects with Mentors (official approved projects)

Google accept Students Project Proposals 2008:

4.4 Team-XBMC proposal ideas up for discussion

Most of the proposals in this list are just some project ideas that we have been kicking around, (which, by no means, limits any prospective proposals). So you are more than welcome to come up with a new idea that you think falls into the scope of XBMC and the Google Summer of Code spirit. Since XBMC is cross-platform software most of these ideas are platform-independent, meaning that if you implement the feature/function on one operating-system platform then someone else will be able to port that feature/function to the other operating-system platforms that XBMC runs on.

NOTE! THIS LIST IS NOT THE FINAL PROPOSALS THAT WILL BE SUBMITTED. THESE ARE ONLY CONCEPTS THAT IDEAS COULD BE BASED UPON, IN THE END YOU AS THE STUDENT WILL BE PRESENTING THE IDEA AS YOUR OWN, SO IT IS NOT ONLY THE IDEA BUT HOW YOU PRESENT IT, SO BE CREATIVE!

4.4.1 Porting XBMC to new platforms

4.4.2 General platform independent ideas

5 Qualification tasks

Please add a note here if you choose to work on a qualification task to avoid duplicate work.

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:

TIP! Do not be shy, speak your mind, and get involved with the public community!

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.

NOTE! 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 through Google. But you will not be considered for an GSoC 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, and then publicly indicate that your interest and which project you plan to work on.

5.1 Platform independent

Legacy Tasks - There is a growing back-log of 'interesting patches' and 'bug-reports' for XBMC on our patch-tracker and our bug-tracker which are both hosted on the XBMC SourceForge.net project site. Many of the patches have been abandoned by the original submitter, thus now requires volunteers to take the initiative to clean up each patch to the satisfaction of the project leaders and resubmit it for new review, so that it can be approved for SVN inclusion. As for the bugs, please try to fix enough bugs to show of your skill. See:
Note! If you have an idea for a other simple task, come and discuss it on the development forums and the devs might approve it.

5.2 XBMC for Linux

5.3 XBMC for Mac OS X

5.4 XBMC for Windows

5.5 XBMC for Xbox

6 Mentors and Contact methods

Mentors are developers from Team-XBMC and members of The XBMC Project that have volunteered to assist and mentor non-official XBMC developers in any non-trivial way they can, helping you by checking, commenting and committing your code patches to our SVN source code tree. These mentors have chosen an area they prefer to specialize in, usually this is an area in which they feel they have most interest, knowledge, and expertise in.

NOTE! All GSoC students should feel comfortable to not only approach your assigned mentors but also to approach ANY mentor and ANY Team-XBMC member with your questions and problems, Team-XBMC is not only a team by name but we do our best to work as a team as well.

6.1 Contact methods

These are developers forums for XBMC development, (programmers/coders only!).
Respect, these are not for posting feature-requests or end-user support requests!

Personal tools
Namespaces
Variants
Actions
Navigation
Wiki help
Google Search
Toolbox