Autopsy  4.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
org.sleuthkit.autopsy.corecomponents.GstVideoPanel Class Reference

Inherits org.sleuthkit.autopsy.corecomponents.MediaViewVideoPanel.


class  ExtractMedia
class  FrameCaptureRGBListener
class  VideoProgressWorker

Public Member Functions

 GstVideoPanel ()
List< VideoFramecaptureFrames (File file, int numFrames) throws Exception
List< VideoFramecaptureFrames ( file, int numFrames) throws Exception
String[] getExtensions ()
List< String > getExtensionsList ()
List< String > getMimeTypes ()
JButton getPauseButton ()
JLabel getProgressLabel ()
JSlider getProgressSlider ()
VideoComponent getVideoComponent ()
JPanel getVideoPanel ()
boolean isInited ()
boolean isSupported (AbstractFile file)

Static Public Member Functions

static MediaViewVideoPanel createVideoPanel ()

Private Member Functions

void customizeComponents ()
void initComponents ()
boolean initGst ()
void pauseButtonActionPerformed (java.awt.event.ActionEvent evt)

Private Attributes

boolean autoTracking = false
final Set< String > badVideoFiles = Collections.synchronizedSet(new HashSet<String>())
javax.swing.JPanel controlPanel
AbstractFile currentFile
long durationMillis = 0
boolean gstInited
volatile PlayBin2 gstPlaybin2
VideoComponent gstVideoComponent
javax.swing.JLabel infoLabel
javax.swing.JButton pauseButton
final Object playbinLock = new Object()
javax.swing.JLabel progressLabel
javax.swing.JSlider progressSlider
int totalHours
javax.swing.JPanel videoPanel
VideoProgressWorker videoProgressWorker

Static Private Attributes

static final String[] EXTENSIONS = new String[]{".mov", ".m4v", ".flv", ".mp4", ".3gp", ".avi", ".mpg", ".mpeg", ".wmv"}
static final long FRAME_CAPTURE_TIMEOUT_MILLIS = 1000
static final Logger logger = Logger.getLogger(GstVideoPanel.class.getName())
static final String MEDIA_PLAYER_ERROR_STRING = NbBundle.getMessage(GstVideoPanel.class, "GstVideoPanel.cannotProcFile.err")
static final List< String > MIMETYPES = Arrays.asList("video/quicktime", "audio/mpeg", "audio/x-mpeg", "video/mpeg", "video/x-mpeg", "audio/mpeg3", "audio/x-mpeg-3", "video/x-flv", "video/mp4", "audio/x-m4a", "video/x-m4v", "audio/x-wav")
static final long MIN_FRAME_INTERVAL_MILLIS = 500

Detailed Description

Definition at line 69 of file

Constructor & Destructor Documentation

org.sleuthkit.autopsy.corecomponents.GstVideoPanel.GstVideoPanel ( )

Creates new form MediaViewVideoPanel

Definition at line 93 of file

Member Function Documentation

List<VideoFrame> org.sleuthkit.autopsy.corecomponents.FrameCapture.captureFrames ( File  file,
int  numFrames 
) throws Exception
filethe video file to use
numFramesthe number of frames to capture. Note that the actual number of frames returned may be less than this number. Specifically, this may happen if the video is very short.
a list of VideoFrames representing the captured frames
List<VideoFrame> org.sleuthkit.autopsy.corecomponents.GstVideoPanel.captureFrames (  file,
int  numFrames 
) throws Exception
filea video file from which to capture frames
numFramesthe number of frames to capture. These frames will be captured at successive intervals given by durationOfVideo/numFrames. If this frame interval is less than MIN_FRAME_INTERVAL_MILLIS, then only one frame will be captured and returned.
a List of VideoFrames representing the captured frames.

Definition at line 287 of file

References org.sleuthkit.autopsy.corecomponents.GstVideoPanel.FrameCaptureRGBListener.getImage().

static MediaViewVideoPanel org.sleuthkit.autopsy.corecomponents.MediaViewVideoPanel.createVideoPanel ( )
void org.sleuthkit.autopsy.corecomponents.GstVideoPanel.customizeComponents ( )

Should always try to synchronize any call to progressSlider.setValue() to avoid a different thread changing playbin while stateChanged() is processing

Definition at line 123 of file

String [] org.sleuthkit.autopsy.corecomponents.GstVideoPanel.getExtensions ( )

Definition at line 765 of file

List<String> org.sleuthkit.autopsy.corecomponents.MediaViewVideoPanel.getExtensionsList ( )
List<String> org.sleuthkit.autopsy.corecomponents.GstVideoPanel.getMimeTypes ( )

Definition at line 770 of file

JButton org.sleuthkit.autopsy.corecomponents.GstVideoPanel.getPauseButton ( )

Definition at line 98 of file

JLabel org.sleuthkit.autopsy.corecomponents.GstVideoPanel.getProgressLabel ( )

Definition at line 102 of file

JSlider org.sleuthkit.autopsy.corecomponents.GstVideoPanel.getProgressSlider ( )

Definition at line 106 of file

VideoComponent org.sleuthkit.autopsy.corecomponents.GstVideoPanel.getVideoComponent ( )

Definition at line 114 of file

JPanel org.sleuthkit.autopsy.corecomponents.GstVideoPanel.getVideoPanel ( )

Definition at line 110 of file

void org.sleuthkit.autopsy.corecomponents.GstVideoPanel.initComponents ( )

This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor.

Definition at line 429 of file

boolean org.sleuthkit.autopsy.corecomponents.GstVideoPanel.initGst ( )
boolean org.sleuthkit.autopsy.corecomponents.GstVideoPanel.isInited ( )

Definition at line 119 of file

boolean org.sleuthkit.autopsy.corecomponents.MediaViewVideoPanel.isSupported ( AbstractFile  file)

Although it seems too restrictive, requiring both a supported extension and a supported MIME type prevents two undesirable behaviors:

1) Until AUT-1766 and AUT-1801 are fixed, we incorrectly identify all iff files as audio/aiff. This means that if this panel went with the looser 'mime type OR extension' criteria we use for images, then this panel would attempt (and fail) to display all iff files, even non audio ones.

2) The looser criteria means we are less confident about the files we are potentialy sending to GStreamer on 32bit jvms. We are less comfortable with the error handling for GStreamer, and don't want to send it files which might cause it trouble.

Definition at line 135 of file

References org.sleuthkit.autopsy.modules.filetypeid.FileTypeDetector.detect(), org.sleuthkit.autopsy.corecomponents.MediaViewVideoPanel.getExtensionsList(), and org.sleuthkit.autopsy.corecomponents.MediaViewVideoPanel.getMimeTypes().

Referenced by org.sleuthkit.autopsy.corecomponents.DataContentViewerMedia.isPreferred(), org.sleuthkit.autopsy.corecomponents.DataContentViewerMedia.isVideoSupported(), and org.sleuthkit.autopsy.corecomponents.DataContentViewerMedia.setNode().

void org.sleuthkit.autopsy.corecomponents.GstVideoPanel.pauseButtonActionPerformed ( java.awt.event.ActionEvent  evt)

Member Data Documentation

boolean org.sleuthkit.autopsy.corecomponents.GstVideoPanel.autoTracking = false

Definition at line 85 of file

final Set<String> org.sleuthkit.autopsy.corecomponents.GstVideoPanel.badVideoFiles = Collections.synchronizedSet(new HashSet<String>())

Definition at line 88 of file

javax.swing.JPanel org.sleuthkit.autopsy.corecomponents.GstVideoPanel.controlPanel

Definition at line 547 of file

AbstractFile org.sleuthkit.autopsy.corecomponents.GstVideoPanel.currentFile

Definition at line 87 of file

long org.sleuthkit.autopsy.corecomponents.GstVideoPanel.durationMillis = 0

Definition at line 80 of file

final String [] org.sleuthkit.autopsy.corecomponents.GstVideoPanel.EXTENSIONS = new String[]{".mov", ".m4v", ".flv", ".mp4", ".3gp", ".avi", ".mpg", ".mpeg", ".wmv"}

Definition at line 71 of file

final long org.sleuthkit.autopsy.corecomponents.GstVideoPanel.FRAME_CAPTURE_TIMEOUT_MILLIS = 1000

Definition at line 77 of file

boolean org.sleuthkit.autopsy.corecomponents.GstVideoPanel.gstInited

Definition at line 75 of file

volatile PlayBin2 org.sleuthkit.autopsy.corecomponents.GstVideoPanel.gstPlaybin2

Definition at line 83 of file

VideoComponent org.sleuthkit.autopsy.corecomponents.GstVideoPanel.gstVideoComponent

Definition at line 84 of file

javax.swing.JLabel org.sleuthkit.autopsy.corecomponents.GstVideoPanel.infoLabel

Definition at line 548 of file

final Logger org.sleuthkit.autopsy.corecomponents.GstVideoPanel.logger = Logger.getLogger(GstVideoPanel.class.getName())

Definition at line 74 of file

final String org.sleuthkit.autopsy.corecomponents.GstVideoPanel.MEDIA_PLAYER_ERROR_STRING = NbBundle.getMessage(GstVideoPanel.class, "GstVideoPanel.cannotProcFile.err")

Definition at line 78 of file

final List<String> org.sleuthkit.autopsy.corecomponents.GstVideoPanel.MIMETYPES = Arrays.asList("video/quicktime", "audio/mpeg", "audio/x-mpeg", "video/mpeg", "video/x-mpeg", "audio/mpeg3", "audio/x-mpeg-3", "video/x-flv", "video/mp4", "audio/x-m4a", "video/x-m4v", "audio/x-wav")

Definition at line 72 of file

final long org.sleuthkit.autopsy.corecomponents.GstVideoPanel.MIN_FRAME_INTERVAL_MILLIS = 500

Definition at line 76 of file

javax.swing.JButton org.sleuthkit.autopsy.corecomponents.GstVideoPanel.pauseButton

Definition at line 549 of file

final Object org.sleuthkit.autopsy.corecomponents.GstVideoPanel.playbinLock = new Object()

Definition at line 86 of file

javax.swing.JLabel org.sleuthkit.autopsy.corecomponents.GstVideoPanel.progressLabel

Definition at line 550 of file

javax.swing.JSlider org.sleuthkit.autopsy.corecomponents.GstVideoPanel.progressSlider

Definition at line 551 of file

int org.sleuthkit.autopsy.corecomponents.GstVideoPanel.totalHours

Definition at line 82 of file

javax.swing.JPanel org.sleuthkit.autopsy.corecomponents.GstVideoPanel.videoPanel

Definition at line 552 of file

VideoProgressWorker org.sleuthkit.autopsy.corecomponents.GstVideoPanel.videoProgressWorker

Definition at line 81 of file

The documentation for this class was generated from the following file:

Copyright © 2012-2016 Basis Technology. Generated on: Tue Oct 25 2016
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.