2026-08-25 14:47:05 -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
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
make bootstrap
|
|
|
|
|
make
|
|
|
|
|
make inspect
|
|
|
|
|
make run
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The ISO is written to:
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
build/adjustments.iso
|
|
|
|
|
```
|
|
|
|
|
|
2026-08-25 14:57:31 -04:00
|
|
|
`make run` previews the disc by pointing VLC's Blu-ray access module at the
|
2026-08-25 16:25:42 -04:00
|
|
|
`build/disc` BDMV **folder** (a real player reads the same tree from the ISO):
|
2026-08-25 14:47:05 -04:00
|
|
|
|
|
|
|
|
```sh
|
2026-08-25 14:57:31 -04:00
|
|
|
vlc --bluray-menu bluray:///absolute/path/to/build/disc
|
2026-08-25 14:47:05 -04:00
|
|
|
```
|
|
|
|
|
|
2026-08-25 16:25:42 -04:00
|
|
|
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.
|
2026-08-25 14:57:31 -04:00
|
|
|
|
2026-08-25 14:47:05 -04:00
|
|
|
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`.
|