Kodi
Template:Use dmy dates Template:Infobox software Kodi (formerly XBMC) is a free and open-source media player software developed by the XBMC Foundation, a non-profit technology consortium.<ref>Template:Cite web</ref> Kodi is available for multiple operating systems and hardware platforms, with a software 10-foot user interface for use with televisions and remote controls. It allows users to play and view most videos, music, such as audio and video podcasts from the internet, and all common digital media files from local and network storage media.<ref name="XBMC is the best media center application. Period.">Template:Cite web</ref><ref name="XboxMediaCenter Review">Template:Cite web</ref><ref name="Modding The Xbox Into The Ultimate Multimedia Center">Template:Cite web</ref>
It is a popular multi-platform alternative to Windows Media Center for HTPC (Home Theater PC) use.<ref name="Hive Five Winner for Best Media Center Application: XBMC">Template:Cite web</ref><ref name="Five Best Media Center Applications">Template:Cite web</ref><ref name="Most Popular Free Mac Downloads of 2008">Template:Cite web</ref><ref name="XBMC 9.04 delivers impressive media center experience">Template:Cite web</ref><ref name="Which Media Center Is Right for You: Boxee, XBMC, and Windows Media Center Compared">Template:Cite web</ref> Kodi is highly customizable: a variety of skins can change its appearance, and various plug-ins allow users to access streaming media content via online services such as example YouTube, Amazon Prime Instant Video, Crackle, Spotify, Rhapsody and Pandora Internet Radio<ref name="Customize XBMC with These Five Awesome Skins">Template:Cite web</ref><ref name="XBMC 9.11 makes your open source home theater look shinier">Template:Cite web</ref> The later versions also have a PVR (Personal Video Recorder) graphical frontend for receiving live television with Electronic Program Guide (EPG) and high-definition DVR (Digital Video Recorder) support.<ref>Template:Cite web</ref>
The software was originally produced as an independently developed (homebrew) media player application named Xbox Media Center (abbreviated as XBMC) for the first-generation Xbox game console,<ref name="XboxMediaCenter Review"/><ref name="Modding The Xbox Into The Ultimate Multimedia Center"/><ref name="Review of XBMC in Hardcore Gamer Magazine">http://www.o-sd.com/hardcoregamermag/publicPDF/HGM_Aug.pdf Review of XBMC in Hardcore Gamer Magazine</ref> and was later made available under the name Kodi (formerly XBMC) as a native application for Android, Linux, BSD, Template:Nowrap, iOS, and Microsoft Windows based operating systems.<ref name="FLOSS Media Center State of the Art">Template:Cite web</ref> It is also available as a standalone version referred to as Kodibuntu.<ref name="XBMC Live 9.11">Template:Cite web</ref><ref name="XBMC Live Atlantis Beta1!">Template:Cite web</ref><ref name="XBMC Live 8.10 (Atlantis) released">Template:Cite web</ref>
Because of its open source and cross-platform nature, with its core code written in Template:Nowrap (ANSI standard), modified versions of Kodi/XBMC together with a JeOS have been used as a software appliance suite or software framework in a variety of devices including smart TVs, set-top boxes, digital signage, hotel television systems, and network connected media players. Derivative applications such as MediaPortal, Plex, ToFu, Voddler, and Horizon TV have all initially been spun off from XBMC.<ref name="XBMC is the best media center application. Period."/><ref name="XBMC 9.04 delivers impressive media center experience"/><ref name="Voddler använder XBMC">Template:Cite web</ref><ref name="CrunchGear Interview: We talk to the lead developer of Plex Media Center for Mac OS X: It was doing Boxee-like stuff before Boxee was cool">Template:Cite web</ref><ref name="Thinking inside the box">Template:Cite web</ref><ref name="Thinking inside the box"/>
On 1 August 2014, it was announced that starting with version 14, XBMC would officially be renamed to Kodi.<ref>http://xbmc.org/introducing-kodi-14/</ref>
Overview
Kodi 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 home network shares). Unlike other media center applications such as Windows Media Center, MediaPortal and MythTV, Kodi does not include its own internal digital TV-tuner code for Live TV or DVR/PVR recording functionality, as instead it acts as a unified DVR/PVR front-end with an EPG TV-Guide GUI interface which, via a common API interface, abstracts and supports multiple back-ends via PVR client add-ons from third parties, with those running either locally on the same machine or over the network.<ref name="XBMC is the best media center application. Period."/><ref name="XBMC 9.04 delivers impressive media center experience"/><ref name="XBMC 9.11 makes your open source home theater look shinier"/><ref name="FLOSS Media Center State of the Art">Template:Cite web</ref><ref>XBMC September Cycle - Personal Video Recorder (PVR) support</ref><ref>Template:Cite web</ref>
Plug-ins, using the Python programming language, expand Kodi to include features such as television program guides, YouTube, Hulu, Netflix, Veoh, online movie trailer support, and Pandora Radio and podcast streaming. Kodi also functions as a gaming platform on any operating system, allowing users to play mini-games developed with Python.<ref name="XBMC is the best media center application. Period."/><ref name="XBMC 9.04 delivers impressive media center experience"/><ref name="FLOSS Media Center State of the Art"/><ref name="XBMC-Addons on Google Code">https://code.google.com/p/xbmc-addons/ XBMC-Addons on Google Code (Addon plugins for XBMC)</ref><ref name="XBMC Zone">http://www.xbmczone.com/ XBMC Zone (third-party Addon extensions for XBMC)</ref><ref name="Passion XBMC">http://passion-xbmc.org/ Passion XBMC (third-party Addon extensions for XBMC)</ref>
Kodi source code is distributed as open source under the GNU General Public License (GPL),<ref name="FLOSS Media Center State of the Art"/> it is sponsored via the tax-exempt registered non-profit US organization, XBMC Foundation, and is developed by a global free software community of unpaid volunteers.<ref name="XBMC Zone"/><ref name="Passion XBMC"/>
Even though the original XBMC project no longer develops or supports XBMC for the Xbox, XBMC on the Xbox is still available via the third-party developer spin-off project "XBMC4Xbox", which forked the Xbox version of the software and completely took over the development and support of XBMC for the old Xbox. The ending of Xbox support by the original project was also the reason that it was officially renamed to simply "XBMC" from the old "Xbox Media Center" name, and why it later was renamed again to "Kodi".<ref name="Farewell XBOX">Template:Cite web</ref><ref name="XBMC Discontinues Xbox Support">Template:Cite web</ref><ref name="XBMC Drops Support for the Original Xbox">Template:Cite web</ref><ref name="XBMC4Xbox">Template:Cite web</ref> The Xbox version of XBMC had the ability to launch console games, and homebrew applications such as emulators. Since the XBMC for Xbox version was never distributed, endorsed, or supported by Microsoft, it always required a modchip or softmod exploit to run on the Xbox game-console.<ref name="XboxMediaCenter Review"/><ref name="Modding The Xbox Into The Ultimate Multimedia Center"/><ref name="Review of XBMC in Hardcore Gamer Magazine"/><ref name="FLOSS Media Center State of the Art"/>
Screenshots
- Xbmc 911.png
Home Screen of the "Confluence" skin.
- Screenshot000.png
Home screen of the "PM3.HD" skin.
- Mc360-screenshot-1.jpg
MC360 skin (Xbox 360 Blades replica).
Hardware requirements
Kodi has greater basic hardware requirements than traditional 2D style software applications: it needs a 3D capable graphics hardware controller for all rendering. Powerful 3D GPU chips are common today in most modern computers, and even some set-top boxes, and XBMC is designed to otherwise be resource efficient. It runs well on what (by Intel Atom standards) are relatively underpowered OpenGL 1.3 (with GLSL support), OpenGL ES 2.0 or Direct3D (DirectX) 9.0 capable systems that are IA-32/x86, x86-64, ARM (AArch32 and AArch64), or PowerPC G4 or later CPU based.<ref name="XBMC is the best media center application. Period."/>
When software decoding of a Full HD 1080p high-definition and high bit-rate video is performed by the system CPU, a dual-core 2 GHz or faster CPU is required in order to allow for perfectly smooth playback without dropping frames or giving playback a jerky appearance. Kodi can however offload most of the video decoding process onto graphics hardware controller that supports one of the following types of hardware-accelerated video decoding:<ref name="XBMC Architecture Overview by Telematics Freedom Foundation">Template:Cite web</ref> Intel's VAAPI, Nvidia's VDPAU, AMD's XvBA, Microsoft's DXVA, Apple's VDADecoder/VideoToolBox, OpenMAX, Broadcom Crystal HD,<ref name="How to install Broadcom Crystal HD driver on Ubuntu?">Template:Cite web</ref><ref name="phoronix1">Template:Cite web</ref> AMLogic 8726-Mx VPU,<ref>http://liliputing.com/2013/05/xbmc-running-in-linux-on-a-tv-box-with-an-amlogic-am8726-mx-chip-video.html XBMC running in Linux on a TV box with an Amlogic AM8726-MX chip</ref> Freescale's i.MX6x series VPU, and Allwinner's CedarX/CedarV VPU.<ref>Template:Cite web</ref> By taking advantage of such hardware-accelerated video decoding, XBMC can play back most videos on many inexpensive, low-power systems, as long as they contain a supported VPU or GPU.
Language support
Kodi includes full internationalization and localization support with translations to many different languages by default, with its language files translated to over 74 languages to date.<ref name="transifex.com"/> Kodi's structure is such that if the language is not available, or not up-to-date, it can be made by editing simple strings in an XML-file, which can then be submitted to XBMC's project management and bug tracking system tool for use by others, and after version 11.0 XBMC switched to using GetText PO (Portable Object) formatted files for more easily handled translator translations using Transifex web-based translation platform with online crowd-sourced translation services.<ref>Template:Cite web</ref> The latest version of XBMC currently supports over 74 languages.<ref>https://github.com/xbmc/xbmc/tree/master/language language at master from xbmc / language – GitHub</ref><ref>http://kodi.wiki/view/Intro_FAQ#What_is_XBMC.3F Intro FAQ - Kodi</ref>
Core features
Addons Manager, addons and plugins
Kodi features several open APIs to enable third-party developers to create capabilities which extend Kodi with a multitude of addons, such as audio and video streaming plugins for online sources, widget scripts, skins/themes, visualizations, screensavers, web scrapers, weather forecasts, web interfaces, and more. Kodi developers encourage users to make and submit their own addons to add additional media content and value-added services accessible from within Kodi.
Kodi/XBMC features, since version 10.0 (codename: "Dharma"), an Addons Framework architecture and Addons Manager GUI client that connects to a decentralized digital distribution service platform that serves add-on apps and plug-ins which among other things provide online content to Kodi, the "Addons Manager" (or "Addons Browser") inside Kodi allows users to browse and download new addons directly from Kodi's GUI.
Many of these online content sources are in over-the-top content high definition services and use video streaming sites, such as Adobe Flash based content. Kodi has extensibility and integration with online sources for both free and premium streaming content, and offers content from everything from commercial video, to free educational programming, and media from individuals and small businesses.
Plugins and scripts
Kodi features a Python Scripts Engine for addon extensions, WindowXML application framework (a XML-based widget toolkit for creating a GUI for apps / widgets) in a similar fashion to Apple Template:Nowrap Dashboard Widgets and Microsoft Gadgets. Python widget scripts allow normal users to add new functionality to Kodi themselves, using Python scripting language. Current plugin scripts include functions like Internet-TV and movie-trailer browsers, weather forecast and cinemaguides, Over-the-top content video streaming services like YouTube, BBC iPlayer, Hulu, Netflix, Veoh, MLB.tv, Internet-radio-station browsers such as Pandora Radio, online picture sharing sites like Flickr, TV guides, e-mail clients, instant messaging, train timetables, home automation scripts to front-end control PVR software and hardware, P2P file-sharing downloaders (BitTorrent), IRC, also casual games such as Tetris and much more.<ref name="XBMC is the best media center application. Period."/><ref name="XBMC 9.04 delivers impressive media center experience"/><ref name="XBMC-Addons on Google Code"/><ref name="XBMC Zone"/><ref name="Passion XBMC"/>
Metadata extraction and web scrapers
Kodi has the built-in optional function to automatically download metadata information, cover art and other related media artwork online through its web scrapers that looks for media in the user's audio / video folders and their sub-directories. These "scrapers" are used as importers to obtain detailed information from various Internet resources about movies and television shows. It can get synopses, reviews, movie posters, titles, genre classification, and other similar data. XBMCGUI then provides a rich display for audio and video files that the scrapers have identified.
Scrapers use sites like themoviedb.org<ref>Template:Cite web</ref> or IMDb.com to obtain thumbnails and information on movies, thetvdb.com for TV show posters and episode plots, CDDB for audio CD track listings, and Allmusic (AMG) and MusicBrainz for album thumbnails, reviews, and metadata.<ref name="XBMC Architecture Overview by Telematics Freedom Foundation"/>
More recently Fanart.tv has been added to the list of information sources<ref>Template:Cite web</ref> and XBMC can use it to retrieve logos, backgrounds, CDs with transparent backgrounds, album covers and banners among other image types for music artists, TV shows and Movies, the popularity of which contributed to XBMC being able to handle new image types.
Skins and themes
Like the majority of most applications that originated from a 'homebrew' scene, modification and customization of the interface using skins is very popular among Kodi users and hundreds of skins and themes are available for users to install. The Kodi skinning engine's flexibility is also advantageous to third parties wanting to create derivative works, as it facilitates rebranding the environment and making deeper changes to the look and feel of the user interface.
The skins "Confluence" and "Touch" are the two official default for; Kodi with an ever evolving variance of "Confluence" being the default set-top box style skin designed for large screen televisions and displays since XBMC version 9.11, and "Touch" which introduced with XBMC version 11.0 being design for small screen devices with touchscreen displays, such as iPad tablets. Previously "Project Mayhem" was the default before XBMC version 9.11, this skin is now in its third version, commonly known as "PM3.HD" (PM III High-Definition).<ref name="XBMC 9.11 makes your open source home theater look shinier"/>
Users can also create their own skin (or simply modify an existing skin) and share it with others via public websites that are used for Kodi skin trading and development.<ref name="XBMC Skining Project">Template:Cite web</ref> Many such third-party skins exist that are well maintained by the community, and while some skins are originals with unique designs, most initially begin as a clone or an exact replica of other multimedia software interfaces, such as Apple Front Row, Windows Media Center Edition (MCE), MediaPortal, Wii Channel Menu (Xii), Xbox 360 interface, and others.<ref name="Customize XBMC with These Five Awesome Skins"/>
Web Interfaces
Web Interface addons for Kodi normally allow browsing a media library remotely, to handle music playlists from a computer instead of television. Others allow remotely controlling the navigation of XBMC like a remote for remote controlling of an installed and concurrently active Kodi session running on a computer if it runs on an internet tablet or similar device with a touch interface. And yet other still acts like a media manager to allow modifying metadata and artwork in XBMC's video and music libraries.
Application launcher
Kodi has a "My Programs" section which is meant to function as an application launcher for third-party software such as computer games and video game emulators, all from a GUI with thumbnail and different listings options. However, while this feature was fully functioning on the Xbox version of XBMC, it is still in its infant stage on Linux, Template:Nowrap, and Windows, thus currently requiring third-party launcher plugins to function properly.<ref name="Review of XBMC in Hardcore Gamer Magazine"/>
Live TV with EPG and PVR / DVR frontend
From version 12.0 (Frodo) Kodi has a native Live TV with EPG (Electronic Program Guide) and DVR (Digital Video Recorder) features with a PVR (Personal Video Recorder) frontend GUI,<ref>Template:Cite web</ref><ref>https://github.com/xbmc/xbmc/pull/1357 [pvr] add PVR and EPG support to XBMC</ref> enabling video capture and playback to and from a hard disk drive with PVR Client Addons for most popular PVR backends (TV tuner card server) that can be installed separately as plugins in XBMC.
PVR backend can either be networked DVR set-top box hardware or PC-based digital video recorder software which can run on the same computer or other computers on the same network. PVR software and hardware is available which can turn computers or appliances running Linux, Template:Nowrap, Microsoft Windows, and Android devices into DVRs.<ref>http://www.techhive.com/article/2031217/htpc-showdown-which-front-end-interface-is-best-.html TechHive - HTPC Showdown: Which front-end interface is best?</ref>
PVR Client Addons are available for many PVR software and hardware such as Argus TV, DVBLink, DVBLogic, DVBViewer, ForTheRecord, Tvheadend, MediaPortal, MythTV, NextPVR (formerly GB-PVR), VDR, Windows Media Center, and Enigma2-based DVR set-top boxes such as Dreambox, DBox2, and Vu+.,<ref>Template:Cite web</ref> as well as PVR Client Addons for direct LAN connection to Network Attached TV-Tuners such as HDHomeRun, PCTV Systems Broadway, VBox Home TV Gateway, and Njoy Digital AnySee N7 DVB-S2 Network-Tuner.<ref>Template:Cite web</ref> There is also a PVR Client Addon for the internet-based television provider FilmOn (FilmOn.TV Networks), as well as a simple PVR client addon for IPTV in general.
Audio, video, and pictures playback and handling
Kodi 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) / DLNA (Digital Living Network Alliance) shares, or stream iTunes-shares via DAAP. Kodi can also take advantage of a broadband Internet connection if available to stream Internet-video-streams like YouTube, Hulu, Netflix, and Veoh, and play Internet-radio-stations (such as Pandora Radio). Kodi also includes the option to submit music usage statistics to Last.fm and Libre.fm. It also has music/video-playlist features, picture/image-slideshow functions, an MP3+CDG karaoke function and many audio-visualizations and screensavers. Kodi can in addition upscale/upconvert all standard-definition resolution videos and output them to 720p, 1080i, and 1080p high-definition resolutions.<ref name="XBMC is the best media center application. Period."/><ref name="FLOSS Media Center State of the Art"/><ref name="Turbo Charge Your New XBMC Installation">Template:Cite web</ref>
Under Microsoft Windows, Kodi supports Directsound and WASAPI; since WASAPI performs no mixing or resampling, it provides best audio quality.<ref>XBMC: Windows Settings for AudioEngine</ref>
Format support
Kodi can be used to play/view all common multimedia formats through its native clients and parsers. It can decode these audio and video formats in software or hardware, 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.<ref name="XBMC is the best media center application. Period."/><ref name="FLOSS Media Center State of the Art"/>
- Supported formats:
- Physical digital media: Blu-ray Disc (unencrypted), CDs, DVDs, DVD-Video, Video CDs (including VCD/SVCD/XVCD), Audio-CD (CDDA), USB Flash Drives, and local Hard Disk Drives
- Network protocol clients: AirPlay/AirTunes,<ref>https://github.com/xbmc/xbmc/commit/ae7b0b54384485e85124bc33c0743ed7cad627a4 add airplay implementation from boxee project</ref><ref>https://github.com/xbmc/xbmc/pull/447 Airtunes support for ios/osx/linux</ref> UPnP / DLNA (Digital Living Network Alliance), SMB/SAMBA/CIFS, AFP, DAAP, Zeroconf/Avahi/Bonjour, NFS, HTTP, HTTPS, WebDAV, FTP, RTSP (RTSPU, RTSPT), MMS (MMSU, MMST), Podcasting, TCP, UDP, SFTP, RTP and RTMP (including RTMP, RTMPT, RTMPE, RTMPTS, RTMPTE, RTMPS<ref>http://rtmpdump.mplayerhq.hu/ RTMPDump used by XBMC</ref>), DHCP, NTP
- Network protocol servers: JSON-RPC server, D-Bus server, Web server, FTP Server, and UPnP AV media server, and a multi-protocol Event Server<ref name="wiki.xbmc.org">http://wiki.xbmc.org/index.php?title=EventServer EventServer</ref>
- Container formats: AVI, MPEG, WMV, ASF, FLV, MKV/MKA (Matroska), QuickTime, MP4, M4A, AAC, NUT, Ogg, OGM, RealMedia RAM/RM/RV/RA/RMVB, 3gp, VIVO, PVA, NUV, NSV, NSA, FLI, FLC, DVR-MS and WTV
- Video formats: MPEG-1, MPEG-2, H.263, MPEG-4 SP and ASP, MPEG-4 AVC (H.264), HEVC (H.265), HuffYUV, Indeo, MJPEG, RealVideo, RMVB, Sorenson, VP8, VP9, WMV, Cinepak
- Audio formats: MIDI, AIFF, WAV/WAVE, MP2, MP3, AAC, AACplus (AAC+), Vorbis, AC3, DTS, ALAC, AMR, FLAC, Monkey's Audio (APE), RealAudio, SHN, WavPack, MPC/Musepack/Mpeg+, Shorten, Speex, 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), and CD-DA
- Digital picture/image formats: RAW image formats, BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX and Targa/TGA
- Subtitle formats: AQTitle, ASS/SSA, CC, JACOsub, MicroDVD, MPL2, MPlayer, MPsub, OGM, PJS, RT, SMI, SRT, SUB, RealText, VOBsub, ubViewer, VPlayer
- Metadata tags: APEv1, APEv2, ID3 (ID3v1 and ID3v2), ID666 and Vorbis comments for audio file formats, Exif and IPTC (including GeoTagging) for image file formats
Video playback in detail
Video Library
The Video Library, one of the Kodi metadata databases, is a key feature of Kodi. 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 users to browse their video content by categories; Genre, Title, Year, Actors and Directors.<ref name="XBMC is the best media center application. Period."/><ref name="XBMC 9.11 makes your open source home theater look shinier"/>
Video player cores
Kodi uses one multimedia video player 'core' for video-playback. This video-player 'core' for video-playback is an in-house developed cross-platform media player, "DVDPlayer", originally designed to play back DVD-Video movies, and this includes support native for DVD-menus, (based on the free open source libraries code libdvdcss and libdvdnav). This FFmpeg based video-player 'core' today supports all widespread mainstream formats. 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 or DVD-Video (IFO/VOB/BUP) images (even directly from uncompressed RAR and ZIP archives), from either local harddrive storage or network-share storage.<ref name="XBMC is the best media center application. Period."/><ref name="XBMC 9.04 delivers impressive media center experience"/><ref name="XBMC 9.11 makes your open source home theater look shinier"/>
Audio playback in detail
Music Library
The Music Library, one of the Kodi metadata databases, is another key feature of Kodi. It allows the organization of a music collection to allow searching, and creating smart playlists by information stored in 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.<ref name="XBMC is the best media center application. Period."/><ref name="XBMC 9.11 makes your open source home theater look shinier"/>
Audio player cores
For music playback, Kodi includes its own in-house developed audio-player, "PAPlayer" (which stands for "Psycho-Acoustic Audio Player"), and this audio-player core's most notable features are on-the-fly resampling of the audio frequency, gapless playback, crossfading, ReplayGain, cue sheet and Ogg Chapter support. The "PAPlayer" audio-player handles a very large variety of audio file-formats, and it also supports most different tagging standards. Kodi also has 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.<ref name="FLOSS Media Center State of the Art"/>
Digital picture/image display in detail
Kodi 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 users view/read, browse and zoom the pictures of comics pages these contain without uncompressing them first.<ref name="Modding The Xbox Into The Ultimate Multimedia Center"/>
Games Manager and game console emulators
Development has been working on new core features which integrates a built-in Games Manager and Game Launcher front-end GUI with a Games Library, and Game Console Emulator API into Kodi. The code for all is currently actively being developed in a separate branch and is not expected to make it into Kodi mainline tree until version 15 at the earliest.<ref>http://www.phoronix.com/scan.php?page=news_item&px=MTQ3MTI XBMC Prepares Support For Running Emulated Games</ref>
Once merged into mainline the integrated Games Manager will add a new unified Games Manager Library and GUI front-end launcher with online metadata web scraping support for information about the games. It also introduces Game Addons as new type of addons with just-in-time emulator installation. Adding a Games Library for Game Metadata, exposing info (current level, number of lives, number of coins earned, etc.) to GUI, as well as extending the Addon API to support Game Client Addons, supporting Kodi's VFS (Virtual File System). In addition to a Joystick (and Gamepad) abstraction layer for common joystick API and joystick input clients.<ref>https://github.com/garbear/xbmc Garrett "garbear" Brown's RetroPlayer branch of XBMC</ref><ref>http://tech2.in.com/video/dell-inspiron-one-2320/278112/tomszNJjmqenwKqGuoe1ppeJvK7JorSXuKi5pbiqqISlh9qr/xbmc-integrated-emulation-with-libretro-retroplayer-wip Xbmc: Integrated Emulation with libretro RetroPlayer wip</ref>
Under active development is also "RetroPlayer" Video Game Console Emulator (ROMs) interface supporting the libretro API and emulator cores (from the RetroArch project, which is its reference front-end). Libretro itself is a modular multi-system game/emulator system that is designed to be fast, lightweight, and portable.<ref>http://xbmcnightlybuilds.com/now-building-openelec-retroplayer-build-images/ Now Building OpenELEC-RetroPlayer Build Images</ref>
This RetroPlayer can via libretro emulator API support emulators for most popular retro game consoles, including but not exclusively; Atari 2600, Atari Lynx, Atari Jaguar, NES (Nintendo Entertainment System), Super Nintendo, Nintendo 64, Game Boy, PlayStation (first-generation "PSX"), Sega Systems (Master System, Genesis, Sega CD, Game Gear), plus multiple retro arcade games via MAME (Multiple Arcade Machine Emulator) and FBA (Final Burn Alpha), as well as ScummVM and MS-DOS based games.<ref>http://libretro.org Libretro - An API for Emulators and Games</ref>
Mobile remotes and second screen apps
There are many software applications for mobile devices available for and associated with Kodi. Some of these mobile apps just works as simple remote controls, while others functions as more advanced second screen companion apps, offering additional information about what you are viewing or listening to on Kodi. Additional information such as metadata about movie actors and music artists, with links to other works available from those persons in your collection or online.
XBMC Remote for Android and XBMC Remote for iOS are free and open source official apps for mobile devices released by Team-Kodi/Team-XBMC on Google Play for Android devices and the App Store for iOS Devices, such as iPhone, iPad, and iPod Touch. These applications act as a second screen<ref>Template:Cite web</ref> and remote control solution which allows for fully browsing the media library and for remote controlling of an installed and concurrently active XBMC session running on a computer via the handheld touchscreen user interface of these device.<ref>Template:Cite web</ref><ref>Template:Cite web</ref>
Several third-party developers have also released multiple other unofficial Kodi remote control apps for Android, BlackBerry, Symbian, Windows Mobile, and Windows Phone devices, as well Apple iOS. Some of these remote control apps are made specifically for controlling Kodi, while some universal remote control apps are capable of controlling many different media center and media player applications, and some of these third-party remote apps cost money while others are free.<ref>Template:Cite web</ref>
Official versions
Due to the dated hardware of the first-generation Xbox game console, that Kodi/XBMC was at first initially designed for, 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 Xbox version of XBMC.
However, in the latest official release of Kodi/XBMC there is hardware accelerated video decoding for DXVA, VDPAU, VA-API GPU hardware video decoding, as well as hardware accelerated video decoding via ARM NEON, and OpenMAX, Broadcom Crystal HD.<ref name="XBMC 9.04 delivers impressive media center experience"/><ref name="XBMC & Broadcom Bring 1080p Decode Upgrade to ill-equipped netbooks, nettops, Apple TVs">Template:Cite web</ref> The source code for XBMC is actively updated by developers in a public Git repository, which may contain features and functionality not yet incorporated into the most recent 'stable' releases.
Kodibuntu
Kodibuntu (formerly XBMCbuntu) is a free Ubuntu-based Linux distribution with Kodi (formerly XBMC) for Linux already installed and pre-configured, providing a complete packaged media center software suite for all IA-32/x86-based personal computers. Kodibuntu uses Kodi software for all media playback and is primarily designed for bare-metal installations to achieve instant-on type boot to achieve a set-top box experience on an HTPC. It replaces XBMCbuntu that in turn replaced XBMC Live, which was formerly the official Live CD (Linux) distribution.<ref name="autogenerated1">Template:Cite web</ref>
Kodibuntu operating-system is based on Lubuntu, an Ubuntu Linux fork that is "lighter, less resource hungry and more energy-efficient" than the standard Ubuntu desktop distributions. The Microsoft MCE Remote and IR-receiver dongle for Windows Media Center works with Kodibuntu directly out of the box, which mean that Windows Media Center users with these can try out the Kodibuntu without requiring any additional hardware.<ref name="XBMC Live 9.11"/><ref name="XBMC Live Atlantis Beta1!"/><ref name="XBMC Live 8.10 (Atlantis) released"/>
Following the principles of Myth TV distributions and GeeXboX, Kodibuntu is designed to simplify a permanent installation of Kodi onto a computer to be used as a dedicated home theater PC in the living-room, as such the user can directly install XBMC from the bootable CD to either a USB flash drive or to an internal hard disk drive as it comes with a complete instant-on (Linux kernel-based) embedded operating system. When installed onto a USB flash drive or internal hard disk drive, Kodibuntu has the ability to save settings and make updates to XBMC and the operating-system back onto the USB flash drive or hard disk drive that it is installed onto.
Native applications
Kodi for Linux (formerly XBMC for Linux) is primarily developed for Ubuntu Linux and Kodi's developers' own Kodibuntu (formerly XBMCbuntu). 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 as long as the prerequired dependency libraries are installed first. Hardware accelerated video decoding is achieved via the VDPAU API on Nvidia's GPUs, and via the VAAPI API for AMD/ATI Radeon, S3 Graphics, and Intel's newer Integrated Graphics Processors, as well as hardware accelerated video decoding via OpenMAX, ARM NEON, Broadcom Crystal HD on systems with supporting hardware.<ref name="XBMC & Broadcom Bring 1080p Decode Upgrade to ill-equipped netbooks, nettops, Apple TVs"/> Development version of Kodi/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.
Kodi for OS X(formerly XBMC for Mac) runs natively on Template:Nowrap and later, 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 for hardware supporting Apple's VDA API, or video decoders such as the Broadcom Crystal HD.<ref name="XBMC & Broadcom Bring 1080p Decode Upgrade to ill-equipped netbooks, nettops, Apple TVs"/>
1080p playback on the first-generation Apple TV (a.k.a. "ATV1") 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.<ref name="XBMC & Broadcom Bring 1080p Decode Upgrade to ill-equipped netbooks, nettops, Apple TVs"/>
Kodi for Windows (formerly XBMC for Windows) runs natively on Windows Vista, Windows 7, and Windows 8, 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's powerful enough, or by hardware accelerated video decoding.
Hardware video decoding via DirectX Video Acceleration<ref name="Initial native support for DXVA2 in SVN">Template:Cite web</ref><ref name="Changeset 27376">Template:Cite web</ref> is now supported although this enhancement currently only runs on Windows 7 since it utilizes the DXVA 2.0 API which is not supported in Windows XP.<ref name="XBMC Roadmap">Template:Cite web</ref>
Kodi for iOS (formerly XBMC for iOS), which is a full port of Kodi to Apple's iOS operating-system, was first announced and released publicly on 20 January 2011. It supports both 720p and 1080p hardware accelerated video decoding of H.264 videos, and is compatible with all Apple's iDevices that uses Apple A4 or Apple A5 (ARM-based) processors with a jailbroken iOS operating-system.<ref>Template:Cite web</ref>
Kodi for Android (formerly XBMC for Android) is a full port of the complete Kodi/XBMC application to Google's Android operating-system, officially compatible with Android 4.0 (Ice Cream Sandwich) and later versions supporting API Level 14.<ref>Android 4.0 APIs</ref> was first announced and its source code released publicly on 13 June 2012. This is a full port of Kodi's Template:Nowrap and C source code with all its dependencies to Android with a build-system that was designed to handle multiple processor architectures, like ARM, MIPS, and x86 with the Android NDK (Native Development Kit for Android) without using a single line of Java, and the XBMC.APK is running natively under Android as a NativeActivity application.<ref>Template:Cite web</ref> Hardware accelerated video decoding on Android is currently only officially available for some specific hardware platforms, such as the Amlogic SoC based Pivos XIOS series which have been used as the reference hardware platform during the development so far.<ref>Template:Cite web</ref> XBMC source code must be compiled with Google's official Android NDK revision 10d or later, and be built for the android-17 toolchain (Android API Level 17) using GCC version 4.8, which Kodi for Android code currently requires to compile correctly but is not supported by Google's Android NDK. This is also the real reason why XBMC for Android does not support the original Google TV, since the Android NDK was not made available for older Google TV devices it means that Kodi/XBMC could not be compiled for it today.<ref>Template:Cite web</ref>
Xbox
Template:Main XBMC 9.04 (codename: Babylon) point-release version of XBMC for Xbox, now obsolete, was released on 6 May 2009 as the last official version of XBMC for Xbox. The original developers of XBMC have since issued a statement stating they will no longer develop or support XBMC for Xbox as part of the XBMC project as of 27 May 2010. The development of XBMC for Xbox ended because the focus for all Team XBMC developers has completely shifted to the Linux, Mac, and Windows versions of XBMC instead.
Even though the original XBMC project no longer develops or supports XBMC for the Xbox, an XBMC version for the Xbox is still available via the third-party developer spin-off project "XBMC4Xbox", who have completely taken over the development and support of XBMC for the original Xbox.<ref name="Farewell XBOX"/><ref name="XBMC Discontinues Xbox Support"/><ref name="XBMC Drops Support for the Original Xbox"/><ref name="XBMC4Xbox"/>
XBMC for Xbox was never an authorized/signed Microsoft product, therefore a modification of the Xbox is required in order to run XBMC on an 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.<ref name="XboxMediaCenter Review"/><ref name="Modding The Xbox Into The Ultimate Multimedia Center"/><ref name="Review of XBMC in Hardcore Gamer Magazine"/><ref name="FLOSS Media Center State of the Art"/> Since XBMC for Xbox was part of an open source software program, its development source code was 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.<ref name="Modding The Xbox Into The Ultimate Multimedia Center"/><ref name="Review of XBMC in Hardcore Gamer Magazine"/>
Commercial systems
The developers of Kodi (formerly XBMC) state that as long as the GPL licensing of the Kodi software is respected they would love Kodi to run on as many third-party hardware platforms and operating systems as possible, as "Powered by Kodi" (or "Powered by XBMC") branded devices and systems. They envision Kodi being pre-installed as a third-party software component that commercial and non-commercial ODM/OEM's and systems integrator companies can use royalty-free on their own hardware, hardware such as set-top boxes from cable-TV companies, Blu-ray Disc and DVD players, game-consoles, or embedded computers and SoC (System-on-a-Chip) built into television sets for web-enabled TVs, and other entertainment devices for the living room entertainment system, home cinema, or similar uses.<ref name="xbmc.org">http://xbmc.org/about/commercial-use/ Commercial use of XBMC</ref>
Below is a list of third-party companies who sell hardware bundled with Kodi or XBMC software pre-install, or sell uninstalled systems that specifically claim to be Kodi or XBMC-compatible. Many of these third-party companies help submit bug fixes and new features back upstream to the original Kodi/XBMC project.<ref name="xbmc.org"/>
Computer hardware
ARCTIC - a company based in Switzerland best known for their cooling solutions worked in partnership with the OpenELEC team. On 5 February 2013, together they released a fully passive cooled Entertainment system - the MC001 media centre (US and EU version), equipped with the latest XBMC 12 (OpenELEC 3.0) platform. OpenELEC and ARCTIC are planning on their next release, aim to provide a more dedicated builds for the ARCTIC MC001 media centre systems.<ref>Template:Cite web</ref><ref>Template:Cite web</ref><ref>Template:Cite web</ref><ref>Template:Cite web</ref><ref>Template:Cite web</ref>
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 customized AEON skin and Spanish plugins. Other than the modified skin, what is unique with the AIRIS Telebision's XBMC build is that it comes with a digital distribution service platform that they call their "App Store" which lets users download new Spanish plugins and updates for existing plugins. Telebision also lets users download a Live CD version of their software as freeware, which lets users install their Telebision distribution on any Nvidia Ion based computer.
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.
Pulse-Eight Limited sells both custom and off the shelf hardware solutions primarily designed for Kodi/XBMC, such as remote controls, HTPC systems and accessories, including a custom HTPC PVR set-top-box pre-installed with XBMC that they call "PulseBox"<ref>Template:Cite web</ref> Pulse-Eight also offers free performance tuned embedded versions of XBMC that they call "Pulse" which is based on OpenELEC and a custom PVR-build of XBMC that is meant to run on your dedicated HTPC system.<ref>http://packages.pulse-eight.net Pulse-Eight Packages</ref>
Xtreamer Ultra and Xtreamer Ultra 2, manufactured by the South Korean company Unicorn Information Systems, are nettops based on Nvidia graphics and Intel Atom processors which comes with OpenELEC and Kodi/XBMC software pre-installed. The first-generation Xtreamer Ultra uses Nvidia Ion chipset with a 1.80 GHz Dual-Core Intel Atom D525 CPU, while the Xtreamer Ultra 2 uses discrete GeForce GT 520M graphics with a 2.13 GHz Dual-Core Intel Atom D2700 CPU.<ref name="linuxfordevices1">XBMC-based embedded Linux distro debuts on HTPC mini-PC - News - Linux for Devices. Archive.is (2011-10-21). Retrieved on 2013-07-24.</ref>
Since 10 September 2010, ZOTAC is shipping a software bundle that they call ZOTAC Boost XL with all their new motherboards and Mini-PCs, such as Zotac's ZBOX and MAG series of Nettops which Zotac also does demos of with XBMC.<ref>Template:Cite web</ref> This ZOTAC Boost XL software bundle consist of the software applications; Auslogics BoostSpeed, Cooliris, Kylo (HDTV-optimized Web Browser), and XBMC Media Center.<ref>Template:Cite web</ref>
Zotac's ZBOX and MAG series of small Mini-PCs are nettop's based on Intel, AMD, or Nvidia graphics, and they are all sold in both as complete ready-to-use computer and as barebone computers (without memory and hard drive). Zotac Zbox ID33, ID34, ID81, ID80 and AD04 are all specifically marketed towards the HTPC market, with some coming with slot-loading Blu-ray Disc optical disc drive, and some with a remote control.<ref>Template:Cite web</ref>
The mintBox by the Linux Mint team is an OEM version of the Israeli company CompuLab's fit-PC, which comes preinstalled with Linux Mint open source operating-system and software, MATE (desktop environment), and XBMC. Available in two fanless models, both with AMD APUs, HDMI output port, eight USB slots, two eSATA ports, Gigabit Ethernet, 802.11 b/g/n Wi-Fi, built-in Bluetooth, and an infrared media center remote control.<ref>Template:Cite web</ref>
Dedicated devices
PrismCube Ruby by Marusys is a DVB-S2 Twin-Tuner high-definition DVR/PVR set-top-box with running XBMC as its main interface on-top of embedded Linux.<ref>http://www.prismcube.com/ PrismCube</ref><ref>http://prismcube.org PrismCube.org Community</ref><ref>http://www.astrasat.nl/digitale-ontvangers/prismcube-xbmc-mediaplayer.html PrismCube XBMC mediaplayer</ref><ref>http://digitalt.tv/prismcube-set-top-box-baseret-pa-xbmc/ Prismcube – Set Top PVR Box baseret på XBMC</ref><ref>http://volpefirm.com/tech-review-i-hbbtv-linux-a-cool-box/ Tech Review | HbbTV, Linux & a Cool Box</ref>
The Little Black Box is a Linux kernel-based ARM media player with XBMC as its main interface.<ref>http://www.thelittleblackbox.nl The Little Black Box</ref><ref>http://www.tgdaily.com/consumer-electronics-features/71220-video-this-little-130-black-box-runs-xbmc-linux This little $130 black box runs XBMC Linux</ref><ref>http://www.geeky-gadgets.com/the-little-black-box-open-source-xbmc-media-centre-unveiled-video-29-04-2013/ The Little Black Box Open Source XBMC Media Centre Unveiled</ref><ref>http://www.j1nx.nl/thelittleblackbox-xbmc-for-the-masses/ TheLittleBlackBox – XBMC for the masses</ref><ref>http://www.cnx-software.com/2013/07/21/the-little-black-box-xbmc-stb-gets-users-feedback-becomes-available-on-amazon/ The Little Black Box XBMC STB Gets Users’ Feedback, Becomes Available on Amazon</ref><ref name="Gnews.com">Template:Cite web</ref>
Marusys MS630S and MS850S are high-definition PVR-ready set-top-boxes with the ability to run Linux kernel-based media players like XBMC, and Marusys is advertising these two devices as compatible with XBMC.<ref name=Marusys>Template:Cite web</ref>
Myka ION is a fanless 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.<ref>Template:Cite web</ref>
The MK-X1 by Modified Konstructs is an Nvidia Ion-based set-top device based on Acer Aspire Revo that comes pre-loaded with XBMC, and the device has a recommended retail price of $300(US).<ref>Template:Cite web</ref>
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-installed with XBMC Media Center.<ref name="XBMC 9.04 delivers impressive media center experience"/>
BryteWerks Model One Projector is a 1080p HD digital video projector designed for home cinema use, it has an integrated Home Theater PC running a custom version of XBMC. In addition it features a remote control, as well as a 720p 8.9-inch touch screen panel display on the back of the projector that allows you to control the system. It also has a built-in Wi-Fi and Ethernet adapters, as well as a slot-loaded Blu-ray Disc player, and includes a 500 GB solid-state drive and an additional internal 2 TB hard disk drive can be added.<ref>Template:Cite web</ref>
The Primus by Mediaimpact Technologies is a Linux Mint-based Media Center and Set-Top-Box that integrates MythTV, Netflix Desktop, Hulu Desktop, and Steam Gaming through Kodi for a seamless Home Entertainment system ready for the living room. Comes complete with SMK-Link remote control.<ref>http://www.blacksmithpc.com Blacksmith PC</ref>
Derivatives and forks
Template:Main Kodi/XBMC media center source code have over the years become a popular software to fork and to use as an application framework platform for others to base their own media player or media center software on, as if Kodi were a GUI toolkit, windowing system, or window manager. And today at least Boxee, Plex, Tofu, MediaPortal, OpenELEC, OSMC, GeeXboX, Voddler, DVDFab Media Player, and Horizon TV are all separate derivative products that are all openly known to at least initially have forked the GUI (Graphical User Interface) and media player part of their software from XBMC's source code. Many of these third-party forks and derivative work of Kodi/XBMC are said to still assist with submitting bug fixes upstream and sometimes help getting new features backported to the original Kodi/XBMC project so that others can utilize it as well, shared from one main source.<ref name="XBMC is the best media center application. Period."/><ref name="Thinking inside the box"/><ref name="Gnews.com"/> However some which was initially a fork of XBMC have since fully or partially been rewritten to use closed source proprietary software.<ref>Template:Cite web</ref> For more information see the main "List of software based on XBMC" article.
Some good examples on building on Kodi/XBMC are OSMC, OpenELEC and GeeXboX which are free and open source embedded operating systems providing complete media center software suite that comes with a pre-configured version of Kodi/XBMC and DVR/PVR plugins. They are both designed to be extremely small and very fast booting embedded Linux based distributions, primarily optimized to be booted from flash memory or a solid-state drive, and specifically targeted to a minimum set-top box hardware setup based on ARM SoC's or Intel x86 processor and graphics.<ref>Template:Cite web</ref><ref>Template:Cite web</ref><ref>Template:Cite web</ref><ref>Template:Cite web</ref><ref name="OpenELEC.tv">http://www.openelec.tv OpenELEC.tv Official Website</ref><ref name="OpenELEC Media Center Software on Launchpad">Template:Cite web</ref><ref name="About OSMC">Template:Cite web</ref>
Similar embedded Linux distributions to OpenELEC/GeeXboX are the professionally made E2BMC and OpenPCTV which are commercial Kodi/XBMC-based software platform for DVR/PVR set-top boxes, with both being designed as a hybrid integration between Kodi media center software and Dreambox's Enigma2 PVR software scripts.<ref>http://www.e2bmc.com E2BMC Official Website (E2BMC.com)</ref><ref>http://www.youtube.com/e2bmc E2BMC YouTube Channel</ref><ref>http://www.mysatbox.tv/2014/02/e2bmc-new-videos.html E2BMC - New videos</ref><ref>http://www.satnigmo.com/2418/e2bmc-hybrid-between-enigma-2-and-xbmc/</ref><ref>http://cubieboard.org/2013/12/19/openpctv-for-cubietruck-or-cubieboard2/ OpenPCTV on Cubietruck/Cubieboard2</ref><ref>http://www.youtube.com/watch?v=rx9ZXpQvWZs openpctv installation</ref><ref>http://sourceforge.net/projects/openpctv/ OpenPCTV Linux distribution based Enigma2/VDR/XBMC</ref><ref>https://linuxtoy.org/archives/openpctv-adding-full-tv-functionality-to-htpc.html OpenPCTV HTPC - LinuxToy.org</ref>
Another example is XBMC4Xbox, which is a third-party developer spin-off project of XBMC, with still active development and support of the Xbox platform. This project was created as a fork of XBMC as a separate project to continue having a version of XBMC for the Xbox hardware platform. It was not started by official members of the official XBMC project, nor will it be supported by the official Team Kodi in any way. It started when support for the Xbox branch was officially dropped by Team XBMC, which was announced on 27 May 2010.<ref name="Farewell XBOX"/>
Programming and developing
Kodi is a non-profit and free software community driven open-source software project that is developed only by volunteers in their spare time without any monetary gain. XBMC Foundation and the team of developers leading the development of Kodi/XBMC, "Team-Kodi"/"Team-XBMC", encourage anyone and everyone to submit their own source code patches for new features and functions, improve existing ones, or fix bugs to the Kodi/XBMC project.
The online user manual is wiki-based and community driven, and it also works as a basic developers guide for getting a good overview of Kodi's architecture. However, as with most non-profit software projects, to delve deeper into programming, looking at the actual source code and the comments in that code is needed.<ref name="Modding The Xbox Into The Ultimate Multimedia Center"/>
Architecture
Kodi is a cross-platform software application whose core is mainly programmed in Template:Nowrap. Kodi uses OpenGL (or OpenGL ES) graphics rendering under Kodi for both Linux and Template:Nowrap, while Kodi for Windows uses Microsoft DirectX multimedia framework and Direct3D rendering, as the Xbox version of XBMC did. Some of Kodi's own libraries, as well as many third-party libraries that Kodi depends on, are written in the C programming-language, instead of Template:Nowrap as Kodi's core, but they are then mostly used with a Template:Nowrap wrapper and, through Kodi's core monolithic nature, are loaded via a dynamic linker loader for on-demand loading and unloading at run time.<ref name="XBMC 9.04 delivers impressive media center experience"/><ref name="XBMC Architecture Overview by Telematics Freedom Foundation"/> Kodi also still partially uses the SDL (Simple DirectMedia Layer) multimedia framework for input on Linux, but its developers are working on completely removing that small remaining dependency on SDL.
Because of Kodi/XBMC's origin with the resource constraints on the hardware and environment of the first-generation Xbox game-console platform, all software development of Kodi/XBMC has always been focused on reserving the limited resources that existed on embedded system hardware, like the original Xbox (which was only a 733 MHz Intel Pentium III and 64 MB of RAM in total as shared memory), as well as the still relatively low resources of embedded system devices today, of which the main hindrance has always been the amount of available system RAM and graphics memory at any one time. Due to this it means that Kodi/XBMC is purposely programmed to be very resource and power efficient and can therefore run on very low-end and relatively non-expensive hardware, especially when compared to other media center software design for HTPC use.<ref name="Modding The Xbox Into The Ultimate Multimedia Center"/>
But because of its origins from the Xbox game-console, Kodi/XBMC's legacy graphics renderer still runs in a more game-loop rendering environment rather than using a fully event-driven and on-demand rendering, meaning that it is almost constantly re-drawing the GUI and refreshing the frames as fast as it can, even when nothing is changing on the screen. This results in very high CPU and high GPU usage, which can be observed on embedded systems and low-end machines, and hence cause high temperatures, high fan activity, and high power consumption unless capped at a maximum frame per second configuration for that specific platform build. Work is however constantly ongoing by the developers to make Kodi/XBMC run using much fewer resources on low-power and embedded systems, which will indirectly benefit all non-embedded systems as well.<ref name="XBMC Architecture Overview by Telematics Freedom Foundation"/> Efficiency improvements in this area are however being worked on in order to move away from that old style game-loop environment in order to reduce high CPU/GPU usage by the GUI, especially as XBMC usage on embedded platforms with limited CPU/GPU resources keeps growing in popularity. XBMC 11.0 (Eden) introduced Dirty-Regions rendering option for texture support to the XBMC skinning engine as an option,<ref name="Working with dirty regions 19 June 2011 theuni">Template:Cite web</ref> and XBMC 12.0 (Frodo) enabled Dirty Regions rendering to redraw the whole screen on a single dirty region by default on all platforms.<ref name="Working with dirty regions 19 June 2011 theuni"/><ref name="github.com">https://github.com/xbmc/xbmc/pull/1426 d-r: enable dirty-regions by default</ref> Work is also in progress for XBMC 14.0 to introduce an abstracted scene-graph deferred rendering for GUI renderer abstraction.<ref name="ReferenceA">https://github.com/xbmc/xbmc/pull/2681 GUI Renderer abstraction and move to deferred rendering</ref>
Portability
Kodi has a portable code base, with its trunk (mainline source code tree) officially available for IA-32/x86, x86-64, PowerPC, and ARM-based processor architecture platforms.<ref>Template:Cite web</ref><ref>http://elinux.org/BeagleBoard/GSoC/2010_Projects/XBMC BeagleBoard/GSoC/2010 Projects/XBMC</ref> The Kodi GUI does require 3D hardware accelerated graphics (GPU) that support OpenGL ES, OpenGL, or EGL, or Direct3D with device drivers that support OpenGL ES 2.0, or OpenGL 1.3 or later with GLSL, or DirectX in order to render the GUI at an acceptable frame rate.
Kodi is thus officially not yet available for the MIPS processor architecture upstream in mainline source code repository from Team-Kodi,<ref name="github2">https://github.com/xbmc/xbmc/pull/455 Add mips arch</ref> nor does it as yet support DirectFB<ref name="github1">https://github.com/xbmc/xbmc/pull/454 directfb: Initial support</ref> or DRI (Direct Rendering Infrastructure) rendering without OpenGL/GLES hardware accelerated graphics support.<ref name="XBMC Architecture Overview by Telematics Freedom Foundation"/><ref name="github1"/><ref name="XBMC ARM port teased, will manage HD playback from pocket-sized Beagleboard (video)">Template:Cite web</ref> The combination of MIPS, DirectFB, and DRI is a popular architecture used today by simpler set-top boxes like digital broadcasting (cable/satellite) boxes and low-end digital media players, such as those based on MIPS architecture chipsets from Sigma Designs or Realtek.<ref>Template:Cite web</ref> Kodi ports to the MIPS processor architecture is, however, currently being actively worked on by several independent development teams.<ref name="github2"/>
Kodi for Linux supports toolchain building systems for embedded development such as Yocto, Buildroot (uClibc), and the Linaro set of Makefiles and patches for easing the generation of cross-compilation toolchains as well as the creation of a file system on embedded Linux systems across a wide range of hardware, kernel platforms, and CPU architectures (x86, x86-64, ARM, MIPS, PowerPC, etc.).
Python scripts as plugins and addons (widgets/gadgets)
Kodi allows developers to create addons using a built-in Python interpreter (version 2.6 or higher depending on system<ref>http://wiki.xbmc.org/index.php?title=Python_development#Version</ref>) and its own WindowXML application framework, which together form an XML-based widget toolkit for which they can extend the capability of Kodi by creating a GUI for widgets. Python widget scripts allow non-developers to themselves create new add-ons for Kodi, using Python.<ref name="XBMC 9.04 delivers impressive media center experience"/>
Application programming interface (API)
Other than the application programming interfaces (APIs) available to third-party Python scripts and addon plugins, Kodi features several other APIs for controlling Kodi remotely or from an external application. These APIs includes a JSON-RPC server, D-Bus Server, Web server, UPnP AV media server (with UPnP MediaServer ControlPoint, UPnP MediaRenderer DCP, UPnP RenderingControl DCP, and UPnP Remote User Interface server), and a custom multi-protocol Event Server<ref name="wiki.xbmc.org"/> for remote controls.
GUI-engine and skinning (themes)
Kodi/XBMC is noted as having a very flexible GUI toolkit and robust framework for its GUI. With its underlying complex graphical design and layout library (named libGUI in Kodi/XBMC), it provides a simple abstraction layer between the application code and the interface, while allowing extremely flexible dynamic layouts and animations that are easy to work with and makes it possible to create completely unique skins for XBMC.<ref name="XBMC Skining Project"/> The skin files are written in XAML, using a standard XML base, making theme-skinning and personal customization very accessible.<ref name="Customize XBMC with These Five Awesome Skins"/>
Current software limitations
This is a list of software limitations currently in the Kodi/XBMC source code.
- Kodi's own internal cross-platform video and audio players (DVDPlayer and PAPlayer) cannot officially play any audio or video files that are protected/encrypted with DRM (Digital Rights Management) technologies for access control, meaning audio files purchased from online music stores such as iTunes Music Store, MSN Music, Audible.com, Windows Media Player Stores, and video files protected with Windows Media DRM or DivX proprietary DRM. Such files can be played only by using another media player supporting DRM, or by removing the DRM protection from the file.<ref name="XBMC Architecture Overview by Telematics Freedom Foundation"/>
- Template:As of Kodi supported plug-ins written in the Python script language and binary add-ons.
Reception
XBMC won a Lifehacker Awards in 2014 for "Best Media Player" in their entertainment selection.<ref>http://www.lifehacker.com.au/2014/12/lifehacker-awards-2014-best-media-player/ Lifehacker Awards 2014: Best Media Player</ref> XBMC won two SourceForge 2006 Community Choice Awards.<ref name="SourceForge.net is proud to present the winners from our 2006 Community Choice Awards">Template:Cite web</ref> In the 2007 Community Choice Awards, XBMC was nominated finalist in six categories.<ref name="SourceForge.net is proud to present the winners from our 2007 Community Choice Awards">Template:Cite web</ref> Also in the 2008 Community Choice Awards XBMC won an award for Best Project for Gamers.<ref name="SourceForge.net is proud to present the winners from our 2008 Community Choice Awards">Template:Cite web</ref> With Microsoft's decision to discontinue Windows Media Center (WMC) starting Windows 10, htpcBeginner.com voted Kodi not only as the best WMC alternative but also in many ways better than WMC.<ref name="Best Windows Media Center Alternatives">Template:Cite web</ref>
History
Template:See also Xbox Media Center (XBMC) was the successor to the popular Xbox Media Player (XBMP) software. Xbox Media Player development stopped on 13 December 2003, by which time its successor 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 29 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. Not featured in XBMP, the addition of embedded Python was given the ability to draw interface elements in the GUI, and allowed user and community generated scripts to be executed within the XBMC environment.<ref name="Modding The Xbox Into The Ultimate Multimedia Center"/>
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 18 October 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).<ref name="Modding The Xbox Into The Ultimate Multimedia Center"/>
After two years of heavy development, XBMC announced a stable point final release of XBMC 2.0.0 on 29 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, and a "skinnable" 3D visualizer.
The release of XBMC 2.0.1 on 12 November 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 29 May 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.<ref name="ReferenceB">http://www.gizmodo.com.au/2010/10/history-of-boxee-and-boxee-was-born-slowly/ History Of Boxee: And Boxee Was Born, Slowly</ref><ref name="ReferenceC">http://www.gizmodo.com.au/tags/history-of-boxee/ History of boxee</ref>
Development on the Git 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.05, etc.
On 27 May 2010, the team behind XBMC announced the splitting of the Xbox branch into a new project; "XBMC4Xbox" which will continue the development and support of XBMC for the old Xbox hardware platform as a separate project, with the original XBMC project no longer offering any support for the Xbox.<ref name="Farewell XBOX"/><ref name="XBMC Discontinues Xbox Support"/><ref name="XBMC Drops Support for the Original Xbox"/><ref name="XBMC4Xbox"/>
On 2 January 2011, XBMC moved the source code repository from subversion to git, hosted at GitHub.<ref name="XBMC Moves to Git">Template:Cite web</ref>
On 1 August 2014, an announcement was made of release 14 and name change to Kodi.<ref name="XBMC becomes Kobi">Template:Cite web</ref>
Releases
This is a release history with condensed change-log lists for the most important added or removed notable new features, functions, and changed in each stable version of Kodi/XBMC.
Color | Meaning |
---|---|
Red | Old releases |
Green | Current release |
Blue | Future releases |
Release history | ||||
---|---|---|---|---|
Version | Release date | Codename | Significant changes | XBMC Live / XBMCbuntu based on |
1.0.0 | 29 June 2004 |
|
Template:N/a | |
1.1.0 | 18 October 2004 |
|
Template:N/a | |
2.0.0 | 29 September 2006 |
|
Template:N/a | |
8.10 | 15 November 2008 | Atlantis |
|
Ubuntu 8.10 (Intrepid Ibex) |
9.04 | 6 May 2009 | Babylon |
|
Ubuntu 9.04 (Jaunty Jackalope) |
9.11 | 24 December 2009 | Camelot |
|
Ubuntu 9.10 (Karmic Koala) |
10.0 and 10.1 | 18 December 2010 | Dharma |
|
Ubuntu 10.04 (Lucid Lynx) |
11.0 | 24 March 2012 | Eden |
|
Lubuntu 11.10 (Oneiric Ocelot) |
12.0, 12.1,
12.2 and 12.3 |
29 January 2013 | Frodo<ref>XBMC 12.0 - Frodo</ref><ref>Template:Cite web</ref> |
|
? |
13.0 | 4 May 2014 | Gotham |
|
? |
14.0 | 23 December 2014 | Helix |
|
? |
15.0 | 21 July 2015 | Isengard |
|
? |
16.0 | Release Target Date: ? | Jarvis<ref>http://kodi.wiki/view/Kodi_v16_(Jarvis)_changelog</ref> |
|
<ref>Template:Cite web</ref><ref>Template:Cite web</ref><ref>http://xbmc.org XBMC Blog</ref>
Legality
The "XBMC Foundation", the organization behind the Kodi and XBMC projects, is legally represented by the Software Freedom Law Center (SFLC), which assists the Kodi/XBMC project and its developers in legal matters such as copyright, trademark, and branding questions, as well as economic issues such as handling donations and sponsors that help the project with expenses for dedicated hosting service and activities such as going to developer conferences, trade fairs and computer expos to tech demo Kodi, meeting with potential new developers, gain publicity to attract additional users, and more.<ref>Template:Cite web</ref><ref>Template:Cite web</ref><ref>Template:Cite web</ref><ref>Template:Cite web</ref>
Kodi's source code for all its supported platforms is made publicly available by Team Kodi under the open source GNU General Public License Version 2 license. The group currently maintains a Git repository for this source code. The XBMC Foundation and Team-Kodi developers take no position as to whether any intellectual property rights exist in the Kodi core source code, the third-party code libraries it depends upon, or any addons or plugins developed for Kodi. As such, Kodi is provided as is in whatever condition it exists.
Kodi can also optionally be compiled with libdvdcss to transparently support playing back DVD-Video movies encrypted using the CSS (Content Scramble System) encryption, and with libaacs and libbdplus (together with libbluray) to support playing back Blu-ray Disc movies encrypted using AACS (Advanced Access Content System) and protected by BD+ systems for DRM (Digital Rights Management). Since it is not a member of DVD Forum or AS Licensing Administrator, the Kodi project is not contractually obliged to insert user operation prohibition such as disallowing fast-forward or skipping during trailers and ads in DVD-Videos. The legal status of libdvdcss, libaacs and libbdplus is thus questionable in several nations, and the distribution of executable versions of Kodi containing which was built with these libraries without a commercial license to is likely to run afoul of the DMCA (Digital Millennium Copyright Act) in the U.S. However, in the European Union, this is likely legal, since DRM can be circumvented if it is done to facilitate legal use.<ref>Template:Cite web</ref>
In June 2015, Amazon removed the Kodi app from the Amazon Appstore because it has the ability to illegally download content, even though the app is a legal media center that does not come with pirated content.<ref>Amazon Bans Kodi/XBMC App Over Piracy Concerns June 16, 2015. Retrieved 22 June 2015.</ref> The app is still available on Google Play.
See also
- List of software based on Kodi and XBMC
- Comparison of video player software
- Comparison of PVR software packages
- Digital media player
- HTPC (Home Theater PC)
- XBMC4Xbox