Archive:GSoC - Smaller XBMC Development Tasks: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Gamester17
m (Karellen moved page GSoC - Smaller XBMC Development Tasks to Archive:GSoC - Smaller XBMC Development Tasks without leaving a redirect: Outdated)
 
(25 intermediate revisions by 10 users not shown)
Line 1: Line 1:
This article lists GSoC Qualification Tasks as well other smaller development tasks that are not GSoC specific.
{{mininav|[[Development]]|[[:Category:Google Summer of Code]]}}
{{info|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.


= Google Summer of Code Qualification Tasks =
= Google Summer of Code Qualification Tasks =
Please add a note here if you choose to work on a qualification task to avoid duplicate work. (To do so you need to register an account on this wiki and request 'ninja status' from a Team-XBMC member for that account).
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:  
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:  
Line 16: Line 19:
: '''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 [http://groups.google.com/group/google-summer-of-code-announce/web/guide-to-the-gsoc-web-app-for-student-applicants through Google]. But you will not be considered for an GSoC project slot unless you have satisfactorily completed a qualification task.  
: '''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 [http://groups.google.com/group/google-summer-of-code-announce/web/guide-to-the-gsoc-web-app-for-student-applicants 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 (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.
'''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.


====Platform independent====
==== 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.
'''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.
* [http://forum.kodi.tv/showthread.php?t=43919 Position slider in OSD for movie/music playback mouse control (drag and drop style)], allow mouse (and touchscreen) input for the on-screen-display slider seekbar.


* 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.
* 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.


* Add support to [http://trac.xbmc.org/ticket/5669 read/parse//import OPML (RSS feed 'playlist' files) as "Podcasts Channels"] to XBMC's existing simple RSS reader that supports parsing text, video and pictures, (supporting multiple RSS feeds), and displaying this in the GUI. This should be simple enough, like the RSS readers on mobile devices, but suited for a TV display.
* Add support to [http://trac.kodi.tv/ticket/5669 read/parse//import OPML (RSS feed 'playlist' files) as "Podcasts Channels"] to XBMC's existing simple RSS reader that supports parsing text, video and pictures, (supporting multiple RSS feeds), and displaying this in the GUI. This should be simple enough, like the RSS readers on mobile devices, but suited for a TV display.


* Rewrite the thumbnail caching system so that it can store multiple resolution thumbs.  
* 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).
** 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 [[VideoPlayer]], PAPlayer, and MODPlayer as examples).
** Utilize GUILargeImage to handle the loading, and the animation engine for the effects (pan/zoom/rotate, etc.).


* Rewrite XBMC's existing picture slideshow engine to be more like a normal player (see [[DVDPlayer]], [[PAPlayer]], and [[MODPlayer]] as examples).
* Port one of the existing [http://forum.kodi.tv/showthread.php?t=137 visualizations] or [http://forum.kodi.tv/showthread.php?t=7552 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).
**Utilize GUILargeImage to handle the loading, and the animation engine for the effects (pan/zoom/rotate, etc.).


* Port one of the existing [http://forum.xbmc.org/showthread.php?t=137 visualizations] or [http://forum.xbmc.org/showthread.php?t=7552 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).
* FFmpeg wrapper for [http://forum.kodi.tv/showthread.php?t=21926 Libnemesi (the RTSP/RTP client library)] to use inside XBMC's in-house video-player (DVDPlayer)
** -- I'm willing to try this out, see [http://trac.kodi.tv/ticket/4186 patch #4186 on trac] - '''Alcoheca' - 27/2/2008


*FFmpeg wrapper for [http://forum.xbmc.org/showthread.php?t=21926 Libnemesi (the RTSP/RTP client library)] to use inside [[DVDPlayer|XBMC's in-house video-player (DVDPlayer)]]
* FFmpeg wrapper for [http://forum.kodi.tv/showthread.php?t=21926 Libnemesi (the RTSP/RTP client library)] to use inside XBMC's in-house audio-player (PAPlayer)
** -- I'm willing to try this out, see [http://trac.xbmc.org/ticket/4186 patch #4186 on trac] - '''Alcoheca' - 27/2/2008


*FFmpeg wrapper for [http://forum.xbmc.org/showthread.php?t=21926 Libnemesi (the RTSP/RTP client library)] to use inside [[PAPlayer|XBMC's in-house audio-player (PAPlayer)]]
* '''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 bug and patch-tracker: [http://trac.kodi.tv/ http://trac.kodi.tv/]


*'''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 [http://ffmpeg.org FFmpeg], (the open source codec and audio/video handling library), so any improvements/enhancements or new features/functions made to [http://ffmpeg.org FFmpeg] source code will also be of benefit to XBMC Media Center. We at XBMC will therefor also accept [http://wiki.multimedia.cx/index.php?title=Small_FFmpeg_Tasks performing a qualification task for the FFmpeg project] as a XBMC qualification task, see [http://wiki.multimedia.cx/index.php?title=Small_FFmpeg_Tasks here].
** XBMC bug and patch-tracker: [http://trac.xbmc.org/ http://trac.xbmc.org/]


*XBMC Media Center audio/video playback is very dependent on [http://ffmpeg.org FFmpeg], (the open source codec and audio/video handling library), so any improvements/enhancements or new features/functions made to [http://ffmpeg.org FFmpeg] source code will also be of benefit to XBMC Media Center. We at XBMC will therefor also accept [http://wiki.multimedia.cx/index.php?title=Small_FFmpeg_Tasks performing a qualification task for the FFmpeg project] as a XBMC qualification task, see [http://wiki.multimedia.cx/index.php?title=Small_FFmpeg_Tasks here].
* Fix enough bugs or submit good enough patches for smaller feature requests to show skill, see: [http://trac.kodi.tv/ http://trac.kodi.tv/]


====XBMC for Linux====
==== XBMC for Linux ====
*Port an existing XBMC (for Xbox) DirectX/Direct3D/HLSL screensaver or visualization to OpenGL/GLSL
* Port an existing XBMC (for Xbox) DirectX/Direct3D/HLSL screensaver or visualization to OpenGL/GLSL


* [http://en.wikipedia.org/wiki/GLSL GLSL (GLSL (OpenGL Shading Language)] shader for bicubic/triliniar/lanczos upscaling [http://en.wikipedia.org/wiki/Video_post-processing video post-processing]
* [http://en.wikipedia.org/wiki/GLSL GLSL (GLSL (OpenGL Shading Language)] shader for bicubic/triliniar/lanczos upscaling [http://en.wikipedia.org/wiki/Video_post-processing video post-processing]
**See XBMC's [[OpenGL DirectX Interface|OpenGL-interface]] and [[Rendering|rendering-pipeline]] for more information.


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


* [http://en.wikipedia.org/wiki/GLSL GLSL (GLSL (OpenGL Shading Language)] shader for bicubic/triliniar/lanczos upscaling [http://en.wikipedia.org/wiki/Video_post-processing video post-processing]
* [http://en.wikipedia.org/wiki/GLSL GLSL (GLSL (OpenGL Shading Language)] shader for bicubic/triliniar/lanczos upscaling [http://en.wikipedia.org/wiki/Video_post-processing video post-processing]
**See XBMC's [[OpenGL DirectX Interface|OpenGL-interface]] and [[Rendering|rendering-pipeline]] for more information.


*Mac OS X 64-bit x86 running: Patches to make XBMC for Mac OS X closer to running nativly on 64-bit x86 architecture. Should be easier now that it's working on AMD64 Linux. Please e-mail malloc AT xbmc DOT org with questions if you are interested in this qualification task.
* 64-bit Mac_OS_X running on as an x86-64/AMD64 app under Mac OS X: Patches to enable [[Mac_OS_X]] to be able to run nativly as an 64-bit x86 architecture app. Should be easier now that [[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.


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


* [http://en.wikipedia.org/wiki/GLSL GLSL (GLSL (OpenGL Shading Language)] shader for bicubic/triliniar/lanczos upscaling [http://en.wikipedia.org/wiki/Video_post-processing video post-processing]
* [http://en.wikipedia.org/wiki/GLSL GLSL (GLSL (OpenGL Shading Language)] shader for bicubic/triliniar/lanczos upscaling [http://en.wikipedia.org/wiki/Video_post-processing video post-processing]
**See XBMC's [[OpenGL DirectX Interface|OpenGL-interface]] and [[Rendering|rendering-pipeline]] for more information.
** See for more information [http://www.slow-computer-solutions.org slow computer solutions]
 
*XBMC for Windows 64-bit x86 running: Patches to make XBMC for Windows closer to running nativly on 64-bit x86 architecture. Should be easier now that XBMC is working on AMD64 Linux. Please e-mail malloc AT xbmc DOT org with questions if you are interested in this qualification task.
 
====XBMC for Xbox====
*Update a few third-party library/module that XBMC for Xbox depends on and submit a patch for the update
**For example: libCDIO, CxImage, libcurl, libshout, libsamba, libPython, libSQLite, FileZilla (server), libDAAP, libfreetype (FreeType2)


* Fix enough bugs to show skill [http://trac.xbmc.org/ http://trac.xbmc.org/]
* 64-bit [[Windows]] running on as an x86-64/AMD64 application under Windows x64: Patches to enable [[Windows]] to be able to run nativly as an 64-bit x86 architecture application. Should be easier now that [[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/ http://trac.kodi.tv/]


[[category:Google Summer of Code]]
[[Category:Google Summer of Code]]
[[category:Development]]
[[category:Inner Workings]]
[[category:Linux]]
[[category:Mac OS X]]
[[category:Microsoft Windows]]
[[category:OpenGL]]
[[category:To-Do]]

Latest revision as of 01:56, 28 August 2020

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.

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.

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 VideoPlayer, 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/

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/

XBMC for Mac OS X

  • Port an existing XBMC (for Xbox) DirectX/Direct3D/HLSL screensaver or visualization to OpenGL/GLSL
  • 64-bit Mac_OS_X running on as an x86-64/AMD64 app under Mac OS X: Patches to enable Mac_OS_X to be able to run nativly as an 64-bit x86 architecture app. Should be easier now that 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/

XBMC for Windows

  • Port an existing XBMC (for Xbox) DirectX/Direct3D/HLSL screensaver or visualization to OpenGL/GLSL
  • 64-bit Windows running on as an x86-64/AMD64 application under Windows x64: Patches to enable Windows to be able to run nativly as an 64-bit x86 architecture application. Should be easier now that 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/