Development: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Gamester17
No edit summary
>Gamester17
No edit summary
Line 1: Line 1:
XBMC is a [http://www.opensource.org/docs/definition.php open source] project licensed under [http://www.gnu.org/licenses/lgpl.html LGPL]/[http://www.gnu.org/copyleft/gpl.html GPL]. Third-party developers can make and submit [[What_Is_Source_Code|source code]] patches/modules with new features, functions or bug-fixes to us via our [http://sourceforge.net/projects/xbmc SourceForge.net project site]. XBMC's [[What_Is_Source_Code|source code]] is made up of a mix of [http://en.wikipedia.org/wiki/Programming_language programming-languages] (C/C++, Assembly, and DirectX), (the Xbox does not support OpenGL). XBMC main program (including the GUI) is developed in Microsoft Visual Studio .NET 7.1 and requires a copy of the latest [[Microsoft Xbox SDK]] (a.k.a. [[XDK]]) to be compiled, (later versions of Microsoft Visual Studio are not supported by the [[XDK]]). XBMC's code also contain four multimedia-player ''cores'' which has to be compiled seperatly, (and work seemslessly to the end-user), none of these ''cores'' require the [[XDK]] to be compiled, (they are instead compiled with [http://www.mingw.org MinGW/MSYS]). One generic audio/video-player core based on [[MPlayer]], one [[DVDPlayer#Development|(FFmpeg-based) dedicated DVD-Video player core]] (for DVD-movies with menus), one [[PAPlayer|dedicated music-player core]], and one [[MODPlayer|Tracker-Mod (audio-modules) player]].
XBMC is a [http://www.opensource.org/docs/definition.php open source] project licensed under [http://www.gnu.org/licenses/lgpl.html LGPL]/[http://www.gnu.org/copyleft/gpl.html GPL]. Third-party developers/programmers can make and submit [[What_Is_Source_Code|source code]] patches/modules with new features, functions or bug-fixes to us via our [http://sourceforge.net/projects/xbmc SourceForge.net project site]. XBMC's [[What_Is_Source_Code|source code]] is made up of a mix of [http://en.wikipedia.org/wiki/Programming_language programming-languages] (C/C++ and Assembly), and used Microsoft DirectX multimedia framework (Direct3D), (the Xbox does not support OpenGL). XBMC main program (including the GUI) is developed in Microsoft Visual Studio .NET 2003 (7.1) and requires a copy of the latest [[Microsoft Xbox SDK]] (a.k.a. [[XDK]]) to be compiled, (later versions of Microsoft Visual Studio are not supported by the [[XDK]]). XBMC's code also contain four multimedia-player ''cores'' which has to be compiled seperatly, (and work seemslessly to the end-user), none of these ''cores'' require the [[XDK]] to be compiled, (they are instead compiled with [http://www.mingw.org MinGW/MSYS]). One generic audio/video-player core based on [[MPlayer]], one [[DVDPlayer#Development|(FFmpeg-based) dedicated DVD-Video player core]] (for DVD-movies with menus), one [[PAPlayer|dedicated music-player core]], and one [[MODPlayer|Tracker-Mod (audio-modules) player]].


Some of the XBMC libraries are in the C [http://en.wikipedia.org/wiki/Programming_language programming-languages] but those then uses a C++ wrapper and are loaded via XBMC's own DLL loader. The Xbox Operating-System/BIOS is kind of Win32-based however it does have all of the resources or capabilities of a full Microsoft Windows Operating-System, (for example: DirectShow, registry, nor DLL are nativly supported on the Xbox). Because of the constraints on the hardware  (like only 64MB shared memory and a 733Mhz PIII CPU) and the XDK environment of the Xbox, all software development for XBMC is highly focused on reserving the limited resourses that exist, the main hindrance of which is the amount of available random access memory at any one time, (which is why XBMC code structure is built so modular, enabling libraries to be unloaded when they are not in active use). For more detailed information about XBMC inner working please follow these links and the categories at the end of this article:


===Development===
==Development Catagory Sections==
*[http://www.xboxmediacenter.com/wiki/index.php?title=Category:Inner_Workings XBMC Inner Workings]
*[http://www.xboxmediacenter.com/wiki/index.php?title=Category:Development Development]
 
==Development HOW-TO==
*[[HOW-TO:_Download_and_compile_your_own_builds_of_XBMC|HOW-TO download and compile your own builds of XBMC]]
*[[HOW-TO:_Download_and_compile_your_own_builds_of_XBMC|HOW-TO download and compile your own builds of XBMC]]
*[[HOW-TO:_Compile_Mplayer.dll|HOW-TO compile a new mplayer.dll from source code]]
*[[HOW-TO:_Compile_Mplayer.dll|HOW-TO compile a new mplayer.dll from source code]]

Revision as of 13:06, 21 May 2007

XBMC is a open source project licensed under LGPL/GPL. Third-party developers/programmers can make and submit source code patches/modules with new features, functions or bug-fixes to us via our SourceForge.net project site. XBMC's source code is made up of a mix of programming-languages (C/C++ and Assembly), and used Microsoft DirectX multimedia framework (Direct3D), (the Xbox does not support OpenGL). XBMC main program (including the GUI) is developed in Microsoft Visual Studio .NET 2003 (7.1) and requires a copy of the latest Microsoft Xbox SDK (a.k.a. XDK) to be compiled, (later versions of Microsoft Visual Studio are not supported by the XDK). XBMC's code also contain four multimedia-player cores which has to be compiled seperatly, (and work seemslessly to the end-user), none of these cores require the XDK to be compiled, (they are instead compiled with MinGW/MSYS). One generic audio/video-player core based on MPlayer, one (FFmpeg-based) dedicated DVD-Video player core (for DVD-movies with menus), one dedicated music-player core, and one Tracker-Mod (audio-modules) player.

Some of the XBMC libraries are in the C programming-languages but those then uses a C++ wrapper and are loaded via XBMC's own DLL loader. The Xbox Operating-System/BIOS is kind of Win32-based however it does have all of the resources or capabilities of a full Microsoft Windows Operating-System, (for example: DirectShow, registry, nor DLL are nativly supported on the Xbox). Because of the constraints on the hardware (like only 64MB shared memory and a 733Mhz PIII CPU) and the XDK environment of the Xbox, all software development for XBMC is highly focused on reserving the limited resourses that exist, the main hindrance of which is the amount of available random access memory at any one time, (which is why XBMC code structure is built so modular, enabling libraries to be unloaded when they are not in active use). For more detailed information about XBMC inner working please follow these links and the categories at the end of this article:

Development Catagory Sections

Development HOW-TO


Note! If you do not have access to VS.NET and the XDK then you can still contribute indirectly by helping the MPlayer and FFmpeg projects.