Kodi

From Official Kodi Wiki
Revision as of 18:11, 30 May 2007 by 76.223.198.243 (talk)
Jump to navigation Jump to search

Template:Ad Template:Expand Template:Infobox Software2

Xbox Media Center (XBMC) is an award-winning media player for the original Xbox game-console. XBMC can play music, play videos and display images from the Xbox's DVD drive, its internal hard-drive drive, a local network, USB flash drive, and the internet. It also functions as a replacement dashboard to launch Xbox games off the hard-disk drive. Other functions of XBMC include large metadata databases for music/video-file handling, displaying weather forecasts and TV guides, watching YouTube videos and apple.com movie trailers, listening to SHOUTcast and Podcasts streaming internet radio/video, also XBMC functions as a gaming platform by allowing users to play python-based mini-games and a free online-gaming alternative to Xbox Live. It is important to note that the software is not produced or endorsed by Microsoft or any other officially recognized vendor. XBMC, like all, homebrew applications, requires a modchip, softmod exploit. XBMC is free and open source software, distributed under the GNU General Public License.

Awards

XBMC won two categories SourceForge 2006 Community Choice Awards, for Best Multimedia Project and Best Game Project. Winners were announced at the Slashdot Lounge at LinuxWorld Expo, Boston, April 5, 2006.

Features

Audio/Video playback and handling

File:Mc360-screenshot-3.jpg
MC360 skin for XBMC displaying IMDb information about Superman II

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

Format support

XBMC can be used to play/view all common multimedia formats 'straight out-of-the-box'. It can decode these in software and optionally pass-through AC3/DTS audio from movies directly to S/PDIF output to an external audio-amplifier/receiver. For a detailed up-to-date list see the "Supported Formats" list in XBMC online-manual here.

Supported formats/codecs:

Video playback in detail

XBMC uses two different multimedia player 'cores' for video-playback. The first is a ported version of the open source cross-platform player, MPlayer, which is known for playing practically all common proprietary media-formats without having to pay license fees. XBMC handles all codecs and containers normally supported by MPlayer (all FFmpeg supported codecs and also several external ones with the help of proprietary DLL-files: RealMedia/RealVideo/RealAudio, QuickTime, WMV9/WMA9, VP4/VP5/VP6), and the sources are synced at regular intervals.

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

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

Audio playback in detail

File:Clearity-screenshot-2.jpg
Clearity skin for XBMC displaying song information OSD

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

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

Digital picture/image display in detail

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

Python scripts (widgets/gadgets) plugins

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

Dashboard function (game/application launcher)

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

XBMC Trainer Support (game cheats mods)

File:Screenshot190.JPG
Enabling trainer mods on games

XBMC also has the ability to use and apply Xbox Trainer Files. Trainers are small files that allow for in game value modification (such as cheat code) through altering retail functions in game values by way of using TSR (Terminate and Stay Resident) keys. There are many things that can be modified including ammunition, extra-lifes, or even how high a character can jump. Trainer support in XBMC 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 can run trainers with the following file extensions: *.ETM and *.XBTF.

XLink Kai (Xbox Live online-gaming alternative)

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

Running XBMC

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

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

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

Language support

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

Skins and skinning-engine

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

Programming and developing

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

XBMC's main program (including the GUI) is developed in Microsoft Visual Studio .NET. The source code is programed in C++ (and some Assembly), and uses Microsoft DirectX multimedia framework, (the Xbox does not support OpenGL). Some of the XBMC libraries are also in C programming-language but those then uses a C++ wrapper and are loaded via XBMC's own DLL loader. The Xbox Operating-System/BIOS is Win32-based but does have all of the resources or capabilities of a full Microsoft Windows Operating-System, (for example: DirectShow, registry, nor DLL are nativly supported on the Xbox). Because of the constraints on the hardware and environment of the Xbox all software development for XBMC are focused on reserving the limited resourses that exist, the main hindrance of which is the amount of available random access memory at any one time.

Xbox Development Environment

It is important to always keep in mind all the aspects of the Xbox environment when developing XBMC for the Xbox.

Hardware

  • Xbox has a 733Mhz Intel Pentium III CPU @ 133 MHz FSB (supporting MMX/MMX2 and SEE)
  • The Xbox has 64MB of shared RAM (memory is shared between CPU and GPU)
  • Xbox GPU is a nVidia NV2A @ 233 MHz (somewhat in between GeForce 2 and GeForce 3 series)
  • The APU is a nVidia MPC (designed for Xbox, a.k.a. MPCX), which supports only 48Khz-output
    • The APU is integrated to the MPCX APU and can encode to AC3 audio on-the-fly in hardware
  • The Xbox-chipset can be described in layman terms as something similar to the first nVidia nForce
    • The chipset designed by nVidia and makes up a southbridge (the MPCX-1) and the GPU (NV2A)
  • Most Xbox DVD-ROM drives are made by Philips/Thomson/Hitatchi and can't read CD-R media
    • DVD-ROM drives made by Philips/Thomson/Hitatchi can not read CD/DVD subchannels either
      • Samsung made Xbox DVD-ROM drives can read CD-R media and sub-channels

Operating-System

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

Compiling

Limitations

Legality

While XBMC source code is made publicly available from the developers under an open source (GNU GPL) license, the developers themselves are legally unable to distribute executable versions of XBMC. Due to this, the only publicly available executable versions of XBMC are from third parties and are of dubious legal status.

Copyright

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

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

Patents

For most popular video and audio codecs, XBMC includes native support through the libavcodec library from the FFmpeg project. Since this code is released under a free and open source license, it is legally redistributable. However, some of these compression methods, such as the popular MP3 format, are covered by patents in many countries. Absent a licence, this would make it illegal to redistribute versions of XBMC including support for these patented formats. This is a problem common among many open source multimedia projects/applications.

Other

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

See also

Template:Portalpar

External links

Official sites

Modifications

Articles & Reviews

Third-party support forums and guides

News


Template:Xbox Template:Codecs Implementations

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