Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
RFC: Disable libaacs, causes GUI hangs on some BD ISOs #4378
When starting playback of some BD ISOs, the Kodi GUI will hang (one core at 100% load, busy dialog spinning, GUI unresponsive), requiring that Kodi be restarted.
This behaviour is confirmed on RPi, RPi2 and x86 (with Kodi 15 and also Kodi 16).
The problem has been traced to the libaacs library. When playing a problematic BD ISO, this is the last entry written to the log:
Disabling libaacs will fix the problem and the BD ISOs will play normally, at least on RPi/RPi2. On x86 I haven't been able to play the ISO at all as the "Play with 3d mode" menu isn't working (this is the only menu option that will successfully play the BD ISO on RPi without libaacs).
Building libaacs with all upstream commits since 0.8.1 (31 at the time of writing, HEAD=c6dc792eba169e34b34f542c32066c04601cf428) does not resolve the problem, so it is either unknown to the libaacs developers or they don't yet have a fix.
This PR proposes that libaacs is disabled for all platforms. Is there any point to libaacs?
Edit: Updated to confirm same "hang" behaviour in 5.59.5/Kodi 15, and added complete debug logs.
Hmm, never really used aacs but isn't it used for decrypting bluray ISO's?
Not sure if this is something we should really disable, but if it is broken then there is no use supporting it.
You'd think that, but disabling libaacs still allows BD ISOs to play on the RPi so I'm not entirely sure what the purpose of libaacs is, as it doesn't seem necessary for playback, and may be causing more problems than it solves.
I'd like to be able to say I've confirmed successful BD ISO playback on x86 with libaacs disabled, but my only test BD ISO is a 3D file and having disabled libaacs it then turns out the "Play with 3d mode" menu is entirely missing on x86 (tested Kodi 15 and Kodi 16), so even without libaacs the BD ISO is unplayable on x86. At least OE x86 without libaacs is no longer hanging though, which is what happens when libaacs is enabled.
And this isn't an OpenELEC specific issue either, as Kodi 16 on Ubuntu will also hang due to libaacs when testing my 3D BD ISO test file (any suggestions on how to build Kodi without libaacs?)
So based on a personal sample of one BD ISO file (but also several reports from users in my test build thread) there seems to be more chance of successful BD ISO playback with libaacs disabled than with libaacs enabled.
It would be interesting if others with a wider selection of BD ISOs (both 3D and 2D) could chime in with their feedback.
libaacs has been disabled since 10 Sep in my RPi builds (~200-250 installs per day) and there have been no reports of BD ISO playback problems resulting from this libaacs change. On the contrary, there have been several positive reports of BD ISO playback now working when it didn't before with libaacs enabled.
Well that is compelling to know that you have already disabled this for a while.
I would say that is evidence enough and this should get merged in for openelec-6.0.
@sraue it's your decision but I am in favour for disabling libaacs
And just to be clear, 3D BD ISO playback on OE x86 is broken for potentially two reasons - if Kodi doesn't hang because of libaacs, then the ISO is unplayable anyway as there is no 3D menu offered to the user (the 3 remaining menu options all fail because the "disk is encrypted" despite the RPi being able to play encrypted BD ISOs without libaacs... it's all a bit of a mess)
What I'm not clear about is whether 2D BD ISO playback on x86 will continue to work without libaacs, as 2D ISOs shouldn't be dependent on the "Play with 3d mode" menu, but does 2D playback then require libaacs (eg. dependent on one of the other 3 menu items which all fail with 3D ISOs on RPi)? Reports from the RPi test thread would suggest libaacs is not required for either 2D or 3D...
By the way, I've reproduced this behaviour with Kodi 15 (DVDPlayer) and also Kodi 16 with both DVDPlayer and VideoPlayer, so it's not a regression resulting from the VideoPlayer changes, or anything new in Kodi 16.
Most ISO files users have ripped will have had encryption removed.
The question is, does libaacs allow encrypted ISO files, or playback from a physical BluRay disk work?
I tested a new RPi2/Kodi 16 build with libaacs 0.7.1 (64a70c4), which is the libaacs version we used until 18 Mar 2015 when it was bumped to 0.8.1, and libaacs 0.7.1 also has the same "hanging" problem when playing the test ISO.
I also tested an old RPi2 build from 10 March 2015 (libaacs 0.7.1, libbluray 0.6.2, Kodi 15.0-alpha2-ccff322), and that hangs in the exact same way.
So this doesn't appear to be a new problem with libaacs (or libbluray), but most likely a libaacs bug that now trips up over certain already decrypted ISOs. The test ISO is a 3D ISO, not sure if that's pertinent.
Note that playback of the problem disc is fixed by the following three commits on libaacs git:
Commited by Roland Fischer: http://git.videolan.org/?p=libaacs.git;a=search;s=Roland+Fischer;st=author