Class DefaultTCPStreamConnector

  • All Implemented Interfaces:
    StreamConnector

    public class DefaultTCPStreamConnector
    extends Object
    implements StreamConnector
    Represents a default implementation of StreamConnector which is initialized with a specific pair of control and data Sockets and which closes them (if they exist) when its close() is invoked.
    Author:
    Lubomir Marinov, Sebastien Vincent
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected Socket controlSocket
      The Socket that a stream should use for control data (e.g.
      protected Socket dataSocket
      The Socket that a stream should use for data (e.g.
      protected boolean rtcpmux
      Whether this DefaultStreamConnector uses rtcp-mux.
    • Constructor Summary

      Constructors 
      Constructor Description
      DefaultTCPStreamConnector()
      Initializes a new DefaultTCPStreamConnector instance with no control and data Sockets.
      DefaultTCPStreamConnector​(Socket dataSocket, Socket controlSocket)
      Initializes a new DefaultTCPStreamConnector instance which is to represent a specific pair of control and data Sockets.
      DefaultTCPStreamConnector​(Socket dataSocket, Socket controlSocket, boolean rtcpmux)
      Initializes a new DefaultTCPStreamConnector instance which is to represent a specific pair of control and data Sockets.
    • Field Detail

      • controlSocket

        protected Socket controlSocket
        The Socket that a stream should use for control data (e.g. RTCP) traffic.
      • dataSocket

        protected Socket dataSocket
        The Socket that a stream should use for data (e.g. RTP) traffic.
      • rtcpmux

        protected boolean rtcpmux
        Whether this DefaultStreamConnector uses rtcp-mux.
    • Constructor Detail

      • DefaultTCPStreamConnector

        public DefaultTCPStreamConnector()
        Initializes a new DefaultTCPStreamConnector instance with no control and data Sockets.

        Suitable for extenders willing to delay the creation of the control and data sockets. For example, they could override getControlSocket() and/or getDataSocket() and create them on demand.

      • DefaultTCPStreamConnector

        public DefaultTCPStreamConnector​(Socket dataSocket,
                                         Socket controlSocket)
        Initializes a new DefaultTCPStreamConnector instance which is to represent a specific pair of control and data Sockets.
        Parameters:
        dataSocket - the Socket to be used for data (e.g. RTP) traffic
        controlSocket - the Socket to be used for control data (e.g. RTCP) traffic
      • DefaultTCPStreamConnector

        public DefaultTCPStreamConnector​(Socket dataSocket,
                                         Socket controlSocket,
                                         boolean rtcpmux)
        Initializes a new DefaultTCPStreamConnector instance which is to represent a specific pair of control and data Sockets.
        Parameters:
        dataSocket - the Socket to be used for data (e.g. RTP) traffic
        controlSocket - the Socket to be used for control data (e.g. RTCP) traffic
        rtcpmux - whether rtcpmux is used.
    • Method Detail

      • close

        public void close()
        Releases the resources allocated by this instance in the course of its execution and prepares it to be garbage collected.
        Specified by:
        close in interface StreamConnector
        See Also:
        StreamConnector.close()
      • getDataTCPSocket

        public Socket getDataTCPSocket()
        Returns a reference to the Socket that a stream should use for data (e.g. RTP) traffic.
        Specified by:
        getDataTCPSocket in interface StreamConnector
        Returns:
        a reference to the Socket that a stream should use for data (e.g. RTP) traffic.
      • getControlTCPSocket

        public Socket getControlTCPSocket()
        Returns a reference to the Socket that a stream should use for control data (e.g. RTCP).
        Specified by:
        getControlTCPSocket in interface StreamConnector
        Returns:
        a reference to the Socket that a stream should use for control data (e.g. RTCP).
      • stopped

        public void stopped()
        Notifies this instance that utilization of its Sockets for data and/or control traffic has temporarily stopped. This instance should be prepared to be started at a later time again though.
        Specified by:
        stopped in interface StreamConnector
        See Also:
        StreamConnector.stopped()
      • isRtcpmux

        public boolean isRtcpmux()
        Returns true if this StreamConnector uses rtcp-mux, that is, if its data and control sockets share the same local address and port.
        Specified by:
        isRtcpmux in interface StreamConnector
        Returns:
        true if this StreamConnector uses rtcp-mux, that is, if its data and control sockets share the same local address and port.