XBMC unstable on your Android box? This might be the hardware acceleration settings, here’s how to fix it
I was recently sent a CR13 Android Set top box for testing. The device ships with the latest RK3288 CPU from Rockchip. This CPU has very good hardware acceleration to play HD movies, and works flawlessly with XBMC, even on the most demanding videos.
However, with XBMC’s default settings, I had stability issues: videos would regularly and randomly crash, returning me to the home screen of the TV box.
After digging a bit in various directions, I found out that the problem in my case came from the MediaCodec hardware acceleration mode.
XBMC comes with two hardware acceleration decoding libraries: libstagefreight, and MediaCodec. MediaCodec has the reputation of being the “right” choice on Android, and libstagefreight is supposed to be more “experimental”. Both are activated by default when you turn hardware acceleration “ON” in XBMC, and I assume XBMC tries to use MediaC odec first, whenever possible. But since that codec was unstable with my box’s CPU, I needed to turn it off.
In order to do so, in XBMC, go to System, Settings, then Video.
In Video, make sure that the settings level is set to “Expert”. Options to enable/disable Libstagefreight and MediaCodec shoud appear, right below the “display 4:3 video as…” option. Just deactivate “MediaCodec” (keep libstagefreight), restart XBMC, and you’re done.
If that doesn’t work, try the other way around, by keeping libstagefreight and removing MediaCodec.
Enjoy your full speed XBMC 🙂