No description
Find a file
Olive Vaughn ac846dc38f JMF playback, transparent graphics plane, macOS tsMuxeR
Wire up MAIN FEATURE to play playlist 00000 via JMF
Manager.createPlayer / prefetch / start. Clear the BD-J graphics
plane with AlphaComposite.Clear so the video plane shows through
during playback; redraw the menu on EndOfMediaEvent or Enter/Escape.

Claim exclusive key access through DVB EventManager so the player
firmware does not interpret arrow keys as transport controls.

Swap the Linux ELF tsMuxeR binary for the native macOS ARM64 build.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-09-03 19:44:02 -04:00
docs Base: BD-J Adjustments Blu-ray scaffold 2026-08-25 14:47:05 -04:00
scripts Play feature under the menu; add mpv path; simplify VLC launch 2026-08-25 16:25:42 -04:00
src/org/homebrew JMF playback, transparent graphics plane, macOS tsMuxeR 2026-09-03 19:44:02 -04:00
tools JMF playback, transparent graphics plane, macOS tsMuxeR 2026-09-03 19:44:02 -04:00
vendor/bdj-sdk Play feature under the menu; add mpv path; simplify VLC launch 2026-08-25 16:25:42 -04:00
.gitignore Base: BD-J Adjustments Blu-ray scaffold 2026-08-25 14:47:05 -04:00
Makefile Preview from BDMV folder so the BD-J menu Xlet actually loads 2026-08-25 14:57:31 -04:00
mise.toml Base: BD-J Adjustments Blu-ray scaffold 2026-08-25 14:47:05 -04:00
README.md Play feature under the menu; add mpv path; simplify VLC launch 2026-08-25 16:25:42 -04:00

Adjustments Blu-ray

BD-J scaffold for the off-beat dark comedy Adjustments.

Tooling

  • mise pins Temurin JDK 8 for legacy BD-J bytecode.
  • vendor/bdj-sdk contains the BD-J Linux SDK pieces used for signing, template BD-J metadata, stubs, and UDF ISO generation.
  • tools/tsmuxer/tsMuxeR authors the generated elementary streams into a Blu-ray playlist, clipinfo, and .m2ts.
  • tools/vlc-plugins can hold project-local Arch VLC Blu-ray plugins when the system VLC package is split and vlc-plugin-bluray is not installed.
  • ffmpeg generates the temporary feature clip.
  • vlc opens the resulting ISO.

Commands

make bootstrap
make
make inspect
make run

The ISO is written to:

build/adjustments.iso

make run previews the disc by pointing VLC's Blu-ray access module at the build/disc BDMV folder (a real player reads the same tree from the ISO):

vlc --bluray-menu bluray:///absolute/path/to/build/disc

BD-J cache note: to load the menu Xlet, libbluray copies the disc's JAR and fonts into a VFS cache under java.io.tmpdir (default /tmp/libbluray-bdj-cache). Its BD-J SecurityManager.canWrite() allows writes under the buda/persistent roots unconditionally, but only allows the VFS cache root when no Xlet context is active on the calling thread -- and that extraction frequently runs while a context is active, so the write is denied and you see a flood of error creating .../libbluray-bdj-cache followed by the Xlet failing to load (no menu). scripts/run-vlc.sh fixes this by pointing TMPDIR at the same directory it gives libbluray as LIBBLURAY_CACHE_ROOT (the buda root), so the cache path is always writable. This is a libbluray/VLC runtime quirk, not a defect in the authored disc.

The initial menu is a Java Xlet overlay with a few bonus-feature placeholders and a hidden menu stub. The actual generated video is a short ffmpeg SMPTE bars pattern with AC-3 audio, authored as playlist 00000.