com.teamdev.jxcapture.video.win
Class BaseDirectShowCapture

java.lang.Object
  extended by com.teamdev.jxcapture.VideoCapture
      extended by com.teamdev.jxcapture.video.win.BaseDirectShowCapture
Direct Known Subclasses:
AVICapture, WMVCapture

public abstract class BaseDirectShowCapture
extends VideoCapture

Base implementation of DirectShow screen video capture.


Nested Class Summary
static class BaseDirectShowCapture.FrameRateMode
           
 
Field Summary
static java.lang.String PROPERTY_CAPTURE_AREA
           
static java.lang.String PROPERTY_CAPTURE_TRANSPARENT_WINDOWS
           
static java.lang.String PROPERTY_INCLUDE_CURSOR
           
 
Fields inherited from class com.teamdev.jxcapture.VideoCapture
PROPERTY_AUDIO_SOURCE, PROPERTY_FRAMERATE, PROPERTY_VIDEO_SOURCE
 
Constructor Summary
protected BaseDirectShowCapture()
           
protected BaseDirectShowCapture(VideoSource videoSource)
           
 
Method Summary
 void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
          Add the specified property listener.
 void addPropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)
          Add the specified property listener.
protected abstract  void configure(FilterGraphManager filterGraphManager, FilterWrapper videoSource, FilterWrapper audioSource)
          Abstract method for configuring a filter graph.
protected  void doPause()
          Performs the steps required to pause a video capture process.
protected  void doStart()
          Performs the steps required to start a video capture process.
protected  void doStop()
          Performs the steps required to stop a video capture process.
protected  FilterWrapper getAudioSourceFilter()
           
 java.awt.Rectangle getCaptureArea()
           
protected  FilterGraphManager getFilterGraphManager()
           
protected  BaseDirectShowCapture.FrameRateMode getFrameRateMode()
           
 com.teamdev.jxdesktop.win32.com.OleMessageLoop getMessageLoop()
           
protected  java.beans.PropertyChangeSupport getPropertyChangeSupport()
           
 boolean isCaptureTransparentWindows()
          Returns true if the capture operation allows to capture transparent or layered windows, otherwise - false.
 boolean isIncludeCursor()
          Determines whether the resulting image of the capture operation includes the cursor image.
protected  boolean isResizingRequired()
           
protected  void release()
           
 void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
          Remove the specified property listener.
 void setCaptureArea(java.awt.Rectangle area)
           
 void setCaptureTransparentWindows(boolean captureTransparentWindows)
          Sets true if the captureTransparentWindows operation should allow to captureTransparentWindows transparent or layered windows, otherwise - false.
protected  void setFrameRateMode(BaseDirectShowCapture.FrameRateMode value)
           
 void setIncludeCursor(boolean includeCursor)
          Includes (or excludes) the cursor image to (or from) the resulting image of the capture operation.
protected  void setResizingRequired(boolean resizingRequired)
           
 
Methods inherited from class com.teamdev.jxcapture.VideoCapture
create, create, getAudioCodecs, getAudioSource, getAvailableFormats, getEncodingParameters, getFramerate, getVideoCodecs, getVideoFormat, getVideoSource, isAvailable, isStarted, pause, setAudioSource, setEncodingParameters, setFramerate, setFramerate, setVideoSource, start, start, stop, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROPERTY_CAPTURE_AREA

public static final java.lang.String PROPERTY_CAPTURE_AREA
See Also:
Constant Field Values

PROPERTY_INCLUDE_CURSOR

public static final java.lang.String PROPERTY_INCLUDE_CURSOR
See Also:
Constant Field Values

PROPERTY_CAPTURE_TRANSPARENT_WINDOWS

public static final java.lang.String PROPERTY_CAPTURE_TRANSPARENT_WINDOWS
See Also:
Constant Field Values
Constructor Detail

BaseDirectShowCapture

protected BaseDirectShowCapture(VideoSource videoSource)

BaseDirectShowCapture

protected BaseDirectShowCapture()
Method Detail

doStart

protected void doStart()
Description copied from class: VideoCapture
Performs the steps required to start a video capture process.

Specified by:
doStart in class VideoCapture

getAudioSourceFilter

protected FilterWrapper getAudioSourceFilter()

configure

protected abstract void configure(FilterGraphManager filterGraphManager,
                                  FilterWrapper videoSource,
                                  FilterWrapper audioSource)
Abstract method for configuring a filter graph.

Parameters:
filterGraphManager - filter graph to configure
videoSource - video capture source
audioSource - audio capture source, or null if not required

doStop

protected void doStop()
Description copied from class: VideoCapture
Performs the steps required to stop a video capture process.

Specified by:
doStop in class VideoCapture

release

protected void release()

doPause

protected void doPause()
Description copied from class: VideoCapture
Performs the steps required to pause a video capture process.

Specified by:
doPause in class VideoCapture

isResizingRequired

protected boolean isResizingRequired()

setResizingRequired

protected void setResizingRequired(boolean resizingRequired)

getFrameRateMode

protected BaseDirectShowCapture.FrameRateMode getFrameRateMode()

setFrameRateMode

protected void setFrameRateMode(BaseDirectShowCapture.FrameRateMode value)

getFilterGraphManager

protected FilterGraphManager getFilterGraphManager()

getMessageLoop

public com.teamdev.jxdesktop.win32.com.OleMessageLoop getMessageLoop()

getPropertyChangeSupport

protected java.beans.PropertyChangeSupport getPropertyChangeSupport()

addPropertyChangeListener

public void addPropertyChangeListener(java.lang.String propertyName,
                                      java.beans.PropertyChangeListener listener)
Add the specified property listener.

Parameters:
propertyName - property name
listener - listener

addPropertyChangeListener

public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
Add the specified property listener.

Parameters:
listener - listener

removePropertyChangeListener

public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
Remove the specified property listener.

Parameters:
listener - listener

getCaptureArea

public java.awt.Rectangle getCaptureArea()
Returns:
specified capturing area

setCaptureArea

public void setCaptureArea(java.awt.Rectangle area)
Parameters:
area - required rectangular capture area

isIncludeCursor

public boolean isIncludeCursor()
Determines whether the resulting image of the capture operation includes the cursor image.

Returns:
true if the result of the capture operation includes the cursor image, false otherwise

setIncludeCursor

public void setIncludeCursor(boolean includeCursor)
Includes (or excludes) the cursor image to (or from) the resulting image of the capture operation.

Parameters:
includeCursor - If true, this cursor image is included into the result of the capture operation; otherwise not

isCaptureTransparentWindows

public boolean isCaptureTransparentWindows()
Returns true if the capture operation allows to capture transparent or layered windows, otherwise - false.

A layered or transparent window is used by some applications to create a fade-in/out effect for menus and windows. Layered windows are also used for desktop animation, such as animated help assistants.

Returns:
true if the capture transparent or layered window option is set, otherwise - false

setCaptureTransparentWindows

public void setCaptureTransparentWindows(boolean captureTransparentWindows)
Sets true if the captureTransparentWindows operation should allow to captureTransparentWindows transparent or layered windows, otherwise - false.

A layered or transparent window is used by some applications to create a fade-in/out effect for menus and windows. Layered windows are also used for desktop animation, such as animated help assistants.

Parameters:
captureTransparentWindows - true if the captureTransparentWindows operation should allow to captureTransparentWindows transparent or layered window, otherwise - false