GSoC - Smaller XBMC Development Tasks

From Official Kodi Wiki
Jump to: navigation, search
Home icon grey.png   ▶ Development ▶ Category:Google Summer of Code ▶ GSoC - Smaller XBMC Development Tasks
Notice This page describes a previous GSoC project. For the most recent GSoC pages please check Category:Google Summer of Code.

This article lists GSoC Qualification Tasks as well other smaller development tasks that are not GSoC specific. Please note that this page was last updated in 2009. Some tasks on this page may have been completed by the XBMC-Team or other individuals.

1 Google Summer of Code 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:

  • Are willing to commit some time during the Summer of Code application review period in order to prove that they can code C++ satisfactorily in a clean, well-documented style.
  • Can effectively navigate the XBMC codebase.
  • Can communicate well with the XBMC development-team and community via the forum and IRC.
  • Can accept feedback and revise code after review until it is suitable for inclusion in the main XBMC codebase.
TIP! Do not be shy, speak your mind, and get involved with the public community, post in the public forum for feedback!

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.

1.1 Platform independent

Note! If you have an idea for a other simple task for qualification, come and discuss it on the public development section of the XBMC Community Forums and our developers might approve it.

  • Implement a slow-cache system for the infomanager for those items that do not need to be retrieved more than about once a second, such as the proposed "Library.HasContent()" stuff which hits the db.
  • Rewrite the thumbnail caching system so that it can store multiple resolution thumbs.
    • Essentially the "CacheThumb" routine should cache the thumb, cache information about the thumb (info on date, source, aspectratio, packed as small as feasible) and store both full size and scaled versions of the thumbs. The meta info would be stored in a separate file for fast assigning of thumbs (this could be kept in memory based on the thumb hash in a lookup table, and the ListItem.Thumb infoimage could be extended to specify what size of thumb it needs (to limit memory usage for xbox/lowmem devices).
  • Rewrite XBMC's existing picture slideshow engine to be more like a normal player (see DVDPlayer, PAPlayer, and MODPlayer as examples).
    • Utilize GUILargeImage to handle the loading, and the animation engine for the effects (pan/zoom/rotate, etc.).
  • Port one of the existing visualizations or screensavers available in XBMC for Xbox from Direct3D (DirectX D3D) to OpenGL, (perhaps even doing so in a unified way that they can be compiled with the existing Direct3D/DirectX version too so that the same binary vis/xscr library will support both Direct3D/DirectX and OpenGL).
  • 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:
  • XBMC Media Center audio/video playback is very dependent on FFmpeg, (the open source codec and audio/video handling library), so any improvements/enhancements or new features/functions made to FFmpeg source code will also be of benefit to XBMC Media Center. We at XBMC will therefor also accept performing a qualification task for the FFmpeg project as a XBMC qualification task, see here.
  • Fix enough bugs or submit good enough patches for smaller feature requests to show skill, see: http://trac.kodi.tv/

1.2 XBMC for Linux

  • Port an existing XBMC (for Xbox) DirectX/Direct3D/HLSL screensaver or visualization to OpenGL/GLSL
  • Fix enough bugs or submit good enough patches for smaller feature requests to show skill, see: http://trac.kodi.tv/

1.3 XBMC for Mac OS X

  • Port an existing XBMC (for Xbox) DirectX/Direct3D/HLSL screensaver or visualization to OpenGL/GLSL
  • 64-bit XBMC for Mac running on as an x86-64/AMD64 app under Mac OS X: Patches to enable XBMC for Mac to be able to run nativly as an 64-bit x86 architecture app. Should be easier now that XBMC for Linux is working on x86-64/AMD64 Linux. Please e-mail malloc AT xbmc DOT org with questions if you are interested in this qualification task.
  • Fix enough bugs or submit good enough patches for smaller feature requests to show skill, see: http://trac.kodi.tv/

1.4 XBMC for Windows

  • Port an existing XBMC (for Xbox) DirectX/Direct3D/HLSL screensaver or visualization to OpenGL/GLSL
  • 64-bit XBMC for Windows running on as an x86-64/AMD64 application under Windows x64: Patches to enable XBMC for Windows to be able to run nativly as an 64-bit x86 architecture application. Should be easier now that XBMC for Linux is working on x86-64/AMD64 Linux. Please e-mail malloc AT xbmc DOT org with questions if you are interested in this qualification task.
  • Fix enough bugs or submit good enough patches for smaller feature requests to show skill, see: http://trac.kodi.tv/