Development

From Official Kodi Wiki
Revision as of 15:05, 14 September 2007 by >Gamester17 (→‎Development HOW-TO)
Jump to navigation Jump to search

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

XBMC Linux porting


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.