XBMC, the open source media center, has
steadily grown from its humble origins as an X-Box only replacement
environment into the cross-platform, de facto playback front-end
for multimedia content. It merges the file-centric approach taken by traditional video players with an add-on scripting environment that handles remote web content. The project is currently finalizing its next major release, version 11.0 (codenamed Eden), which includes updates to the networking and video acceleration subsystems, broader hardware support, and numerous changes to the APIs available to add-on developers.
Granted, there are plenty of other "media center" projects under active development at the moment, most of which also employ FFmpeg and can play back the majority of the same content types. Where XBMC differentiates itself, however, is with its auto-detection of critical settings and the deep integration it provides across its (wide) range of networking and content-delivery protocols. For example, XBMC auto-detects the presence of Universal Plug-and-Play (UPnP) servers and HDHomeRun tuner devices on the network, while too many other media centers require the user to come with the requisite connection details written down.
Similarly, we no longer live in a world where the bulk of our media
content consists of local or LAN-available files. XBMC's add-on system
permits developers to write site- or service-specific extensions that
integrate commercial content creators' home-brewed Flash video delivery
sites neatly into the overall interface. Other media center applications
work at the task too, but over time the projects has earned itself a
reputation for playing host to high-quality add-ons that stay current with
changes rolled out on the sites themselves.
Starting with the last major release, 10.0, XBMC has hosted
its own add-on repository, making such add-ons instantly installable
from the main UI. The project wiki maintains a list of active
add-ons, including those not found in the official repository, broken
down by version compatibility and add-on type. It includes the
site-specific content add-ons, plus many that add new functionality (games,
torrent support, electronic program guides) and plug-ins to support new
data sources (Icecast streams, MythTV servers, and fetching lyrics, cover
images, and program metadata from around the web). There are a handful of commercial services that permit XBMC
add-ons to use their APIs (such as Grooveshark), but if your interest is
primarily in paid services, most of those companies take steps to make
add-ons for XBMC and other open source media centers incompatible —
even when they permit in-browser playback.
User-visible changes in Eden
Speaking of add-ons, one of the most original ideas to debut in XMBC 11 is the ability to roll-back add-ons to a previous version. Clearly that feature is not expected to be used when the update to an add-on is designed to repair breakage with the package's screen-scraping capabilities, but it may prove popular with users when an add-on update makes a bad UI decision or implements a questionable new feature. Linux users may associate package rollback with risky options to forcibly downgrade
packages, but XBMC add-ons are independent of each other. A closer
comparison would be to Firefox and Thunderbird's add-ons, but they offer no such rollback mechanism.
XBMC's user interface is also one of its major selling points - both in its ease-of-use and its ease-of-configurability. The Eden release introduces a newly renovated default skin named "Confluence," which is the first default skin to use a horizontal main-menu layout. That decision wastes slightly less screen space, considering the popularity of 16:9 and 16:10 aspect ratios.
But a more practical feature is that users can now add any item they
want to the home screen's menu — in previous releases, all add-ons
were relegated to the "Programs" submenu, which is a hassle for heavy
add-on users. Naturally, users can also remove menu items — which I
did immediately to the "Weather" entry (whose prominent place on the home
menu has always felt awkward). The new UI also sports multiple selections
(when using a mouse), touch or gesture input (presumably for tablet users),
and auto-login (for users running XBMC in a kiosk setting). Users can also
search for installable add-ons by keyword from within XBMC itself, which is far faster
than manually scrolling through screen after screen of available add-ons with a remote control.
The application attempts to present all of the available media resources in a particular category (photos, audio, or video) together in one place, regardless of origin. This release adds support for five new content source types: NFS shares, Apple Filing Protocol (AFP) shares, Slingboxes, Apple AirPlay devices, and "disc stubs" of un-mounted DVD or Blu-Ray discs. The Slingbox is an embedded video streaming device that can be connected to component or HDMI video sources. AirPlay is Apple's brand name for streaming media over the LAN from iPod and other iOS devices.
The disc stub feature is intended to help users organize their physical media, indexing the contents of discs for searchability — you would still have to physically load the discs in order to play back their contents. However, the new release also adds support for treating ISO files as virtual disk volumes, so if lugging the discs back and forth across the room is too taxing, XBMC has you covered there, too. There are other minor tweaks in this arena, too, such as the elimination of an artificial distinction between local "files" and the user's "library." From now on, all the files that XBMC knows about can be browsed together.
Finally, there is a major upgrade to the application's subtitle support, including support for subtitles embedded within MP4 files, and support for rendering subtitles with the style tags (covering font selection, text color, and italics/boldface) found in several external subtitle file formats.
New technical features
Arguably the biggest "silent" feature in XBMC 11.0 is full support for
Acceleration API (VAAPI), Freedesktop.org's hardware-agnostic API for
GPU acceleration of video decoding. XBMC is officially dropping support
for the older, MPEG2-only XvMC in
favor of VAAPI, which supports hardware-accelerated decoding of more
formats, on Nvidia, Intel, and ATI graphics chips. VAAPI is a Linux-only
feature, of course — on Mac OS X 10.6 or later, XBMC uses Apple's
Video Decode Acceleration Decoder (VDADecoder) hardware acceleration
instead, and on recent Windows systems it uses Microsoft's DirectX Video
Acceleration (DxVA). Linux boxes can also use OpenMAX for hardware video
acceleration, which is most useful for systems built on Nvidia's Tegra2
The user interface itself uses OpenGL, OpenGL ES, or EGL, so it, too,
can be hardware accelerated. Use of GPU acceleration for both video
the GUI reduces XBMC's CPU requirements considerably, and 11.0 officially
introduces support for several more low-resource systems. On the Linux
side, this includes Texas Instruments OMAP4 processors. On the Apple side,
it includes better support for recent iOS 4.x devices (including recent
iPads and AppleTVs). But for those who still rely on their CPUs,
regardless of the platform, XBMC can now detect CPU features like SSE and
MMX at runtime.
Apart from hardware concerns, this release introduces a revamped JSON-RPC subsystem, which is primarily of interest to add-on developers. The changes are substantial, as the goal was to make XBMC's implementation compliant with the JSON-RPC 2.0 specification. The add-ons subsystem uses Python scripting, and in another important change for developers, 11.0 drops XBMC's bundled Python implementation in favor of using the system Python library. This is more in keeping with XBMC's reliance on OS libraries for other functionality (such as protocol stacks), although the project still uses its own media renderers for images, video, and audio content. Because the host OS's Python version may differ from the bundled library found in older XBMC releases, there is a backwards-compatibility mode that add-on developers can invoke.
Add-on authors have three other new features at their disposal from 11.0 on. The first is an XML storage system allowing each add-on to save user preferences in its own private file. The second is a set of hooks to display progress-meters on screen for the user's benefit, a feature designed to improve feedback when buffering web video. Finally, previous releases of XBMC allowed for a web-based control interface, which could be exploited to bring remote-control-like features to arbitrary tablets and mobile phone browsers in addition to desktops. With the new release, each add-on package can also provide a separate web-interface of its own, which simply makes more features accessible to users not near an infrared remote.
The view from 10 feet back
If I were to channel my inner couch potato, I would have to admit that my favorite improvements in XBMC 11.0 are of the cosmetic variety — namely, the new and greatly-improved theme, the ability to customize the home menu, and the unification of media content regardless of the source. That may sound superficial, but in my experience, building a remote-control-friendly UI is one the highest hurdles in open source software development: many try, few, if any, succeed. XBMC may fare better than the Linux-only media centers because it has a substantial following among Windows and OS X users, thus giving it exposure to far more testing and feedback. But whatever the reason, in practical usage XBMC comes the closest to feeling like a genuine OEM consumer electronics product.
Digging deeper, though, the VAAPI support is an important milestone, too. VAAPI has been a long time coming, but in 2011 and now 2012, it appears to be hitting the mainstream. Low-power set-top boxes are certainly where VAAPI makes the most sense — at SCALE 10X in January, one of the most talked about booths was the demonstration of XBMC 11.0 running on a $25 Raspberry Pi board. There are already plenty of niche commercial products built on top of XBMC, but when HD video is available on a $25 board, it will be hard for Apple and Microsoft to compete.
To see the impact of the changes to the add-on development APIs, we may have to wait, but the project's add-on community has earned the benefit of the doubt. Sadly, at the moment the Linux builds of the most recent XBMC Eden have yet to land: Beta 1 is available for download, but Beta 2 is only provided for Windows and Apple systems at the moment. The final release does not have a due date yet, but the hold-up is reported to be with the "XBMC Live" live CD version, which is getting a rework to be more compatible with the upstream Ubuntu releases on which it is based. Given the pace of the first two beta releases, though, you might want to keep the red carpet within reach.
Comments (24 posted)
In the end we all agree GCC does something nasty (and I would call
it a bug even), but any solution we find in GCC won't be
backportable to earlier releases so you have to deal with the GCC
bug for quite some time and devise workarounds in the kernel.
You'll hit the bug for all structure fields that share the largest
aligned machine word with a bitfield (thus the size depends on the
alignment of the full object, not that of the struct containing the
bitfield in case that struct is nested inside another more aligned
one). This situation should be easily(?) detectable with sparse.
-- Richard Guenther
In the embedded market, the biggest problem is that the
distributions of BusyBox fail to include the "scripts to control
compilation and installation of the executable", which the GPLv2
As such, users who wish to take a new upstream version of BusyBox
and install it on their device are left without any hope of doing
so. Most embedded-market GPL enforcement centers around remedying
Indeed, enforcement has brought some great successes in this
regard. As I wrote on in my blog post on this subject (at
http://sfconservancy.org/blog/2012/feb/01/gpl-enforcement/ ), both
the OpenWRT and SamyGo firmware modification communities were
launched because of source releases yielded in past BusyBox
enforcement actions. Getting the "scripts to control compilation
and installation of the executable" for those specific devices are
what enabled these new upstream firmware projects to get started.
-- Bradley Kuhn
Comments (none posted)
is a Python
library that can extract text from binary files. "Fulltext is a
library that makes converting various file formats to plain text
simple. Mostly it is a wrapper around shell tools. It will execute the
shell program, scrape it's results and then post-process the results to
pack as much text into as little space as possible.
Full Story (comments: none)
Gnash 0.8.10 is out. "Gnash is the GNU Flash player, a
free/libre SWF movie player, with all the source code released under
GPLv3 or later. Gnash is available as both a standalone player and
also as a browser plugin for Firefox (and all other Gecko based
browsers), Chromium and Konqueror.
" Previous conversations on the
development list suggest that this may be the last Gnash release for some
Full Story (comments: none)
Newsletters and articles
Comments (none posted)
Laurence Tratt, the designer of the Converge
language, has written a
detailed introduction to RPython
, the language used as the base of the
PyPy project. "However, in addition to outputting optimised C code,
RPython automatically creates a second representation of the user's
program. Assuming RPython has been used to write a VM for language L, one
gets not only a traditional interpreter, but also an optimising
Just-In-Time (JIT) compiler for free. In other words, when a program
written in L executes on an appropriately written RPython VM, hot loops
(i.e. those which are executed frequently) are automatically turned into
machine code and executed directly. This is RPython's unique selling point,
as I'll now explain.
Comments (22 posted)
lengthy survey of open hardware projects
in The H. "The
price/performance of a general purpose computer built using FPGAs wouldn't
be great when compared with commodity gear, but the technology excels in
many niche and specialist applications, such as in areas of computing that
make use of dedicated hardware to bring high performance to tasks such as
signal processing, encryption and networking. Since you can program many
hardware paths in an FPGA they are well suited to jobs that can be broken
down and processed in parallel, and some of the more powerful devices pack
millions of logic blocks and have a transistor count well into the
billions, with a blisteringly fast serial bandwidth that is measured in
Comments (1 posted)
Luca Tringali has posted an
interview with Ton Roosendaal
. "As you all may know, he is the
creator of Blender and the head of the Blender Institute. Anyway, for me,
the most important idea he developed is the "open movie" project. It
introduces a completely new concept of creating an artistic opera, where
the public can be an active part during the production and expecially after
it, possibly improving the opera itself or creating another version (if
it's a movie, you can create your own final). Basically, it's the power of
free open source software ported to art, expecially cinematographic
" (Thanks to Paul Wise).
Comments (none posted)
Page editor: Jonathan Corbet
Next page: Announcements>>