.TH "AVPQueue" 3 "ccRTP" \" -*- nroff -*- .ad l .nh .SH NAME AVPQueue \- This class, an RTP/RTCP queue, adds audio/video profile (AVP) specific methods to the generic RTCP service queue (\fBQueueRTCPManager\fP)\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBQueueRTCPManager\fP\&. .PP Inherited by \fBTRTPSessionBase< DualRTPUDPIPv4Channel, DualRTPUDPIPv4Channel, AVPQueue >\fP, and \fBTRTPSessionBase< RTPDataChannel, RTCPChannel, ServiceQueue >\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "void \fBsetControlBandwidth\fP (float fraction)" .br .RI "Specify the bandwith available for control (RTCP) packets\&. " .ti -1c .RI "float \fBgetControlBandwidth\fP () const" .br .in -1c Public Member Functions inherited from \fBQueueRTCPManager\fP .in +1c .ti -1c .RI "\fBRTCPSenderInfo\fP * \fBgetMRSenderInfo\fP (\fBSyncSource\fP &src)" .br .RI "Get the most recent sender report received from a synchronization source\&. " .ti -1c .RI "\fBRTCPReceiverInfo\fP * \fBgetMRReceiverInfo\fP (\fBSyncSource\fP &srcFrom)" .br .RI "Ask for the info in the most recent receiver report about the local source received from the source given as parameter\&. " .ti -1c .RI "void \fBsetLeavingDelay\fP (\fBmicrotimeout_t\fP delay)" .br .RI "Set how much time the stack will wait before deleting a synchronization source that has sent an RTCP BYE packet\&. " .ti -1c .RI "void \fBsetEnd2EndDelay\fP (\fBmicrotimeout_t\fP t)" .br .RI "This method sets the maximum end to end delay allowed\&. " .ti -1c .RI "\fBmicrotimeout_t\fP \fBgetDefaultEnd2EndDelay\fP () const" .br .ti -1c .RI "\fBmicrotimeout_t\fP \fBgetEnd2EndDelay\fP () const" .br .ti -1c .RI "void \fBsetSendersControlFraction\fP (float fraction)" .br .RI "Specify the fraction of the total control bandwith to be dedicated to senders reports\&. " .ti -1c .RI "void \fBsetMinRTCPInterval\fP (\fBmicrotimeout_t\fP interval)" .br .RI "Manually set the minimum interval for sending RTP compound packets\&. " .ti -1c .RI "uint32 \fBgetSendRTCPPacketCount\fP () const" .br .RI "Get the total number of RTCP packets sent until now\&. " .ti -1c .RI "void \fBsetOutQueueCryptoContextCtrl\fP (\fBCryptoContextCtrl\fP *cc)" .br .RI "Set output queue \fBCryptoContext\fP\&. " .ti -1c .RI "void \fBremoveOutQueueCryptoContextCtrl\fP (\fBCryptoContextCtrl\fP *cc)" .br .RI "Remove output queue \fBCryptoContext\fP\&. " .ti -1c .RI "\fBCryptoContextCtrl\fP * \fBgetOutQueueCryptoContextCtrl\fP (uint32 ssrc)" .br .RI "Get an output queue \fBCryptoContext\fP identified by SSRC\&. " .ti -1c .RI "void \fBsetInQueueCryptoContextCtrl\fP (\fBCryptoContextCtrl\fP *cc)" .br .RI "Set input queue \fBCryptoContext\fP\&. " .ti -1c .RI "void \fBremoveInQueueCryptoContextCtrl\fP (\fBCryptoContextCtrl\fP *cc)" .br .RI "Remove input queue \fBCryptoContext\fP\&. " .ti -1c .RI "\fBCryptoContextCtrl\fP * \fBgetInQueueCryptoContextCtrl\fP (uint32 ssrc)" .br .RI "Get an input queue \fBCryptoContext\fP identified by SSRC\&. " .in -1c Public Member Functions inherited from \fBRTPDataQueue\fP .in +1c .ti -1c .RI "void \fBsetTypeOfService\fP (\fBTos\fP tos)" .br .RI "Specify the kind of service the application expects to use\&. " .ti -1c .RI "void \fBenableStack\fP ()" .br .RI "Enable packet queue processing in the stack\&. " .ti -1c .RI "void \fBdisableStack\fP ()" .br .RI "Disable packet queue processing in the stack\&. " .ti -1c .RI "bool \fBisActive\fP () const" .br .RI "Get active connection state flag\&. " .ti -1c .RI "uint32 \fBgetCurrentTimestamp\fP () const" .br .RI "Get the timestamp that should be given for a packet whose payload sampling instant corresponds to the current system time\&. " .ti -1c .RI "void \fBsetSessionBandwidth\fP (uint32 bw)" .br .RI "Specify the bandwidth of the current session\&. " .ti -1c .RI "uint32 \fBgetDefaultSessionBandwidth\fP () const" .br .ti -1c .RI "uint32 \fBgetSessionBandwidth\fP () const" .br .ti -1c .RI "void \fBsetTimeclock\fP ()" .br .RI "Set the packet timeclock for synchronizing timestamps\&. " .ti -1c .RI "timeout_t \fBgetTimeclock\fP () const" .br .RI "Get the packet timeclock for synchronizing timestamps\&. " .in -1c Public Member Functions inherited from \fBIncomingDataQueue\fP .in +1c .ti -1c .RI "\fBSyncSourcesIterator\fP \fBbegin\fP ()" .br .ti -1c .RI "\fBSyncSourcesIterator\fP \fBend\fP ()" .br .ti -1c .RI "const \fBAppDataUnit\fP * \fBgetData\fP (uint32 stamp, const \fBSyncSource\fP *src=NULL)" .br .RI "Retreive data from a specific timestamped packet if such a packet is currently available in the receive buffer\&. " .ti -1c .RI "bool \fBisWaiting\fP (const \fBSyncSource\fP *src=NULL) const" .br .RI "Determine if packets are waiting in the reception queue\&. " .ti -1c .RI "uint32 \fBgetFirstTimestamp\fP (const \fBSyncSource\fP *src=NULL) const" .br .RI "Get timestamp of first packet waiting in the queue\&. " .ti -1c .RI "void \fBsetMinValidPacketSequence\fP (uint8 packets)" .br .RI "When receiving packets from a new source, it may be convenient to reject a first few packets before we are really sure the source is valid\&. " .ti -1c .RI "uint8 \fBgetDefaultMinValidPacketSequence\fP () const" .br .ti -1c .RI "uint8 \fBgetMinValidPacketSequence\fP () const" .br .RI "Get the minimun number of consecutive packets that must be received from a source before accepting its data packets\&. " .ti -1c .RI "void \fBsetMaxPacketMisorder\fP (uint16 packets)" .br .ti -1c .RI "uint16 \fBgetDefaultMaxPacketMisorder\fP () const" .br .ti -1c .RI "uint16 \fBgetMaxPacketMisorder\fP () const" .br .ti -1c .RI "void \fBsetMaxPacketDropout\fP (uint16 packets)" .br .RI "It also prevents packets sent after a restart of the source being immediately accepted\&. " .ti -1c .RI "uint16 \fBgetDefaultMaxPacketDropout\fP () const" .br .ti -1c .RI "uint16 \fBgetMaxPacketDropout\fP () const" .br .ti -1c .RI "void \fBsetInQueueCryptoContext\fP (\fBCryptoContext\fP *cc)" .br .RI "Set input queue \fBCryptoContext\fP\&. " .ti -1c .RI "void \fBremoveInQueueCryptoContext\fP (\fBCryptoContext\fP *cc)" .br .RI "Remove input queue \fBCryptoContext\fP\&. " .ti -1c .RI "\fBCryptoContext\fP * \fBgetInQueueCryptoContext\fP (uint32 ssrc)" .br .RI "Get an input queue \fBCryptoContext\fP identified by SSRC\&. " .in -1c Public Member Functions inherited from \fBIncomingDataQueueBase\fP .in +1c .ti -1c .RI "size_t \fBgetDefaultMaxRecvPacketSize\fP () const" .br .ti -1c .RI "size_t \fBgetMaxRecvPacketSize\fP () const" .br .ti -1c .RI "void \fBsetMaxRecvPacketSize\fP (size_t maxsize)" .br .in -1c Public Member Functions inherited from \fBRTPQueueBase\fP .in +1c .ti -1c .RI "bool \fBsetPayloadFormat\fP (const \fBPayloadFormat\fP &pf)" .br .RI "Set the payload format in use, for timing and payload type identification purposes\&. " .ti -1c .RI "uint32 \fBgetLocalSSRC\fP () const" .br .ti -1c .RI "uint32 \fBgetCurrentRTPClockRate\fP () const" .br .RI "Get the clock rate in RTP clock units (for instance, 8000 units per second for PCMU, or 90000 units per second for MP2T)\&. " .ti -1c .RI "\fBPayloadType\fP \fBgetCurrentPayloadType\fP () const" .br .ti -1c .RI "timeval \fBgetInitialTime\fP () const" .br .in -1c Public Member Functions inherited from \fBOutgoingDataQueue\fP .in +1c .ti -1c .RI "bool \fBaddDestination\fP (const InetHostAddress &ia, tpport_t dataPort=\fBDefaultRTPDataPort\fP, tpport_t controlPort=0)" .br .ti -1c .RI "bool \fBaddDestination\fP (const InetMcastAddress &ia, tpport_t dataPort=\fBDefaultRTPDataPort\fP, tpport_t controlPort=0)" .br .ti -1c .RI "bool \fBforgetDestination\fP (const InetHostAddress &ia, tpport_t dataPort=\fBDefaultRTPDataPort\fP, tpport_t controlPort=0)" .br .ti -1c .RI "bool \fBforgetDestination\fP (const InetMcastAddress &ia, tpport_t dataPort=\fBDefaultRTPDataPort\fP, tpport_t controlPort=0)" .br .ti -1c .RI "void \fBaddContributor\fP (uint32 csrc)" .br .RI "Add csrc as the CSRC identifier of a new contributor\&. " .ti -1c .RI "bool \fBremoveContributor\fP (uint32 csrc)" .br .RI "Remove CSRC from the list of contributors\&. " .ti -1c .RI "bool \fBisSending\fP () const" .br .RI "Determine if outgoing packets are waiting to send\&. " .ti -1c .RI "void \fBputData\fP (uint32 stamp, const unsigned char *data=NULL, size_t len=0)" .br .RI "This is used to create a data packet in the send queue\&. " .ti -1c .RI "void \fBsendImmediate\fP (uint32 stamp, const unsigned char *data=NULL, size_t len=0)" .br .RI "This is used to create a data packet and send it immediately\&. " .ti -1c .RI "void \fBsetPadding\fP (uint8 \fBpaddinglen\fP)" .br .RI "Set padding\&. " .ti -1c .RI "void \fBsetMark\fP (bool mark)" .br .RI "Set marker bit for the packet in which the next data provided will be send\&. " .ti -1c .RI "bool \fBgetMark\fP () const" .br .RI "Get whether the mark bit will be set in the next packet\&. " .ti -1c .RI "size_t \fBsetPartial\fP (uint32 timestamp, unsigned char *data, size_t offset, size_t max)" .br .RI "Set partial data for an already queued packet\&. " .ti -1c .RI "\fBmicrotimeout_t\fP \fBgetDefaultSchedulingTimeout\fP () const" .br .ti -1c .RI "void \fBsetSchedulingTimeout\fP (\fBmicrotimeout_t\fP to)" .br .RI "Set the default scheduling timeout to use when no data packets are waiting to be sent\&. " .ti -1c .RI "\fBmicrotimeout_t\fP \fBgetDefaultExpireTimeout\fP () const" .br .ti -1c .RI "void \fBsetExpireTimeout\fP (\fBmicrotimeout_t\fP to)" .br .RI "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\&. " .ti -1c .RI "\fBmicrotimeout_t\fP \fBgetExpireTimeout\fP () const" .br .ti -1c .RI "uint32 \fBgetSendPacketCount\fP () const" .br .RI "Get the total number of packets sent so far\&. " .ti -1c .RI "uint32 \fBgetSendOctetCount\fP () const" .br .RI "Get the total number of octets (payload only) sent so far\&. " .ti -1c .RI "uint16 \fBgetSequenceNumber\fP () const" .br .RI "Get the sequence number of the next outgoing packet\&. " .ti -1c .RI "void \fBsetOutQueueCryptoContext\fP (\fBCryptoContext\fP *cc)" .br .RI "Set output queue \fBCryptoContext\fP\&. " .ti -1c .RI "void \fBremoveOutQueueCryptoContext\fP (\fBCryptoContext\fP *cc)" .br .RI "Remove output queue \fBCryptoContext\fP\&. " .ti -1c .RI "\fBCryptoContext\fP * \fBgetOutQueueCryptoContext\fP (uint32 ssrc)" .br .RI "Get an output queue \fBCryptoContext\fP identified by SSRC\&. " .in -1c Public Member Functions inherited from \fBOutgoingDataQueueBase\fP .in +1c .ti -1c .RI "size_t \fBgetDefaultMaxSendSegmentSize\fP ()" .br .ti -1c .RI "void \fBsetMaxSendSegmentSize\fP (size_t size)" .br .RI "Set maximum payload segment size before fragmenting sends\&. " .ti -1c .RI "size_t \fBgetMaxSendSegmentSize\fP ()" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fBAVPQueue\fP (uint32 size=\fBRTPDataQueue::defaultMembersHashSize\fP, \fBRTPApplication\fP &app=\fBdefaultApplication\fP())" .br .ti -1c .RI "\fBAVPQueue\fP (uint32 ssrc, uint32 size=\fBRTPDataQueue::defaultMembersHashSize\fP, \fBRTPApplication\fP &app=\fBdefaultApplication\fP())" .br .RI "Local SSRC is given instead of computed by the queue\&. " .ti -1c .RI "virtual \fB~AVPQueue\fP ()" .br .in -1c Protected Member Functions inherited from \fBQueueRTCPManager\fP .in +1c .ti -1c .RI "\fBQueueRTCPManager\fP (uint32 size=\fBRTPDataQueue::defaultMembersHashSize\fP, \fBRTPApplication\fP &app=\fBdefaultApplication\fP())" .br .ti -1c .RI "\fBQueueRTCPManager\fP (uint32 ssrc, uint32 size=\fBRTPDataQueue::defaultMembersHashSize\fP, \fBRTPApplication\fP &app=\fBdefaultApplication\fP())" .br .ti -1c .RI "virtual \fB~QueueRTCPManager\fP ()" .br .ti -1c .RI "const \fBRTPApplication\fP & \fBgetApplication\fP ()" .br .ti -1c .RI "void \fBsetControlBandwidth\fP (float fraction)" .br .ti -1c .RI "float \fBgetControlBandwidth\fP () const" .br .ti -1c .RI "void \fBcontrolTransmissionService\fP ()" .br .RI "Build and send RTCP packets following timing rules (including the 'timer reconsideration' algorithm)\&. " .ti -1c .RI "void \fBcontrolReceptionService\fP ()" .br .RI "Process incoming RTCP packets pending in the control reception socket\&. " .ti -1c .RI "bool \fBcheckSSRCInRTCPPkt\fP (\fBSyncSourceLink\fP &sourceLink, bool is_new, InetAddress &na, tpport_t tp)" .br .RI "Appy collision and loop detection and correction algorithm when receiving RTCP packets\&. " .ti -1c .RI "void \fBendQueueRTCPManager\fP ()" .br .ti -1c .RI "virtual void \fBonGotSR\fP (\fBSyncSource\fP &source, \fBSendReport\fP &SR, uint8 blocks)" .br .RI "Plug-in for processing (acquire information carried in) an incoming RTCP Sender Report\&. " .ti -1c .RI "virtual void \fBonGotRR\fP (\fBSyncSource\fP &source, \fBRecvReport\fP &RR, uint8 blocks)" .br .RI "Plug-in for processing (acquire information carried in) an incoming RTCP Receiver Report\&. " .ti -1c .RI "bool \fBonGotSDES\fP (\fBSyncSource\fP &source, \fBRTCPPacket\fP &pkt)" .br .ti -1c .RI "virtual bool \fBonGotSDESChunk\fP (\fBSyncSource\fP &source, \fBSDESChunk\fP &chunk, size_t len)" .br .RI "Plug-in for handling of SDES chunks\&. " .ti -1c .RI "virtual void \fBonGotAPP\fP (\fBSyncSource\fP &, \fBRTCPCompoundHandler::APPPacket\fP &, size_t)" .br .RI "Plug-in for handling of APP (application specific) RTCP packets\&. " .ti -1c .RI "timeval \fBgetRTCPCheckInterval\fP ()" .br .ti -1c .RI "uint32 \fBgetLastSendPacketCount\fP () const" .br .RI "Get the number of data packets sent at the time the last SR was generated\&. " .ti -1c .RI "void \fBsetPrevMembersNum\fP (uint32 n)" .br .ti -1c .RI "uint32 \fBgetPrevMembersCount\fP () const" .br .ti -1c .RI "size_t \fBdispatchBYE\fP (const std::string &reason)" .br .RI "This method is used to send an RTCP BYE packet\&. " .ti -1c .RI "size_t \fBsendControlToDestinations\fP (unsigned char *buffer, size_t len)" .br .in -1c Protected Member Functions inherited from \fBRTPDataQueue\fP .in +1c .ti -1c .RI "\fBRTPDataQueue\fP (uint32 size=\fBdefaultMembersHashSize\fP)" .br .RI "Constructor\&. " .ti -1c .RI "\fBRTPDataQueue\fP (uint32 *ssrc, uint32 size=\fBdefaultMembersHashSize\fP)" .br .RI "Using this constructor you can start a session with the given ssrc, instead of the usual randomly generated one\&. " .ti -1c .RI "virtual \fB~RTPDataQueue\fP ()" .br .RI "The queue destructor flushes the queue and stops all services\&. " .ti -1c .RI "virtual void \fBtimerTick\fP ()" .br .RI "A plugin point for timer tick driven events\&. " .ti -1c .RI "void \fBrenewLocalSSRC\fP ()" .br .ti -1c .RI "void \fBendQueue\fP ()" .br .RI "This method ends the queue\&. " .ti -1c .RI "virtual bool \fBisPendingData\fP (\fBmicrotimeout_t\fP timeout)=0" .br .RI "This function is used to check for and schedule against arriving packets based on the derived connection type\&. " .in -1c Protected Member Functions inherited from \fBIncomingDataQueue\fP .in +1c .ti -1c .RI "\fBIncomingDataQueue\fP (uint32 size)" .br .ti -1c .RI "virtual \fB~IncomingDataQueue\fP ()" .br .ti -1c .RI "bool \fBcheckSSRCInIncomingRTPPkt\fP (\fBSyncSourceLink\fP &sourceLink, bool is_new, InetAddress &na, tpport_t tp)" .br .RI "Apply collision and loop detection and correction algorithm when receiving RTP data packets\&. " .ti -1c .RI "void \fBsetSourceExpirationPeriod\fP (uint8 intervals)" .br .RI "Set the number of RTCP intervals that the stack will wait to change the state of a source from stateActive to stateInactive, or to delete the source after being in stateInactive\&. " .ti -1c .RI "virtual size_t \fBtakeInDataPacket\fP ()" .br .RI "This function is used by the service thread to process the next incoming packet and place it in the receive list\&. " .ti -1c .RI "\fBIncomingDataQueue::IncomingRTPPktLink\fP * \fBgetWaiting\fP (uint32 timestamp, const \fBSyncSource\fP *src=NULL)" .br .RI "This is used to fetch a packet in the receive queue and to expire packets older than the current timestamp\&. " .ti -1c .RI "bool \fBrecordReception\fP (\fBSyncSourceLink\fP &srcLink, const \fBIncomingRTPPkt\fP &pkt, const timeval recvtime)" .br .RI "Log reception of a new RTP packet from this source\&. " .ti -1c .RI "void \fBrecordExtraction\fP (const \fBIncomingRTPPkt\fP &pkt)" .br .RI "Log extraction of a packet from this source from the scheduled reception queue\&. " .ti -1c .RI "void \fBpurgeIncomingQueue\fP ()" .br .ti -1c .RI "virtual void \fBonNewSyncSource\fP (const \fBSyncSource\fP &)" .br .RI "Virtual called when a new synchronization source has joined the session\&. " .ti -1c .RI "virtual bool \fBonRTPPacketRecv\fP (\fBIncomingRTPPkt\fP &)" .br .RI "A virtual function to support parsing of arriving packets to determine if they should be kept in the queue and to dispatch events\&. " .ti -1c .RI "virtual void \fBonExpireRecv\fP (\fBIncomingRTPPkt\fP &)" .br .RI "A hook to filter packets in the receive queue that are being expired\&. " .ti -1c .RI "virtual bool \fBonSRTPPacketError\fP (\fBIncomingRTPPkt\fP &pkt, int32 errorCode)" .br .RI "A hook that gets called if the decoding of an incoming SRTP was erroneous\&. " .ti -1c .RI "bool \fBinsertRecvPacket\fP (\fBIncomingRTPPktLink\fP *packetLink)" .br .RI "Insert a just received packet in the queue (both general and source specific queues)\&. " .ti -1c .RI "virtual size_t \fBrecvData\fP (unsigned char *buffer, size_t length, InetHostAddress &host, tpport_t &port)=0" .br .RI "This function performs the physical I/O for reading a packet from the source\&. " .ti -1c .RI "virtual size_t \fBgetNextDataPacketSize\fP () const =0" .br .in -1c Protected Member Functions inherited from \fBIncomingDataQueueBase\fP .in +1c .ti -1c .RI "\fBIncomingDataQueueBase\fP ()" .br .ti -1c .RI "virtual \fB~IncomingDataQueueBase\fP ()" .br .in -1c Protected Member Functions inherited from \fBRTPQueueBase\fP .in +1c .ti -1c .RI "\fBRTPQueueBase\fP (uint32 *ssrc=NULL)" .br .ti -1c .RI "void \fBsetLocalSSRC\fP (uint32 ssrc)" .br .ti -1c .RI "uint32 \fBgetLocalSSRCNetwork\fP () const" .br .ti -1c .RI "virtual \fB~RTPQueueBase\fP ()" .br .in -1c Protected Member Functions inherited from \fBMembershipBookkeeping\fP .in +1c .ti -1c .RI "\fBMembershipBookkeeping\fP (uint32 initialSize=\fBdefaultMembersHashSize\fP)" .br .RI "The initial size is a hint to allocate the resources needed in order to keep the members' identifiers and associated information\&. " .ti -1c .RI "virtual \fB~MembershipBookkeeping\fP ()" .br .RI "Purges all RTPSource structures created during the session, as well as the hash table and the list of sources\&. " .ti -1c .RI "\fBSyncSourceLink\fP * \fBgetLink\fP (const \fBSyncSource\fP &source) const" .br .ti -1c .RI "bool \fBisMine\fP (const \fBSyncSource\fP &source) const" .br .RI "Get whether a synchronization source is recorded in this membership controller\&. " .ti -1c .RI "bool \fBisRegistered\fP (uint32 ssrc)" .br .RI "Returns whether there is already a synchronizacion source with 'ssrc' SSRC identifier\&. " .ti -1c .RI "\fBSyncSourceLink\fP * \fBgetSourceBySSRC\fP (uint32 ssrc, bool &created)" .br .RI "Get the description of a source by its \fCssrc\fP identifier\&. " .ti -1c .RI "bool \fBBYESource\fP (uint32 ssrc)" .br .RI "Mark the source identified by \fCssrc\fP as having sent a BYE packet\&. " .ti -1c .RI "bool \fBremoveSource\fP (uint32 ssrc)" .br .RI "Remove the description of the source identified by \fCssrc\fP " .ti -1c .RI "\fBSyncSourceLink\fP * \fBgetFirst\fP ()" .br .ti -1c .RI "\fBSyncSourceLink\fP * \fBgetLast\fP ()" .br .ti -1c .RI "uint32 \fBgetMembersCount\fP ()" .br .ti -1c .RI "void \fBsetMembersCount\fP (uint32 n)" .br .ti -1c .RI "uint32 \fBgetSendersCount\fP ()" .br .in -1c .in +1c .ti -1c .RI "size_t \fBgetDefaultMembersHashSize\fP ()" .br .in -1c Protected Member Functions inherited from \fBSyncSourceHandler\fP .in +1c .ti -1c .RI "\fBSyncSourceHandler\fP ()" .br .ti -1c .RI "virtual \fB~SyncSourceHandler\fP ()" .br .in -1c .in +1c .ti -1c .RI "void * \fBgetLink\fP (const \fBSyncSource\fP &source) const" .br .RI "This requires \fBSyncSource\fP - \fBSyncSourceHandler\fP friendship\&. " .ti -1c .RI "void \fBsetLink\fP (\fBSyncSource\fP &source, void *link)" .br .ti -1c .RI "void \fBsetParticipant\fP (\fBSyncSource\fP &source, \fBParticipant\fP &p)" .br .ti -1c .RI "void \fBsetState\fP (\fBSyncSource\fP &source, \fBSyncSource::State\fP ns)" .br .ti -1c .RI "void \fBsetSender\fP (\fBSyncSource\fP &source, bool active)" .br .ti -1c .RI "void \fBsetDataTransportPort\fP (\fBSyncSource\fP &source, tpport_t p)" .br .ti -1c .RI "void \fBsetControlTransportPort\fP (\fBSyncSource\fP &source, tpport_t p)" .br .ti -1c .RI "void \fBsetNetworkAddress\fP (\fBSyncSource\fP &source, InetAddress addr)" .br .in -1c Protected Member Functions inherited from \fBParticipantHandler\fP .in +1c .ti -1c .RI "\fBParticipantHandler\fP ()" .br .ti -1c .RI "virtual \fB~ParticipantHandler\fP ()" .br .in -1c .in +1c .ti -1c .RI "void \fBsetSDESItem\fP (\fBParticipant\fP *part, \fBSDESItemType\fP item, const std::string &val)" .br .ti -1c .RI "void \fBsetPRIVPrefix\fP (\fBParticipant\fP *part, const std::string val)" .br .in -1c Protected Member Functions inherited from \fBApplicationHandler\fP .in +1c .ti -1c .RI "\fBApplicationHandler\fP ()" .br .ti -1c .RI "virtual \fB~ApplicationHandler\fP ()" .br .in -1c .in +1c .ti -1c .RI "void \fBaddParticipant\fP (\fBRTPApplication\fP &app, \fBParticipant\fP &part)" .br .ti -1c .RI "void \fBremoveParticipant\fP (\fBRTPApplication\fP &app, RTPApplication::ParticipantLink *pl)" .br .in -1c Protected Member Functions inherited from \fBConflictHandler\fP .in +1c .ti -1c .RI "\fBConflictHandler\fP ()" .br .ti -1c .RI "virtual \fB~ConflictHandler\fP ()" .br .in -1c .in +1c .ti -1c .RI "\fBConflictingTransportAddress\fP * \fBsearchDataConflict\fP (InetAddress na, tpport_t dtp)" .br .ti -1c .RI "\fBConflictingTransportAddress\fP * \fBsearchControlConflict\fP (InetAddress na, tpport_t ctp)" .br .ti -1c .RI "void \fBupdateConflict\fP (\fBConflictingTransportAddress\fP &ca)" .br .ti -1c .RI "void \fBaddConflict\fP (const InetAddress &na, tpport_t dtp, tpport_t ctp)" .br .in -1c Protected Member Functions inherited from \fBOutgoingDataQueue\fP .in +1c .ti -1c .RI "\fBOutgoingDataQueue\fP ()" .br .ti -1c .RI "virtual \fB~OutgoingDataQueue\fP ()" .br .ti -1c .RI "void \fBdispatchImmediate\fP (\fBOutgoingRTPPkt\fP *packet)" .br .RI "This is used to write the RTP data packet to one or more destinations\&. " .ti -1c .RI "\fBmicrotimeout_t\fP \fBgetSchedulingTimeout\fP ()" .br .RI "This computes the timeout period for scheduling transmission of the next packet at the 'head' of the send buffer\&. " .ti -1c .RI "size_t \fBdispatchDataPacket\fP ()" .br .RI "This function is used by the service thread to process the next outgoing packet pending in the sending queue\&. " .ti -1c .RI "void \fBsetNextSeqNum\fP (uint32 seqNum)" .br .RI "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)\&. " .ti -1c .RI "uint32 \fBgetCurrentSeqNum\fP (void)" .br .ti -1c .RI "void \fBsetInitialTimestamp\fP (uint32 ts)" .br .ti -1c .RI "uint32 \fBgetInitialTimestamp\fP ()" .br .ti -1c .RI "void \fBpurgeOutgoingQueue\fP ()" .br .ti -1c .RI "virtual void \fBsetControlPeer\fP (const InetAddress &host, tpport_t port)" .br .in -1c Protected Member Functions inherited from \fBOutgoingDataQueueBase\fP .in +1c .ti -1c .RI "\fBOutgoingDataQueueBase\fP ()" .br .ti -1c .RI "virtual \fB~OutgoingDataQueueBase\fP ()" .br .in -1c Protected Member Functions inherited from \fBDestinationListHandler\fP .in +1c .ti -1c .RI "void \fBwriteLockDestinationList\fP () const" .br .ti -1c .RI "bool \fBaddDestinationToList\fP (const InetAddress &ia, tpport_t data, tpport_t control)" .br .RI "Locks the object before modifying it\&. " .ti -1c .RI "bool \fBremoveDestinationFromList\fP (const InetAddress &ia, tpport_t dataPort, tpport_t controlPort)" .br .RI "Locks the object before modifying it\&. " .in -1c .in +1c .ti -1c .RI "\fBDestinationListHandler\fP ()" .br .ti -1c .RI "\fB~DestinationListHandler\fP ()" .br .ti -1c .RI "bool \fBisSingleDestination\fP () const" .br .RI "Get whether there is only a destination in the list\&. " .ti -1c .RI "\fBTransportAddress\fP * \fBgetFirstDestination\fP () const" .br .ti -1c .RI "void \fBlockDestinationList\fP () const" .br .ti -1c .RI "void \fBunlockDestinationList\fP () const" .br .in -1c Protected Member Functions inherited from \fBRTCPCompoundHandler\fP .in +1c .ti -1c .RI "\fBRTCPCompoundHandler\fP (uint16 mtu=\fBdefaultPathMTU\fP)" .br .ti -1c .RI "\fB~RTCPCompoundHandler\fP ()" .br .ti -1c .RI "bool \fBcheckCompoundRTCPHeader\fP (size_t len)" .br .RI "Perform RTCP compound packet header validity check as specified in draft-ietv-avt-rtp-new\&. " .in -1c .in +1c .ti -1c .RI "void \fBsetPathMTU\fP (uint16 mtu)" .br .ti -1c .RI "uint16 \fBgetPathMTU\fP ()" .br .in -1c .SS "Additional Inherited Members" Public Types inherited from \fBRTPDataQueue\fP .in +1c .ti -1c .RI "enum \fBTos\fP { \fBtosBestEffort\fP, \fBtosEnhanced\fP }" .br .RI "\fBrtp\&.h\fP cc++/rtp\&.h " .in -1c Static Public Member Functions inherited from \fBIncomingDataQueue\fP .in +1c .ti -1c .RI "static size_t \fBgetDefaultMembersSize\fP ()" .br .in -1c Protected Types inherited from \fBRTCPCompoundHandler\fP .in +1c .ti -1c .RI "enum { \fBdefaultPathMTU\fP = 1500 }" .br .in -1c Protected Attributes inherited from \fBIncomingDataQueue\fP .in +1c .ti -1c .RI "ThreadLock \fBrecvLock\fP" .br .ti -1c .RI "\fBIncomingRTPPktLink\fP * \fBrecvFirst\fP" .br .ti -1c .RI "\fBIncomingRTPPktLink\fP * \fBrecvLast\fP" .br .ti -1c .RI "uint8 \fBminValidPacketSequence\fP" .br .ti -1c .RI "uint16 \fBmaxPacketMisorder\fP" .br .ti -1c .RI "uint16 \fBmaxPacketDropout\fP" .br .ti -1c .RI "uint8 \fBsourceExpirationPeriod\fP" .br .ti -1c .RI "Mutex \fBcryptoMutex\fP" .br .ti -1c .RI "std::list< \fBCryptoContext\fP * > \fBcryptoContexts\fP" .br .in -1c Protected Attributes inherited from \fBConflictHandler\fP .in +1c .ti -1c .RI "\fBConflictingTransportAddress\fP * \fBfirstConflict\fP" .br .ti -1c .RI "\fBConflictingTransportAddress\fP * \fBlastConflict\fP" .br .in -1c Protected Attributes inherited from \fBOutgoingDataQueue\fP .in +1c .ti -1c .RI "Mutex \fBcryptoMutex\fP" .br .ti -1c .RI "std::list< \fBCryptoContext\fP * > \fBcryptoContexts\fP" .br .in -1c Protected Attributes inherited from \fBDestinationListHandler\fP .in +1c .ti -1c .RI "std::list< \fBTransportAddress\fP * > \fBdestList\fP" .br .in -1c Protected Attributes inherited from \fBRTCPCompoundHandler\fP .in +1c .ti -1c .RI "unsigned char * \fBrtcpSendBuffer\fP" .br .ti -1c .RI "unsigned char * \fBrtcpRecvBuffer\fP" .br .in -1c Static Protected Attributes inherited from \fBIncomingDataQueue\fP .in +1c .ti -1c .RI "static const uint8 \fBdefaultMinValidPacketSequence\fP" .br .ti -1c .RI "static const uint16 \fBdefaultMaxPacketMisorder\fP" .br .ti -1c .RI "static const uint16 \fBdefaultMaxPacketDropout\fP" .br .ti -1c .RI "static const size_t \fBdefaultMembersSize\fP" .br .in -1c Static Protected Attributes inherited from \fBMembershipBookkeeping\fP .in +1c .ti -1c .RI "static const size_t \fBdefaultMembersHashSize\fP" .br .ti -1c .RI "static const uint32 \fBSEQNUMMOD\fP" .br .in -1c .SH "Detailed Description" .PP This class, an RTP/RTCP queue, adds audio/video profile (AVP) specific methods to the generic RTCP service queue (\fBQueueRTCPManager\fP)\&. .PP \fBAuthor\fP .RS 4 Federico Montesino Pouzols fedemp@altern.org .RE .PP .SH "Constructor & Destructor Documentation" .PP .SS "AVPQueue::AVPQueue (uint32 size = \fC\fBRTPDataQueue::defaultMembersHashSize\fP\fP, \fBRTPApplication\fP & app = \fC\fBdefaultApplication\fP()\fP)\fC [inline]\fP, \fC [protected]\fP" .SS "AVPQueue::AVPQueue (uint32 ssrc, uint32 size = \fC\fBRTPDataQueue::defaultMembersHashSize\fP\fP, \fBRTPApplication\fP & app = \fC\fBdefaultApplication\fP()\fP)\fC [inline]\fP, \fC [protected]\fP" .PP Local SSRC is given instead of computed by the queue\&. .SS "virtual AVPQueue::~AVPQueue ()\fC [inline]\fP, \fC [protected]\fP, \fC [virtual]\fP" .SH "Member Function Documentation" .PP .SS "float AVPQueue::getControlBandwidth () const\fC [inline]\fP" .SS "void AVPQueue::setControlBandwidth (float fraction)\fC [inline]\fP" .PP Specify the bandwith available for control (RTCP) packets\&. This method sets the global control bandwidth for both sender and receiver reports\&. As recommended in RFC 1890, 1/4 of the total control bandwidth is dedicated to senders, whereas 3/4 are dedicated to receivers\&. .PP \fBParameters\fP .RS 4 \fIfraction\fP fraction of the session bandwidth, between 0 and 1 .RE .PP \fBNote\fP .RS 4 If this method is not called, it is assumed that the control bandwidth is equal to 5% of the session bandwidth\&. Note also that the RFC RECOMMENDS the 5%\&. .RE .PP .SH "Author" .PP Generated automatically by Doxygen for ccRTP from the source code\&.