Jitsi: the OpenSource Java VoIP and Instant Messaging client.

net.java.sip.communicator.impl.neomedia.jmfext.media.protocol.directshow
Class DirectShowStream

java.lang.Object
  extended by net.java.sip.communicator.impl.neomedia.control.AbstractControls
      extended by net.java.sip.communicator.impl.neomedia.jmfext.media.protocol.AbstractBufferStream
          extended by net.java.sip.communicator.impl.neomedia.jmfext.media.protocol.AbstractPushBufferStream
              extended by net.java.sip.communicator.impl.neomedia.jmfext.media.protocol.directshow.DirectShowStream
All Implemented Interfaces:
javax.media.Controls, javax.media.protocol.PushBufferStream, javax.media.protocol.SourceStream

public class DirectShowStream
extends AbstractPushBufferStream

Implements a PushBufferStream using DirectShow.

Author:
Lyubomir Marinov, Sebastien Vincent

Field Summary
(package private)  DSCaptureDevice.GrabberDelegate grabber
          Delegate class to handle video data.
 
Fields inherited from class net.java.sip.communicator.impl.neomedia.jmfext.media.protocol.AbstractPushBufferStream
transferHandler
 
Fields inherited from class net.java.sip.communicator.impl.neomedia.jmfext.media.protocol.AbstractBufferStream
dataSource, formatControl
 
Fields inherited from interface javax.media.protocol.SourceStream
LENGTH_UNKNOWN
 
Constructor Summary
DirectShowStream(DataSource dataSource, javax.media.control.FormatControl formatControl)
          Initializes a new DirectShowStream instance which is to have its Format-related information abstracted by a specific FormatControl.
 
Method Summary
 void close()
          Releases the resources used by this instance throughout its existence and makes it available for garbage collection.
protected  javax.media.Format doGetFormat()
          Gets the Format of this PushBufferStream as directly known by it.
 void read(javax.media.Buffer buffer)
          Reads media data from this PushBufferStream into a specific Buffer without blocking.
 void start()
          Starts the transfer of media data from this PushBufferStream.
 void stop()
          Stops the transfer of media data from this PushBufferStream.
 
Methods inherited from class net.java.sip.communicator.impl.neomedia.jmfext.media.protocol.AbstractPushBufferStream
setTransferHandler
 
Methods inherited from class net.java.sip.communicator.impl.neomedia.jmfext.media.protocol.AbstractBufferStream
doSetFormat, endOfStream, getContentDescriptor, getContentLength, getControls, getFormat
 
Methods inherited from class net.java.sip.communicator.impl.neomedia.control.AbstractControls
getControl, getControl
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.media.protocol.PushBufferStream
getFormat
 
Methods inherited from interface javax.media.protocol.SourceStream
endOfStream, getContentDescriptor, getContentLength
 
Methods inherited from interface javax.media.Controls
getControl, getControls
 

Field Detail

grabber

final DSCaptureDevice.GrabberDelegate grabber
Delegate class to handle video data.

Constructor Detail

DirectShowStream

DirectShowStream(DataSource dataSource,
                 javax.media.control.FormatControl formatControl)
Initializes a new DirectShowStream instance which is to have its Format-related information abstracted by a specific FormatControl.

Parameters:
dataSource - the DataSource which is creating the new instance so that it becomes one of its streams
formatControl - the FormatControl which is to abstract the Format-related information of the new instance
Method Detail

doGetFormat

protected javax.media.Format doGetFormat()
Gets the Format of this PushBufferStream as directly known by it.

Overrides:
doGetFormat in class AbstractBufferStream
Returns:
the Format of this PushBufferStream as directly known by it or null if this PushBufferStream does not directly know its Format and it relies on the PushBufferDataSource which created it to report its Format

close

public void close()
Releases the resources used by this instance throughout its existence and makes it available for garbage collection. This instance is considered unusable after closing.

Overrides:
close in class AbstractBufferStream
See Also:
AbstractBufferStream.close()

start

public void start()
           throws IOException
Starts the transfer of media data from this PushBufferStream.

Overrides:
start in class AbstractBufferStream
Throws:
IOException - if anything goes wrong while starting the transfer of media data from this PushBufferStream

stop

public void stop()
          throws IOException
Stops the transfer of media data from this PushBufferStream.

Overrides:
stop in class AbstractBufferStream
Throws:
IOException - if anything goes wrong while stopping the transfer of media data from this PushBufferStream

read

public void read(javax.media.Buffer buffer)
          throws IOException
Reads media data from this PushBufferStream into a specific Buffer without blocking.

Parameters:
buffer - the Buffer in which media data is to be read from this PushBufferStream
Throws:
IOException - if anything goes wrong while reading media data from this PushBufferStream into the specified buffer

Jitsi: the OpenSource Java VoIP and Instant Messaging client.

Jitsi, the OpenSource Java VoIP and Instant Messaging client.
Distributable under LGPL license.