/*
* @(#)RTPConnector.java 1.6 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package javax.media.rtp;
import javax.media.protocol.PushSourceStream;
import java.io.IOException;
/**
* A programmer may abstract the underlying transport mechanism for
* RTP control and data from the RTPManager. This is done via the
* RTPConnector object. An implementation of the RTPConnector must
* be created and handed over to RTPManager during initialization.
* The RTPManager will then use it to handle the sending and receiving
* of the data and control packets.
*
* This replaces the deprecated RTPSocket interface.
*
* @see RTPManager
*/
public interface RTPConnector
{
/**
* Returns an input stream to receive the RTP data.
*
* @return an input stream for reading data from the RTP data channel.
* @exception IOException if an I/O error occurs when creating the input
* stream.
*/
public PushSourceStream getDataInputStream() throws IOException;
/**
* Returns an output stream to send the RTP data.
*
* @return an output stream for writing data to the RTP data channel.
* @exception IOException if an I/O error occurs when creating the output
* stream.
*/
public OutputDataStream getDataOutputStream() throws IOException;
/**
* Returns an input stream to receive the RTCP data.
*
* @return an input stream for reading data from the RTCP data channel.
* @exception IOException if an I/O error occurs when creating the input
* stream.
*/
public PushSourceStream getControlInputStream() throws IOException;
/**
* Returns an output stream to send the RTCP data.
*
* @return an output stream for writing data to the RTCP data channel.
* @exception IOException if an I/O error occurs when creating the output
* stream.
*/
public OutputDataStream getControlOutputStream() throws IOException;
/**
* Close all the RTP, RTCP streams.
*/
public void close();
/**
* Set the receive buffer size of the RTP data channel.
* This is only a hint to the implementation. The actual implementation
* may not be able to do anything to this.
*
* @param size the size to which to set the receive buffer of the
* RTP data channel.
*/
public void setReceiveBufferSize( int size) throws IOException;
/**
* Get the receive buffer size set on the RTP data channel.
* Return -1 if the receive buffer size is not applicable for
* the implementation.
*
* @param size of the receive buffers.
*/
public int getReceiveBufferSize();
/**
* Set the send buffer size of the RTP data channel.
* This is only a hint to the implementation. The actual implementation
* may not be able to do anything to this.
*
* @param size the size to which to set the send buffer of the
* RTP data channel.
*/
public void setSendBufferSize( int size) throws IOException;
/**
* Get the send buffer size set on the RTP data channel.
* Return -1 if the send buffer size is not applicable for
* the implementation.
*
* @param size of the send buffers.
*/
public int getSendBufferSize();
/**
* Return the RTCP bandwidth fraction. This value is used to
* initialize the RTPManager. Check RTPManager for more detauls.
* Return -1 to use the default values.
*
* @see RTPManager#initialize
*/
public double getRTCPBandwidthFraction();
/**
* Return the RTCP sender bandwidth fraction. This value is used to
* initialize the RTPManager. Check RTPManager for more detauls.
* Return -1 to use the default values.
*
* @see RTPManager#initialize
*/
public double getRTCPSenderBandwidthFraction();
}
|