Kodi: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Blittan
(Spelling mistake and minor grammar fix ...)
Line 1: Line 1:
'''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 [http://en.wikipedia.org/wiki/Linux Linux], [http://en.wikipedia.org/wiki/Mac_OS_X Mac OS X], and [http://en.wikipedia.org/wiki/Microsoft_Windows Microsoft Windows] operating-system.
{{Refimprove|date=March 2008}}
{{overlinked}}
{{Infobox Software
| name = XBMC
| logo = [[Image:XBMC Logo.png|100px]]
| screenshot = [[Image:XBMC Main Screen.png|250px]]
| caption = XBMC Home Screen
| developer = [http://sourceforge.net/project/memberlist.php?group_id=87054 XBMC Developers]
| released =
| frequently_updated    = yes<!-- Release version update? Don't edit this page, just click on the version number! -->
| programming language =
| operating system = [[Xbox]], [[Microsoft Windows]], [[Linux]], and [[Mac OS X]]
| platform =  [[x86 architecture]]
| language = International (multiple languages)
| genre = [[media player (application software)|Media Player]] / [[Media Center]]
| license = [[GNU General Public License|GNU GPL]]
| website = [http://xbmc.org xbmc.org]
}}
'''XBMC''' (formerly named "Xbox Media Center") is a [[free and open source software|free and open source]] [[cross-platform]] media-player and entertainment hub. Initially created for the original [[Xbox]] game-console, though recently, the team behind XBMC development has ported the XBMC software to run natively under the [[Linux]], [[Mac OS X]], and [[Microsoft Windows]] operating-systems. XBMC is the successor to the popular [[Xbox Media Player|Xbox Media Player (XBMP)]] software.


==XBMC usages==
== Details ==
Currently XBMC can be used to play/view most popular video/audio/picture formats such as DVD-Video, VCD/SVCD, MPEG-1/2/4, DivX, XviD, MP3, AAC, JPG, GIF, PNG, and most other popular multimedia formats (plus many more less known formats) directly from a CD/DVD in the DVD-ROM drive or from a harddrive. XBMC can also play multimedia-files from a computer over a [http://en.wikipedia.org/wiki/Local_area_network local-network] and even stream media-streams directly from the internet. XBMC can parse DVD-Video movies (with and without menus) from ISO/IMG-images and even ZIP/RAR-archives. XBMC has playlist and slideshow functions, a weather forecast feature and many audio visualizations. XBMC can also use python-scripts, written for XBMC, as plugin widgets. Once xbmc is installed, your Xbox or computer will become a fully functional multimedia-jukebox. XBMC provides a user-friendly interface, that's convenient, flexible, easy to use and offers a great price/performance ratio. (The XBMC Project is also known as "XBMC Media Center", or simply "XBMC").
XBMC supports a wide range of multimedia formats and includes features such as playlists, audio visualizations, slideshows, and weather reporting, and an expanding array of third-party plugins. As a media center, XBMC can play most audio and video file formats, as well as display images from virtually any source, including CDs, DVDs, USB flash drives, the Internet, and LAN shares. XBMC is a hobby project that is only developed by volunteers in their spare-time for free. It is not produced, endorsed, or supported by [[Microsoft]] or any other vendor. As a result, XBMC for Xbox, like all homebrew Xbox applications, requires a [[modchip]] or [[softmod]] exploit. As such, the legality of running XBMC on the Xbox is disputed.


:For a complete list a functions and features see the [[XBMC_Features_and_Supported_Formats/Codecs| supported features/formats list]]<br>
Through its [[C++]] and [[Python (programming language)|Python]] plugin system, XBMC has expanded to include features such as television program guides, [[YouTube]] and [[Apple Computer|Apple]] movie trailer support, and [[SHOUTcast]]/[[Podcast]] streaming. XBMC also functions as a gaming platform by allowing users to play Python-based mini-games on any operating-system. In addition, the Xbox version of XBMC contains the ability to launch console games, homebrew applications such as emulators, and a free alternative to [[Xbox Live]] called [[XLink Kai]].


*'''Notes!'''
Due to the dated hardware of the Xbox and a desire to expand the project's end-user and developer-base a PC port now exists. Through the processing power of modern PC hardware, XBMC is able to decode [[high-definition video]] up to 1080p, bypassing a major limitation of the original Xbox version of XBMC. However, as with the Xbox version, XBMC for PC does not currently support hardware video decoding, thus placing the entire load of the video decoding process on the system's CPU.
**XBMC is a non-profit hobby project that is developed only by volunteers in their spare-time without any monetary gain.
**XBMC does require a [http://en.wikipedia.org/wiki/Xbox#Modding_the_Xbox modded Xbox] to run on an Xbox on or it will not function, (see [http://en.wikipedia.org/wiki/Modchip modchip] or [http://www.xbox-scene.com/xbox-tutorials.php?p=151|#151 software exploit/hack]).


==XBMC Stable Point Releases==
A [[Mac OS X]] port and a Windows port of XBMC has been started by a few community volunteers. Currently, they are in the early stages, but development seems to be progressing rapidly.
So far only stable point releases of '''XBMC for Xbox''' have been released, XBMC for all other platforms are not yet considered stable enough by Team-XBMC to be given a "Point Release" certificate seal.


===XBMC for Xbox 2.0.1 Point Release===
XBMC as a whole is distributed under the [[GNU General Public License]] (with a few libraries used by XBMC licensed under the [[GNU Lesser General Public License|LGPL]]).
The [[2.0.1 Point Release|XBMC for Xbox 2.0.1 Point Release]] of XBMC was released on the 12th of November 2006. Point Release is a stable and as bug-free 'as it gets' version.<br><br>


===XBMC for Xbox 2.0.0 Point Release===
=== Official ports and names of XBMC ===
The [[2.0.0 Point Release|XBMC for Xbox 2.0.0 Point Release]] of XBMC was released on the 29th of September 2006. Point Release is a stable and as bug-free 'as it gets' version.<br><br>


===XBMC for Xbox 1.1.0 Point Release===
* XBMC for Xbox
The [[1.1.0 Point Release|XBMC for Xbox 1.1.0 Point Release]] of XBMC was released on the 18th of October 2004. Point Release is a stable and as bug-free 'as it gets' version.<br><br>
* XBMC for Windows
* XBMC for Mac
* XBMC for Linux


===XBMC for Xbox 1.0.0 Point Release===
== History of The XBMC Project ==
The [[1.0.0 Point Release|XBMC for Xbox 1.0.0 Point Release]] of XBMC was released on the 29th of June 2004. Point Release is a stable and as bug-free 'as it gets' version.<br><br>
==== XBox Media Player (XBMP) History ====
The Xbox Media Player Project was founded by d7o3g4q (also known as duo) and RUNTiME.<ref>{{cite web |url=http://xbmc.org/about/history/ |title=XBMC Project History as described by Team-XBMC themselves |accessdate=2008-02-22 |author=Team-XBMC |date=2008-02-22 |work=xbmc.org |publisher=}}</ref> It started out as two separate players, with the two developers each working on their own design, and code. After sharing code and coordinating features to not duplicate efforts, by XBoxMediaPlayer beta 5 the two players were merged. The development and beta-testing was done ''behind closed doors'' for this project (d7o3g4q and RUNTiME promising that when version 1.0 was made they would release the source code to the public). After beta 6 was completed there were complaints from a lot of people as to why the developers did not release the source code for the player sooner as they were using FFmpeg and XVID code which are under the (L)GPL license. Even though the project was closed d7o3g4q and RUNTiME released the source code for beta 6 on the 15th of October 2002.  


==SVN tree (and daily SVN builds)==
In the November 2002, another software developer nicknamed Frodo who was the founder of "YAMP - Yet Another Media Player" joined the Xbox Media Player team and the XBoxMediaPlayer and YAMP projects were merged, the first release of the merged projects was called "Xbox Media Player 2.0" and the source code for it was release on the 14th of December 2002. XBoxMediaPlayer 2.0 was a complete re-write using a new core based on the MPlayer project, still using FFmpeg/XVID codec code. On the 28th of December 2002, the source code of XBoxMediaPlayer 2.1 was released with many bug fixes and a couple of new features such as true AC3 5.1 output, volume normalizer /amplification and an additional post processing filter. Two weeks later on the 12 of January 2003 XBoxMediaPlayer 2.2 source code was released with new features including dashboard mode to launch other Xbox applications/games, separate national language files, streaming media from windows file shares (SMB), audio-playlist, the ability to play media on-the-fly from ISO9660-Mode1 CDs and Windows DLL support for WMV 7,8, and 9.
The XBMC project developers uses [http://en.wikipedia.org/wiki/Subversion SVN] (a [http://en.wikipedia.org/wiki/Revision_control version control system]) provided by [http://sourceforge.net/svn/?group_id=87054 SourceForge.net] to keep track of the XBMC [http://en.wikipedia.org/wiki/Source_code source code] and changes in those source code files. This allows our developers to be located anywhere in the world and work on the same source code tree, which means that our SVN tree gets updated (with bug-fixes, new features, etc.) by our different developers almost on a daily basis. Anyone can anonymously download the latest SVN source code tree and compile it to try out the current and very latest XBMC build, (there are also individuals and groups on the internet which specialize in releasing such pre-compiled SVN builds so that people who don't have the tools to compile XBMC themselves can download and test/use the latest XBMC). Note! [[Team-XBMC]] only release source code and do not release pre-compiled builds of XBMC, nor are [[Team-XBMC]] affiliated with any individuals or groups that release pre-compiled builds of XBMC. In addition understand that SVN builds can be unstable and buggy so don't complain if they hang/lock or otherwise act in an unsatisfactory way, however feel free to report any bugs you find in the very latest SVN.


[[category:Introduction]]
==== XBMC History ====
XBoxMediaPlayer development stopped on December 13th, 2003, by which time its successor, XBMC, was ready for its debut, renamed as it was growing out of its 'player' name and into a 'center' for media playback. The first stable release of XBMC was on Tuesday the 29th of June, 2004, with the official release of XBoxMediaCenter 1.0.0. This announcement also encouraged everyone using XBMP or XBMC Beta release to update, as all support for those previous versions would be dropped, and they would only officially support version 1.0.0. Some new things in XBMC 1.0.0 included the addition of the Filezilla FTP Server, DHCP Support, the ability to configure additional settings from the xboxmediacenter.xml, a new version of [[MPlayer]] was packaged and the embedded [[Python (programming language)|Python]] was given the ability to draw GUI Elements.
 
With the release of 1.0.0 in the middle of 2004, work continued on the XBMC project to add more features, such as support for iTunes features like DAAP and Smart Playlists, as well as lots of improvements and fixed. The second stable release of XBMC, 1.1.0, was released on October 18, 2004. This released included support for more media, file, container formats, as well as video playback of Nullsoft streaming videos, karaoke support (CD-G).
 
After two years of heavy development, XBMC announced a stable point final release of XBMC 2.0.0 on the 29th of September 2006. Even more features were packed into the new version with the addition of RAR and zip archive support, a brand new player interface with support for multiple players. Such players include PAPlayer, the new audio/music player with crossfade, gapless playback and ReplayGain support, and the new DVDPlayer with support for menu and navigation support as well as ISO/img image parsing. Prior to this point release, XBMC just used a modified fork of [[MPlayer]] for all of its media needs, so this was a big step forward. Support for itunes 6.x DAAP, and Upnp Clients for streaming was also added. A reworked Skinning Engine was included in this release to provide a more powerful way to change the appearance of XBMC. The last two features include read-only support for FAT12/16/32 formatted USB Mass Storage Devices up to 4GB in size, and a brand new "skinnable" 3D visualizer.
 
In 2006, November 12th saw the release of XBMC 2.0.1 which contained numerous fixes for bugs that made it through the 2.0.0 release. This also marked the change from CVS to SVN (Subversion) for the development tree. Development on the SVN Trunk is continuing which is currently 'pre-2.1', and once it goes through the [[bug bash]] and feature lockdown process will become XBMC 2.1.0.
 
On the 29th of May 2007, the team behind XBMC put out a call for developers interested in porting XBMC to the GNU/Linux Operating System. Since a few developers on Team-XBMC had already begun porting parts of XBMC over to GNU/Linux using SDL and OpenGL as a replacement for DirectX, which XBMC was using heavily on the Xbox version of XBMC.
 
==Features==
===Audio/Video playback and handling===
 
XBMC can play media from CD/DVD media using the Xbox's built-in [[DVD-ROM]] drive. It can also play media from the Xbox's built-in [[hard disk|hard disk drive]], or stream them over [[Server Message Block|SMB/SAMBA/CIFS]] shares (Windows File-Sharing), [[ReplayTV]] [[digital video recorder|DVRs]], [[Universal Plug and Play|UPnP (Universal Plug and Play )]] shares, [[XBMSP]] ([[Xbox Media Stream Protocol]]) shares, or stream [[iTunes]]-shares via [[Digital Audio Access Protocol|DAAP]]. XBMC can also take advantage of the Xbox's Ethernet network port and a broadband Internet connection if available, using the [[Internet Movie Database|IMDb]] to obtain [[thumbnails]] and reviews on movies, [[CDDB]] (via [[FreeDB]]) for Audio-CD track-listings), and album-[[thumbnails]] via [[Allmusic|AMG]], it can stream Internet-video-streams, and play Internet-radio-stations (such as [[SHOUTcast]]). XBMC also includes the option to submit music usage statistics to [[Last.fm]] and a weather-forecast (via [[weather.com]]). It also has music/video-playlist features, picture/image-[[slideshow]] functions, an MP3+CDG [[karaoke]] function and many [[Music visualization|audio-visualizations]] and [[screensaver]]s. XBMC can in addition [[Upscaling DVD|upscale/upconvert]] all 480p/576p [[SDTV|standard-resolution]] videos and output them to [[HDTV|720p or 1080i HDTV]]-resolutions.
 
===Format support===
XBMC can be used to play/view all common [[multimedia]] formats. It can decode these in software and optionally pass-through [[Dolby Digital|AC3]]/[[DTS Coherent Acoustics|DTS]] audio from movies directly to [[S/PDIF]] output to an external audio-[[Audio amplifier|amplifier]]/[[Audio receiver#Hi-Fi .2F Home theater|receiver]].
 
:'''Supported formats/codecs:'''
:* '''Physical media''': [[compact disc|CDs]], DVDs, [[Video CD]]s (including [[DVD-Video]], VCD/SVCD and Audio-CD/CDDA)
:* '''[[Container format]]s''': [[Audio Video Interleave|AVI]], [[Moving Picture Experts Group|MPEG]], [[Windows Media Video|WMV]], [[Advanced Systems Format|ASF]], [[Flash Video|FLV]], [[Matroska|MKV]], [[QuickTime|MOV]], [[MPEG-4 Part 14|MP4]], M4A, [[Advanced Audio Coding|AAC]], [[NUT Container|NUT]], [[Ogg]], [[Ogg Media|OGM]], [[RealMedia]] RAM/RM/RV/RA/RMVB, [[3gp]], VIVO, PVA, [[NuppleVideo|NUV]], [[Nullsoft Streaming Video|NSV]], [[Nullsoft Streaming Audio|NSA]], [[Autodesk|FLI]], [[Autodesk|FLC]], and [[DVR-MS]] (beta support)
:*'''[[Video codec]]s''': [[MPEG-1]], [[MPEG-2]], MPEG-4 ([[MPEG-4 Part 2#Simple Profile .28SP.29|SP]] and [[MPEG-4 Part 2#Advanced Simple Profile .28ASP.29|ASP]], including [[DivX]], [[XviD]], [[3ivx]], [[DV]], [[H.263]]), [[H.264/MPEG-4 AVC|MPEG-4 AVC]] ([[H.264]], including [[Nero Digital]]), [[HuffYUV]], [[Indeo]], [[Motion JPEG|MJPEG]], [[RealVideo]], [[QuickTime]], [[Sorenson codec|Sorenson]], [[Windows Media Video|WMV]], [[Cinepak]],
:*'''[[Audio codec]]s''': [[Audio Interchange File Format|AIFF]], [[WAV|WAV/WAVE]], [[MPEG-1 Audio Layer II|MP2]], [[MP3]], [[Advanced Audio Coding|AAC]], [[AACplus]], [[Dolby Digital|AC3]], [[DTS Coherent Acoustics|DTS]], [[Apple Lossless|ALAC]], [[Adaptive Multi-Rate|AMR]], [[Free Lossless Audio Codec|FLAC]], [[Monkey's Audio]] (APE), [[RealAudio]], [[Shorten|SHN]], [[WavPack]], [[Musepack|MPC/Musepack/Mpeg+]], [[Speex]], [[Vorbis]] and [[Windows Media Audio|WMA]].
:* '''[[Digital camera|Digital picture/image formats]]''': [[BMP file format|BMP]], [[JPEG]], [[Graphics Interchange Format|GIF]], [[Portable Network Graphics|PNG]], [[Tagged Image File Format|TIFF]], [[Multiple-image Network Graphics|MNG]], [[ICO (icon image file format)|ICO]], [[PCX]] and [[Truevision TGA|Targa/TGA]]
:*'''[[Subtitles|Subtitle formats]]''': [[AQTitle]], [[SubStation Alpha|ASS/SSA]], [[Closed captioning|CC]], [[JACOsub]], [[MicroDVD]], [[MPsub]], [[Ogg Media|OGM]], PJS, [[RealText|RT]], [[SAMI|SMI]], [[SubRip|SRT]], [[SubViewer|SUB]], [[VSFilter|VOBsub]], [[VPlayer]]
 
===Video playback in detail===
XBMC uses two different [[multimedia]] player 'cores' for video-playback. The first is a ported version of the [[open source]] [[cross-platform]] player, [[MPlayer]], which is known for playing practically all common media-formats. XBMC handles all [[codecs]] and [[Container format (digital)|containers]] normally supported by MPlayer (all [[FFmpeg]] supported codecs and also several external ones with the help of proprietary [[Dynamic-link library|DLL]]-files.
 
The second video-player 'core' for video-playback is an [[in-house]] developed [[DVD player|DVD-player]] for [[DVD-Video|DVD-Video movies]], including the support of [[DVD-Video#Menu programming interface|DVD-menus]], (based on the [[open source]] and free [[Library (computing)|libraries]] code [[libdvdcss]] and [[libdvdnav]]). This video-player 'core' support all the [[FFmpeg]] codecs, and in addition the [[MPEG-2]] [[video codec]], and the [[audio codecs]] [[DTS Coherent Acoustics|DTS]] and [[AC3]] (based on the [[open source]] code [[Library (computing)|libraries]]: [[libmpeg2]], [[libdca]]/[[libdts]], and [[liba52]]/[[libac3]] respectively). One relatively unusual feature of this DVD-player core is the capability to [[on-the-fly]] parse and play [[DVD-Video]] movies that are stored in [[ISO image|ISO and IMG]] DVD-images, [[DVD-Video]] movies that are stored as [[DVD-Video]] ([[IFO]]/[[VOB]]/[[BUP]]) files on a harddrive or network-share, and also [[ISO image|ISO and IMG]] DVD-images directly from [[RAR]] and [[ZIP (file format)|ZIP]] archives. In addition to this, the XBMC DVD-player 'core' can [[Upscaling DVD|upscale/upconvert]] all [[DVD-Video]] movies and output them to [[HDTV|720p or 1080i HDTV]] resolutions in better quality than most, if not all, [[high-definition television]] set's native function for [[Upscaling DVD|upscaling/upconverting]] video.{{Fact|date=May 2008}}
 
====The Video Library====
The Video Library, one of the XBMC [[metadata]] [[databases]], is a key feature of XBMC. It allows the organization of your video content by information associated with the video files themselves, (like movies and recorded [[Television program|TV Shows]]). This information can be obtained in various different ways, like through [[Scrapers]] (ie. [[IMDb]], [[tv.com]], [[thetvdb.com]], etc.) and [[.nfo|nfo]] files. The Library Mode view allows you to browse your video content by things like; [[Genre]], Title, Year, Actors and [[Film director|Directors]].
 
===Audio playback in detail===
 
For audio playback, XBMC includes its own [[in-house]] developed audio-player: [[PAPlayer|PAPlayer (Psycho-Acoustic Audio Player)]]. Some of this audio-player core's most notable features are [[on-the-fly]] [[resampling]] to the Xbox's native audio frequency (48&nbsp;kHz), [[gapless playback]], [[Fade (audio engineering)|crossfading]], [[Replay Gain]], [[cue sheet (music software)|cue sheet]] and [[Ogg]] Chapter support.
It handles a very large variety of audio file-formats: [[MP2 (format)|MP2]], [[MP3]], [[Vorbis]], [[Musepack]], [[Advanced Audio Coding|AAC]], [[HE-AAC|AACplus (AAC+)]], [[Monkey's Audio|APE]], [[FLAC]], [[WavPack]], [[Shorten]], [[AIFF]], [[WAV]], [[DTS Coherent Acoustics|DTS]], [[Dolby Digital|AC3]], [[CDDA]], [[Windows Media Audio|WMA]], [[Impulse Tracker|IT]], [[ScreamTracker|S3M]], [[MOD (file format)|MOD]] (Amiga Module), [[XM (file format)|XM]], NSF ([[NES Sound Format]]), [[SPC700 sound format|SPC]] ([[SNES]]), [[GYM]] ([[Sega Mega Drive/Sega Genesis|Genesis]]), [[MOS Technology SID|SID]] ([[Commodore 64]]), [[Adlib]], [[YM2149|YM]] ([[Atari ST]]), [[ADPCM]] ([[Nintendo GameCube|GameCube]]). It also supports many different tagging standards: APEv1, [[APEv2 tag|APEv2]], [[ID3]]v1, [[ID3#ID3v2|ID3v2]], [[ID666]] and [[Vorbis comment]]s.
 
====Music Library====
The Music Library, one of the XBMC [[metadata]] [[databases]], another key feature of XBMC. It allows the organization of your music collection by information stored in your music file [[ID3|ID meta tags]], like title, artist, album, [[genre]] and popularity.
 
===Digital picture/image display in detail===
XBMC handles all common [[Digital camera|digital picture/image formats]] with the options of [[Ken burns effect|panning/zooming]] and [[slideshow]] with "[[Ken Burns Effect]]", with the use of [http://www.codeproject.com/bitmap/cximage.asp CxImage] open source [[Library (computing)|library]] code. XBMC can also handle [[Comic Book Archive file|CBZ (ZIP) and CBR (RAR) comic book archive files]], this feature lets you view/read, browse and [[zoom]] the pictures of [[comics]] pages these contain without uncompressing them first.
 
===Python scripts (widgets/gadgets) plugins===
XBMC features a [[Python (programming language)|Python Scripts Engine]] and WindowXML [[application framework]] (a [[XML]]-based [[widget toolkit]] for creating a [[GUI]] for [[Widget (computing)|widgets]]) in a similar fashion to Apple Mac OS X [[Dashboard (software)|Dashboard Widgets]] and [[Microsoft Gadgets]] in [[Windows Sidebar]]. Python [[Widget (computing)|widget]] scripts allow normal users to add new functionality to XBMC themselves, (using the easy to learn [[Python (programming language)|Python programming language]]), without having to utilize an illegal copy of the [[XDK]] and without knowledge of the complex [[C++|C/C++ programming language]]. Current [[plugins|plugin]] scripts include functions like [[Internet television|Internet-TV]] and [[Trailer (film)|movie-trailer]] browsers, [[Weather forecasting|weather forecast]] and [[Movie theater|cinema]]guides, [[Electronic program guide|TV-guides (EPG)]], e-mail clients, [[instant messaging]], train-timetables, scripts to [[Front-end and back-end|front-end]] control [[Personal video recorder|PVR]] software and hardware (like: [[MediaPortal]], [[MythTV]], [[TiVo]], [[ReplayTV]], [[Dreambox]]/[[DBox2]]), Internet-radio-station browsers (example [[SHOUTcast]], [[Xm radio]], [[Sirius Satellite Radio]]), [[Peer-to-peer|P2P]] file-sharing downloaders ([[BitTorrent (protocol)|BitTorrent]]), [[Internet Relay Chat|IRC]], also [[casual games]] (sometimes also referred to as [[Minigame|mini-games]] or [[Party game|party-games]]) such as [[Tetris]], [[Snake (video game)|Snake]], [[Space Invaders]], [[Sudoku]], and much more.
 
===Dashboard function (game/application launcher)===
XBMC has a "My Programs" section with functions as a replacement [[Xbox Dashboard|dashboard]] to launch [[List of Xbox games|Xbox games]] (retail and [[Homebrew (video games)|homebrew]]) and [[Application software|applications]]/[[List of emulators|emulator]] directly off the Xbox built-in [[harddrive]], all from a nice [[GUI]] with [[thumbnail]] and list options. This fully replaces the original [[Xbox Dashboard]] from [[Microsoft]], and with the exception of flashing new [[BIOS]] to an Xbox [[modchip]] it also features all extra functions that other [[Homebrew (video games)|homebrew]] [[Xbox Dashboard|dashboard]]s have.
 
===Language support===
XBMC also includes support for many different languages.  XBMC's structure is such that if your language is not available, or not up-to-date, then you can easily make your translation by editing an [[XML]]-file, which can be submitted to the project's database for use by others. Currently the existing supported languages are [[Brazilian Portuguese]], [[Catalan language|Catalan]], [[Simplified Chinese]], [[Traditional Chinese]], [[Croatian language|Croatian]], [[Czech language|Czech]], [[Danish language|Danish]], [[Dutch language|Dutch]], [[English language|English]], [[Esperanto]], [[Finnish language|Finnish]], [[French language|French]], [[German language|German]], [[Greek language|Greek]], [[Hebrew]], [[Hungarian language|Hungarian]], [[Icelandic language|Icelandic]], [[Italian language|Italian]], [[Japanese language|Japanese]], [[Korean language|Korean]], [[Maltese language|Maltese]], [[Norwegian language|Norwegian]], [[Polish language|Polish]], [[Portuguese language|Portuguese]], [[Romanian language|Romanian]], [[Russian language|Russian]], [[Serbian language|Serbian]], [[Slovene language|Slovene]], [[Spanish language|Spanish]], [[Swedish language|Swedish]] and [[Turkish language|Turkish]].
 
===Skins and skinning-engine===
A mainstay of Xbox [[Homebrew (video games)|homebrew]] applications is [[Skin (computing)|skin]]-ability in the tradition of case modifications. XBMC is noted as having a very flexible [[GUI toolkit]] and robust [[Software framework|framework]] for its [[GUI]], using a standard [[XML]] base, making [[Theme (computing)|theme]]-[[skinning]] and personal [[customization]] very accessible. Users can create their own skin (or simply modify an existing skin) and share it with others via public websites dedicated for Xbox and XBMC skins trading. "Project Mayhem" is the official [[Skin (computing)|skin]]; which is now in its third version, commonly know as "PMIII" or "PM3". Many third-party skins exist and while some are original designs, most are [[Clone (video games)|clones]] or an exact [[replica]] of other multimedia software, such as [[Front Row|Apple Front Row]], [[Windows XP Media Center Edition|Windows Media Center Edition (MCE)]], [[MediaPortal]], [[Meedio]]/[[MeediOS]], [[HDeeTV]], [[Kaleidescape]], [[Xbox360#Software|Xbox 360 blades (MC360)]], and others.
<center>
<gallery>
<!--Image Image:Screenshot191.JPG deleted per I6 -->|A user browsing a user's music collection with XBMC using the the "PMIII" [[Skin (computing)|skin]] {{deletable image-caption|1=Thursday, 2 August 2007}}
<!--Image Image:Screenshot189.JPG deleted per I6 -->|XBMC is able to launch games from the [[harddrive]] (shown here with the "PMIII" [[Skin (computing)|skin]]) {{deletable image-caption|1=Thursday, 2 August 2007}}
<!--Image Image:Vision-screenshot-1.jpg deleted per I6 -->|Vision [[Skin (computing)|skin]] for XBMC showing the "My Programs" section {{deletable image-caption|1=Thursday, 2 August 2007}}
</gallery>
</center>
 
===Xbox Specific Features and Functions===
====XBMC Trainer Support (game cheats mods)====
XBMC for Xbox also has the ability to use and apply Xbox [[Trainer (games)|Trainer]] Files. [[Trainer (games)|Trainers]] are small files that allow for in game value [[Mod (computer gaming)|modification]] (such as [[cheat code]]) through altering retail functions in game values by way of using [[Terminate and Stay Resident|TSR (Terminate and Stay Resident)]] keys.
There are many things that can be [[Mod (computer gaming)|modified]] including ammunition, extra-lifes, or even how high a character can jump. Trainer support in XBMC for Xbox was achieved through collaboration with [[Team Xored]]. This collaboration began in December 2005 and came to fruition in January 2006 by successfully integrating the [[Team Xored|Team Xored Trainer Engine]] into XBMC.
XBMC for Xbox can run trainers with the following file extensions: *.ETM and *.XBTF.
 
====XLink Kai (Xbox Live online-gaming alternative)====
XBMC for Xbox has an integrated [[Front-end and back-end|front-end]] for an [[Xbox Live]] alternative (called "[[XLink Kai]]"), an [[online gaming]] platform, enabling you to both control the [[XLink Kai|Kai engine]] and play system-link/LAN-enabled Xbox [[Online game|games online]], without connecting to the [[Xbox Live]] service, straight from your console.
 
==Running XBMC for Xbox==
[[Image:Mc360-screenshot-1.jpg|thumb|right|300px|MC360 skin for XBMC displaying the media blade]]At present, the latest 'stable' version of XBMC for Xbox is 2.0.1 final point-release which was released on 12 November, 2006. Since XBMC for Xbox is an [[open source]] software program, its development [[source code]] is stored on a publicly-accessible [[Subversion (software)|Subversion]] server. This code is constantly updated on a daily-basis by developers so the Subversion repository often contains more features than the most recent 'stable' release. Accordingly, [[executable]] builds from the Subversion repository are often released by [[third-party developer|third-parties]]. It should be noted, however, that [[executable]] builds from development versions typically contain bugs not present in the most recent 'stable' release versions of XBMC for Xbox.
 
XBMC for Xbox is not an [[authorized|authorized/signed]] [[Microsoft]] product, therefore a [[Xbox#Xbox modding|modification of the Xbox]] is required in order to run XBMC on a [[Xbox]] game-console. XBMC for Xbox can be run as an [[Application software|application]] (like any Xbox game), or as a [[Xbox Dashboard|dashboard]] that appears directly when the [[Xbox]] is turned on. It takes approximately ten seconds to fully load XBMC for Xbox.
 
===Types of Xbox modifications (mods)===
Here is a brief overview of various console modification methods which allow the Xbox to run unofficial applications which are not [[authorized|authorized/signed]]. (For an application to run on an unmodified Xbox, it must be [[Digital signature|digitally signed]] by [[Microsoft]]. A modded Xbox does not check for a digital signature and will run any application, signed/official and unsigned/unofficial.)
 
*[[Modchip]]: [[Printed circuit board|Physical circuit board]] that is attached to the Xbox mainboard. Requires opening the Xbox to install. Contacts are connected either by "screwing down" the board (for a solderless install) or soldering wire connections.
*[[Softmod]]: Loophole in Xbox software security via an [[Exploit (computer security)|exploit]]. Most popular softmods, such as [[UXE]] or [[NDURE]], are installed through a modified [[Saved game|game save]]. Softmods have become very stable and safe with recent advancements, and does not require any physical modification to the Xbox.
*TSOP flash: [[TSOP]] is a technical term meaning 'Thin Small Outline Package', which describes the [[Integrated circuit|microchip]] packaging. Earlier revisions of the Xbox [[motherboard]] contained a rewritable [[EEPROM]] (a type of [[Flash memory]]) which used the TSOP style of microchip packaging. TSOP flashing in the context of an Xbox requires updating of the software on this microchip by jumping traces (small wires) on the motherboard to make the chip writable from software.  A [[softmod]] exploit (usually in the form of a modified [[Saved game|save game]]) is used to flash a hacked [[BIOS]] (replace the software of) the chips using unofficial software.
*[[Hotswap]]: is a method where a [[softmod]] is loaded onto the Xbox harddisk via an external connection with a ´donor´-pc. Therefore, the harddisk has to be unlocked. This is done by just powering up the Xbox. The [[Integrated Drive Electronics|IDE]] ribbon-type cable in the Xbox is then disconnected from the harddisk, while keeping the power cable plugged in.  Replace the IDE connection with that of a pc which is already running. The pc is typically booting off a [[boot cd|live cd]] which will install a [[softmod]], for example [[NDURE]]. Finally, plug the Xbox IDE cable back in. The Xbox can only then safely be powered down. This method is risky because the harddisk is locked again when it loses power. And it only unlocks when it was locked in its original configuration. It means that when the harddisk or the Xbox powers down *before* the softmod is in place and the Xbox IDE cable is plugged back in, you´ve gotten yourself a [[bricked]] Xbox  Requires opening the Xbox to install.
 
==Programming and developing==
XBMC is a non-profit [[open source]] [[hobby]] project that is developed only by volunteers in their spare-time without any [[monetary]] gain. The team of developers working on XBMC encourage anyone to submit their own [[Patch (computing)|source code patches]] for new features and functions, improve existing ones, or fix [[software bug|bugs]].
 
XBMC is a cross-platform software application programmed in [[C++]] (and some [[Assembly language|Assembly]]), XBMC uses [[DirectX|Microsoft DirectX]] multimedia [[Software framework|framework]] on the Xbox, (as the [[Xbox]] does not support [[OpenGL]]), and the [[SDL|SDL (Simple DirectMedia Layer)]] framework under XBMC for Linux, Mac OS X, and Microsoft Windows operating-system. Some of the XBMC [[Library (computing)|libraries]] are also written in [[C (programming language)|C programming-language]], but are used with a C++ wrapper and loaded via XBMC's own [[Dynamic-link library|DLL]] loader.
 
===Xbox Development Environment===
The Xbox [[Operating System|Operating-System]]/[[BIOS]] is [[Win32]]-based but does not have all of the resources or capabilities of a full [[Microsoft Windows]] Operating-System, (for example: [[DirectShow]], [[Windows Registry|registry]], nor [[Dynamic-link library|DLL]] are natively supported on the Xbox). Because of the constraints on the hardware and environment of the Xbox all software development for XBMC are 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.
====Operating-System====
*The Xbox does not have an Operating-System per-se, instead it only has a basic BIOS
**Everything else must go into the XBMC executable and its ([[XDK]] and own-made) [[Library (computing)|libraries]]
*Only a single [[Thread (computer science)|process-thread]] ([[executable]] [[Computer program|program]]) can run at any one time on the Xbox
*[[FATX|Xbox hard drive file-system]] (FATX) has many limitations, among them a filename maximum of 42-[[Character (computing)|characters]]
*The Xbox has four [[USB]] ports but the [[XDK|Xbox SDK]] (a.k.a. XDK) does not contain a full USB-[[Stack (data structure)|stack]]
**if wanted to add support for USB hardware-devices one would have to make it for oneself
====Compiling====
*[[XDK|Xbox SDK]] (a.k.a. XDK) [[Software Development Kit]] (with [[Library (computing)|libraries]]) is required to [[compiler|compile]] XBMC
*Also required to compile (and [[computer programming|program]] in) XBMC is [[Microsoft Visual Studio .NET]] version 7.1
*XBMC's code also contain four multimedia-player cores which have to be [[compiler|compiled]] separately
**None of those require XDK to be compiled, they are instead compiled with [[MinGW]]/[[MSYS]]
 
==Limitations==
===Cross-platform (software) Limitations===
This is a list of current software limitations in the XBMC code.
*XBMC can not play any audio/video files [[Encryption|protected/encrypted]] with [[Digital Rights Management|DRM (Digital Rights Management)]], such as music purchased from the [[iTunes Music Store]], [[MSN Music]] or [[Audible.com]]. Workaround if legal in your country: Before playing the file in XBMC, first remove any DRM protection/encryption from the song or video with a [[Third-party developer|third-party]] program before you try to play it, e.g: [[JHymn|hymn]], [[FreeMe]], [[FairUse4WM]], [[DRM2WMV]] or [[DRMDBG]]).
*The  [[ISO 9660]] and [[Universal Disk Format|UDF]] reader [[Class (computer science)|class]]es in XBMC do not support reading [[Multisession#Sessions|multisession]] authored CD/DVD-media. That is XBMC can only read the first [[Multisession#Sessions|sessions]] of a [[Multisession#Sessions|multisession]] burnt CD or DVD media disc.
 
===Xbox Specific Limitations===
These are Xbox hardware and Xbox operating-system specific limitations that do not affect XBMC for Linux nor Mac OS X.
*[[Universal Disk Format|UDF (Universal Disk Format)]] file-system limitation: XBMC for Xbox only supports UDF version 1.02 (designed for [[DVD-Video]] media), which has a maximum file-size of 1&nbsp;GB (meaning if you burn a DVD-media in a newer UDF version with a video that is larger than 1GB, XBMC will not be able to play that file), same goes for UDF/ISO hybrid formats (a.k.a. UDF Bridge format). Workaround: Burn all your CD/DVD-media in [[ISO 9660]] format, which is the most common standard for recording CD/DVDs. Unfortunately [[ISO 9660]] has a 2&nbsp;[[Gigabyte|GB]] file-size limitation, which cannot be bypassed.
*The Xbox built-in harddrive is formatted in [[FATX]] which has a 4&nbsp;GB file-size limitation, and only supports file/folder-names up to 42 characters, a maximum of 255 in total file-structure character-depth and a maximum number of 4096 files/folders in a single subfolder, plus in the root of each partition, the maximum number of files/folders is 256. [[File Allocation Table|FAT]] does not support all [[ASCII|ASCII characters]] in file/folder names (like for example < > = ? : ; " * + , / \|¤ &). XBMC will automatically rename any files/folders you transfer to the Xbox by these limitations. (None of these are XBMC issues that can be fixed as the limitation is in the Xbox itself). Workaround: Store your files/folders on your computer or a [[Network-attached storage|Network-Attached Storage (NAS)]] device/box which support [[Server Message Block|SMB/CIFS]], [[FTP]] or [[UPnP]] and share them over a [[Local area network|local-area-network]] instead.
*The [[USB flash drive]] (USB [[keydrive|key-drives/memory-keys]]) reader/writer [[Class (computer science)|class]] used by XBMC for Xbox currently has a few limitations as well. It is limited to USB flash drives and [[harddisk]]s compatible with [[USB Mass Storage Device Class]] following the USB 1.1 standard, with a maximum size of 4&nbsp;GB. It can read and write to FATX formatted flash drives, but can only read FAT12, FAT16 (including VFAT), and FAT32. [[NTFS]] formatted drives are not supported yet.
*With its 733&nbsp;MHz [[Intel Pentium III]]-like [[CPU]] and 64MB [[shared memory]], the Xbox has neither a fast enough CPU nor sufficient amounts of [[Random access memory|RAM]] to play 720p/1080i resolution [[HDTV]] video. However, XBMC can up-convert all [[SDTV|standard definition]] movies and output them at [[HDTV|720p or 1080i]] with better quality than most (if not all) HDTVs' native up-convert functions.{{Fact|date=February 2008}}
* The Xbox is now able to play [[H264|MPEG-4 AVC (H.264)]] encoded videos with [[CABAC]] and [[deblocking]] if the video-resolution is under 720x400 pixels. For instructions, [http://www.wikihow.com/Properly-Encode-H.264-Video-Using-Megui-for-an-Xbox-Running-Xbmc click here]. If videos are encoded without CABAC and deblocking, then the Xbox hardware can handle up to 720x576 pixels video-resolution. If encoding with [[MPEG-4 Part 2|MPEG-4 ASP]] (like [[DivX]] or [[XviD]]), then the video's native-resolution can be anything up to 960x540 pixels (also known as [[High-Resolution High-Definition|HRHD]] resolution).
 
==Reception==
===Awards===
XBMC won two [[SourceForge]] 2006 Community Choice Awards, for [http://sourceforge.net/awards/cca/ Best Multimedia Project and Best Game Project]. In the 2007 Community Choice Awards, XBMC is a nominated finalist in six categories.
 
===Legality===
While XBMC's [[source code]] for all platforms is made publicly available by the developers under an [[open source]] ([[GNU GPL]]) [[license]], the developers themselves are legally unable to distribute [[executable]] versions of XBMC for Xbox. This is because XBMC for Xbox requires Microsoft's commercial software development kit in order to compile. Thus, the only publicly available [[executable]] versions of XBMC for Xbox are from [[Third-party developer|third parties]], as a result, precompiled versions of XBMC for Xbox may be illegal to distribute in many countries around the world. XBMC binaries for all other platforms that XBMC supports (Linux, Mac OS X, and Windows) are however legal to distribute.
 
====Copyright====
The XBMC software is licensed under the [[GNU General Public License|GNU General Public License (GPL)]] by the developers, meaning they allow anybody to redistribute XBMC under extremely liberal conditions. However, in order to compile the XBMC into [[executable]] form, it is currently necessary to use the [[Xbox Development Kit|Microsoft XDK (Xbox Development Kit)]] which is only available to licensed developers and the resulting code may only be distributed by them. Accordingly, code compiled with an unauthorized copy of the [[Xbox Development Kit]] may not be distributed legally. A third-party project called [[OpenXDK]] is concerned with producing a replacement for the Microsoft XDK. While this could potentially allow legal [[Binary file|binaries]] of XBMC to be compiled, it would require significant changes to the XBMC source code.
 
For audio and video codecs which are not natively supported, XBMC provides a [[Dynamic-link library|DLL]] loader [[Fork (software)|forked]] from the "[[avifile]]" open source project which can load [[Third-party developer|third-party]] made DLLs to decode unsupported formats. This is potentially legal if the user owns a licensed copy of the DLL. However, some third-party XBMC builds incorporate all available third-party DLLs that XBMC can support, and the redistribution of these without a license is copyright infringement.
 
====Patents====
For most popular video and audio codecs, XBMC includes native support through [[free and open source software]] [[Library (computer science)|libraries]], such as [[LAME]], [[faad]], [[faac]], [[libmpeg2]], and [[libavcodec]] (from the [[FFmpeg]] project). Since these source code libraries is released under free and open source licenses they are legally redistributable. However, some of these compression methods algorithms, [[MP3#Licensing and patent issues|such as the popular MP3 format]], are in many countries protected by software patents. Absent a licence, this could possibly make it illegal in certain countries to distribute compiled versions of XBMC which includes support for these formats.
 
====Other====
XBMC also includes [[libdvdcss]] to support playing back [[DVD-Video]] movies encrypted using the [[Content Scramble System|CSS (Content Scramble System)]] encryption. The distribution of [[executable]] versions of XBMC containing this code is likely to fall afoul of the [[Digital Millennium Copyright Act]] in the [[United States|U.S.]] and the [[EU Copyright Directive]] in [[European Union]] member countries which have incorporated it into national law.
 
== See also ==
{{portal|Free software|Free Software Portal Logo.svg}}
 
*[[Media player (application software)]]
**[[Media center]]
*[[FFmpeg]], the audio and video [[codecs|codec suite]] that XBMC uses for all its audio/video player cores
*[[MPlayer]], the [[open source]] and [[cross-platform]] software XBMC for Xbox uses as its main video player core
*[[BOXEE]], media player based on XBMC with a [[social network]] aspect
*[[MediaPortal]], a media center written for [[Microsoft Windows]] initially based on forked XBMC code by one of the founders of XBMC.
*[[PLEX]], media center for Mac OS X based on XBMC.
*[[List of video players (software)|List of other software video players]]
*[[Comparison of media players|Comparison of (audio/video) media and DVD-Video players]]
*[[List of codecs|List of multimedia (audio/video) codecs]]
 
==References==
{{reflist|2}}
 
==External links==
===Official sites===
* [http://xbmc.org XBMC official website]
* [http://xbmc.org/forum XBMC Community Forums]
* [http://xbmc.org/wiki/index.php?title=XBMC_Online_Manual XBMC Online Manual (Wiki)]
* [irc://irc.freenode.net/xbmc XBMC official IRC chat room (on Freenode)] (use an [[IRC]] client like [[mIRC]] to join the #xbmc channel)
 
===Scripts, plugins, and Skins===
====Scripts====
* [http://www.xbmcscripts.com xbmcscripts.com] (Python scripts which add additional features and functionality to XBMC)
====Plugins====
* [http://code.google.com/p/xbmc-addons/ XBMC-Addons on Google Code] (Addon plugins for XBMC)
====Skins====
* [http://sourceforge.net/projects/xboxmediacenter XBMC official skin development and download site]
* [http://savvygeek.com/xbmc-skins/ Compiled skins from the official skin development site]
* [http://blackmarket.ictcsc.net XBMC Black Market] - an unofficial XBMC skin download site
* [http://www.allxboxskins.com allxboxskins.com] - another unofficial XBMC skin download site (currently down?)
* [http://www.aeoncentral.com AEON] - Skin for XBMC (not available on any other skin download site)
 
===Other===
* [http://www.facebook.com/XBMC XBMC fan-club on Facebook]
 
[[Category:DVD]]
[[Category:Free media software]]
[[Category:Free media players]]
[[Category:Free video software]]
[[Category:Free television software]]
[[Category:Linux media players]]
[[Category:Mac OS X software]]
[[Category:Multimedia software]]
[[Category:Software DVD players]]
[[Category:SourceForge projects]]
[[Category:Windows media players]]
[[Category:Xbox]]
[[Category:Xbox Dashboards]]
 
[[de:Xbox Media Center]]
[[es:Xbox Media Center]]
[[fr:Xbox Media Center]]
[[it:Xbox Media Center]]
[[no:Xbox Media Center]]
[[pl:XBMC]]
[[fi:Xbox Media Center]]
[[sv:XBMC]]

Revision as of 03:22, 22 July 2008

Template:Refimprove Template:Overlinked Template:Infobox Software XBMC (formerly named "Xbox Media Center") is a free and open source cross-platform media-player and entertainment hub. Initially created for the original Xbox game-console, though recently, the team behind XBMC development has ported the XBMC software to run natively under the Linux, Mac OS X, and Microsoft Windows operating-systems. XBMC is the successor to the popular Xbox Media Player (XBMP) software.

Details

XBMC supports a wide range of multimedia formats and includes features such as playlists, audio visualizations, slideshows, and weather reporting, and an expanding array of third-party plugins. As a media center, XBMC can play most audio and video file formats, as well as display images from virtually any source, including CDs, DVDs, USB flash drives, the Internet, and LAN shares. XBMC is a hobby project that is only developed by volunteers in their spare-time for free. It is not produced, endorsed, or supported by Microsoft or any other vendor. As a result, XBMC for Xbox, like all homebrew Xbox applications, requires a modchip or softmod exploit. As such, the legality of running XBMC on the Xbox is disputed.

Through its C++ and Python plugin system, XBMC has expanded to include features such as television program guides, YouTube and Apple movie trailer support, and SHOUTcast/Podcast streaming. XBMC also functions as a gaming platform by allowing users to play Python-based mini-games on any operating-system. In addition, the Xbox version of XBMC contains the ability to launch console games, homebrew applications such as emulators, and a free alternative to Xbox Live called XLink Kai.

Due to the dated hardware of the Xbox and a desire to expand the project's end-user and developer-base a PC port now exists. Through the processing power of modern PC hardware, XBMC is able to decode high-definition video up to 1080p, bypassing a major limitation of the original Xbox version of XBMC. However, as with the Xbox version, XBMC for PC does not currently support hardware video decoding, thus placing the entire load of the video decoding process on the system's CPU.

A Mac OS X port and a Windows port of XBMC has been started by a few community volunteers. Currently, they are in the early stages, but development seems to be progressing rapidly.

XBMC as a whole is distributed under the GNU General Public License (with a few libraries used by XBMC licensed under the LGPL).

Official ports and names of XBMC

  • XBMC for Xbox
  • XBMC for Windows
  • XBMC for Mac
  • XBMC for Linux

History of The XBMC Project

XBox Media Player (XBMP) History

The Xbox Media Player Project was founded by d7o3g4q (also known as duo) and RUNTiME.[1] It started out as two separate players, with the two developers each working on their own design, and code. After sharing code and coordinating features to not duplicate efforts, by XBoxMediaPlayer beta 5 the two players were merged. The development and beta-testing was done behind closed doors for this project (d7o3g4q and RUNTiME promising that when version 1.0 was made they would release the source code to the public). After beta 6 was completed there were complaints from a lot of people as to why the developers did not release the source code for the player sooner as they were using FFmpeg and XVID code which are under the (L)GPL license. Even though the project was closed d7o3g4q and RUNTiME released the source code for beta 6 on the 15th of October 2002.

In the November 2002, another software developer nicknamed Frodo who was the founder of "YAMP - Yet Another Media Player" joined the Xbox Media Player team and the XBoxMediaPlayer and YAMP projects were merged, the first release of the merged projects was called "Xbox Media Player 2.0" and the source code for it was release on the 14th of December 2002. XBoxMediaPlayer 2.0 was a complete re-write using a new core based on the MPlayer project, still using FFmpeg/XVID codec code. On the 28th of December 2002, the source code of XBoxMediaPlayer 2.1 was released with many bug fixes and a couple of new features such as true AC3 5.1 output, volume normalizer /amplification and an additional post processing filter. Two weeks later on the 12 of January 2003 XBoxMediaPlayer 2.2 source code was released with new features including dashboard mode to launch other Xbox applications/games, separate national language files, streaming media from windows file shares (SMB), audio-playlist, the ability to play media on-the-fly from ISO9660-Mode1 CDs and Windows DLL support for WMV 7,8, and 9.

XBMC History

XBoxMediaPlayer development stopped on December 13th, 2003, by which time its successor, XBMC, was ready for its debut, renamed as it was growing out of its 'player' name and into a 'center' for media playback. The first stable release of XBMC was on Tuesday the 29th of June, 2004, with the official release of XBoxMediaCenter 1.0.0. This announcement also encouraged everyone using XBMP or XBMC Beta release to update, as all support for those previous versions would be dropped, and they would only officially support version 1.0.0. Some new things in XBMC 1.0.0 included the addition of the Filezilla FTP Server, DHCP Support, the ability to configure additional settings from the xboxmediacenter.xml, a new version of MPlayer was packaged and the embedded Python was given the ability to draw GUI Elements.

With the release of 1.0.0 in the middle of 2004, work continued on the XBMC project to add more features, such as support for iTunes features like DAAP and Smart Playlists, as well as lots of improvements and fixed. The second stable release of XBMC, 1.1.0, was released on October 18, 2004. This released included support for more media, file, container formats, as well as video playback of Nullsoft streaming videos, karaoke support (CD-G).

After two years of heavy development, XBMC announced a stable point final release of XBMC 2.0.0 on the 29th of September 2006. Even more features were packed into the new version with the addition of RAR and zip archive support, a brand new player interface with support for multiple players. Such players include PAPlayer, the new audio/music player with crossfade, gapless playback and ReplayGain support, and the new DVDPlayer with support for menu and navigation support as well as ISO/img image parsing. Prior to this point release, XBMC just used a modified fork of MPlayer for all of its media needs, so this was a big step forward. Support for itunes 6.x DAAP, and Upnp Clients for streaming was also added. A reworked Skinning Engine was included in this release to provide a more powerful way to change the appearance of XBMC. The last two features include read-only support for FAT12/16/32 formatted USB Mass Storage Devices up to 4GB in size, and a brand new "skinnable" 3D visualizer.

In 2006, November 12th saw the release of XBMC 2.0.1 which contained numerous fixes for bugs that made it through the 2.0.0 release. This also marked the change from CVS to SVN (Subversion) for the development tree. Development on the SVN Trunk is continuing which is currently 'pre-2.1', and once it goes through the bug bash and feature lockdown process will become XBMC 2.1.0.

On the 29th of May 2007, the team behind XBMC put out a call for developers interested in porting XBMC to the GNU/Linux Operating System. Since a few developers on Team-XBMC had already begun porting parts of XBMC over to GNU/Linux using SDL and OpenGL as a replacement for DirectX, which XBMC was using heavily on the Xbox version of XBMC.

Features

Audio/Video playback and handling

XBMC can play media from CD/DVD media using the Xbox's built-in DVD-ROM drive. It can also play media from the Xbox's built-in hard disk drive, or stream them over SMB/SAMBA/CIFS shares (Windows File-Sharing), ReplayTV DVRs, UPnP (Universal Plug and Play ) shares, XBMSP (Xbox Media Stream Protocol) shares, or stream iTunes-shares via DAAP. XBMC can also take advantage of the Xbox's Ethernet network port and a broadband Internet connection if available, using the IMDb to obtain thumbnails and reviews on movies, CDDB (via FreeDB) for Audio-CD track-listings), and album-thumbnails via AMG, it can stream Internet-video-streams, and play Internet-radio-stations (such as SHOUTcast). XBMC also includes the option to submit music usage statistics to Last.fm and a weather-forecast (via weather.com). It also has music/video-playlist features, picture/image-slideshow functions, an MP3+CDG karaoke function and many audio-visualizations and screensavers. XBMC can in addition upscale/upconvert all 480p/576p standard-resolution videos and output them to 720p or 1080i HDTV-resolutions.

Format support

XBMC can be used to play/view all common multimedia formats. It can decode these in software and optionally pass-through AC3/DTS audio from movies directly to S/PDIF output to an external audio-amplifier/receiver.

Supported formats/codecs:

Video playback in detail

XBMC uses two different multimedia player 'cores' for video-playback. The first is a ported version of the open source cross-platform player, MPlayer, which is known for playing practically all common media-formats. XBMC handles all codecs and containers normally supported by MPlayer (all FFmpeg supported codecs and also several external ones with the help of proprietary DLL-files.

The second video-player 'core' for video-playback is an in-house developed DVD-player for DVD-Video movies, including the support of DVD-menus, (based on the open source and free libraries code libdvdcss and libdvdnav). This video-player 'core' support all the FFmpeg codecs, and in addition the MPEG-2 video codec, and the audio codecs DTS and AC3 (based on the open source code libraries: libmpeg2, libdca/libdts, and liba52/libac3 respectively). One relatively unusual feature of this DVD-player core is the capability to on-the-fly parse and play DVD-Video movies that are stored in ISO and IMG DVD-images, DVD-Video movies that are stored as DVD-Video (IFO/VOB/BUP) files on a harddrive or network-share, and also ISO and IMG DVD-images directly from RAR and ZIP archives. In addition to this, the XBMC DVD-player 'core' can upscale/upconvert all DVD-Video movies and output them to 720p or 1080i HDTV resolutions in better quality than most, if not all, high-definition television set's native function for upscaling/upconverting video.Template:Fact

The Video Library

The Video Library, one of the XBMC metadata databases, is a key feature of XBMC. It allows the organization of your video content by information associated with the video files themselves, (like movies and recorded TV Shows). This information can be obtained in various different ways, like through Scrapers (ie. IMDb, tv.com, thetvdb.com, etc.) and nfo files. The Library Mode view allows you to browse your video content by things like; Genre, Title, Year, Actors and Directors.

Audio playback in detail

For audio playback, XBMC includes its own in-house developed audio-player: PAPlayer (Psycho-Acoustic Audio Player). Some of this audio-player core's most notable features are on-the-fly resampling to the Xbox's native audio frequency (48 kHz), gapless playback, crossfading, Replay Gain, cue sheet and Ogg Chapter support. It handles a very large variety of audio file-formats: MP2, MP3, Vorbis, Musepack, AAC, AACplus (AAC+), APE, FLAC, WavPack, Shorten, AIFF, WAV, DTS, AC3, CDDA, WMA, IT, S3M, MOD (Amiga Module), XM, NSF (NES Sound Format), SPC (SNES), GYM (Genesis), SID (Commodore 64), Adlib, YM (Atari ST), ADPCM (GameCube). It also supports many different tagging standards: APEv1, APEv2, ID3v1, ID3v2, ID666 and Vorbis comments.

Music Library

The Music Library, one of the XBMC metadata databases, another key feature of XBMC. It allows the organization of your music collection by information stored in your music file ID meta tags, like title, artist, album, genre and popularity.

Digital picture/image display in detail

XBMC handles all common digital picture/image formats with the options of panning/zooming and slideshow with "Ken Burns Effect", with the use of CxImage open source library code. XBMC can also handle CBZ (ZIP) and CBR (RAR) comic book archive files, this feature lets you view/read, browse and zoom the pictures of comics pages these contain without uncompressing them first.

Python scripts (widgets/gadgets) plugins

XBMC features a Python Scripts Engine and WindowXML application framework (a XML-based widget toolkit for creating a GUI for widgets) in a similar fashion to Apple Mac OS X Dashboard Widgets and Microsoft Gadgets in Windows Sidebar. Python widget scripts allow normal users to add new functionality to XBMC themselves, (using the easy to learn Python programming language), without having to utilize an illegal copy of the XDK and without knowledge of the complex C/C++ programming language. Current plugin scripts include functions like Internet-TV and movie-trailer browsers, weather forecast and cinemaguides, TV-guides (EPG), e-mail clients, instant messaging, train-timetables, scripts to front-end control PVR software and hardware (like: MediaPortal, MythTV, TiVo, ReplayTV, Dreambox/DBox2), Internet-radio-station browsers (example SHOUTcast, Xm radio, Sirius Satellite Radio), P2P file-sharing downloaders (BitTorrent), IRC, also casual games (sometimes also referred to as mini-games or party-games) such as Tetris, Snake, Space Invaders, Sudoku, and much more.

Dashboard function (game/application launcher)

XBMC has a "My Programs" section with functions as a replacement dashboard to launch Xbox games (retail and homebrew) and applications/emulator directly off the Xbox built-in harddrive, all from a nice GUI with thumbnail and list options. This fully replaces the original Xbox Dashboard from Microsoft, and with the exception of flashing new BIOS to an Xbox modchip it also features all extra functions that other homebrew dashboards have.

Language support

XBMC also includes support for many different languages. XBMC's structure is such that if your language is not available, or not up-to-date, then you can easily make your translation by editing an XML-file, which can be submitted to the project's database for use by others. Currently the existing supported languages are Brazilian Portuguese, Catalan, Simplified Chinese, Traditional Chinese, Croatian, Czech, Danish, Dutch, English, Esperanto, Finnish, French, German, Greek, Hebrew, Hungarian, Icelandic, Italian, Japanese, Korean, Maltese, Norwegian, Polish, Portuguese, Romanian, Russian, Serbian, Slovene, Spanish, Swedish and Turkish.

Skins and skinning-engine

A mainstay of Xbox homebrew applications is skin-ability in the tradition of case modifications. XBMC is noted as having a very flexible GUI toolkit and robust framework for its GUI, using a standard XML base, making theme-skinning and personal customization very accessible. Users can create their own skin (or simply modify an existing skin) and share it with others via public websites dedicated for Xbox and XBMC skins trading. "Project Mayhem" is the official skin; which is now in its third version, commonly know as "PMIII" or "PM3". Many third-party skins exist and while some are original designs, most are clones or an exact replica of other multimedia software, such as Apple Front Row, Windows Media Center Edition (MCE), MediaPortal, Meedio/MeediOS, HDeeTV, Kaleidescape, Xbox 360 blades (MC360), and others.

Xbox Specific Features and Functions

XBMC Trainer Support (game cheats mods)

XBMC for Xbox also has the ability to use and apply Xbox Trainer Files. Trainers are small files that allow for in game value modification (such as cheat code) through altering retail functions in game values by way of using TSR (Terminate and Stay Resident) keys. There are many things that can be modified including ammunition, extra-lifes, or even how high a character can jump. Trainer support in XBMC for Xbox was achieved through collaboration with Team Xored. This collaboration began in December 2005 and came to fruition in January 2006 by successfully integrating the Team Xored Trainer Engine into XBMC. XBMC for Xbox can run trainers with the following file extensions: *.ETM and *.XBTF.

XLink Kai (Xbox Live online-gaming alternative)

XBMC for Xbox has an integrated front-end for an Xbox Live alternative (called "XLink Kai"), an online gaming platform, enabling you to both control the Kai engine and play system-link/LAN-enabled Xbox games online, without connecting to the Xbox Live service, straight from your console.

Running XBMC for Xbox

File:Mc360-screenshot-1.jpg
MC360 skin for XBMC displaying the media blade

At present, the latest 'stable' version of XBMC for Xbox is 2.0.1 final point-release which was released on 12 November, 2006. Since XBMC for Xbox is an open source software program, its development source code is stored on a publicly-accessible Subversion server. This code is constantly updated on a daily-basis by developers so the Subversion repository often contains more features than the most recent 'stable' release. Accordingly, executable builds from the Subversion repository are often released by third-parties. It should be noted, however, that executable builds from development versions typically contain bugs not present in the most recent 'stable' release versions of XBMC for Xbox.

XBMC for Xbox is not an authorized/signed Microsoft product, therefore a modification of the Xbox is required in order to run XBMC on a Xbox game-console. XBMC for Xbox can be run as an application (like any Xbox game), or as a dashboard that appears directly when the Xbox is turned on. It takes approximately ten seconds to fully load XBMC for Xbox.

Types of Xbox modifications (mods)

Here is a brief overview of various console modification methods which allow the Xbox to run unofficial applications which are not authorized/signed. (For an application to run on an unmodified Xbox, it must be digitally signed by Microsoft. A modded Xbox does not check for a digital signature and will run any application, signed/official and unsigned/unofficial.)

  • Modchip: Physical circuit board that is attached to the Xbox mainboard. Requires opening the Xbox to install. Contacts are connected either by "screwing down" the board (for a solderless install) or soldering wire connections.
  • Softmod: Loophole in Xbox software security via an exploit. Most popular softmods, such as UXE or NDURE, are installed through a modified game save. Softmods have become very stable and safe with recent advancements, and does not require any physical modification to the Xbox.
  • TSOP flash: TSOP is a technical term meaning 'Thin Small Outline Package', which describes the microchip packaging. Earlier revisions of the Xbox motherboard contained a rewritable EEPROM (a type of Flash memory) which used the TSOP style of microchip packaging. TSOP flashing in the context of an Xbox requires updating of the software on this microchip by jumping traces (small wires) on the motherboard to make the chip writable from software. A softmod exploit (usually in the form of a modified save game) is used to flash a hacked BIOS (replace the software of) the chips using unofficial software.
  • Hotswap: is a method where a softmod is loaded onto the Xbox harddisk via an external connection with a ´donor´-pc. Therefore, the harddisk has to be unlocked. This is done by just powering up the Xbox. The IDE ribbon-type cable in the Xbox is then disconnected from the harddisk, while keeping the power cable plugged in. Replace the IDE connection with that of a pc which is already running. The pc is typically booting off a live cd which will install a softmod, for example NDURE. Finally, plug the Xbox IDE cable back in. The Xbox can only then safely be powered down. This method is risky because the harddisk is locked again when it loses power. And it only unlocks when it was locked in its original configuration. It means that when the harddisk or the Xbox powers down *before* the softmod is in place and the Xbox IDE cable is plugged back in, you´ve gotten yourself a bricked Xbox Requires opening the Xbox to install.

Programming and developing

XBMC is a non-profit open source hobby project that is developed only by volunteers in their spare-time without any monetary gain. The team of developers working on XBMC encourage anyone to submit their own source code patches for new features and functions, improve existing ones, or fix bugs.

XBMC is a cross-platform software application programmed in C++ (and some Assembly), XBMC uses Microsoft DirectX multimedia framework on the Xbox, (as the Xbox does not support OpenGL), and the SDL (Simple DirectMedia Layer) framework under XBMC for Linux, Mac OS X, and Microsoft Windows operating-system. Some of the XBMC libraries are also written in C programming-language, but are used with a C++ wrapper and loaded via XBMC's own DLL loader.

Xbox Development Environment

The Xbox Operating-System/BIOS is Win32-based but does not have all of the resources or capabilities of a full Microsoft Windows Operating-System, (for example: DirectShow, registry, nor DLL are natively supported on the Xbox). Because of the constraints on the hardware and environment of the Xbox all software development for XBMC are 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.

Operating-System

  • The Xbox does not have an Operating-System per-se, instead it only has a basic BIOS
    • Everything else must go into the XBMC executable and its (XDK and own-made) libraries
  • Only a single process-thread (executable program) can run at any one time on the Xbox
  • Xbox hard drive file-system (FATX) has many limitations, among them a filename maximum of 42-characters
  • The Xbox has four USB ports but the Xbox SDK (a.k.a. XDK) does not contain a full USB-stack
    • if wanted to add support for USB hardware-devices one would have to make it for oneself

Compiling

Limitations

Cross-platform (software) Limitations

This is a list of current software limitations in the XBMC code.

Xbox Specific Limitations

These are Xbox hardware and Xbox operating-system specific limitations that do not affect XBMC for Linux nor Mac OS X.

  • UDF (Universal Disk Format) file-system limitation: XBMC for Xbox only supports UDF version 1.02 (designed for DVD-Video media), which has a maximum file-size of 1 GB (meaning if you burn a DVD-media in a newer UDF version with a video that is larger than 1GB, XBMC will not be able to play that file), same goes for UDF/ISO hybrid formats (a.k.a. UDF Bridge format). Workaround: Burn all your CD/DVD-media in ISO 9660 format, which is the most common standard for recording CD/DVDs. Unfortunately ISO 9660 has a 2 GB file-size limitation, which cannot be bypassed.
  • The Xbox built-in harddrive is formatted in FATX which has a 4 GB file-size limitation, and only supports file/folder-names up to 42 characters, a maximum of 255 in total file-structure character-depth and a maximum number of 4096 files/folders in a single subfolder, plus in the root of each partition, the maximum number of files/folders is 256. FAT does not support all ASCII characters in file/folder names (like for example < > = ? : ; " * + , / \|¤ &). XBMC will automatically rename any files/folders you transfer to the Xbox by these limitations. (None of these are XBMC issues that can be fixed as the limitation is in the Xbox itself). Workaround: Store your files/folders on your computer or a Network-Attached Storage (NAS) device/box which support SMB/CIFS, FTP or UPnP and share them over a local-area-network instead.
  • The USB flash drive (USB key-drives/memory-keys) reader/writer class used by XBMC for Xbox currently has a few limitations as well. It is limited to USB flash drives and harddisks compatible with USB Mass Storage Device Class following the USB 1.1 standard, with a maximum size of 4 GB. It can read and write to FATX formatted flash drives, but can only read FAT12, FAT16 (including VFAT), and FAT32. NTFS formatted drives are not supported yet.
  • With its 733 MHz Intel Pentium III-like CPU and 64MB shared memory, the Xbox has neither a fast enough CPU nor sufficient amounts of RAM to play 720p/1080i resolution HDTV video. However, XBMC can up-convert all standard definition movies and output them at 720p or 1080i with better quality than most (if not all) HDTVs' native up-convert functions.Template:Fact
  • The Xbox is now able to play MPEG-4 AVC (H.264) encoded videos with CABAC and deblocking if the video-resolution is under 720x400 pixels. For instructions, click here. If videos are encoded without CABAC and deblocking, then the Xbox hardware can handle up to 720x576 pixels video-resolution. If encoding with MPEG-4 ASP (like DivX or XviD), then the video's native-resolution can be anything up to 960x540 pixels (also known as HRHD resolution).

Reception

Awards

XBMC won two SourceForge 2006 Community Choice Awards, for Best Multimedia Project and Best Game Project. In the 2007 Community Choice Awards, XBMC is a nominated finalist in six categories.

Legality

While XBMC's source code for all platforms is made publicly available by the developers under an open source (GNU GPL) license, the developers themselves are legally unable to distribute executable versions of XBMC for Xbox. This is because XBMC for Xbox requires Microsoft's commercial software development kit in order to compile. Thus, the only publicly available executable versions of XBMC for Xbox are from third parties, as a result, precompiled versions of XBMC for Xbox may be illegal to distribute in many countries around the world. XBMC binaries for all other platforms that XBMC supports (Linux, Mac OS X, and Windows) are however legal to distribute.

Copyright

The XBMC software is licensed under the GNU General Public License (GPL) by the developers, meaning they allow anybody to redistribute XBMC under extremely liberal conditions. However, in order to compile the XBMC into executable form, it is currently necessary to use the Microsoft XDK (Xbox Development Kit) which is only available to licensed developers and the resulting code may only be distributed by them. Accordingly, code compiled with an unauthorized copy of the Xbox Development Kit may not be distributed legally. A third-party project called OpenXDK is concerned with producing a replacement for the Microsoft XDK. While this could potentially allow legal binaries of XBMC to be compiled, it would require significant changes to the XBMC source code.

For audio and video codecs which are not natively supported, XBMC provides a DLL loader forked from the "avifile" open source project which can load third-party made DLLs to decode unsupported formats. This is potentially legal if the user owns a licensed copy of the DLL. However, some third-party XBMC builds incorporate all available third-party DLLs that XBMC can support, and the redistribution of these without a license is copyright infringement.

Patents

For most popular video and audio codecs, XBMC includes native support through free and open source software libraries, such as LAME, faad, faac, libmpeg2, and libavcodec (from the FFmpeg project). Since these source code libraries is released under free and open source licenses they are legally redistributable. However, some of these compression methods algorithms, such as the popular MP3 format, are in many countries protected by software patents. Absent a licence, this could possibly make it illegal in certain countries to distribute compiled versions of XBMC which includes support for these formats.

Other

XBMC also includes libdvdcss to support playing back DVD-Video movies encrypted using the CSS (Content Scramble System) encryption. The distribution of executable versions of XBMC containing this code is likely to fall afoul of the Digital Millennium Copyright Act in the U.S. and the EU Copyright Directive in European Union member countries which have incorporated it into national law.

See also

Template:Portal

References

Template:Reflist

External links

Official sites

Scripts, plugins, and Skins

Scripts

  • xbmcscripts.com (Python scripts which add additional features and functionality to XBMC)

Plugins

Skins

Other

de:Xbox Media Center es:Xbox Media Center fr:Xbox Media Center it:Xbox Media Center no:Xbox Media Center pl:XBMC fi:Xbox Media Center sv:XBMC