Google Summer of Code 2010

From XBMC

(Redirected from Google Summer of Code 2009)
Jump to: navigation, search
Image:Attention.png Note! This article documents a current event.
Information may change rapidly as the event progresses.

Google will be sponsoring their fifth annual Summer of Code (GSoC) in the summer of 2010, (though it starts in the spring time), this entail sponsoring students to work on assorted open source projects as well as sponsoring mentors in those same projects, everyone wins! XBMC will for the second year be applying to become a mentoring organizations for this year's GSoC. This page will be used for possible project ideas for the Google Summer of Code 2010 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 will be ?
The backup administrator for this year's XBMC GSoC will be ?

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 and also a seperate account with the same username on this wiki, (sooner rather than later), and publicly indicate your interest and area of interest by starting a new thread in the development section of the forum. Also, very important is that you make sure that you complete a qualification task as soon as possible to be eligible for a XBMC SoC project, the code review process can take time so the sooner you submit your first initial patch the better, (no qualification task = no project, that is Team-XBMC's own policy, not a Google policy for SoC).

Contents

Introduction to XBMC

XBMC Media Center (formerly "XBox Media Center") is a free and open source cross-platform media player, designed to be the center hub of your living-room entertainment system. XBMC Media Center was originally established in 2002, at that time being developed as media player software for the first-generation Xbox game-console. XBMC Media Center has since gone more mainstream and been ported to run natively under Linux, Mac OS X, Apple TV, 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.

XBMC Media Center is developed by Team-XBMC and the project vision is to create the best cross-platform media center software there is, a media center software should always be the de facto standard that other media center applications are measured against, whether they are based on commercial or free open source software, and targeting as broad of an user audience as possible.

The goals of Google Summer of Code

Google Summer of Code has several goals:

  • Get more open source code created and released for the benefit of all.
  • Inspire young developers to begin participating in open source development.
  • Help open source projects identify and bring in new developers and committers.
  • Provide students the opportunity to do work related to their academic pursuits during the summer, (think "flip bits, not burgers").
  • Give students more exposure to real-world software development scenarios (e.g., distributed development, software licensing questions, online communication and mailing-list etiquette).

Developing XBMC

The XBMC code structure uses a fairly modular design (with libraries and DLLs) which structure is large, though relatively easy to grasp. XBMC's source code is predominantly C++, though there is a small splattering of C libraries dependencies and assembler code for good measure. Currently XBMC for Linux, Mac, and Windows all uses the SDL (Simple DirectMedia Layer) framework with OpenGL rendering, while XBMC for Xbox uses the Microsoft DirectX multimedia framework (Direct3D) on the Xbox.

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/Eclipse project files for Mac OS X). For the Xbox version a copy of the latest Microsoft Xbox SDK (a.k.a. XDK) is also required, though obviously this is not required for any other platforms than the Xbox.

XBMC's code also contains three media player cores: One core based on MPlayer that is only available to the Xbox version of XBMC, on all other platforms XBMC supports we use 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. These cores are loaded dynamically on demand, both of these are also available in the Xbox version of XBMC Media Center.

NOTE! For more detailed information on where to get started with XBMC development please see Appendix D (Development_Notes) in this wiki.

For more information about XBMC Media Center development on the specific platforms please see:

How To Apply as a Student

Before you can apply

Before you can apply make sure you are qualified 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 little new feature to XBMC. By doing that we will get to know if you really 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 time frame.
  • You have to have >35 hours per week to put into the project.
  • You can not have another job at the same time as the GSoC project.
    • We had some issues last year when one of our students took a other full time summer job as well.

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, as well as this here, and [GSoC - GPU Assisted Video Decoding|this other one] for inspiration. The official guide from Google can be found here:

  • Sell your idea - Describe your idea and concept in good detail. What is the ultimate goal? What components will it have? What are the benefits for the end-users? How do you plan to ensure that your project gets completed on time? If a more detailed explanation of the idea already exists, what will you do that will go above and beyond all expectations?
  • Sell yourself - Make sure you get across how really enthusiastic you are about the project. The more enthusiastic you are, the more assured we will be that you will finish your project in time. Hopefully your enthusiasm will also indicate that there is a good chance you will stick around as an XBMC developer even after this Summer of Code has finished. Why are you interested in Open Source and why the XBMC Media Center software in particular? What interests do you have, and how do these relate to the project for which you are applying?
  • Be enthusiastic - google Summer of Code is a very exciting opportunity, and XBMC Media Center is a very exciting project to work on. We are not just looking for someone who wants a easy summer job to pass their time and earn some money. We want people who really have a passion towards open source and are likely to become constant contributors to XBMC and open source also once the summer has passed. The goal of the whole initiative is to have students find their way to open source together with mentoring and a good motivation.
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:

Full Name: 
Nationality: 
GMail 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:  Try to estimate exactly 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 Media Center (if any).

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.

Current Status

These are just preliminary dates until we get the final dates from Google.

  • Next Big Date: March 10, 2010 (or there about): Team-XBMC to apply the XBMC project to GSoC 2010.
  • March 31, 2010: Original student application deadline.
  • March 24, 2010: Students may begin to submit applications through Google
  • March 17, 2010: Google is scheduled to announce selected projects.
  • March 11, 2010: Submitted XBMC project application

Schedule

These are just preliminary dates until we get the final dates from Google. Official timeline: http://code.google.com/soc/2010/faqs.html#0.1_timeline

  • April 17, 2010: All students must have completed their Qualification Task for XBMC. Students should aim to have the code from your qualification task committed to XBMC SVN or FFmpeg SVN well before then of course, so try to submit your initial patch in advance so that it can go though the proper review process.
  • April 7, 2010: Student application deadline, students must have submitted their proposals through Google.
  • March 24-31, 2010: Students may submit applications for various Google Summer of Code projects.
  • March 17, 2010: Google announces accepted organizations at: http://code.google.com/soc/
  • March 3-12, 2010: Open source organizations may apply to the Google Summer of Code program.

Project Proposals

Overview

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 is not as measurable, such as refactoring an existing API or library. Bad proposals tend to be ones that would require touching a lot of core code.

To re-iterate:

  • Localized/isolated code projects = good
  • Global code refactoring = bad

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:

  •  ? - Link to wiki page with you project idea, you may submit more than one idea on a separate wiki page.
  •  ? - Link to wiki page with you project idea, you may submit more than one idea on a separate wiki page.
  •  ? - Link to wiki page with you project idea, you may submit more than one idea on a separate wiki page.
  •  ? - Link to wiki page with you project idea, you may submit more than one idea on a separate wiki page.

Project proposals from students that did not make the cut last year

Projects with Mentors (official approved projects)

Google accept Students Project Proposals 2010

?

Google accept Students Project Proposals 2008

Team-XBMC proposal ideas up for discussion

This section with proposal ideas from Team-XBMC have been moved to its own article.
Please view the proposal suggestions here => GSoC Proposal Ideas from Team-XBMC

Qualification tasks

All students must successfully complete a qualification task in order to be considered by Team-XBMC for GSoC.

Please note that this section with qualification tasks for GSoC 2010 have been moved to its own article, you can now view the list of qualification tasks for GSoC here => GSoC Qualification Tasks

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.

  • JMarshall: Anything GUI related, Music Library, Video Library, PAPlayer, etc.
  • Spiff: Anything other than DllLoader/MPlayer/DVDPlayer internals.
  • Yuvalt: Everything Linux
  • D4rk: OpenGL, other Linux stuff
  • Vulkanr: Everything Linux (including DllLoader and DVDPlayer internals)
  • elupus: DllLoader and DVDPlayer internals (video-player/codec specialist)
  • malloc: Everything Linux
NOTE! All GSoC students should feel comfortable to not only directly approach your assigned mentors but also to directly approach ANY mentor and ANY Team-XBMC member with your questions, issues, and problems. Team-XBMC is not only a team by name but we really do our best to work as a team as well.

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!

Also See

Personal tools