Root causes found this session (all player-side, disc is valid -- bd_info
validates it and mpv plays the ISO's feature directly):
- Plain 'vlc <iso>' can't run ANY BD-J: system Java is 26, and libbluray's BD-J
needs a JVM where System.setSecurityManager() works (<=21). run-vlc.sh pins
mise Temurin 8, which is why it gets a menu at all.
- The BD-J VFS-cache 'error creating /tmp/libbluray-bdj-cache' flood is
libbluray's SecurityManager.canWrite() denying the cache root while an Xlet
context is active. Fixed by pointing TMPDIR at LIBBLURAY_CACHE_ROOT (buda
root), which canWrite() allows unconditionally.
- Menu->playback failed with 'blurayReleaseVout: subpicture channel exists':
VLC botches the background->playlist transition for an idle BD-J menu. Now the
Xlet starts the feature immediately and draws the menu on top, so VLC stays in
normal playing mode; MAIN FEATURE just hides the menu, any key brings it back,
and the feature loops.
Also: drop the redundant tools/vlc-plugins swap (system VLC already ships the
bluray plugin), and add scripts/run-mpv.sh to play the feature with no BD-J/JVM
at all. Vendored the SDK helloworld sample for reference.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>