Jitsi: the OpenSource Java VoIP and Instant Messaging client.

net.java.sip.communicator.impl.neomedia.transform
Class RTPTransformConnector

java.lang.Object
  extended by net.java.sip.communicator.impl.neomedia.RTPConnectorImpl
      extended by net.java.sip.communicator.impl.neomedia.transform.RTPTransformConnector
All Implemented Interfaces:
javax.media.rtp.RTPConnector

public class RTPTransformConnector
extends RTPConnectorImpl

TransformConnector implements the RTPConnector interface. RTPConnector is originally designed for programmers to abstract the underlying transport mechanism for RTP control and data from the RTPManager. However, it provides the possibility to modify / transform the RTP and RTCP packets before they are sent to network, or after the have been received from the network. The RTPConnector interface is very powerful. But just to perform packets transformation, we do not need all the flexibility. So, we designed this TransformConnector, which uses UDP to transfer RTP/RTCP packets just like normal RTP stack, and then provides the TransformInputStream interface for people to define their own transformation. With TransformConnector, people can implement RTP/RTCP packets transformation and/or manipulation by implementing the TransformEngine interface.

Author:
Bing SU (nova.su@gmail.com), Lubomir Marinov
See Also:
TransformEngine, RTPConnector, RTPManager

Constructor Summary
RTPTransformConnector(StreamConnector connector)
          Initializes a new TransformConnector which is to use a given pair of datagram sockets for RTP and RTCP traffic specified in the form of a StreamConnector.
 
Method Summary
protected  TransformInputStream createControlInputStream()
          Overrides RTPConnectorImpl#createControlInputStream() to use TransformInputStream.
protected  TransformOutputStream createControlOutputStream()
          Overrides RTPConnectorImpl#createControlOutputStream() to use TransformOutputStream.
protected  TransformInputStream createDataInputStream()
          Overrides RTPConnectorImpl#createDataInputStream() to use TransformInputStream.
protected  TransformOutputStream createDataOutputStream()
          Overrides RTPConnectorImpl#createDataOutputStream() to use TransformOutputStream.
 TransformEngine getEngine()
          Gets the customized TransformEngine which contains the concrete transform logic.
 void setEngine(TransformEngine engine)
          Sets the customized TransformEngine which contains the concrete transform logic.
 
Methods inherited from class net.java.sip.communicator.impl.neomedia.RTPConnectorImpl
addTarget, close, getConnector, getControlInputStream, getControlInputStream, getControlOutputStream, getControlOutputStream, getControlSocket, getDataInputStream, getDataInputStream, getDataOutputStream, getDataOutputStream, getDataSocket, getReceiveBufferSize, getRTCPBandwidthFraction, getRTCPSenderBandwidthFraction, getSendBufferSize, removeTarget, removeTargets, setReceiveBufferSize, setSendBufferSize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RTPTransformConnector

public RTPTransformConnector(StreamConnector connector)
Initializes a new TransformConnector which is to use a given pair of datagram sockets for RTP and RTCP traffic specified in the form of a StreamConnector.

Parameters:
connector - the pair of datagram sockets for RTP and RTCP traffic the new instance is to use
Method Detail

createControlInputStream

protected TransformInputStream createControlInputStream()
                                                 throws IOException
Overrides RTPConnectorImpl#createControlInputStream() to use TransformInputStream.

Overrides:
createControlInputStream in class RTPConnectorImpl
Returns:
a new RTCP packet input stream to be used by RTPManager
Throws:
IOException - if an error occurs during the creation of the RTCP packet input stream

createControlOutputStream

protected TransformOutputStream createControlOutputStream()
                                                   throws IOException
Overrides RTPConnectorImpl#createControlOutputStream() to use TransformOutputStream.

Overrides:
createControlOutputStream in class RTPConnectorImpl
Returns:
a new RTCP packet output stream to be used by RTPManager
Throws:
IOException - if an error occurs during the creation of the RTCP packet output stream

createDataInputStream

protected TransformInputStream createDataInputStream()
                                              throws IOException
Overrides RTPConnectorImpl#createDataInputStream() to use TransformInputStream.

Overrides:
createDataInputStream in class RTPConnectorImpl
Returns:
a new RTP packet input stream to be used by RTPManager
Throws:
IOException - if an error occurs during the creation of the RTP packet input stream

createDataOutputStream

protected TransformOutputStream createDataOutputStream()
                                                throws IOException
Overrides RTPConnectorImpl#createDataOutputStream() to use TransformOutputStream.

Overrides:
createDataOutputStream in class RTPConnectorImpl
Returns:
a new RTP packet output stream to be used by RTPManager
Throws:
IOException - if an error occurs during the creation of the RTP packet output stream

getEngine

public TransformEngine getEngine()
Gets the customized TransformEngine which contains the concrete transform logic.

Returns:
the TransformEngine which contains the concrete transform logic

setEngine

public void setEngine(TransformEngine engine)
Sets the customized TransformEngine which contains the concrete transform logic.

Parameters:
engine - the TransformEngine which contains the concrete transform logic

Jitsi: the OpenSource Java VoIP and Instant Messaging client.

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