From 3aba72182d27c5b27cc2b3dfa7c6ef1ef614556f Mon Sep 17 00:00:00 2001 From: Tim McIver Date: Tue, 26 Feb 2013 16:11:39 -0500 Subject: [PATCH 1/2] Fixed bug in DataContentViewerMedia.captureFrames() that was causing problems capturing frames for some video files. --- .../corecomponents/DataContentViewerMedia.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java index 06a304f935..eaca65f153 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java @@ -429,6 +429,8 @@ public class DataContentViewerMedia extends javax.swing.JPanel implements DataCo PlayBin2 playbin = new PlayBin2("VideoFrameCapture"); playbin.setInputFile(file); playbin.setVideoSink(videoSink); + + // this is necessary to get a valid duration value playbin.play(); playbin.pause(); playbin.getState(); @@ -440,24 +442,22 @@ public class DataContentViewerMedia extends javax.swing.JPanel implements DataCo if (myDurationMillis <= 0) { return frames; } - + // create a list of timestamps at which to get frames - List timeStamps = new ArrayList<>(); int numFramesToGet = numFrames; long frameInterval = myDurationMillis/numFrames; if (frameInterval < MIN_FRAME_INTERVAL_MILLIS) { numFramesToGet = 1; } - for (int i = 0; i < numFramesToGet; ++i) { - System.out.println("Adding timestamp " + i*frameInterval + " ms"); - timeStamps.add(i*frameInterval); - } - + // for each timeStamp, grap a frame - for (long timeStamp : timeStamps) { - currentImage = null; + for (int i = 0; i < numFramesToGet; ++i) { + long timeStamp = i*frameInterval; + playbin.pause(); playbin.getState(); + + currentImage = null; if (!playbin.seek(timeStamp, unit)) { logger.log(Level.INFO, "There was a problem seeking to " + timeStamp + " " + unit.name().toLowerCase()); } From 47982e4d69ae4e9e34d3771227c6a405a55ea1b7 Mon Sep 17 00:00:00 2001 From: Tim McIver Date: Tue, 26 Feb 2013 17:15:58 -0500 Subject: [PATCH 2/2] Removed extraneous print statement. --- .../sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java | 1 - 1 file changed, 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java index e5e5ace993..a67f187fed 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java @@ -439,7 +439,6 @@ public class DataContentViewerMedia extends javax.swing.JPanel implements DataCo // get the duration of the video TimeUnit unit = TimeUnit.MILLISECONDS; long myDurationMillis = playbin.queryDuration(unit); - System.out.println("Duration is: " + myDurationMillis); if (myDurationMillis <= 0) { return frames; }