From 2fb5aec2fa7e60afccb5eb848fabd12778bda4ae Mon Sep 17 00:00:00 2001 From: adam-m Date: Fri, 22 Mar 2013 01:08:49 -0400 Subject: [PATCH] video player - fix resetting after refactor --- .../DataContentViewerMedia.java | 12 ++---- .../corecomponents/MediaViewVideoPanel.java | 39 +++++++++++-------- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java index 8aadc0ec65..b148dd2897 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataContentViewerMedia.java @@ -81,13 +81,11 @@ public class DataContentViewerMedia extends javax.swing.JPanel implements DataCo IMAGES[i] = "." + suffix; } - add(imagePanel, IMAGE_VIEWER_LAYER); add(videoPanel, VIDEO_VIEWER_LAYER); switchPanels(false); - - + } /** @@ -107,8 +105,6 @@ public class DataContentViewerMedia extends javax.swing.JPanel implements DataCo @Override public void setNode(Node selectedNode) { - - videoPanel.reset(); if (selectedNode == null) { return; @@ -124,8 +120,8 @@ public class DataContentViewerMedia extends javax.swing.JPanel implements DataCo } else { lastFile = file; } - - + + videoPanel.reset(); final Dimension dims = DataContentViewerMedia.this.getSize(); @@ -154,8 +150,6 @@ public class DataContentViewerMedia extends javax.swing.JPanel implements DataCo } } - - @Override public String getTitle() { return "Media View"; diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/MediaViewVideoPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/MediaViewVideoPanel.java index c6b6b721a3..da8795afae 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/MediaViewVideoPanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/MediaViewVideoPanel.java @@ -140,12 +140,7 @@ public class MediaViewVideoPanel extends javax.swing.JPanel implements FrameCapt } }); - gstVideoComponent = new VideoComponent(); - videoPanel.setLayout(new BoxLayout(videoPanel, BoxLayout.Y_AXIS)); - videoPanel.add(gstVideoComponent); - - videoPanel.setVisible(true); } } @@ -195,6 +190,7 @@ public class MediaViewVideoPanel extends javax.swing.JPanel implements FrameCapt java.io.File ioFile = getJFile(file); + gstVideoComponent = new VideoComponent(); synchronized (playbinLock) { if (gstPlaybin2 != null) { gstPlaybin2.dispose(); @@ -202,29 +198,30 @@ public class MediaViewVideoPanel extends javax.swing.JPanel implements FrameCapt gstPlaybin2 = new PlayBin2("VideoPlayer"); gstPlaybin2.setVideoSink(gstVideoComponent.getElement()); - videoPanel.repaint(); + videoPanel.removeAll(); + + + videoPanel.setLayout(new BoxLayout(videoPanel, BoxLayout.Y_AXIS)); + videoPanel.add(gstVideoComponent); + + + videoPanel.setVisible(true); + //videoPanel.repaint(); gstPlaybin2.setInputFile(ioFile); gstPlaybin2.setState(State.READY); } - //setComponentsVisibility(true); + } void reset() { - currentFile = null; - // get rid of any existing videoProgressWorker thread - if (videoProgressWorker != null) { - videoProgressWorker.cancel(true); - videoProgressWorker = null; - } - // reset the progress label text on the event dispatch thread SwingUtilities.invokeLater(new Runnable() { @Override public void run() { progressLabel.setText(""); - infoLabel.setText(""); + // infoLabel.setText(""); } }); @@ -245,12 +242,21 @@ public class MediaViewVideoPanel extends javax.swing.JPanel implements FrameCapt } gstPlaybin2 = null; } + gstVideoComponent = null; //videoComponent.setBackground(Color.BLACK); //videoComponent.repaint(); //videoPanel.repaint(); } + + // get rid of any existing videoProgressWorker thread + if (videoProgressWorker != null) { + videoProgressWorker.cancel(true); + videoProgressWorker = null; + } + + currentFile = null; } private java.io.File getJFile(AbstractFile file) { @@ -465,6 +471,7 @@ public class MediaViewVideoPanel extends javax.swing.JPanel implements FrameCapt if (gstPlaybin2 != null) { gstPlaybin2.stop(); gstPlaybin2.setState(State.READY); // ready to be played again + gstPlaybin2.getState(); //NEW } } pauseButton.setText("►"); @@ -602,7 +609,7 @@ public class MediaViewVideoPanel extends javax.swing.JPanel implements FrameCapt synchronized (playbinLock) { gstPlaybin2.play(); // must play, then pause and get state to get duration. gstPlaybin2.pause(); - gstPlaybin2.getState(); + State state = gstPlaybin2.getState(); dur = gstPlaybin2.queryDuration(); } duration = dur.toString();