|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.awt.Component
java.awt.Canvas
de.humatic.dsj.DSFiltergraph
de.humatic.dsj.DSStreamBufferGraph
public class DSStreamBufferGraph
DSStreamBufferGraph tries to wrap the DirectShow StreamBufferEngine.
The StreamBufferEngine has been introduced in Windows XP Service Pack 1. You can not
create DSStreamBufferGraph instances on older Windows versions!
A StreamBuffer graph consists of two separate filtergraphs. One is capturing data from
a MPEG2 or DV CaptureDevice, a BDA compliant DVB receiver or from (MPEG2 or DV) file. It permanently records
captured data into a number of backing files set up as a ring buffer (see: setupEnvironment()).
The second filtergraph reads from the backing files and previews their data.
This principle enables so called time shifting. You can "rewind" or pause live captured
content and resume viewing at a later point. You can also "start recording in the past".
For details on SBE buffer and time concepts, please refer to the native documentation on msdn.
All playback and display methods that DSStreamBufferGraph inherits from DSFiltergraph refer
to the preview part of the StreamBuffer setup. To control the capture part use the methods
in StreamBufferSource and its subclasses.
As the preview branch of the StreamBufferEngine usually outputs MPEG2, a system that wants to decode
and display its data must be equipped with MPEG decoders. Like with all dsj classes,
that work on MPEG2, you may specify decoders by either using the extended constructor or
entering preferred decoders into the dsj.xml setup file.
Windows 7 note: The StreamBufferEngine2 is not implemented yet, this class can not create and handle the WTV format.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class de.humatic.dsj.DSFiltergraph |
|---|
DSFiltergraph.DSAudioStream |
| Nested classes/interfaces inherited from class java.awt.Canvas |
|---|
java.awt.Canvas.AccessibleAWTCanvas |
| Nested classes/interfaces inherited from class java.awt.Component |
|---|
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy |
| Field Summary |
|---|
| Fields inherited from class java.awt.Component |
|---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
| Fields inherited from interface java.awt.image.ImageObserver |
|---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
| Constructor Summary | |
|---|---|
DSStreamBufferGraph(int flags,
StreamBufferSource sbs,
DSFilterInfo mpegDecoder,
DSFilterInfo audioDecoder,
java.beans.PropertyChangeListener pcl)
|
|
DSStreamBufferGraph(int flags,
StreamBufferSource sbs,
java.beans.PropertyChangeListener pcl)
|
|
| Method Summary | |
|---|---|
void |
controlSourceGraph(int[] params)
Called from StreamBufferSource subclasses, not to be used by application code, which should instead use StreamBufferSource.controlSource with the parameters supported by the subclass. |
static StreamBufferSource |
createNonStandardSource(int type,
DSFilterInfo info,
DSFilterInfo audioInfo,
int dvFlags)
|
static StreamBufferSource |
createSource(int type,
DSFilterInfo info,
int flags)
|
java.lang.String |
getCaptureFile()
|
int |
getContentDuration()
Returns total available content time in ringbuffer, that is: content end - content start. |
int |
getContentEnd()
Returns time of the latest available content in the ringbuffer. |
int |
getContentStart()
Returns time of the earliest available content in the ringbuffer. |
int |
getContentTime()
|
int |
getState()
|
static DSFilterInfo[][] |
getStreamBufferSourceDevices(int type,
boolean mpeg_dv)
Performs a capture device query and optionally returns only devices that are directly compliant with the StreamBufferEngine, i.e. |
void |
record()
Toggles recording when capture file has been set This overridden DSFiltergraph method will create content recordings. |
void |
referenceRecord(int msecIn,
int msecOut)
This method will create reference recordings. |
void |
setCaptureFile(java.lang.String filePath)
Sets the file both record() and referenceRecord() will write to. |
void |
setTimeValue(int time)
Set (movie) position to %time (milliseconds) |
static void |
setupEnvironment(java.lang.String tempDir,
int fileCount,
int fileDurationInSeconds)
Sets up the backing files for the StreamBuffer engine. |
| Methods inherited from class java.awt.Canvas |
|---|
createBufferStrategy, createBufferStrategy, getAccessibleContext, getBufferStrategy |
| Methods inherited from class java.awt.Component |
|---|
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public DSStreamBufferGraph(int flags,
StreamBufferSource sbs,
java.beans.PropertyChangeListener pcl)
throws DSJException
DSJException
public DSStreamBufferGraph(int flags,
StreamBufferSource sbs,
DSFilterInfo mpegDecoder,
DSFilterInfo audioDecoder,
java.beans.PropertyChangeListener pcl)
throws DSJException
DSJException| Method Detail |
|---|
public int getContentStart()
public int getContentEnd()
public int getContentDuration()
public int getContentTime()
public void setTimeValue(int time)
throws DSJException
DSFiltergraph
setTimeValue in class DSFiltergraphDSJException
public void setCaptureFile(java.lang.String filePath)
throws DSJException
DSJExceptionpublic java.lang.String getCaptureFile()
public void record()
throws DSJException
DSJException
public void referenceRecord(int msecIn,
int msecOut)
throws DSJException
DSJExceptionpublic int getState()
public static DSFilterInfo[][] getStreamBufferSourceDevices(int type,
boolean mpeg_dv)
public static StreamBufferSource createSource(int type,
DSFilterInfo info,
int flags)
public static StreamBufferSource createNonStandardSource(int type,
DSFilterInfo info,
DSFilterInfo audioInfo,
int dvFlags)
public void controlSourceGraph(int[] params)
public static void setupEnvironment(java.lang.String tempDir,
int fileCount,
int fileDurationInSeconds)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||