XBMC Architecture Overview



Similar documents
Revision History. Revision Revision History Date

Chapter 10: Multimedia and the Web

itunes Basics Website:

KODI MEDIA CENTER GUIDE

M8 basics. Setting Up Your M8 Android Box Remote Essentials Using Your M8 Android Box Setting up Wireless... 6

Manual. photo Nr.1 (About)

Manufactured under license from Dolby laboratories. Dolby and the double-d symbol are trademarks of Dolby Laboratories.

MXQ basics. Setting Up Your MXQ Android Box Remote Essentials Using Your MXQ Android Box Setting up Wireless...

Windows Media Player 10 Mobile: More Music, More Choices

Issues in Android on Mobile Platform and Their Resolution

Welcome to Corel VideoStudio Pro X5

Windows Embedded Compact 7 Multimedia Features 1

Mobile Operating Systems Lesson 05 Windows CE Part 1

DVBLink TVSource. Installation and configuration manual

Creating an Intranet Website for Library & Information Services in an Organization

Higth definition from A to Z.

Welcome to U-verse for Windows Phone 7

Getting Started with Internet Explorer 10

Simple yet Powerful Storage

A Web- based Approach to Music Library Management. Jason Young California Polytechnic State University, San Luis Obispo June 3, 2012

Nero MediaStreaming for MCE Manual

DiskBoss. File & Disk Manager. Version 2.0. Dec Flexense Ltd. info@flexense.com. File Integrity Monitor

ATV310B User Manual. V1.1

a basic guide to video conversion using SUPER

Amcrest 960H DVR Quick Start Guide

ENGLISH USER MANUAL. Please visit to download the latest version of this manual.

You can view, download or upload files through the WEB interface or FTP link depending on Type of access you have been granted.

Call Recorder Oygo Manual. Version

Media Control Server MCS-EX Integration Guide for RTI Control Systems

14.1. bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë

SmartTV User Interface Development for SmartTV using Web technology and CEA2014. George Sarosi

Hauppauge Capture. Copyright 2013 Hauppauge Computer Works

DVBLink For IPTV. Installation and configuration manual

AT&T U-verse Mobile. Windows Phone 7 User Guide

EventCentre : Getting Started with the Universal Communications. Universal Communications Format Toolkit Overview. How UCF Works

What is a NAS drive...?

Workshop on Android and Applications Development

Addonics T E C H N O L O G I E S. NAS Adapter. Model: NASU Key Features

JW Player Quick Start Guide

ENGLISH USER MANUAL. Please visit to download the latest version of this manual.

Copyright 2006 TechSmith Corporation. All Rights Reserved.

Nero Home Manual. Nero AG

OPPO MediaControl HD App: Handy touch control adds more fun to home theatre enjoyment

Bitrix Site Manager 4.1. User Guide

VidyoDesktop Media Player Quick Reference Guide

AT&T U-verse App for iphone FAQ s

Music Informatics: Music Database Visualization

Virtual Exhibit 5.0 requires that you have PastPerfect version 5.0 or higher with the MultiMedia and Virtual Exhibit Upgrades.

LetsVi: A Collaborative Video Editing Tool Based on Cloud Storage

Using the SAS Enterprise Guide (Version 4.2)

LG LM7600 CINEMA 3D SMART LED HDTV WITH MAGIC REMOTE

Using Impatica for Power Point

Introduction to Visual Basic

Using Multimedia with Microsoft PowerPoint 2003: A guide to inserting Video into your presentations

Welcome to icue! Version 4

NSA310 Support Note Version 1.00 July, 2011

GATEWAY COMPUTER USERGUIDE

Terms and Definitions for CMS Administrators, Architects, and Developers

ACADEMIC TECHNOLOGY SUPPORT

What's New in BarTender 2016

Using the Wireless Music Bridge

VERIPATROL Mobile User Guide

USER GUIDE Version 2.0

Centova Cast. Client Usage Guide. Published May 04, 2015 Copyright 2015, Centova Technologies Inc. Centova Technologies Inc.

Information Technology Career Field Pathways and Course Structure

Web Design Specialist

User s Manual. Copyright 2010 Vantec Thermal Technologies. All Rights Reserved.

Asset Track Getting Started Guide. An Introduction to Asset Track

UPnP Setup Procedure for AVerMedia Media Player

Summary Table Voluntary Product Accessibility Template

HP CLASSROOM MANAGER. Empowering teachers, engaging students. QuickStart Guide for Teachers

Online Master of Science in Information Technology Degree Program User s Guide for Students

Girder in the Real World

ShoutCast v2 - Broadcasting with Winamp & ShoutCast DSP Plugin

Outline. CIW Web Design Specialist. Course Content

Using Firefly Media Server with Roku SoundBridge. For Mac OS X and 10.4.x

Smart Music Control Application CONTENTS. Smart Music Control Application. User Guide CONTENTS 1 GETTING STARTED 1 MEDIA PLAYER MODE 1

Developer's Cookbook. Building Applications with. The Android. the Android SDK. A Addison-Wesley. James Steele Nelson To

DiskPulse DISK CHANGE MONITOR

INTERMEDIATE ANDROID DEVELOPMENT Course Syllabus

Working with Windows Movie Maker

Como usar el Compartimiento NFS del NAS de QNAP para establecer un Centro Multimedia en el Hogar y reproducir Videos HD

White Noise Help Guide for iphone, ipad, and Mac

Settings. Ver.3.0.*. Firmware

NSA325 v2. Support Notes. Version 1.00 Aug, 2013

5.1 Features Denver CO 80202

E-MANUAL. Thank you for purchasing this Samsung product. To receive more complete service, please register your product at.

Acrobat X Pro Accessible Forms and Interactive Documents

Introduction to dobe Acrobat XI Pro

Canvio Home FAQ. is designed to be very easy to install and use to back up, share, and remotely access the files from your computers.

Professional. SlickEdif. John Hurst IC..T...L. i 1 8 О 7» \ WILEY \ Wiley Publishing, Inc.

Windows Live Movie Maker for teachers and faculty

RipNAS USER MANUAL. for S320, S640, S500, S1000, statement and Z500

Video, film, and animation are all moving images that are recorded onto videotape,

Welcome to myihome! This is a step-by-step guide that will teach you on how to use myihome in the simplest way.

Opalum FLOW series Opalum STREAM series Wireless setup guide. Wireless setup guide

Transcription:

XBMC Architecture Overview

XBMC Media Center Telematics Freedom Foundation - TFF XBMC Media Center is your ultimate multimedia hub. From the stunning interface, down to the helpful and enthusiastic community, it has everything you need to take your media enjoyment experience to the next level. Under the hood lies an extremely powerful and versatile custom skinning engine which allows skinners to define nearly every aspect of the application and make their wildest dreams a reality. XBMC's library mode will take that mess of media files you have collected over the years and present them to you in immaculate organization. It taps several meta data sources for a plethora of information to enrich your experience. In addition to media on your computer, XBMC can stream content from a multitude of on-line resources for your enjoyment. A python interface lets you customize behavior and adds yet another source of content via scripts and plug-ins. Playback is handled by a pair of in-house players. One for music and another for video, each leveraging the very best of open source codecs ensuring XBMC can handle anything you throw at it. These features and many more make XBMC your best choice in home theater computer software. Graphical User Interface and Skinning Engine Dubbed guilib internally, XBMC's skinning engine is one of the most powerful available in the HTPC market. The XBMC core defines a minimum set of controls for each window to do its job but the skin is free to present these and any additional controls as they wish. Skin authors have all of the usual GUI elements at their disposal; labels, buttons, radio buttons, text boxes, spin boxes, sliders, scroll bars, control lists and control groups are all completely customizable. In addition, guilib takes advantage of today's 3D graphics hardware to provide silky smooth, animations and transitions. Skins are defined by text files formatted in the XML mark-up language and images. There is one XML file to define each window and dialog defined by the core application. In this file, the position, dimensions, visibility, images and navigation details of each control are specified, as well as any animations and transitions for the window. Skins can also add more controls to each

window that execute XBMC built-in functions and scripts, raise specific windows, or query player and system information. Control visibility can be conditional based on what the application is doing at the time and can be delayed if need be. There is also the ability for skins to add their own settings to control aspects of the look. The skin engine also contains several other parts of the interface. There is a window manager which keeps track of view states of each window such as list sort orders and currently selected control. An audio manager plays navigation sounds on cursor movement, click and back actions. XBMC has been translated to dozens of languages. guilib handles all string localization and also lets skins declare their own strings with translations. The last responsibility of guilib is user input, taking events from a remote control, keyboard, mouse or some other device through an event client and passing them on to the application. Interfaces XBMC offers several interfaces to control, modify behavior and add content. The built in Python interpreter provides two of these interfaces. The first, scripts, are mini programs designed to stand alone from XBMC. The xbmc and xbmcgui modules define the Python API into XBMC. Functions for controlling players, querying meta data, manipulating settings and the like are all available through the xbmc module. Script graphical interfaces are designed using the xbmcgui module, all of the controls available in the skinning engine can also be used for scripting. Using the WindowXML class in the xbmcgui module, the script can be skinned in an identical fashion to XBMC itself. Scripts can perform their task in the background with no user interactivity at all, or obtain a fully customizable window for a clean graphical interface. The Python interpreter also provides file system (or directory) plug-ins, commonly referred to simply as plugins. These are special python scripts designed to fill a directory listing with content which may not be easily described otherwise and fit it in to the normal categories provided by XBMC (music, video, pictures and programs). Plug-ins take their visual queues

from the active XBMC skin so no specific skinning is necessary or available. They can also add items to the XBMC context menu when the plug-in is active, as well as define their own settings. File system plug-ins are often used to integrate content from websites (eg. YouTube) into XBMC. Remote access to XBMC is provided via an embedded web server. It serves a web page offering the ability to browse your media and control the XBMC session from your web browser. The web server also provides the XBMC HTTP-API for developers to add XBMC control to their applications. It exposes full control over XBMC as well as information regarding what is currently playing and querying the library databases. Commands are executed by making a simple HTTP GET request and any information or status codes are returned in HTML format. Adding new functions to this interface is very simple in the XBMC code base. A recently added interface into XBMC is the Event Server. The aim of this API is to allow developers to add support for various types of input devices. It listens on a UDP socket for Event Clients to connect and send events. The clients run separately from XBMC and can be written in any programming language that supports UDP networking. They commonly leverage other libraries written to handle the target input device. Their main interaction is sending button presses or joystick action to XBMC, but can also send notification messages for events such as battery status. One popular event client adds support for the Sony Playstation 3 bluetooth six axis game pad. There are two new APIs currently in development branches of XBMC. The first, DLL Add-ons, aims to add features similar to the Python interpreter. The difference will be that the applications will be written in C or C++ and compiled into modules, removing the python interpreter overhead. XBMC can then load and execute them at the user's request. Secondly, PVR Clients, will allow interaction with PVR back end applications such as MythTV and VDR. This will give XBMC OTA, DVB, etc card access without having to actually support any

hardware itself. When completed, users will be able to fully control features of supported PVR applications, including; live TV, record timers, time shifting and on-screen guides. Content Management In order for content to be visible in XBMC a source must be created to point to it. There are several available sources for media content supported out of box. Locally, any content on the users hard disk, CD-ROM or DVD-ROM can be added. Remote sources, though, are where XBMC really gets interesting. Users can point XBMC at another computer serving their media via SMB (Windows File Sharing), HTTP, FTP, UPnP and DAAP (itunes 6 sharing). Additionally sources for some service can be configured without support software such as Last.fm and shoutcast radio streams and OTA/DVB TV devices, such as dbox, tuxbox and MythTV live TV, which export the video stream over the local network. Once a source is added, all of its contents is immediately available via the file view. This view presents media as you would expect in a file browser, with an icon, the file name, and a few other details pertinent to the selected sort order. If source contains static data (ie. the media isn't a stream), it can now be scanned into the library. This involves selecting a content type for videos; one of TV, Movies or Music Videos, selecting a website to scrape meta data from and answering a few questions as to how the files are laid out. XBMC will now read any tags and hunt out meta data on-line, storing this information in a database for quick easy access, later. Library view is now available, providing a far richer experience. Fanart (backgrounds that relate to the focused media item) will be displayed in some view modes. In the music section, artist biographies and album reviews are available. For videos, you can now see play times, air dates, ratings, season and episode numbers, actors and a multitude of other information. This meta data is then used to organize media files and present them to in a friendly fashion. Another nice feature of the library is smart play lists. These are automatically generate play lists based on user selected values of meta data fields.

Player Core Playback quality is paramount to XBMC's success. To that end, a pair of custom players are employed to ensure the utmost performance. DVDPlayer is used for all video playback. It is based off of the FFMpeg multimedia decoding library and features playback of all popular audio and video codecs, several subtitle formats as well as DVD menu support. Music playback is handled by PAPlayer. It takes advantage of several open source audio codecs and features gap-less playback and cross-fade. There is even a special codec that calls in to DVDPlayer on the off chance that PAPlayer doesn't recognize a file type. PAPlayer also has a facility to export the raw audio samples supporting reactive visualizations. File Sharing XBMC provides local network file sharing via a UPnP server. It relies on the library features, and allows for the content and meta-data in the library to be provided to other UPnP clients on your network. The server strives to be DLNA compliant, so it will work with popular clients such as Windows Media Player, Xbox360 and Playstation3 assuming they support the format being requested.