diff --git a/cli/src/main/java/dev/quoije/umd/cli/Main.java b/cli/src/main/java/dev/quoije/umd/cli/Main.java index 3c96216..785992b 100644 --- a/cli/src/main/java/dev/quoije/umd/cli/Main.java +++ b/cli/src/main/java/dev/quoije/umd/cli/Main.java @@ -432,8 +432,23 @@ public final class Main { @Override public void playMovie(int playListNumber, int chapterNumber, int videoNumber, int audioNumber, int audioFlag, int subtitleNumber, int subtitleFlag) { - playCalls.add(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 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); + try (PlaybackEngine engine = PlaybackEngine.open(iso, streamName, 0)) { + int frames = 0; + PlaybackEngine.VideoFrame frame; + while ((frame = engine.nextVideoFrame()) != null) { + frames++; + if (frame.pts() >= 2L * PlaybackEngine.MPEG_TIMESTAMP) { + break; + } + } + call += String.format(" -> stream %s: %d frames decoded", streamName, frames); + } catch (IOException e) { + call += " -> stream " + streamName + ": " + e.getMessage(); + } + playCalls.add(call); } @Override