What's going on?
I promised an update a few weeks ago and here it is. Better late than never! There’s lots to discuss about what’s going on with XBMC development work. So how about this.. I’ll provide an overview as to what’s in the works, then respond to any questions/comments in a follow-up post. This information is aimed at our more technical users interested in the bleeding edge, so if you’re not interested in development, you may want to sit this one out. This is also a test-run for future posts. In the past, I have avoided writing technically as much as possible because it may not interest many of our readers. If there is a demand for more, we’ll make it a regular thing.
Git
First up is our move to git. We said goodbye to SVN a few months ago and have experienced the pros and cons of a distributed vcs. Git can be challenging even for seasoned developers, but it brings many benefits. Here’s what we’ve seen so far:
Pros
- Distributed. We can work as we travel. Everyone has a clone, so it’s much easier to say “try my code!”
- Branching/Merging. These are obvious to any git user.
- Github. The pull requests have proven to be excellent for discussing new features before merging them into mainline.
- Code quality. Due to the above, we have been working hard to keep the master branch compiling on all platforms for each revision. Though git is a great tool, not magic..
- git-svn. This provided many of us with a bridge to git.
Cons
- Git is hard. It has proven to be a big change for several of our developers, and has made us quite cranky at times. We’ve even decided that the committer who makes the biggest git-related oops will be presented with the first-annual “git-wtf” award at the next DevCon.
- The distributed nature means that it can be difficult to get a quick overview of what’s happening. We each maintain repos and branches, then merge them in upon feature completion. As a result, there may be zero activity in the main repository for a few days, followed by large feature-complete merges.
- Rebasing can be voodoo to inexperienced git users.
- Not related to git specifically, but switching our VCS has been a big hassle. We have had to fixup our buildsystem on all platforms, trac, mailing lists, irc bots, buildbot, etc.
Nightly Builds
Nightly builds were a big hit during the Dharma development phase, and proved to be very helpful for debugging. The move to git has slowed us down, but nightly builds started back up last night. Windows and OSX are up and running, our Ubuntu PPA will be up soon.
Restructuring
As with each major version, we’ve taken the opportunity to clean up old code, refactor for easier development, and abstract away as much as possible. The first big move was a “code reshuffle” by cptspiff, and it was a huge step towards cleaning things up. As a result, the classes and includes have undergone a major cleaning, and files have been moved to sane locations. One of the main goals was to separate our code from that of upstream libs, which had become tangled into a nasty mess over the years. This should help us move towards inclusion into Linux repositories, among other things.
OSX and Windows have undergone similar restructuring. The goal for these platforms has been to get away from keeping pre-built binaries in our repository, and to build them natively instead. This can be tricky, especially for unixy libraries in windows. Kudos to WiSo, CrystalP, and the others for getting ffmpeg built as part of the XBMC compile.
Jcarroll has recently been working to clean up some of our global variables. This is pretty transparent to users, though some Linux users may notice that the annoying “Critical Section” messages are no longer spamming their consoles. In addition, he is working to make external python default for all platforms so that we can finally stop building the ancient 2.4 with each compile!
New Stuff
Anssi has bumped FFmpeg to a more recent snapshot. For the most part, this means playback bugfixes and new format support, but in this case we were also able to trim a few dependencies: liba52, libdts, and libmms are no longer with us.
FneuFneu has submitted a pull request that provides FreeBSD support. This will surely undergo a few rounds of review, but should be merged in soon enough. This should make XBMC appeal to yet another audience.
Jmarshall has several projects going. With the iPad announcement, we have a new audience of touchscreen users. He’s working to make the experience better by providing skinners with a new set of touchscreen tools. The first bit was committed last night, it adds a touch-friendly slider during movie playback.
In addition, he has a “files-in-library” branch going that will lead us an overdue refresh of how the library works. Suffice it to say, the goal is to unify the File/Library views so that navigating is much more intuitive. From the work done so far, it is shaping up to be incredible. I hesitate to mention it here because it is likely to cause plenty of confusion, but we’ll discuss it more as there is more to see.
Gnif continues his development on his new AudioEngine, a complete rewrite of our audio system that solves many problems at once. This is mainly waiting on the OSX portion and testing.
Dushmaniac and several others continue their work on the PVR interface while the other piece of the puzzle, cptspiff’s binary add-on work, continues as well.
iDevice/aTV2
Davilla, Amet, Gimli, and others continue to work tirelessly on these ports. A quick update (10.0-7) was released on Feb 19 featuring:
- Faster picture loads
- Improved rendering speed
- Remote thumbnail fixes
- More flexible h.264 playback
- Disabled portrait mode (while this is a cool feature, it was more annoying than anything)
- Enabled ZeroConf
- Updated Samba
A special thanks for Memphiz for working out several bugs lately.
This will be the last release for a while. They will now focus on integrating the port into mainline code.
Dharma 10.1
We have been working on a bugfix release for Dharma, due out very soon. The main reason for this release is a bug that keeps us from updating skins on the official repository. In Windows, if a new version for the current skin is released and automatic updates are on (default), XBMC will fail to load the update, leaving users in skin-limbo. Ouch. This has since been fixed. You can follow the merge request here. Only packaging is holding up this release.
Statistics
We’ve begun tallying add-on statistics so that we can display download counts, popularity, etc in XBMC. The numbers are VERY impressive. Next up is a post with some details.
Are there any plans for the Spotify plugin (or any other music-related plugin)?
I would not consider myself technical at all, but I truly enjoyed the post and the deep details provided as to what is going on. Fascinating the efforts that the whole team is putting forth here and I thank everyone. After being an oldschool Xbox XBMC user, I have been enthralled with the work for ATV2 and enjoying using XBMC again!
I’m a recent user of XBMC. I like that you are providing a technical status update. I would rather know what to expect other than “we’re working on it!”
I have to ask, did you evaluate using Mercurial instead of Git? I switched from Git to Mercurial and have not regretted it. I’ve recently dealt with a couple Git based projects and found Git to be unnecessarily frustrating. I know you’re not going to switch again, but I’m curious if you evaluated both, and, if so, why you chose the one over the other.
Where are these newly restarted nightly builds you mention available from?
@Martin
Thanks for the nudge, linked in the post. See here: http://mirrors.xbmc.org/nightlies/
Thanks for the update, looking forward to future news updates, keep up the good work ;)
Wow, nice update! I have been trying to keep track of the latest news through Trac and the forum but this is awesome. I vote its a keeper for sure.
You mentioned gaining the attention of touch screens. Any thought of pouring this to Android, it is linux based. With all of the new tablets coming out, that’s something I’d be interested in.
Great post, i like the format. Do have any updates to share regarding the Sigma port? Anything else in the works on the embedded front?
Thank you for this update !
I would also be interested ton know how you can build statistic with addons repo as you only have XML files.
Cheers !
great update! I don’t think it was too technical, as you gave a very concise summary. If people want more details, then they can go to the respective threads in the forums. It was a great snapshot of where xbmc is – looking forward to the next update! P.S. – I cannot wait till LIVE can play BLU-RAY ISO!!!!
Thanks theuni!
As a developer and devout XBMC fan the update is very much welcome.
@Magnus Falk
You can try mopidy combined with the mpdclient addon! Still doesnt work 100% reliably, but good enough for me. Mopidy currently has a bug which makes it necessary to search before any playlists are shown every time you start mopidy, this is the major showstopper. I just don’t restart my xbmc for now.
Any plans to update to Python 3.2 version of the scripting engine?
phoronix.com wrote this about this recent stable Python release:
“Some of the key highlights jumping on the list include the introduction of a stable ABI for the extension modules, an overhauled GIL implementation, an extended email package, an improved SSL module, a sysconf module for accessing configuration information, improvements to the Python Debugger, and much more.”
“If there is a demand for more, we’ll make it a regular thing.”
Please do, there is demand! :)
@John Bäckstrand
It appears Mopidy does require a linux install, which may be a showstopper for some. More info here: http://www.mopidy.com/
These technical updates are great! I read the forum more than daily and even then its sometimes hard to keep track of all ongoing development. Posts such as this one gives a great overview!
Great job on entertaining and updating the community! ;)
I love these kind of posts! very informative :D
cant wait for the next one(s)
more news about the PVR branch and the Signa port would be most welcome
I would love to see such a post at least once a month!
Eagerly waiting for the PPA here…
Awesome post! I love hearing the technical improvements going on in the background. This posting was perfect. Keep up the good work!
I truly recommend that the whole XBMC developers team read this from start to finish: http://progit.org/book/
I’ve read as far as to chapter 7, and I’ve learned a lot about Git and the “Git way”. So, it there are team members that don’t fully grasp the concept of Git, or DVCS, this is the book to get them started on a ventures journey ;)
Just wanted to say thanks for this nice update and even though I am ‘just’ a user the information was very readable! I hope you find time to keep this information coming our way :)
Very much liked the code reshuffle done, makes the code much nicer to read and understand. Also congrats on getting rid of deps, when can we expect the removal of faad2 + faac?
Thanks, great update, gives a real sense of momentum. As russg said it can be hard to keep on top of everything on the forums and through trac, consolidating it here really helps.
Any more definitive ETA on packaging 10.1, that bug (and the VDADecoder issue) has been causing me a few headaches and I’d rather stick to official builds. Anyway keep up the good work!
Really enjoyed the post, i hope there will be some more technical insights in the future.
As a technical user, I really enjoyed this update! Please keep them going, it’s nice to have a unified post detailing all the recent work rather than watching commit comments.
Great stuff. Looking forward to future posts like this.
I’d love a spotify addon too!
SSA/ASS Subtitles for the idevices please. we so need them to work.
Thanks :)
Thanks for the update, much appreciated!
Semi technical knowledge here altho more on the hardware side of things. I truely enjoyed this update. Nice to know whats going on with one of the best pieces of software I’ve ever played around with. I have a dedicated windows machine and trying to get my appletv2 to work although i’m having some problems with only part of the library showing up.
Keep up the great work.
This is a great post. very informative. I am just a regular user however this post is easy to read and to follow. Keep up the great work team xbmc as this is the best media center out there. The new ios port has been awesome and cant wait to see if an android one comes out wtih all these new tablets coming. Very exciting time for xbmc users and developers. :)
I definitely enjoy technical updates. It’s nice to see what’s going on behind the scenes and learn a little bit more about the application I use on an almost daily basis, especially since I consider myself a pretty technical user. Keep them coming, and keep up the good work!
Epic post! Exactly the kind of inside which is nice to know and will keep the hope and spirit alive :)
Great post! It’s good to see the technical details hit the front page.
When do we get to test the new audio engine?
Also, will the new audio engine also be included in the AppleTV 2 builds, or is that just OSX/Windows/Linux specific?
I’ve been using XBMC since 2005, and have been using the linux port and live version since it first came out. The ability of 1080p on anything Nvidia 8200 or higher has been awesome.
I’m very interested in finding out what’s next on hardware that can support 1080p. With Boxee running on the Intel CE4100 series, is there any work going into this for XBMC on any of the upcoming CE4100 based hardware coming from Asus and Acer? Now that aTV2 is supported, I know there will be more options coming soon, Sigma, ARM, CE4100.
Although the current solution that works best is basically a PC that is capable of running Windows 7 along with XBMC or XBMC Live. Having an extremely small sub-$200 complete box that can do 1080p is what I’ve been waiting for. Once that happens I know I will be able to get MANY more friends and family using it.
Also, I haven’t heard anything at all about a potential Android port. I’m sure this will be much more difficult than iDevices since the hardware isn’t consistent on Android.
Detailed technical updates are definitely appreciated, and please keep us updated on the status of Sigma and any other portable platforms. I watch the XBMC RSS feed for any updates and am always excited for any new info.
Please, keep us informed. Very informative post, really like it.
As a daily XBMC user, and not a very technically-oriented one, I did rather enjoy the technical aspects of the post. Keep it up!
I am also interested in the Audio Engine branch given it’s supposed to support bitstreaming HD audio. Bitstreaming isn’t as important as simply not sacrificing the HD audio (in the case of DTS HD). I can live with TrueHD being decoded on the PC sending PCM to my receiver (today’s reality)… but I still include MPC-HC as an external player for DTS HD tracks so that I can enjoy HD audio.. I’d LOVE to forget about MPC-HC and use XBMC’s internal player for everything.
Great post, love the insight into the back-end dev processes!
Very interesting read!
Nice read, thanks for the update!
Great post – looking forward to more of these in the future!
Excited about the ffmpeg update. Hopefully this will fix issues I have been having when attempting to play Shorten (shn) files.
theuni, after your post 6. feb. “expect a post in the next day or two outline what else we’ve been doing”.
I’ve checked 2-3 times daily for a new update.
It took some time, but it exceeded my expectations :)
If you’ve got the time, please make post like theese, more regualy.
Many of us(if not all of us, who checks the website regualy) appreciate your posts very…very very much :-)
Thanks again, for the post, and all the hard work on XBMC you guys do, on a daily basis. Respect.
I thought the post was a great addition to the site and keeping people informed. I think it would be helpful if you guys had a subscribe button on the main site. I found the RSS feed by using http://xbmc.org/feed/rss/ but it took me quite a while to figure out and it could help keep people informed who use RSS feeds as their main news resource.
Also I am very excited for the PVR branch and look forward to future ports to webOS and Android.
Thanks for the update guys! Any news with official VAAPI support for 790GX chipset?
Great post, definitely keep this up.
I was wondering if your were planning on adding more flexibility to the menu structure? Right now we only have “Movies” and “TV Series” and no option of adding other entries/categories (Anime comes to mind), except for using custom skins.
What would be great is if users were able to add menu entries themselves, defining what folders and which scrapers should be used for each entry.
Thanks for the update guys! keep up the good work.