adjustments_bluray/vendor/bdj-sdk
happy 4c270b744f Play feature under the menu; add mpv path; simplify VLC launch
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>
2026-08-25 16:25:42 -04:00
..
host Base: BD-J Adjustments Blu-ray scaffold 2026-08-25 14:47:05 -04:00
resources Base: BD-J Adjustments Blu-ray scaffold 2026-08-25 14:47:05 -04:00
samples/helloworld Play feature under the menu; add mpv path; simplify VLC launch 2026-08-25 16:25:42 -04:00
target Base: BD-J Adjustments Blu-ray scaffold 2026-08-25 14:47:05 -04:00
.gitignore Base: BD-J Adjustments Blu-ray scaffold 2026-08-25 14:47:05 -04:00
README.md Base: BD-J Adjustments Blu-ray scaffold 2026-08-25 14:47:05 -04:00

BD-J Linux SDK

This is a set of tools to simplify building BD-J ISO images on GNU/Linux systems. It is an adaptation of the Win32 minimal BD-J toolkit for the PS3, with an updated authoring tool from the HD Cookbook. For creating ISO images, we use a Linux port of NetBSD makefs ported by Andrew Randrianasulu.

Building

On Debian-flavored operating systems, you can invoke the following commands to install dependencies, and compile the source code.

john@localhost:~$ sudo apt-get install build-essential libbsd-dev git pkg-config openjdk-8-jdk-headless openjdk-11-jdk-headless
john@localhost:~$ git clone --recurse-submodules https://github.com/john-tornblom/bdj-sdk
john@localhost:~$ ln -s /usr/lib/jvm/java-8-openjdk-amd64 bdj-sdk/host/jdk8
john@localhost:~$ ln -s /usr/lib/jvm/java-11-openjdk-amd64 bdj-sdk/host/jdk11
john@localhost:~$ make -C bdj-sdk/host/src/makefs_termux
john@localhost:~$ make -C bdj-sdk/host/src/makefs_termux install DESTDIR=$PWD/bdj-sdk/host
john@localhost:~$ make -C bdj-sdk/target

Usage example

john@localhost:~$ make -C bdj-sdk/samples/helloworld

If everything was built successfully, you will find an BD-RE iso file bdj-sdk/samples/helloworld/helloworld.iso