#include <rtp.h>
Inherits AVPQueue.
TRTPSessionBase (const InetHostAddress &ia, tpport_t
dataPort, tpport_t controlPort, uint32 membersSize, RTPApplication
&app)
Builds a session waiting for packets in a host address. TRTPSessionBase
(uint32 ssrc, const InetHostAddress &ia, tpport_t dataPort, tpport_t
controlPort, uint32 membersSize, RTPApplication &app)
Builds a session with the specified ssrc identifier for the local source.
TRTPSessionBase (const InetMcastAddress &ia, tpport_t dataPort,
tpport_t controlPort, uint32 membersSize, RTPApplication &app,
uint32 iface)
Builds a session waiting for packets in a multicast address.
TRTPSessionBase (uint32 ssrc, const InetMcastAddress &ia,
tpport_t dataPort, tpport_t controlPort, uint32 membersSize,
RTPApplication &app, uint32 iface)
Builds a session waiting for packets in a multicast address, with the
specified ssrc identifier for the local source. virtual size_t
dispatchBYE (const std::string &str)
Socket::Error setMcastTTL (uint8 ttl)
Set the value of the TTL field in the sent packets. virtual
~TRTPSessionBase ()
RTPDataChannel * getDSO (void)
bool isPendingData (microtimeout_t timeout)
InetHostAddress getDataSender (tpport_t *port=NULL) const
size_t getNextDataPacketSize () const
size_t recvData (unsigned char *buffer, size_t len, InetHostAddress
&na, tpport_t &tp)
Receive data from the data channel/socket. void setDataPeer (const
InetAddress &host, tpport_t port)
size_t sendData (const unsigned char *const buffer, size_t len)
SOCKET getDataRecvSocket () const
bool isPendingControl (microtimeout_t timeout)
InetHostAddress getControlSender (tpport_t *port=NULL) const
size_t recvControl (unsigned char *buffer, size_t len, InetHostAddress
&na, tpport_t &tp)
Receive data from the control channel/socket. void setControlPeer
(const InetAddress &host, tpport_t port)
size_t sendControl (const unsigned char *const buffer, size_t len)
SOCKET getControlRecvSocket () const
Socket::Error joinGroup (const InetMcastAddress &ia, uint32 iface)
Join a multicast group. Socket::Error leaveGroup (const
InetMcastAddress &ia)
Leave a multicast group. void endSocket ()
RTPDataChannel * dso
RTCPChannel * cso
class RTPSessionBaseHandler
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue
>::TRTPSessionBase (const InetHostAddress & ia, tpport_t
dataPort, tpport_t controlPort, uint32 membersSize, RTPApplication
& app) [inline]
Builds a session waiting for packets in a host address.
Parameters
ia Network address this socket is to be bound.
dataPort Transport port the data socket is to be bound.
controlPort Transport port the control socket is to be bound.
membersSize Initial size of the membership table.
app Application this session is associated to.
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue
>::TRTPSessionBase (uint32 ssrc, const InetHostAddress & ia,
tpport_t dataPort, tpport_t controlPort, uint32 membersSize,
RTPApplication & app) [inline]
Builds a session with the specified ssrc identifier for the local
source.
Parameters
ssrc SSRC identifier for the local source.
ia Network address this socket is to be bound.
dataPort Transport port the data socket is to be bound.
controlPort Transport port the control socket is to be bound.
membersSize Initial size of the membership table.
app Application this session is associated to.
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue
>::TRTPSessionBase (const InetMcastAddress & ia, tpport_t
dataPort, tpport_t controlPort, uint32 membersSize, RTPApplication
& app, uint32 iface) [inline]
Builds a session waiting for packets in a multicast address. TODO:
ssrc constructor for multicast!
Parameters
ia Multicast address this socket is to be bound.
dataPort Transport port the data socket is to be bound.
controlPort Transport port the control socket is to be bound.
membersSize Initial size of the membership table.
app Application this session is associated to.
iface Index (from 0 to n) of network interface to join to multicast
group.
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue
>::TRTPSessionBase (uint32 ssrc, const InetMcastAddress & ia,
tpport_t dataPort, tpport_t controlPort, uint32 membersSize,
RTPApplication & app, uint32 iface) [inline]
Builds a session waiting for packets in a multicast address, with
the specified ssrc identifier for the local source.
Parameters
ssrc SSRC identifier for the local source.
ia Multicast address this socket is to be bound.
dataPort Transport port the data socket is to be bound.
controlPort Transport port the control socket is to be bound.
membersSize Initial size of the membership table.
app Application this session is associated to.
iface Index (from 0 to n) of network interface to join to multicast
group.
Reimplemented from QueueRTCPManager.
Reimplemented in SingleThreadRTPSession< RTPDataChannel,
RTCPChannel, ServiceQueue >.
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue> size_t
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue
>::getNextDataPacketSize () const [inline], [protected],
[virtual]
Implements IncomingDataQueue.
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue> bool
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue
>::isPendingControl (microtimeout_t timeout) [inline],
[protected], [virtual]
Parameters
timeout maximum timeout to wait, in
microseconds
Returns
whether there are packets waiting to be picked
Implements QueueRTCPManager.
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue> bool
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue
>::isPendingData (microtimeout_t timeout) [inline],
[protected], [virtual]
Parameters
timeout maximum timeout to wait, in
microseconds
Implements RTPDataQueue.
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
Socket::Error TRTPSessionBase< RTPDataChannel, RTCPChannel,
ServiceQueue >::joinGroup (const InetMcastAddress & ia, uint32 iface)
[inline], [protected]
Join a multicast group.
Parameters
ia address of the multicast group
Returns
error code from the socket operation
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
Socket::Error TRTPSessionBase< RTPDataChannel, RTCPChannel,
ServiceQueue >::leaveGroup (const InetMcastAddress & ia) [inline],
[protected]
Leave a multicast group.
Parameters
ia address of the multicast group
Returns
error code from the socket operation
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue> size_t
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue
>::recvControl (unsigned char * buffer, size_t len, InetHostAddress &
na, tpport_t & tp) [inline], [protected], [virtual]
Receive data from the control channel/socket.
Parameters
buffer Buffer where to get data.
len Maximum number of octets to get.
na Source network address.
tp Source transport port.
Returns
Number of octets actually read.
Implements QueueRTCPManager.
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue> size_t
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue
>::recvData (unsigned char * buffer, size_t len, InetHostAddress & na,
tpport_t & tp) [inline], [protected], [virtual]
Receive data from the data channel/socket.
Parameters
buffer Memory region to read to.
len Maximum number of octets to get.
na Source network address.
tp Source transport port.
Returns
Number of octets actually read.
Implements IncomingDataQueue.
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue> size_t
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue
>::sendControl (const unsigned char *const buffer, size_t len) [inline],
[protected], [virtual]
Returns
number of octets actually written
Parameters
buffer
len
Implements QueueRTCPManager.
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue> size_t
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue
>::sendData (const unsigned char *const buffer, size_t len) [inline],
[protected], [virtual]
Parameters
buffer memory region to write from
len number of octets to write
Reimplemented from OutgoingDataQueue.
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue> void
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue
>::setControlPeer (const InetAddress & host, tpport_t port)
[inline], [protected], [virtual]
Reimplemented from OutgoingDataQueue.
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue> void
TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue
>::setDataPeer (const InetAddress & host, tpport_t port) [inline],
[protected], [virtual]
Reimplemented from OutgoingDataQueue.
template<class RTPDataChannel = DualRTPUDPIPv4Channel, class
RTCPChannel = DualRTPUDPIPv4Channel, class ServiceQueue = AVPQueue>
Socket::Error TRTPSessionBase< RTPDataChannel, RTCPChannel,
ServiceQueue >::setMcastTTL (uint8 ttl) [inline]
Set the value of the TTL field in the sent packets.
Parameters
ttl Time To Live
Returns
error code from the socket operation