XBMC (formally known as XBox Media Center) is a free open source media player and entertainment hub software distributed under the GNU General Public License. XBMC was originally developed as XBox Media Player (XBMP) for the first-generation Xbox game-console in 2002, XBMC eventually became a complete GUI replacement for the Xbox dashboard, and the XBMC software has since been ported to also run under Linux operating-system, (plus Mac OS X and Windows/Win32 versions are also under development). As a media center, XBMC can, via software codecs, (using the libavcodec codec library and libavformat container library from the FFmpeg project), play audio and video files, as well as display images from virtually any source. XBMC is neither produced nor endorsed by Microsoft or any other officially recognized vendor, and, like all Xbox homebrew applications, requires a modchip or a softmod exploit to run on the Xbox.
Through the C++ and Python programming languages, XBMC has been extended to include large metadata databases for multimedia libraries, weather forecasts, TV-guides, website streaming interaction (such as for YouTube videos and Apple.com movie trailers, among many other sites), SHOUTcast and Podcast streaming, among other things. XBMC also functions as a gaming platform by allowing users to play Python-based mini-games, while the Xbox version contains built-in support to launch Xbox console-games and also other homebrew applications (such as emulators), plus a free alternative to Xbox Live called XLink Kai.
Due to the dated hardware of the Xbox, a Linux port was announced for personal computers in early 2007, without Xbox-specific features such as game trainers and Xbox console-games loading. XBMC for Linux is currently available as pre-alpha software through Subversion access. The greater processing power of newer hardware allow for it to render high-definition video, including 1080p, (while the Xbox hardware can only output up to 1080i through upscaling at most HRHD-quality videos). However, as with the Xbox version, XBMC for Linux does not currently support hardware decoding nor GPU hardware-accelerated video-decoding (like for example through XvMC or VA API), thus all load is placed upon the CPU, limiting the use of sound and video cards to output only.