I’m pretty drunk, so there’s a good chance that I’ll screw up this release, but I’ll give it a good run. This is mostly a bug-fix release, with a few new features thrown in for good measure. I also updated to the very latest ffmpeg and XBMC code, which will hopefully only improve things.
Here are the changes in this release:
- FIX: I re-enabled the pixel shader for “advanced” OpenGL cards, which was mistakenly left disabled in the last release due to the X3100 debugging. Nobody even noticed, so it’s likely you won’t notice it being on again, but feel free to pretend like everything suddenly got a whole lot faster or better looking.
- FIX: Crash on exit that was due to you naughty users having Python scripts in the scripts folder. I know who you are.
- FIX: FLAC files should now play, as I fixed the linkage on the FLAC library.
- FIX: Make sure the “Application Support” directory is there before trying to create the XBMC directory inside it. For those of you with really virgin Macs.
- NEW: Down-mixing of AC3 and DTS. Finally, those of you having to sit there in silence watching your movies at high speed, perhaps having to suffer through a loved one nagging you over your shoulder. Set your output mode to analog, turn up the volume, and ignore that loved one. (P.S. Those of you anime fiends with 5-channel AAC, sorry people, no such luck. Post a link to a sample video with that sound format and I’ll try to look into it.)
- NEW: Support for 4:2:2 MPEG video. This corresponds to the “30secondfergie.mpg” clip, for those of you in the know. Thanks to d4rk and elupus for the final tip on how to scale down the chroma planes. I also updated the libmpeg2 library to the latest and greatest, which adds SSE2 decoding acceleration, and probably lots of bug-fixes. There is still a problem thumbnailing certain MPEG videos. It seems to be a bug in libmpeg2, but I haven’t had time to track it down further.
- NEW: Preliminary support for Xbox 360 wireless controllers. I have one, and I’ve modified the keymap.xml file for basic support. I’m using the drivers found here, and they seem to work pretty well, except for a few small issues (and I want to get idle mode working so that the system shuts down the controller). I’m looking for a volunteer to finish up the keymap. It’s going to be a pretty sweet option for controlling XBMC, especially once I get MAME integrated.
- FIX: Exiting with certain skins caused a hang, which was deadly and downright rude in fullscreen mode. Being unable to quickly find the bug, I’ve simply disabled skin unloading upon exit. The pros: No more hangs. The cons: Lack of “final” animation. The pros: It exits much more quickly. So go ahead and try to have a problem exiting. I double doggy dare you.
- FIX: Watching a movie and then switching to fullscreen mode with the ” key could result in vertical sync being disabled, which led to video tearing and hair-tearing posts on the forum and blog.
- NEW: I updated CxImage to version 6.0 (used in displaying photos). Besides incorporating years of fixes and enhancements, the one thing I was excited about was RAW support. However, there are a few downsides I’ve found: It takes forever to thumbnail RAW files, and the thumbnails are corrupted (ha!). However, it will actually display RAW images properly in a slideshow. N.B. To enable RAW display, you’ll need an advancedsettings.xml file that looks like this.
- FIX: When switching between fullscreen and windowed mode, the fonts would get kind of messed up, in that their sizes were wrong. d4rk explained what was going on, and I fixed it.
- NEW: Lots of improvements on the scrapers (which load movie/TV show information) from others on the XBMC team. Hopefully they work for you.
One more thing, on the topic of “skiploopfilter”. I did a bunch of experimenting, and I’ve come to the conclusion that it may not be worth the effort. First, let me share some numbers with you; these are all playing the infamous “bird scene” from Planet Earth.
NO: 449 dropped, 159% CPU usage.
ALL: 443 dropped, 147% CPU usage.
BIDIR: 449 dropped, 157% CPU usage.
As you can see, there’s really not much difference. My theory is that the CABAC patch that is applied to ffmpeg, which does prediction+idct+deblock in a separate thread from decoding, already improves things to the extent that deblocking is really not the bottleneck.
Yes, I know, I need to check in my changes. Now that I’m all synced up, I’ll work on that tomorrow. I promise.