Development: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Gamester17
>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/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]].
'''XBMC''' (formerly named "XBox Media Center") is a [http://en.wikipedia.org/wiki/Free_and_open_source_software free and open source software (GPL)] [http://en.wikipedia.org/wiki/Cross-platform Cross-platform] media player and media center entertainment hub. Originally developed as [http://en.wikipedia.org/wiki/XBox_Media_Player XBox Media Player (XBMP)] for the first-generation [http://en.wikipedia.org/wiki/Xbox Xbox game console] in 2002, XBMC eventually have became a complete [[graphical user interface]] replacement for the [[Xbox Dashboard]] and more, as it has also been ported to also run natively under Linux, Mac OS X, and Microsoft Windows operating-system.
 
 
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] (mostly C++ with some Assembly, and C libraries). XBMC uses Microsoft DirectX multimedia framework (Direct3D) on the Xbox (as the Xbox does not support OpenGL), and the [http://en.wikipedia.org/wiki/Simple_DirectMedia_Layer SDL (Simple DirectMedia Layer) framework with OpenGL rendering for other operating-system platforms, (such as Linux, Mac OS X, and Microsoft Windows). XBMC main program (including the GUI) is mainly developed in Microsoft Visual Studio .NET 2003 (7.1) IDE and for the Xbox 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 ''player-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|in-house developed (FFmpeg-based) dedicated DVD-Video player core]] (for DVD-movies with menus), one [[PAPlayer|in-house developed dedicated music-player core]], and one [[MODPlayer|in-house developed 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:
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:

Revision as of 17:03, 26 February 2008

XBMC (formerly named "XBox Media Center") is a free and open source software (GPL) Cross-platform media player and media center entertainment hub. Originally developed as XBox Media Player (XBMP) for the first-generation Xbox game console in 2002, XBMC eventually have became a complete graphical user interface replacement for the Xbox Dashboard and more, as it has also been ported to also run natively under Linux, Mac OS X, and Microsoft Windows operating-system.


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 (mostly C++ with some Assembly, and C libraries). XBMC uses Microsoft DirectX multimedia framework (Direct3D) on the Xbox (as the Xbox does not support OpenGL), and the SDL (Simple DirectMedia Layer) framework with OpenGL rendering for other operating-system platforms, (such as Linux, Mac OS X, and Microsoft Windows). XBMC main program (including the GUI) is mainly developed in Microsoft Visual Studio .NET 2003 (7.1) IDE and for the Xbox 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 player-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 in-house developed (FFmpeg-based) dedicated DVD-Video player core (for DVD-movies with menus), one in-house developed dedicated music-player core, and one in-house developed 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 are a programmer/developer but not have access to VS.NET and the XDK then you can work on XBMC for Linux, XBMC for Mac OS X, or XBMC for Windows (Win32), or you can contribute indirectly by helping the FFmpeg (and the MPlayer) project. See bellow for more information.

XBMC for Linux

XBMC for Mac OS X

XBMC for Mac OS X is a sub-project of the *XBMC Linux port project:

XBMC for Windows (Win32)

XBMC for Windows (Win32) is a sub-project of the *XBMC Linux port project: