Man page - outgoingdataqueue(3)
Packages contains this manual
- rtppkt.h(3)
- cqueue(3)
- formats.h(3)
- private.h(3)
- sockets(3)
- queuebase.h(3)
- sessions(3)
- ioqueue(3)
- oqueue.h(3)
- rtppacket(3)
- ext.h(3)
- cqueue.h(3)
- base.h(3)
- rtpext(3)
- rtp.h(3)
- sources.h(3)
- iqueue(3)
- pool.h(3)
- queuebase(3)
- channel.h(3)
- sources(3)
- iqueue.h(3)
- ioqueue.h(3)
- payload(3)
- rtcppacket(3)
- rtcppkt.h(3)
- oqueue(3)
apt-get install libccrtp-doc
Manual
OutgoingDataQueue
NAMESYNOPSIS
Classes
Public Member Functions
Protected Member Functions
Protected Attributes
Detailed Description
Constructor & Destructor Documentation
OutgoingDataQueue::OutgoingDataQueue () [protected]
virtual OutgoingDataQueue::ËOutgoingDataQueue () [inline], [protected],[virtual]
Member Function Documentation
void OutgoingDataQueue::addContributor (uint32 csrc)
bool OutgoingDataQueue::addDestination (const InetHostAddress & ia,tpport_t dataPort = DefaultRTPDataPort, tpport_t controlPort = 0)
bool OutgoingDataQueue::addDestination (const InetMcastAddress & ia,tpport_t dataPort = DefaultRTPDataPort, tpport_t controlPort = 0)
size_t OutgoingDataQueue::dispatchDataPacket () [protected]
void OutgoingDataQueue::dispatchImmediate (OutgoingRTPPkt * packet)[protected]
bool OutgoingDataQueue::forgetDestination (const InetHostAddress & ia,tpport_t dataPort = DefaultRTPDataPort, tpport_t controlPort = 0)
bool OutgoingDataQueue::forgetDestination (const InetMcastAddress & ia,tpport_t dataPort = DefaultRTPDataPort, tpport_t controlPort = 0)
uint32 OutgoingDataQueue::getCurrentSeqNum (void) [inline], [protected]
microtimeout_t OutgoingDataQueue::getDefaultExpireTimeout () const [inline]
microtimeout_t OutgoingDataQueue::getDefaultSchedulingTimeout () const[inline]
microtimeout_t OutgoingDataQueue::getExpireTimeout () const [inline]
uint32 OutgoingDataQueue::getInitialTimestamp () [inline], [protected]
bool OutgoingDataQueue::getMark () const [inline]
CryptoContext * OutgoingDataQueue::getOutQueueCryptoContext (uint32 ssrc)
microtimeout_t OutgoingDataQueue::getSchedulingTimeout () [protected]
uint32 OutgoingDataQueue::getSendOctetCount () const [inline]
uint32 OutgoingDataQueue::getSendPacketCount () const [inline]
uint16 OutgoingDataQueue::getSequenceNumber () const [inline]
bool OutgoingDataQueue::isSending () const
void OutgoingDataQueue::purgeOutgoingQueue () [protected]
void OutgoingDataQueue::putData (uint32 stamp, const unsigned char * data =NULL, size_t len = 0)
bool OutgoingDataQueue::removeContributor (uint32 csrc)
void OutgoingDataQueue::removeOutQueueCryptoContext (CryptoContext * cc)
void OutgoingDataQueue::sendImmediate (uint32 stamp, const unsigned char *data = NULL, size_t len = 0)
virtual void OutgoingDataQueue::setControlPeer (const InetAddress & host,tpport_t port) [inline], [protected], [virtual]
void OutgoingDataQueue::setExpireTimeout (microtimeout_t to) [inline]
void OutgoingDataQueue::setInitialTimestamp (uint32 ts) [inline],[protected]
void OutgoingDataQueue::setMark (bool mark) [inline]
void OutgoingDataQueue::setNextSeqNum (uint32 seqNum) [inline],[protected]
void OutgoingDataQueue::setOutQueueCryptoContext (CryptoContext * cc)
void OutgoingDataQueue::setPadding (uint8 paddinglen) [inline]
size_t OutgoingDataQueue::setPartial (uint32 timestamp, unsigned char *data, size_t offset, size_t max)
void OutgoingDataQueue::setSchedulingTimeout (microtimeout_t to) [inline]
Member Data Documentation
bool OutgoingDataQueue::complete
std::list<CryptoContext *> OutgoingDataQueue::cryptoContexts [protected]
Mutex OutgoingDataQueue::cryptoMutex [mutable], [protected]
bool OutgoingDataQueue::marked
uint32 OutgoingDataQueue::octetCount
timeval OutgoingDataQueue::overflowTime
uint32 OutgoingDataQueue::packetCount
uint8 OutgoingDataQueue::paddinglen
uint16 OutgoingDataQueue::sendCC
uint16 OutgoingDataQueue::sendSeq
uint32 OutgoingDataQueue::sendSources[16]
Author
NAME
OutgoingDataQueue - A generic outgoing RTP data queue supporting multiple destinations.
SYNOPSIS
#include <oqueue.h>
Inherits OutgoingDataQueueBase , and DestinationListHandler .
Inherited by RTPDataQueue .
Classes
struct OutgoingRTPPktLink
Public Member Functions
bool
addDestination
(const InetHostAddress &ia,
tpport_t dataPort=
DefaultRTPDataPort
, tpport_t
controlPort=0)
bool
addDestination
(const InetMcastAddress &ia,
tpport_t dataPort=
DefaultRTPDataPort
, tpport_t
controlPort=0)
bool
forgetDestination
(const InetHostAddress
&ia, tpport_t dataPort=
DefaultRTPDataPort
,
tpport_t controlPort=0)
bool
forgetDestination
(const InetMcastAddress
&ia, tpport_t dataPort=
DefaultRTPDataPort
,
tpport_t controlPort=0)
void
addContributor
(uint32 csrc)
Add csrc as the CSRC identifier of a new contributor.
bool
removeContributor
(uint32 csrc)
Remove CSRC from the list of contributors.
bool
isSending
() const
Determine if outgoing packets are waiting to send.
void
putData
(uint32 stamp, const unsigned char
*data=NULL, size_t len=0)
This is used to create a data packet in the send queue.
void
sendImmediate
(uint32 stamp, const unsigned char
*data=NULL, size_t len=0)
This is used to create a data packet and send it
immediately.
void
setPadding
(uint8
paddinglen
)
Set padding.
void
setMark
(bool mark)
Set marker bit for the packet in which the next data
provided will be send.
bool
getMark
() const
Get whether the mark bit will be set in the next packet.
size_t
setPartial
(uint32 timestamp, unsigned char
*data, size_t offset, size_t max)
Set partial data for an already queued packet.
microtimeout_t getDefaultSchedulingTimeout
() const
void
setSchedulingTimeout
(
microtimeout_t
to)
Set the default scheduling timeout to use when no data
packets are waiting to be sent.
microtimeout_t getDefaultExpireTimeout
() const
void
setExpireTimeout
(
microtimeout_t
to)
Set the âexpiredâ timer for expiring packets
pending in the send queue which have gone unsent and are
already âtoo lateâ to be sent now.
microtimeout_t getExpireTimeout
() const
uint32
getSendPacketCount
() const
Get the total number of packets sent so far.
uint32
getSendOctetCount
() const
Get the total number of octets (payload only) sent so far.
uint16
getSequenceNumber
() const
Get the sequence number of the next outgoing packet.
void
setOutQueueCryptoContext
(
CryptoContext
*cc)
Set output queue
CryptoContext
.
void
removeOutQueueCryptoContext
(
CryptoContext
*cc)
Remove output queue
CryptoContext
.
CryptoContext
*
getOutQueueCryptoContext
(uint32
ssrc)
Get an output queue
CryptoContext
identified by
SSRC.
Public Member Functions inherited from OutgoingDataQueueBase
size_t
getDefaultMaxSendSegmentSize
()
void
setMaxSendSegmentSize
(size_t size)
Set maximum payload segment size before fragmenting sends.
size_t
getMaxSendSegmentSize
()
Public Member Functions inherited from RTPQueueBase
bool
setPayloadFormat
(const
PayloadFormat
&pf)
Set the payload format in use, for timing and payload type
identification purposes.
uint32
getLocalSSRC
() const
uint32
getCurrentRTPClockRate
() const
Get the clock rate in RTP clock units (for instance, 8000
units per second for PCMU, or 90000 units per second for
MP2T).
PayloadType getCurrentPayloadType
() const
timeval
getInitialTime
() const
Protected Member Functions
OutgoingDataQueue
()
virtual
ËOutgoingDataQueue
()
void
dispatchImmediate
(
OutgoingRTPPkt
*packet)
This is used to write the RTP data packet to one or more
destinations.
microtimeout_t getSchedulingTimeout
()
This computes the timeout period for scheduling transmission
of the next packet at the âheadâ of the send
buffer.
size_t
dispatchDataPacket
()
This function is used by the service thread to process the
next outgoing packet pending in the sending queue.
void
setNextSeqNum
(uint32 seqNum)
For thoses cases in which the application requires a method
to set the sequence number for the outgoing stream (such as
for implementing the RTSP PLAY command).
uint32
getCurrentSeqNum
(void)
void
setInitialTimestamp
(uint32 ts)
uint32
getInitialTimestamp
()
void
purgeOutgoingQueue
()
virtual void
setControlPeer
(const InetAddress
&host, tpport_t port)
Protected Member Functions inherited from OutgoingDataQueueBase
OutgoingDataQueueBase
()
virtual
ËOutgoingDataQueueBase
()
Protected Member Functions inherited from RTPQueueBase
RTPQueueBase
(uint32
*ssrc=NULL)
void
setLocalSSRC
(uint32 ssrc)
uint32
getLocalSSRCNetwork
() const
virtual
ËRTPQueueBase
()
virtual size_t
dispatchBYE
(const std::string &)
A plugin point for posting of BYE messages.
virtual void
renewLocalSSRC
()
Protected Member Functions inherited from DestinationListHandler
void
writeLockDestinationList
() const
bool
addDestinationToList
(const InetAddress &ia,
tpport_t data, tpport_t control)
Locks the object before modifying it.
bool
removeDestinationFromList
(const InetAddress
&ia, tpport_t dataPort, tpport_t controlPort)
Locks the object before modifying it.
DestinationListHandler
()
ËDestinationListHandler
()
bool
isSingleDestination
() const
Get whether there is only a destination in the list.
TransportAddress
*
getFirstDestination
() const
void
lockDestinationList
() const
void
unlockDestinationList
() const
Protected Attributes
Mutex
cryptoMutex
std::list<
CryptoContext
* >
cryptoContexts
Protected Attributes inherited from DestinationListHandler
std::list< TransportAddress * > destList
Detailed Description
A generic outgoing RTP data queue supporting multiple destinations.
Author
Federico Montesino Pouzols fedemp@altern.org
Constructor & Destructor Documentation
OutgoingDataQueue::OutgoingDataQueue () [protected]
virtual OutgoingDataQueue::ËOutgoingDataQueue () [inline], [protected],[virtual]
Member Function Documentation
void OutgoingDataQueue::addContributor (uint32 csrc)
Add csrc as the CSRC identifier of a new contributor. This method adds the CSRC identifier to a list of contributors that will be inserted in every packet enqueued from now on.
bool OutgoingDataQueue::addDestination (const InetHostAddress & ia,tpport_t dataPort = DefaultRTPDataPort, tpport_t controlPort = 0)
Examples
audiorx.cpp , audiotx.cpp , rtphello.cpp , and rtpsend.cpp .
bool OutgoingDataQueue::addDestination (const InetMcastAddress & ia,tpport_t dataPort = DefaultRTPDataPort, tpport_t controlPort = 0)
size_t OutgoingDataQueue::dispatchDataPacket () [protected]
This function is used by the service thread to process the next outgoing packet pending in the sending queue.
Returns
number of bytes sent. 0 if silent, <0 if error.
void OutgoingDataQueue::dispatchImmediate (OutgoingRTPPkt * packet)[protected]
This is used to write the RTP data packet to one or more destinations. It is used by both sendImmediate and by dispatchDataPacket.
Parameters
RTP packet to send.
bool OutgoingDataQueue::forgetDestination (const InetHostAddress & ia,tpport_t dataPort = DefaultRTPDataPort, tpport_t controlPort = 0)
bool OutgoingDataQueue::forgetDestination (const InetMcastAddress & ia,tpport_t dataPort = DefaultRTPDataPort, tpport_t controlPort = 0)
uint32 OutgoingDataQueue::getCurrentSeqNum (void) [inline], [protected]
microtimeout_t OutgoingDataQueue::getDefaultExpireTimeout () const [inline]
microtimeout_t OutgoingDataQueue::getDefaultSchedulingTimeout () const[inline]
microtimeout_t OutgoingDataQueue::getExpireTimeout () const [inline]
uint32 OutgoingDataQueue::getInitialTimestamp () [inline], [protected]
bool OutgoingDataQueue::getMark () const [inline]
Get whether the mark bit will be set in the next packet.
CryptoContext * OutgoingDataQueue::getOutQueueCryptoContext (uint32 ssrc)
Get an output queue CryptoContext identified by SSRC.
Parameters
ssrc Request CryptoContext for this incoming SSRC
Returns
Pointer to CryptoContext of the SSRC of NULL if no context available for this SSRC.
microtimeout_t OutgoingDataQueue::getSchedulingTimeout () [protected]
This computes the timeout period for scheduling transmission of the next packet at the âheadâ of the send buffer. If no packets are waiting, a default timeout is used. This actually forms the âisPending()â timeout of the rtp receiver in the service thread.
Returns
timeout until next packet is scheduled to send.
uint32 OutgoingDataQueue::getSendOctetCount () const [inline]
Get the total number of octets (payload only) sent so far.
Returns
total number of payload octets sent in RTP packets.
uint32 OutgoingDataQueue::getSendPacketCount () const [inline]
Get the total number of packets sent so far.
Returns
total number of packets sent
uint16 OutgoingDataQueue::getSequenceNumber () const [inline]
Get the sequence number of the next outgoing packet.
Returns
the 16 bit sequence number.
bool OutgoingDataQueue::isSending () const
Determine if outgoing packets are waiting to send.
Returns
true if there are packets waiting to be send.
void OutgoingDataQueue::purgeOutgoingQueue () [protected]
void OutgoingDataQueue::putData (uint32 stamp, const unsigned char * data =NULL, size_t len = 0)
This is used to create a data packet in the send queue. Sometimes a âNULLâ or empty packet will be used instead, and these are known as âsilentâ packets. âSilentâ packets are used simply to âpushâ the scheduler along more accurately by giving the appearance that a next packet is waiting to be sent and to provide a valid timestamp for that packet.
Parameters
stamp
Timestamp for
expected send time of packet.
data
Value or NULL if special âsilentâ
packet.
len
May be 0 to indicate a default by payload type.
Examples
audiotx.cpp , ccrtptest.cpp , rtpduphello.cpp , rtphello.cpp , and rtpsend.cpp .
bool OutgoingDataQueue::removeContributor (uint32 csrc)
Remove CSRC from the list of contributors.
void OutgoingDataQueue::removeOutQueueCryptoContext (CryptoContext * cc)
Remove output queue CryptoContext . The endQueue method (provided by RTPQueue) also deletes all registered CryptoContexts.
Parameters
cc Pointer to initialized CryptoContext to remove.
void OutgoingDataQueue::sendImmediate (uint32 stamp, const unsigned char *data = NULL, size_t len = 0)
This is used to create a data packet and send it immediately. Sometimes a âNULLâ or empty packet will be used instead, and these are known as âsilentâ packets. âSilentâ packets are used simply to âpushâ the scheduler along more accurately by giving the appearance that a next packet is waiting to be sent and to provide a valid timestamp for that packet.
Parameters
stamp
Timestamp
immediate send time of packet.
data
Value or NULL if special âsilentâ
packet.
len
May be 0 to indicate a default by payload type.
virtual void OutgoingDataQueue::setControlPeer (const InetAddress & host,tpport_t port) [inline], [protected], [virtual]
Reimplemented in RTPDuplex , TRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue > , and TRTPSessionBase< DualRTPUDPIPv4Channel, DualRTPUDPIPv4Channel, AVPQueue > .
void OutgoingDataQueue::setExpireTimeout (microtimeout_t to) [inline]
Set the âexpiredâ timer for expiring packets pending in the send queue which have gone unsent and are already âtoo lateâ to be sent now.
Parameters
to timeout to expire unsent packets in milliseconds.
Examples
ccrtptest.cpp , rtpduphello.cpp , rtphello.cpp , rtplisten.cpp , and rtpsend.cpp .
void OutgoingDataQueue::setInitialTimestamp (uint32 ts) [inline],[protected]
void OutgoingDataQueue::setMark (bool mark) [inline]
Set marker bit for the packet in which the next data provided will be send. When transmitting audio, should be set for the first packet of a talk spurt. When transmitting video, should be set for the last packet for a video frame.
Parameters
mark Marker bit value for next packet.
void OutgoingDataQueue::setNextSeqNum (uint32 seqNum) [inline],[protected]
For thoses cases in which the application requires a method to set the sequence number for the outgoing stream (such as for implementing the RTSP PLAY command).
Parameters
seqNum next sequence number to be used for outgoing packets.
void OutgoingDataQueue::setOutQueueCryptoContext (CryptoContext * cc)
Set output queue CryptoContext . The endQueue method (provided by RTPQueue) deletes all registered CryptoContexts.
Parameters
cc Pointer to initialized CryptoContext .
void OutgoingDataQueue::setPadding (uint8 paddinglen) [inline]
Set padding. All outgoing packets will be transparently padded to a multiple of paddinglen.
Parameters
paddinglen pad packets to a length multiple of paddinglen.
size_t OutgoingDataQueue::setPartial (uint32 timestamp, unsigned char *data, size_t offset, size_t max)
Set partial data for an already queued packet. This is often used for multichannel data.
Parameters
timestamp
Timestamp of
packet.
data
Buffer to copy from.
offset
Offset to copy from.
max
Maximum data size.
Returns
Number of packet data bytes set.
void OutgoingDataQueue::setSchedulingTimeout (microtimeout_t to) [inline]
Set the default scheduling timeout to use when no data packets are waiting to be sent.
Parameters
to timeout in milliseconds.
Examples
audiorx.cpp , audiotx.cpp , ccrtptest.cpp , rtpduphello.cpp , rtphello.cpp , and rtpsend.cpp .
Member Data Documentation
bool OutgoingDataQueue::complete
std::list<CryptoContext *> OutgoingDataQueue::cryptoContexts [protected]
Mutex OutgoingDataQueue::cryptoMutex [mutable], [protected]
bool OutgoingDataQueue::marked
uint32 OutgoingDataQueue::octetCount
timeval OutgoingDataQueue::overflowTime
uint32 OutgoingDataQueue::packetCount
uint8 OutgoingDataQueue::paddinglen
uint16 OutgoingDataQueue::sendCC
uint16 OutgoingDataQueue::sendSeq
uint32 OutgoingDataQueue::sendSources[16]
Author
Generated automatically by Doxygen for ccRTP from the source code.