Kodi

From Official Kodi Wiki
Revision as of 15:02, 17 May 2010 by 164.4.17.33 (talk) (XBMC is only named "XBMC" but is used to be named "XBox Mediaq Center" however it was renamed since it no longer is for the Xbox alone anymore.)
Jump to navigation Jump to search
XBMC Media Center
XBMC Logo.png
Xbmc 911.png
XBMC Media Center Home Screen
Developer(s) Team XBMC
Initial release 2003
Development status Active
Written in C++ (and with Python Scripts as plugins)
OS Xbox, Microsoft Windows, Linux, Mac OS X, and Apple TV OS
Platform PPC (PowerPC), IA-32/x86, and x86-64 architecture, (ARM architecture support is also in development)
Available in International (multiple languages)
Type Media Center, Media Player, Digital media receiver
License GNU GPL
Website xbmc.org

XBMC Media Center (formerly named XBox Media Center) is a free and open source cross-platform media player and home entertainment system software with a 10-foot user interface designed for the living-room TV. Its graphical user interface allows the user to easily manage video, photos, podcasts, and music from a computer, optical disk, local network, and the internet using a remote control.[1][2][3]

It is a popular alternative to Microsoft's Windows Media Center and Apple's Front Row, similar to MediaPortal and MythTV,[4][5][6][7][8] and has a skinnable and user-configurable interface and plugin support.[9][10]

XBMC was originally created for the first-generation Xbox game console[2][3][11] but is, since several years back, now primarily available as a native application for Linux, Mac OS X (Snow Leopard, Leopard, Tiger, Apple TV), Microsoft Windows and recently Linux on the PlayStation 3 operating systems.[12] There is also a bootable Live CD and Live USB standalone version referred to as "XBMC Live" which is made for easy bare-metal installations, as well as for interactive demonstrations.[13][14][15] In addition, source code from XBMC is used as a application framework platform for others projects to base their media center software on, and today at least Boxee, MediaPortal, Plex, and Voddler are separate derivative products that are all known to initially have forked (copied) the GUI (Graphical User Interface) and media player parts of their software from XBMC's source code.[1][7][16][17][18]

Overview

XBMC supports most common audio, video, and image formats, playlists, audio visualizations, slideshows, weather forecasts reporting, and third-party plugins. It is network-capable (internet and LAN shares). Unlike proprietary media center applications like Windows Media Center from Microsoft, or other free-software media center applications such as MediaPortal and MythTV, XBMC Media Center does not yet include native DVR/PVR TV-recording functionality or an EPG TV-Guide interface of its own, it does however offer the possibility to integrate such functionality through third-party plugins.[1][7][10][12]

Through its plugin system, which is based on the Python programming language, XBMC is expandable via add-ons that include features such as television program guides, YouTube, Veoh, online movie trailer support, and SHOUTcast/Podcast streaming. XBMC also functions as a gaming platform by allowing users to play mini-games developed with Python, on any operating system.[1][7][12][19][20][21]

The Xbox version of XBMC also contains the ability to launch console games, and homebrew applications such as emulators. Since the XBMC for Xbox version is not distributed, endorsed, or supported by Microsoft, it means that XBMC for Xbox requires a modchip or softmod exploit to run on the Xbox game-console.[2][3][11][12]

XBMC source code is distributed as open source under GPL (GNU General Public License),[12] and is developed by a global community of volunteering people working on XBMC for free in their spare time on behalf of others without being motivated by financial or material gain[20][21][22][23][24][25][26][27]

Hardware requirements

XBMC has greater basic hardware requirements than a traditional 2D software applications, this basically means that it needs 3D capable GPU graphics hardware controller for all rendering; on the other hand, powerful 3D GPU chips are common today in most modern computers. Other than that, XBMC has from the start been designed to be resource efficient and runs extremely well on what (by Intel Atom standards) are relatively underpowered OpenGL 1.3 (with GLSL support) or Direct3D (DirectX) 9.0 capable systems that are IA-32/x86, x86-64 or PowerPC CPU based.[1] In order to allow for smooth playback of 1080p high definition content without dropping frames, an Intel Core 2 Duo 2.0 GHz processor or better is required when decoding purely using the CPU, though hardware accelerated video decoding using VDPAU is supported in XBMC 9.04 (and later) under Linux on Nvidia graphics hardware.[28]

Features

Audio/video playback and handling

XBMC can play media from CD/DVD media using an internal DVD-ROM drive. It can also play media from an internal built-in hard disk drive and SMB/SAMBA/CIFS shares (Windows File-Sharing), or stream them over ReplayTV DVRs/PVRs, 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 themoviedb.org or imdb.com to obtain thumbnails and reviews on movies, thetvdb.com for TV Show posters and episode plots, 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 standard-definition (480i/480p/576i/576p) resolution videos and output them to 720p, 1080i, and 1080p high-definition resolutions.[1][12][29]

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, or encode to AC3 in real time from movies directly to S/PDIF digital output to an external audio-amplifier/receiver for decoding.[1][12]

Supported formats:

Video playback in detail

Video Library

The Video Library, one of the XBMC metadata databases, is a key feature of XBMC. It allows the organization of video content by information associated with the video files (e.g. movies and recorded TV Shows) themselves. This information can be obtained in various ways, like through scrapers (i.e. web scraping sites like IMDb, TheMovieDB, TheTVDB, etc.), and nfo files. Automatically downloading and displaying movie posters and fan art backdrops as background wallpapers. The Library Mode view allows you to browse your video content by categories; Genre, Title, Year, Actors and Directors.[1][10]

Video Player Cores

XBMC uses two different multimedia video player 'cores' for video-playback. The first 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 free open source libraries code libdvdcss and libdvdnav).[7] This video-player 'core' supports 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 pause 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.[1][10]

The second video-player 'core' for video-playback is a ported version of the open source cross-platform player, MPlayer, which today is only used as a backup player in XBMC for Xbox and not in any other versions of XBMC. MPlayer which is known for playing practically all common media-formats and XBMC for Xbox handles all codecs and containers normally supported by MPlayer, (which is all FFmpeg supported codecs and also several external ones with the help of proprietary DLL-files.[3][7]

Audio playback in detail

Music Library

The Music Library, one of the XBMC metadata databases, is another key feature of XBMC. It allows the organization of your music collection to allow searching, and creating smart playlists by information stored in your music file ID meta tags, like title, artist, album, production year, genre, and popularity. Automatically downloading and displaying album covers and fan art backdrops as background wallpapers.[1][10]

Audio Player Cores

For music 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 (Nintendo GameCube). It also supports many different tagging standards: APEv1, APEv2, ID3v1, ID3v2, ID666 and Vorbis comments. XBMC also have support for most popular karaoke computer file formats, and is able to play and display timed song lyrics graphics/text from CD+G, LRC, and KAR files.[12]

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.[3]

Plugins and scripts (widgets/gadgets) addons

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 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.[1][7][19][20][21]

Dashboard function (game/application launcher)

XBMC has a "My Programs" section which 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.[11]

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, Turkish and Ukrainian.[3]

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.[1][21][30][31][32][33]

"Confluence" and "Project Mayhem" are the two official skins; "Confluence" is the default since version 9.11, and "Project Mayhem" was the previous default which is now in its third version, commonly known as "PM3.HD" (PM III High-Definition).[10]

Many third-party skins exist and while some are originals with unique designs, most are clones or an exact replica of other multimedia software interfaces, such as DivX Connected, Apple Front Row, Windows Media Center Edition (MCE), MediaPortal, Meedio/MeediOS, HDeeTV, Kaleidescape, Wii Channel Menu (Xii), Xbox 360 Blades (MC360), Xbox 360 New Xbox Experience (Xperience), and others.[9]

User Interface Screenshots from XBMC

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-lives, 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[11]

XLink Kai (Xbox Live online-gaming alternative)

XBMC for Xbox formerly had a XLink Kai front-end integrated to control that client, but that has been removed in more recent builds.[11]

Official Team-XBMC ports of XBMC

Due to the dated hardware of the Xbox and a desire to expand the project's end-user and developer-base many official ports of XBMC to computer operating-systems and hardware platforms now exist. Through the processing power of modern computer hardware, XBMC is able to decode high-definition video up to and beyond 1080p resolutions, bypassing hardware limitations of the original Xbox version of XBMC.

In most cases XBMC does not provide hardware accelerated video decoding, thus placing the entire load of the video decoding process on the system's CPU. However, XBMC for Linux does support VDPAU GPU hardware video decoding, and in nightly builds of the XBMC SVN there is even support for 1080p hardware accelerated video decoding via Broadcom Crystal HD on all platforms except Xbox.[7][34][35] // The source code for XBMC is constantly updated on a daily basis by developers in a public subversion repository, this public subversion repository does therefor often contain many more features and function than the most recent 'stable' releases.

XBMC platforms

XBMC Live

XBMC Live is a free Ubuntu-based Linux distribution with XBMC already installed and configured, providing a complete packaged media center software suite for personal computers. XBMC Live uses XBMC Media Center for all media playback and is implemented as a bootable Live CD designed for bare-metal installations, as well as for interactive demonstrations.[13][14][15]

As a Live CD, the system does not need to be permanently installed to a hard disk drive, as most modern operating systems would. Instead, the computer can simply be booted with the XBMC Live CD when media playback is desired. This is a reasonable approach for those who do not need media playback services while performing other tasks with the same computer, or for users who wish to repurpose older computers as media center, and for those seeking a free alternative to Windows Media Center, or for those who simply want to try out the XBMC Media Center software for the first time without having to install anything. The Microsoft MCE Remote and IR-receiver dongle for Windows Media Center works with XBMC Live directly out of the box, which mean that Windows Media Center users with these can try out the XBMC Live without requiring any additional hardware.[13][14][15]

Following the principles of Mythbuntu, KnoppMyth, Mythdora, and GeeXboX, XBMC Live is also designed to simplify a permanent installation of XBMC Media Center onto a computer to be used as a dedicated HTPC (Home Theater PC) in the living-room, as such the user can directly install XBMC Media Center from the bootable XBMC Live CD to either a USB flash drive or to an internal hard disk drive as it comes with a complete (Linux based) embedded operating system. When installed onto a USB flash drive or internal hard disk drive, XBMC Live has the ability to save settings and make updates to XBMC Media Center and the operating-system back onto the USB flash drive or hard disk drive that it is installed onto. This is not possible when running XBMC Live off a CD-ROM as they are read-only and any changes to settings are only temporary meaning that they get reset back to defaults once the system is rebooted.[13][14][15]

XBMC for Linux

XBMC for Linux is primarily developed for Ubuntu Linux and XBMC's developers' own "XBMC Live" (Live CD Linux distribution prepackaged with XBMC as a preconfigured media center software appliance operating-system). Third-party packages for most other Linux distributions are however available, and it is also possible to compile XBMC Media Center from scratch for any Linux distribution. XBMC for Linux is currently the only stable version of XBMC to support hardware accelerated video decoding, and this is achieved via VDPAU (on Nvidia's GPU). XBMC for Linux also supports via hardware accelerated video decoding Broadcom Crystal HD in the latest unstable nightly builds from the XBMC SVN.[34][35] Development version of XBMC for Linux is available at Launchpad as PPA (Personal Package Archive) for the standard Ubuntu Desktop version 8.04 and later, as well as DEB packages for Debian.

XBMC for Mac

XBMC for Mac runs natively on Mac OS X (Snow Leopard, Leopard, Tiger), as well as on the Apple TV. 1080p playback can be achieved on Apple computers either via software decoding on the CPU if it is powerful enough, or by hardware accelerated video decoding via Broadcom Crystal HD.[34][35]

1080p playback on the Apple TV (a.k.a. "ATV") can only be achieved by hardware accelerated video decoding via Broadcom Crystal HD, the user must replace the ATV's internal WiFi adapter with a Broadcom Crystal HD PCI Express Mini (mini-PCIe) card in order to activate this functionality.[34][35]

XBMC for Windows

XBMC for Windows runs natively on Windows XP, Windows Vista, and Windows 7, it is a 32-bit application but runs on 64-bit Windows and hardware as well, however it is not yet optimized for that architecture so there is no performance gain when running on 64-bit Windows. 1080p playback can be achieved on Windows based computers either via software decoding on the CPU if it powerful enough, or by hardware accelerated video decoding.

Hardware video decoding via DirectX Video Acceleration [36][37] is now supported in the nightly builds although this enhancement currently only runs on Windows Vista and Windows 7 due to the author currently using the DXVA 2.0 API which is not supported in Windows XP. This enhancement is likely to move into the stable 10.05 release on 2010-05-15.[38]

XBMC for Xbox

XBMC for Xbox. The 9.04 (codename: "Babylon") point-release version of XBMC for Xbox which was released on May 6, 2009 is the last 'stable' version, the developers of XBMC have said that there will be no more point releases of XBMC for Xbox because the focus for most XBMC developers has completly shifted to the Linux, Mac, and Windows versions instead.

Since XBMC for Xbox is an open source software program, its development source code is stored on a publicly accessible subversion repository. Accordingly, unofficial executable builds from the subversion repository are often released by third-parties on sites unaffiliated with the official XBMC project. 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.[3][11]

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.[2][3][11][12]

Commercial XBMC Systems

This is a list of third-party companies who sell hardware bundled with XBMC Media Center or XBMC Live pre-install, or sell uninstalled systems that specifically claim to be XBMC-compatible. Many of these third-party companies help submit bug fixes and new features back upstream to the original XBMC project.

AIRIS Telebision

AIRIS Telebision, sold by Telebision in Spain and designed specifically for the Spanish market, is a nettop based on Nvidia Ion chipset, preinstalled Ubuntu base with XBMC for Linux and a costumized AEON skin and Spanish plugins. Other than the modified skin, what is unique with the AIRIS Telebision's XBMC build is that is comes with an digital distribution service platform that they call their "App Store" which lets users download new Spanish plugins and updates for existing plugins. Telebision also a let users download a Live CD version of their software as freeware, which lets you install their Telebision distribution on any Nvidia Ion based computer.

Lucida TV II

Lucida TV II, made by LUCIDQ inc, is a nettop based on Nvidia Ion chipset which can be ordered with Xubuntu and XBMC software installed.

Myka ION

Myka ION is an Nvidia Ion based set-top device designed to bring internet television and media stored on the home network to the living-room, it comes pre-installed with XBMC Media Center, Boxee, and Hulu Desktop as applications that can be started from the main menu.[39]

Neuros LINK

Neuros LINK made by Neuros Technology is an open Ubuntu-based set-top device and media extender designed to bring internet television and other video to the television, it comes pre-install with XBMC Media Center.[7][40]

Third-party forks and derivative work of XBMC

XBMC Media Center source code have over the years become a popular software to fork and use as a application framework platform for others to base their own media center software on, as if XBMC were a GUI toolkit, windowing system, or window manager. Today at least Boxee, MediaPortal, Plex, and Voddler are separate derivative products that are all known to initially have forked the GUI (Graphical User Interface) and media player part of their software from XBMC's source code. Most of these third-party forks and derivative work of XBMC still help submit bug fixes upstream and new features sometimes get backported to the original XBMC project.[1][18]

Boxee

Boxee is a freeware and partially open source software cross-platform media center and entertainment hub with social networking features that is a fork of XBMC software.[41][42][43] Boxee now supports Windows, Linux, and OSX, with the first Alpha made available on June 16, 2008.[1][18][44]

iConsole

iConsole (formerly known under the project codename "Full Circle"), produced by startup company MechaWorks, is a freeware and partially open source media center and entertainment hub with video game console features that is initially a fork of XBMC and Boxee software.[45][46][47][48][49][50] The first public Alpha release will be as a Linux based distribution, primarily designed to be installed on a computer's empty harddive to make a computer in to a dedicated HTPC, similar to that of the XBMC Live distro but specifically targeted to a minimum set-top box hardware setup.[45][47][49][50][51]

MediaPortal

MediaPortal is free and open source software media center written for Microsoft Windows that is initially based on forked XBMC source code by Erwin Beckers (a.k.a. Frodo, who was also one of the original founders of XBMC) in February 2004. The reason for this fork to Microsoft Windows was to get away from hardware limitations of the Xbox platform that XBMC development started on, mainly because of the Xbox inability to support TV-tuner adapters natively as Erwin wanted PVR functionality. Now after several years and innumerable feature changes there has been almost a complete re-design of the source code, however the skinning engine still remains very similar to that of the original XBMC software making it relatively easy for people to port skins/themes back and forth between the two projects, something that is done quite frequently.[1][18][52]

Plex

On May 21, 2008, Elan Feingold, the Team-XBMC member who first started the Mac OS X port of XBMC, left the original XBMC project. He forked the source code and started a new free and open source software project called Plex (previously this Mac OS X port of XBMC was informally known as "OSXBMC"), however when leaving the original XBMC project Elan said that he would still try to continue to collaborate with most Team-XBMC members behind the scenes and try to keep Plex skinning engine compatible with XBMC skins.[1][17][18][53][54]

Voddler

Voddler is a commercial video-on-demand service and client software streaming movies and television programming, similar to Spotify and Grooveshark but for video. The service in its ad-driven version is only available in parts of western Europe during the ongoing testing period although the subscription model should be available in almost all countries. Voddler's first media player software was called "Voddler Player" (also referred to by Voddler as the "Voddler Client") and was initially a fork based on the XBMC open source code.[55][56][57][16][58][18] All the time while they were using XBMC source code in their application, Voddler have been publicly criticized for violating the GPL since they did not release their modifications to the code which they used in their application.[59][60][61][62][63][64][65], and in the end due to these conflicts with the GPL Voddler has since 24 February 2010 stopped using XBMC and instead moved to using Adobe's Air proprietary framework, however they still have not released all the source code that they are required to by the GPL[66][67][68][69][70][71]

OpenELEC.tv

OpenELEC.tv ("Open Embedded Linux Entertainment Center") is a free embedded operating system providing a complete media center software suite. OpenELEC is an extremely small and very fast booting Linux based distribution, primarily designed to be booted from CompactFlash or other flash memory card or solid-state drive, similar to that of the XBMC Live distro but specifically targeted to a minimum set-top box hardware setup based on an Intel x86 processor and graphics.[72][73]

Element OS

Element OS is a free embedded operating system designed for Home Theater PC (HTPC) which is connected to a HDTV. Element OS is a Linux based distribution similar to that of the XBMC Live distro, however it comes comes preloaded with dozens of applications that will allow you to listen to, view, and manage your music, videos, photos, and internet media, of which XBMC is the main media center that comes preinstalled, but it still gives you the option to also install Boxee, Moovida, Hulu Desktop, or all of them.[74]

Sabayon Linux

Sabayon Linux is a full Linux distribution that among other applications comes with a preinstalled and preconfigured "ready-to-use" version of XBMC Media Center.[75]

Programming and developing

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

XBMC is a cross-platform software application programmed mainly in C++, XBMC uses SDL (Simple DirectMedia Layer) multimedia framework and OpenGL graphics rendering under XBMC for Linux, Mac OS X, and Microsoft Windows based operating system, however XBMC for Xbox instead uses Microsoft DirectX multimedia framework and Direct3D rendering as the Xbox does not support OpenGL. 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.[7][28]

Python scripts as plugins and addons (widgets/gadgets)

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 non-developers to themselves create new add-ons functionality to XBMC, (using the easy to learn Python programming language), without knowledge of the complex C/C++ programming language that the rest of the XBMC software is written in. Current plugin scripts add-ons include functions like Internet-TV and movie-trailer browsers, cinema guides, Internet-radio-station browsers (example SHOUTcast), and much more.[7]

Developing XBMC for Xbox

The Xbox SDK (Xbox Development Kit, a.k.a. XDK) software development kit (with libraries) is required to compile XBMC.[11] Also required to compile (and program in) XBMC is Microsoft Visual Studio .NET version 7.1[3] The Xbox BIOS is based on Win32, but does not have all of the resources or capabilities of a full Windows NT based operating system, (for example: neither DirectShow, registry, nor DLL are natively supported on the Xbox), and because of the constraints on the hardware and environment of the Xbox, all software development of XBMC for Xbox is focused on reserving the limited resources that exist, the main hindrance of which is the amount of available RAM at any one time.[3]

Limitations

Cross-platform (software) limitations

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

Xbox-specific limitations

This is a list of Xbox hardware and Xbox operating-system specific limitations that do not affect XBMC for Linux, Mac OS X, or Windows.

  • 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 2GB (Gigabyte) file-size limitation, which cannot be bypassed.[3]
  • The Xbox built-in harddrive is formatted in FATX (File Allocation Table for Xbox) which has a 4GB (4096 Megabyte) 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. FATX also does not support all standard ASCII characters in file/folder names (for example < > = ? : ; " * + , / \|¤ &). XBMC will automatically try to rename any files/folders you transfer to the Xbox according to these limitations. None of these file-size and file-name issues are XBMC bugs as the limitations are in the Xbox itself. Workaround: Store your files/folders on your computer or a Network-Attached Storage (NAS) device which supports SMB/CIFS, FTP or UPnP and share them over a local-area-network instead.[3][11]
  • 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.[11]
  • With its by today's standard old and slow 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 HDTV videos encoded in native 720p/1080i resolution. However, XBMC on the Xbox can up-convert all standard definition movies and output them at 720p or 1080i.[3][11]
  • 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.[80] 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, then the video's native-resolution can be anything up to 960x540 pixels (a resolution which is also known as HRHD resolution).[11]

Reception

XBMC won two SourceForge 2006 Community Choice Awards.[81] In the 2007 Community Choice Awards, XBMC was nominated finalist in six categories.[82] Also in the 2008 Community Choice Awards XBMC won an award for Best Project for Gamers.[83]

History

XBMC Media Center is the successor to the popular Xbox Media Player (XBMP) software. Xbox Media Player development stopped on December 13, 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 June 29, 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, a newer version of MPlayer was packaged and the embedded Python was given the ability to draw interface elements.[3][10]

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 fixes. The second stable release of XBMC, 1.1.0, was released on October 18, 2004. This release included support for more media types, file types, container formats, as well as video playback of Nullsoft streaming videos and karaoke support (CD-G).[3]

After two years of heavy development, XBMC announced a stable point final release of XBMC 2.0.0 on September 29, 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, and a "skinnable" 3D visualizer.

The release of XBMC 2.0.1 on November 12, 2006 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.

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

Development on the SVN codebase is continuing and the versioning scheme has been changed to reflect the release year and month, i.e. 8.10, 9.04, 9.11, 10.5, etc.

Legality

Template:Globalize/USA 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.[11]

Copyright

The XBMC software is licensed under the GNU General Public License (GPL) by the developers, meaning they allow anybody to redistribute XBMC under very liberal conditions. However, in order to compile the Xbox build of 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 (this does not apply to the Linux, Windows or Mac OS X ports of XBMC). 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 however require significant changes to the XBMC source code.[2][3][11][12]

For audio and video codecs which are not natively supported, XBMC for Xbox via MPlayer 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 for Xbox builds incorporate all available third-party DLLs that XBMC can support, and the redistribution of these without a license is copyright infringement.[28]

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 are released under free and open source licenses they are legally redistributable. However, some of these compression method algorithms, such as the popular MP3 format, are in many countries protected by software patents. Without a licence, this could possibly make it illegal in certain countries to distribute compiled versions of XBMC which include support for these formats.[28]

Web Scraping

XBMC has the built-in optional function to automatically download meta data information and artwork online through its scrapers (i.e. web scraping sites like IMDb, TheMovieDB, TheTVDB, freedb, Discogs, Allmusic etc.), and there could possible be some legal issues associated with web scraping on some of the web sites that XBMC has the ability to scrape. Web scraping may be against the terms of use of some websites, however the enforceability of these terms is unclear.[28][84]

RTMP SWF Verification

On the 20th of February 2010 it was announced that XBMC could no longer play RTMP streams that uses SWF verification, in the words of 'frosty', "Macromedia [owned by Adobe] have sent lawyers after other software that have implemented SWF verification". This is in reference to the fact that the BBC recently closed its doors on its open iPlayer streams, as a result of this XBMC users can now only watch iPlayer content for about a minute before a ping request is not responded to by the XBMC RTMP client, at which time the stream halts and the user is left with nothing to watch.[85]

Other

XBMC also includes libdvdcss to support playing back DVD-Video movies encrypted using the CSS (Content Scramble System) encryption. Since it is not a member of DVD Forum, the XBMC project is not contractually obliged to insert user operation prohibition such as disallowing fast-forward or skipping during trailers and ads in DVD-Videos. However, without membership in the DVD Forum, the project also cannot make XBMC play DVD-Video's encrypted with CSS (Content Scramble System) except by using reverse-engineered code. XBMC therefore uses the libdvdcss library, which was created by reverse-engineering. The legal status of libdvdcss is questionable in several nations, the distribution of executable versions of XBMC containing this code is likely to run afoul of the DMCA (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. For example, many Linux distributions do not contain libdvdcss (for example Debian, Fedora, SUSE Linux, and Ubuntu) due to fears of running afoul of DMCA-style laws, however they still often provide the tools to let the user install it themselves.[7][28]

See also

Template:Commons category Template:Portal box

References

Template:Reflist

External links

Template:Linux-distro Template:Home theater PC (application software)

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

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 Template:Cite web
  2. 2.0 2.1 2.2 2.3 2.4 Template:Cite web
  3. 3.00 3.01 3.02 3.03 3.04 3.05 3.06 3.07 3.08 3.09 3.10 3.11 3.12 3.13 3.14 3.15 Template:Cite web
  4. Template:Cite web
  5. Template:Cite web
  6. 7.00 7.01 7.02 7.03 7.04 7.05 7.06 7.07 7.08 7.09 7.10 7.11 Template:Cite web Cite error: Invalid <ref> tag; name "XBMC 9.04 delivers impressive media center experience" defined multiple times with different content
  7. Template:Cite web
  8. 9.0 9.1 Template:Cite web
  9. 10.0 10.1 10.2 10.3 10.4 10.5 10.6 Template:Cite web
  10. 11.00 11.01 11.02 11.03 11.04 11.05 11.06 11.07 11.08 11.09 11.10 11.11 11.12 11.13 http://www.o-sd.com/hardcoregamermag/publicPDF/HGM_Aug.pdf Review of XBMC in Hardcore Gamer Magazine
  11. 12.0 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 Template:Cite web Cite error: Invalid <ref> tag; name "FLOSS Media Center State of the Art" defined multiple times with different content
  12. 13.0 13.1 13.2 13.3 Template:Cite web
  13. 14.0 14.1 14.2 14.3 Template:Cite web
  14. 15.0 15.1 15.2 15.3 Template:Cite web
  15. 16.0 16.1 Template:Cite web
  16. 17.0 17.1 Template:Cite web
  17. 18.0 18.1 18.2 18.3 18.4 18.5 Template:Cite web
  18. 19.0 19.1 http://code.google.com/p/xbmc-addons/ XBMC-Addons on Google Code (Addon plugins for XBMC)
  19. 20.0 20.1 20.2 http://www.xbmczone.com/ XBMC Zone (third-party Addon extensions for XBMC)
  20. 21.0 21.1 21.2 21.3 http://passion-xbmc.org/ Passion XBMC (third-party Addon extensions for XBMC)
  21. Template:Cite web
  22. http://xbmc.nu xbmc.nu - Swedish XBMC fan site and community
  23. http://xbmc.fr xbmc.fr - French XBMC fan site and community
  24. http://xbmc.de xbmc.de - German XBMC fan site and community
  25. http://xbmcfreak.nl xbmcfreak.nl - Dutch XBMC fan site and community
  26. http://xbmcsvn.com xbmcsvn.com - Nightly Unofficial Builds from SVN All Branches
  27. 28.0 28.1 28.2 28.3 28.4 28.5 28.6 28.7 28.8 Template:Cite web
  28. Template:Cite web
  29. Template:Cite web
  30. Template:Cite web
  31. http://www.teamrazorfish.co.uk MediaStream
  32. http://blackbolt.x-scene.com Team Blackbolt
  33. 34.0 34.1 34.2 34.3 Template:Cite web
  34. 35.0 35.1 35.2 35.3 Template:Cite web
  35. Template:Cite web
  36. Template:Cite web
  37. Template:Cite web
  38. Template:Cite web
  39. Template:Cite web
  40. Template:Cite web
  41. Template:Cite web
  42. Template:Cite web
  43. Template:Cite web
  44. 45.0 45.1 Template:Cite web
  45. Template:Cite web
  46. 47.0 47.1 Template:Cite web
  47. Template:Cite web
  48. 49.0 49.1 Template:Cite web
  49. 50.0 50.1 Template:Cite web
  50. Template:Cite web
  51. Template:Cite web
  52. Template:Cite web
  53. Template:Cite web
  54. Template:Cite web
  55. Template:Cite web
  56. Template:Cite web
  57. Template:Cite web
  58. Template:Cite web
  59. Template:Cite news
  60. Template:Cite web
  61. Template:Cite web
  62. Template:Cite web
  63. Template:Cite news
  64. Template:Cite web
  65. Template:Cite web
  66. Template:Cite web
  67. Template:Cite web
  68. Template:Cite news
  69. Template:Cite web
  70. Template:Cite news
  71. http://www.openelec.tv OpenELEC.tv Official Website
  72. Template:Cite web
  73. http://www.elementmypc.com Element OS Official Website
  74. Template:Cite web
  75. Template:Cite web
  76. Template:Cite web
  77. Template:Cite web
  78. Template:Cite web
  79. Template:Cite web
  80. Template:Cite web
  81. Template:Cite web
  82. Template:Cite web
  83. Template:Cite web
  84. http://www.theregister.co.uk/2010/02/24/iplayer_xbmc_adobe_swf_verification/