Fix playListNumber to stream-name mapping; add JavaFX ui module
- Playlist.streamForPlayListNumber maps the 1-based playListNumber to the actual stream entry; stream names are not sequential across discs (The Dark Knight: 00001/00003/00004; The Day After Tomorrow has duplicate 00002 names). - CLI menu playback now resolves the correct .MPS file for every region. - ui module: JavaFX via org.openjfx.javafxplugin + PlayerApp smoke test (window verified on this display). - Validated menus + playback on 4 discs: Batman Begins (USA), Jackass (Australia), The Dark Knight (Europe), The Day After Tomorrow (Japan).
This commit is contained in:
@@ -436,6 +436,8 @@ public final class Main {
|
||||
VsmxInterpreter interpreter = new VsmxInterpreter();
|
||||
interpreter.setVsmx(vsmx);
|
||||
|
||||
final Playlist playlist = Playlist.parse(iso);
|
||||
|
||||
final List<String> playCalls = new java.util.ArrayList<>();
|
||||
MenuHost menuHost = new MenuHost() {
|
||||
@Override
|
||||
@@ -443,7 +445,8 @@ public final class Main {
|
||||
int audioFlag, int subtitleNumber, int subtitleFlag) {
|
||||
String call = String.format("play(playList=%d, chapter=%d, video=%d, audio=%d, audioFlag=%d, subtitle=%d, subtitleFlag=%d)",
|
||||
playListNumber, chapterNumber, videoNumber, audioNumber, audioFlag, subtitleNumber, subtitleFlag);
|
||||
String streamName = String.format("%05d", playListNumber);
|
||||
Playlist.Stream stream = playlist.streamForPlayListNumber(playListNumber);
|
||||
String streamName = stream == null ? String.format("%05d", playListNumber) : stream.name();
|
||||
try (PlaybackEngine engine = PlaybackEngine.open(iso, streamName, 0)) {
|
||||
int frames = 0;
|
||||
PlaybackEngine.VideoFrame frame;
|
||||
|
||||
Reference in New Issue
Block a user