Kodi: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
m (Home theater PC -> Media center)
m (Update)
Line 1: Line 1:
{{Unreferenced|date=July 2007}}
{{Unreferenced|date=July 2007}}
{{Update}}
{{Infobox_Software2
{{Infobox_Software2
  |name = Xbox Media Center
  |name = Xbox Media Center
Line 21: Line 22:
===Audio/Video playback and handling===
===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 [[All Music Guide|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.
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 [[All Music Guide|AMG]], i
 
===Format support===
XBMC can be used to play/view all common [[multimedia]] formats 'straight out-of-the-box'. 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]]. For a detailed up-to-date list see the "Supported Formats" list in XBMC online-manual [http://www.xboxmediacenter.com/wiki/index.php?title=XBMC_Features_and_Supported_Formats/Codecs here].
 
:'''Supported formats/codecs:'''
:* '''Physical media''': [[compact disc|CDs]], [[DVD]]s, [[Video CD]]s (including [[DVD-Video]], [[Video CD|VCD/SVCD]] and [[CDDA|Audio-CD/CDDA]])
:* '''[[Container format]]s''': [[AVI]], [[MPEG]], [[WMV]], [[Advanced Systems Format|ASF]], [[FLV]], [[Matroska|MKV]], [[QuickTime|MOV]], [[MP4]], [[M4A]], [[Advanced Audio Coding|AAC]], [[NUT Container|NUT]], [[Ogg]], [[OGM]], [[RealMedia]] RAM/RM/RV/RA/RMVB ([[RealAudio]]/[[RealVideo]]), [[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]], [[MJPEG]], [[RealVideo]], [[QuickTime]], [[Sorenson codec|Sorenson]],  [[WMV]], [[Cinepak]],
:*'''[[Audio codec]]s''': [[AIFF]], [[WAV|WAV/WAVE]], [[MPEG-1 Audio Layer II|MP2]], [[MP3]], [[Advanced Audio Coding|AAC]], [[AACplus]], [[AC3]], [[DTS Coherent Acoustics|DTS]], [[Apple Lossless|ALAC]], [[Adaptive Multi-Rate|AMR]], [[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]]''': [[Windows and OS/2 bitmap|BMP]], [[JPEG]], [[GIF]], [[PNG]], [[TIFF]], [[MNG]], [[ICO (icon image file format)|ICO]], [[PCX]] and [[TGA|Targa/TGA]]
:*'''[[Subtitles|Subtitle formats]]''': [[AQTitle]], [[SubStation Alpha|ASS/SSA]], [[Closed captioning|CC]], [[JACOsub]], [[MicroDVD]], [[MPsub]], [[OGM]], PJS, [[RealText|RT]], [[SAMI|SMI]], [[SubRip|SRT]], [[SubViewer|SUB]], [[VobSub|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 [[proprietary]] media-formats without having to pay [[royalties|license fees]]. 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: [[RealMedia]]/[[RealVideo]]/[[RealAudio]], [[QuickTime]], [[WMV9]]/[[WMA9]], [[VP4]]/[[VP5]]/[[VP6]]), and the sources are synced at regular intervals.
 
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.
 
:'''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 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]]), [[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 a Xbox [[modchip]] it also features all extra functions that other [[Homebrew (video games)|homebrew]] [[Xbox Dashboard|dashboard]]s have.
 
===XBMC Trainer Support (game cheats mods)===
XBMC 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 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 can run trainers with the following file extensions: *.ETM and *.XBTF.
 
===XLink Kai (Xbox Live online-gaming alternative)===
XBMC 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==
[[Image:Mc360-screenshot-1.jpg|thumb|right|300px|MC360 skin for XBMC displaying the media blade]]At present, the latest 'stable' version of XBMC is 2.0.1 final point-release which was released on 12 November, 2006. Since XBMC 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.
 
XBMC is not an [[authorized|authorized/signed]] [[Microsoft]] product, therefore a [[Xbox#Modding the Xbox|modification of the Xbox]] is required in order to run XBMC on a [[Xbox]] game-console. XBMC 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.
 
===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.
 
==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]], [[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>
 
==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 programmed in [[C++]] (and some [[Assembly language|Assembly]]), and uses [[DirectX|Microsoft DirectX]] multimedia [[Software framework|framework]], (the [[Xbox]] does not support [[OpenGL]]). Some of the XBMC [[Library (computing)|libraries]] are 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. 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.
 
===Xbox Development Environment===
It is important to always keep in mind all the aspects of the Xbox environment when developing XBMC for the Xbox.
====Xbox Hardware Summary====
*733[[Mhz]] [[Intel Pentium III|Intel Pentium III (32-bit x86) CPU]]  @ 133[[Mhz]] [[Front side bus|FSB]] (supporting [[MMX|MMX/MMX2]] and [[Streaming SIMD Extensions|SSE]])
**32[[Kilobyte|KB]] [[CPU cache|Level 1 cache]], and 128[[Kilobyte|KB]] [[CPU cache|Level 2 cache]]
*64[[Megabyte|MB]] of shared [[DDR SDRAM]] [[Random access memory|RAM]] @ 200[[Mhz]] (memory is shared between [[CPU]] and [[GPU]])
*Xbox [[GPU]] is a [[nVidia]] [[NV2A]] @ 233[[Mhz]] (somewhat in between [[GeForce 2 Series|GeForce 2]] and [[GeForce 3 Series|GeForce 3]] series)
*The [[Audio Processing Unit|APU]] is a [[nVidia]] [[MPC]] (designed for Xbox, a.k.a. [[MPCX]]), which supports only 48[[Khz]]-output
**The [[Audio Processing Unit|APU]] is integrated to the MPCX APU and can encode to [[AC3]] audio on-the-fly in hardware
**64 3D channels, or 256 [[stereo]]
*The Xbox-chipset can be described in layman terms as something similar to the first nVidia [[nForce]]
**The chipset designed by nVidia and makes up a [[Southbridge (computing)|southbridge]] (the [[MPCX|MPCX-1]]) and the GPU ([[NV2A]])
*8[[Gigabyte|GB]] internal [[AT Attachment|IDE/ATA]] [[hard disk|harddisk drive]] Ultra DMA 33 (though [[MPCX|MPCX-1]]) supports Ultra DMA 100)
*Xbox [[DVD-ROM]] are 2-5x speed read
**[[DVD-ROM]] made by Philips/Thomson/Hitatchi can not read [[CD-R]] media
***[[DVD-ROM]] made by Philips/Thomson/Hitatchi can not read CD/DVD [[CD+G|subchannels]] either
**Samsung made Xbox [[DVD-ROM]] drives can read CD-R media and sub-channels
 
====Operating-System====
*The Xbox does not have a 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 [[compiler|compile]] (and [[program]] in) XBMC is [[Microsoft Visual Studio .NET]] version 7.1
*XBMC's code also contain four multimedia-player cores which has to be [[compiler|compiled]] seperatly
**None of those require [[XDK]] to be compiled, they are instead compiled with [[MinGW]]/[[MSYS]]
 
==Limitations==
*XBMC can not currently 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: 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]], [[Unfuck]], [[FairUse4WM]], [[DRM2WMV]] or [[DRMDBG]]).
*[[Universal Disk Format|UDF (Universal Disk Format)]] file-system limitation: XBMC only supports UDF version 1.02 (designed for [[DVD-Video]] media), which has a maximum file-size of 1GB (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[[Gigabyte|GB]] file-size limitation, which cannot be bypassed.
*The  [[ISO 9660]] and [[Universal Disk Format|UDF]] reader [[Class (computer science)|class]]es in XBMC does 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.
*The Xbox built-in harddrive is formatted in [[FATX]] which has a 4[[Gigabyte|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 currently has a few limitations as well. It is limited to [[USB flash drive]]s and [[harddisk]]s compatible with [[USB Mass Storage Device Class]] following the [[USB|USB 1.1 standard]], with a maximum size of 4[[Gigabyte|GB]]. It can read and write to FATX formatted flash drives, but can only read [[File Allocation Table|FATs]] FAT12, FAT16 (including VFAT), and FAT32. [[NTFS]] formatted drives are not supported yet.
*With its 733&nbsp;MHz [[Intel Pentium III]] [[Celeron]] and 64MB [[shared memory]], the [[Xbox]] does not have enough hardware-resources (not fast enough [[CPU]] nor large enough [[Random access memory|RAM]]) to play 720p/1080i resolution-native [[HDTV]] video (at 1280x720 and 1920x1080 pixels), (like [[WMVHD|WMV HD]]). XBMC can however upconvert all 480p/576p [[SDTV|standard-resolution]] movies and output them to [[HDTV|720p or 1080i HDTV]] resolutions in better quality than most (if not all) HDTV's native function to upconvert video.
* Again with its hardware, the [[Xbox]] does not have enough resources to play [[H264|MPEG-4 AVC (H.264)]] encoded videos with [[CABAC]] and [[deblocking]] if the video-resolution is higher than 352x288 pixels. If videos are encoded without CABAC and deblocking then the [[Xbox]] hardware can handle up to 720x576 pixels video-resolution. It is generally better to encode videos to [[MPEG-4]] (like [[DivX]] or [[XviD]]) instead, as then that video's native-resolution can be anything up to 960x540 pixels (also known as [[Half Resolution High Definition|HRHD]] resolution).
 
 
==Reception==
===Awards===
XBMC won two categories [[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 [[source code]] is made publicly available from the developers under an [[open source]] ([[GNU GPL]]) [[license]], the developers themselves are legally unable to distribute [[executable]] versions of XBMC. Due to this, the only publicly available [[executable]] versions of XBMC are from [[Third-party developer|third parties]] and are of dubious legal status.
 
====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 developer|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.
 
XBMC provides, for audio and video [[codecs]] which are not natively supported, a [[Dynamic-link library|DLL]] loader [[Fork (software)|forked]] from the "[[avifile]]" open source project which can load [[Third-party developer|third-party]] made [[Dynamic-link library|DLL]]s to decode unsupported formats. Where the user owns a licensed copy of the [[Dynamic-link library|DLL]], this is potentially legal. However, some [[Third-party developer|third-party]] XBMC builds incorporate all available third-party [[Dynamic-link library|DLL]]s that XBMC can support and the redistribution of these without a licence is copyright infringement.
 
====Patents====
For most popular video and audio codecs, XBMC includes native support through the [[libavcodec]] [[Library (computer science)|library]] from the [[FFmpeg]] project. Since this code is released under a free and [[open source]] license, it is legally redistributable. However, some of these compression methods, [[MP3#Licensing and patent issues|such as the popular MP3 format, are covered by patents]] in many countries. Absent a licence, this would make it illegal to redistribute versions of XBMC including support for these patented formats. This is a problem common among many [[open source]] multimedia projects/applications.
 
====Other====
XBMC also includes support for 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 the [[European Union]] member countries which have so far incorporated it into national law.
 
== See also ==
{{portal|Free software|Free Software Portal Logo.svg}}
 
*[[Media player]]
**[[Media center]]
*[[MPlayer]], the [[open source]] and [[cross-platform]] software XBMC uses as its main video player core
*[[FFmpeg]], the audio and video [[codecs|codec suite]] that XBMC uses for all player cores
*[[MediaPortal]], a media center written for [[Microsoft Windows]] by the founder of XBMC. Initially based on XBMC code.
*[[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]]
*[[Xbox Linux]]
 
==External links==
===Official sites===
* [http://www.xboxmediacenter.com Xbox Media Center website]
* [http://www.xboxmediacenter.com/forum Xbox Media Center forum]
* [http://www.xboxmediacenter.com/wiki/index.php?title=Xbox_Media_Center_Online_Manual Xbox Media Center online manual]
* [irc://irc.freenode.net/ XBMC official IRC chat room (on Freenode)] (use an [[IRC]] client like [[mIRC]] to join the #xbmc channel)
 
===Scripts and Skins===
====Scripts====
* [http://www.xbmcscripts.com xbmcscripts.com] (Python scripts which add additional features and functionality to XBMC)
====Skins====
* [http://sourceforge.net/projects/xboxmediacenter Xbox Media Center official skin development and download site]
* [http://www.allxboxskins.com allxboxskins.com] - unofficial XBMC skin download site
* [http://www.xbox-skins.net xbox-skins.net] - another unofficial XBMC skin download site
 
{{Xbox}}
 
[[Category:DVD]]
[[Category:Free media players]]
[[Category:Free video software]]
[[Category:Free television software]]
[[Category:Multimedia frameworks]]
[[Category:SourceForge projects]]
[[Category:Windows media players]]
[[Category:Xbox]]
[[Category:Xbox Dashboards]]
[[Category:Xbox games]]
[[Category:Xbox peripherals]]
[[Category:Video game hardware]]
 
[[de:Xbox Media Center]]
[[es:Xbox Media Center]]
[[fr:Xbox Media Center]]
[[it:Xbox Media Center]]
[[no:Xbox Media Center]]
[[pl:Xbox Media Center]]
[[fi:Xbox Media Center]]
[[sv:Xbox Media Center]]

Revision as of 05:51, 9 October 2007

Template:Unreferenced Template:Update Template:Infobox Software2

Xbox Media Center (XBMC) is a free open source media player and entertainment hub software distributed under the GNU General Public License. Originally developed as Xbox Media Player for the Xbox game console in 2002, XBMC eventually became a complete graphical user interface replacement for the Xbox Dashboard, and has since been ported to the Linux operating system. As a media center, XBMC can, via software codecs, play audio and video files, as well as display images from virtually any source, including CDs, DVDs, USB flash drives, the Internet, local area networks, and hard drives. 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. As such, its legality is disputed.

Through the C++ and Python programming languages, XBMC has been extended to include large metadata databases for multimedia libraries, weather forecasts, TV guides, website interaction (such as for YouTube videos and Apple.com movie trailers), 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 console games and homebrew applications, 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 2007, without Xbox-specific features such as game trainers and video game loading. XBMC for Linux is 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 could 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, thus all load is placed upon the central processing unit, limiting the use of sound and video cards to output only.

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, i