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>
This commit is contained in:
parent
48c172cb80
commit
4c270b744f
10 changed files with 362 additions and 25 deletions
29
scripts/run-mpv.sh
Normal file
29
scripts/run-mpv.sh
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Play the disc's feature straight from the ISO (or a BDMV folder) with mpv.
|
||||
#
|
||||
# mpv links libbluray and plays Blu-ray *titles/playlists* directly. It does NOT
|
||||
# run BD-J -- there is no menu, no Xlet, no Java involved. This is purely "open
|
||||
# the disc and watch the movie", and unlike the VLC/BD-J path it Just Works with
|
||||
# no JVM or cache setup. Use scripts/run-vlc.sh if you want the BD-J menu.
|
||||
#
|
||||
# Pass a path to override the default (an .iso image or a BDMV folder).
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
TARGET="${1:-$ROOT_DIR/build/adjustments.iso}"
|
||||
|
||||
if [[ ! -e "$TARGET" ]]; then
|
||||
echo "Missing disc target: $TARGET" >&2
|
||||
echo "Run: make" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -d "$TARGET" ]]; then
|
||||
DEVICE="$(cd "$TARGET" && pwd)"
|
||||
else
|
||||
DEVICE="$(cd "$(dirname "$TARGET")" && pwd)/$(basename "$TARGET")"
|
||||
fi
|
||||
|
||||
# bd://longest plays the main title; --bluray-device points at the image/folder.
|
||||
exec mpv --bluray-device="$DEVICE" "bd://longest"
|
||||
Loading…
Add table
Add a link
Reference in a new issue