Jitsi: the OpenSource Java VoIP and Instant Messaging client.

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

java.lang.Object
  extended by net.java.sip.communicator.impl.neomedia.RTPConnectorInputStream
      extended by net.java.sip.communicator.impl.neomedia.RTPConnectorUDPInputStream
          extended by net.java.sip.communicator.impl.neomedia.transform.TransformUDPInputStream
All Implemented Interfaces:
Runnable, javax.media.Controls, javax.media.protocol.PushSourceStream, javax.media.protocol.SourceStream
Direct Known Subclasses:
ControlTransformInputStream

public class TransformUDPInputStream
extends RTPConnectorUDPInputStream

Extends RTPConnectorInputStream with transform logic for UDP. In this implementation, we use UDP sockets to receive RTP/RTCP. We listen on the address / port specified by local session address. When one packet is received, it is first reverse transformed through PacketTransformer defined by user. And then returned as normal RTP/RTCP packets to RTPManager.

Author:
Bing SU (nova.su@gmail.com), Lubomir Marinov

Field Summary
 
Fields inherited from class net.java.sip.communicator.impl.neomedia.RTPConnectorInputStream
closed, ioError, pkt, receiverThread
 
Fields inherited from interface javax.media.protocol.SourceStream
LENGTH_UNKNOWN
 
Constructor Summary
TransformUDPInputStream(DatagramSocket socket)
          Initializes a new TransformInputStream which is to receive packet data from a specific UDP socket.
 
Method Summary
protected  RawPacket createRawPacket(DatagramPacket datagramPacket)
          Creates a new RawPacket from a specific DatagramPacket in order to have this instance receive its packet data through its RTPConnectorInputStream.read(byte[], int, int) method.
 PacketTransformer getTransformer()
          Gets the PacketTransformer which is used to reverse-transform packets.
 void setTransformer(PacketTransformer transformer)
          Sets the PacketTransformer which is to be used to reverse-transform packets.
 
Methods inherited from class net.java.sip.communicator.impl.neomedia.RTPConnectorUDPInputStream
close, doLogPacket, receivePacket
 
Methods inherited from class net.java.sip.communicator.impl.neomedia.RTPConnectorInputStream
addDatagramPacketFilter, endOfStream, getContentDescriptor, getContentLength, getControl, getControls, getDatagramPacketFilters, getMinimumTransferSize, read, run, setPriority, setTransferHandler
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TransformUDPInputStream

public TransformUDPInputStream(DatagramSocket socket)
Initializes a new TransformInputStream which is to receive packet data from a specific UDP socket.

Parameters:
socket - the UDP socket the new instance is to receive data from
Method Detail

createRawPacket

protected RawPacket createRawPacket(DatagramPacket datagramPacket)
Creates a new RawPacket from a specific DatagramPacket in order to have this instance receive its packet data through its RTPConnectorInputStream.read(byte[], int, int) method. Reverse-transforms the received packet.

Overrides:
createRawPacket in class RTPConnectorInputStream
Parameters:
datagramPacket - the DatagramPacket containing the packet data
Returns:
a new RawPacket containing the packet data of the specified DatagramPacket or possibly its modification; null to ignore the packet data of the specified DatagramPacket and not make it available to this instance through its RTPConnectorInputStream.read(byte[], int, int) method
See Also:
RTPConnectorInputStream.createRawPacket(DatagramPacket)

getTransformer

public PacketTransformer getTransformer()
Gets the PacketTransformer which is used to reverse-transform packets.

Returns:
the PacketTransformer which is used to reverse-transform packets

setTransformer

public void setTransformer(PacketTransformer transformer)
Sets the PacketTransformer which is to be used to reverse-transform packets.

Parameters:
transformer - the PacketTransformer which is to be used to reverse-transform packets

Jitsi: the OpenSource Java VoIP and Instant Messaging client.

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