The OSXBMC development Environment
OSXBMC is free open source media player for the Mac. It’s a port of the popular XBox Media center (XBMC) that was developed over a number of years by a large group of talented programmers. With its “plays anything” philosophy, stunning user interface and ability to pull info for your motion pictures and music straight off the web, it provides a unrivalled experience. If you’ve ever used FrontRow you need to check this out!
In our interview with the man responsible for porting XBMC to the Mac – Elan – we find out where the project is heading, we get the skinny on the new remote control features about to be released and we hear what special additions are planned for the future.
What’s your development background? What have you serviced and what led you to the OSXBMC project?
In college I wrote an open source networked risk game for X11. first job out of college was working for (now defunct) DEC on their next generation debugger. I worked in Minnesota for a few VOIP startups for about 8 years. worked a few years in southern California for MusicStream. I currently do consulting for a Midwestern company, mostly doing Java server-side coding. I used XBMC on the XBox for years before retiring it to the garage in favour of a Mini.
I’ve hacked a bit on a few open source projects over the years, including early versions of Mono, but never gotten involved to the extent that I have with the XBMC project. two specific things lead me to initiate the port:
1) My partner was going out of town, and I needed something to keep me busy. 2) I got into an heated argument with a respected colleague and friend, in which I posited that any project these days that doesn’t use a managed language (Java/.NET) needs to justify the reasons for doing so because of the greatly increased productivity in those environments. He argued that C++ was a completely valid choice and that the managed language was the one that needed to justify itself. I fumed about it, and then wondered if maybe my years of playing in managed environments had made me weak in The Force. So I thought “Hey, I’ll give porting this enormous C++ project a try!”
What do you see as the ultimate aim of the project? A free “plays everything” HD media player for all?
That’s a good summary, yes, but I’d say a free, *highly extensible* HD media *platform* for all. The extensible part is key because features like Python scriptability are what set it firmly apart from others in the genre. I’d call it a media *platform*, because once we add support for native application plug-ins (e.g. MAME), it becomes much more than a player. There are of course existing pure Python games and such, but we’re going to bring it to the next level.
The Python Scripts allow anyone to add functionality to the system. The XBMC environment seems perfect for adding home Automation controls. any plans for this sort of thing?
I absolutely agree, there’s a lot of potential here. I have no specific plans myself to do anything here, but there’s certainly the opportunity for developers in the home Automation community to say “Hey, here’s a terrific platform for us” and develop some really amazing stuff.
We’ve read it’s unlikely you’ll support the AppleTV as it’s not powerful enough for HD. That’s a pity as it would have been a relatively inexpensive platform for OSXBMC. Is this definitely something you wont consider for the future, even just for SD DivX/XviD playback?
You’ve touched on one reason why we haven’t approached the platform. The 720p limitation and closed hardware decoder don’t it make it attractive from that perspective. more importantly, though, and as we’ve stated in the past, we want to stay on the right side of Apple here, and hacking the Apple TV doesn’t seem like the best approach to get them to send us Christmas cards.
Elan & Barkley – OSXBMC Developers
For people that are looking for reliable 1080p playback of modern codecs the current (and overdue for a rev) Intel Mac tiny seems to be the best candidate for a small, quiet box to use with OSXBMC. however surely it’s too expensive for people to have in each room?
Well, I seem to be in the minority in that we own only one television set (and don’t subscribe to cable TV, for that matter). I think if you’re getting multiple 1080p sets, you can afford to buy multiple Mac Minis. If you’re simply talking about stuffing a little TV in the kids’ room to keep them quiet, an XBox running XBMC would likely work just fine.
Remote control support is fairly basic but we know you are working to improve that now. What devices do you see being supported and can an Intel Mac decode any IR remote (like the original Xbox remote or a Pronto universal remote for example).
The Mac IR receiver (and associated driver) is limited, and we’ve taken the following approach to remote control for the next version (and foreseeable future). We’re going to support three configurations:
Apple Remote: We’re working hard to ensure that people get a terrific experience with the remote control they already own.
Universal Remotes: Scott and Cayce came up with a creative approach to support these devices by recognizing sequences of Apple Remote codes. using this, we’ve defined 19 total commands that are accessible, and initial testing has shown this to work very well.
XBox 360 wireless controller: This is the supported device for people who like game controllers.
People might get other remote controls working, but the above three are what we consider the officially supported configurations.
Do you ever envisage an XBMC back end “Server Edition” with PVR capabilities that would feed XBMC clients?
There are two primary categories of people in the current media consumption world: The time-shifters, and the downloaders. My view on the evolution of video media (TV/Movie) consumption is as follows:
Paleolithic: Pre-time-shifting. If you want to see it, you have to wait for it.
Neolithic: Time-shifting. You can watch whenever you want, but only what’s on offer.
Modern: Download. watch whatever you want, and then watch it whenever you want.
Post-modern: Streaming. instant access to all pieces of media ever created.
I’m not personally interested in returning the Neolithic. The only reasonable argument I’ve heard for having cable at all is for sports, which represents a bit of a black hole for me. having grown up in Europe, I only recently learned what a Two-Point Conversion was in American Football, and only because my partner explained it to me.
That’s a very long-winded answer to your question, which I’ll answer now more succinctly: I personally have no interest in PVR features in XBMC. That having been said, others have done work in integrating XBMC with the MythTV back-end.
Most of our much-loved features from the Xbox days are already available in OSXBMC. What’s left to do to get us on a power with the Xbox version and what features do you want to add that will take us to a step beyond?
We’d like to implement better integration with Mac in general and Mac media in specific. browsing iPhoto and Aperture albums, iTunes playlists, etc. We’re also missing support for playing DVD discs. Cayce’s been working on getting integration with the Mac’s energy saving features, so that the tiny goes to sleep when idle, and the screen is allowed to sleep. the most important thing for us though, is stability. So we’ll be focusing lots of time on taking care of bugs and getting things rock solid. We’re not opposed to cutting out features out of the OS X version to benefit stability.
One of the things I always observed about the XBox version was that whenever I installed a new release, it seemed like two things had been fixed and two other things were newly broken. That’s easy to understand given that at the time it was a “pirate” product, where even compiling it was illegal. now that we’re on open platforms and getting a broader audience, XBMC needs to do some maturing from the perspective of improving its software engineering practices. For example, ffmpeg has an extensive regression test suite. XBMC has nothing of the sort. If we want to build a solid platform, we need to embrace some of these practices.
Another aspect is end-user support. We try to offer superior support to the OS X users, and Isaac has been instrumental in creating buy from chaos with respect to getting high quality bug reports from users and really raising the signal to noise ratio on our Trac bug-tracking system.
OSXBMC is currently Intel/Leopard only. will this always be the case?
I have no plans to port to PPC or Tiger, because I don’t see the point, but that doesn’t stop anyone from giving it a try.
Where is the OSX project in relation to the Windows and Linux versions of XBMC? Do you see any one version getting more support that the others.
We’re slightly behind the Linux version (in DVD support, at least), and possibly slightly ahead of the Windows version, although it’s catching up quickly. The terrific part is that 95% of the code is cross-platform, so people who fix a bug on one platform usually fix it for all platforms as a result.
If you’re talking about support in terms of absolute numbers, there are lots more Windows users than Mac or Linux users (for the moment, at least). In terms of relative platform penetration, for OS X and Linux at least, XBMC represents a best-of-breed solution (if we can make it solid). For OS X, we want to get to the point where people buy a Mac and download XBMC because it’s just known as being the better Front Row.
What’s the best way for people to get involved or support the project? any particular skills you require that aren’t currently available on the team? Where can people see the road map and find you on-line?
We’re definitely on the lookout for OS X coders, people who know the platform and would like to help taking a terrific media platform and turning it into a terrific OS X media platform. We’d love to get some superior designers (I’m a substantial fan of Hicks Design, personally) to do a skin for us. Our current roadmap can be seen here. Our site is here. You can see a list of the team members there too .
Many thanks for answering our questions Elan.
Thanks for your interest
Want More? – You should follow us on Twitter, Like us on Facebook, or subscribe to our RSS feed. You can even get these news stories delivered via email, straight to your inbox every day.