.TH "RTPDuplex" 3 "ccRTP" \" -*- nroff -*- .ad l .nh .SH NAME RTPDuplex \- A peer associated RTP socket pair for physically connected peer hosts\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBRTPDataQueue\fP, UDPReceive, and UDPTransmit\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBRTPDuplex\fP (const InetAddress &bind, tpport_t local, tpport_t remote)" .br .ti -1c .RI "virtual \fB~RTPDuplex\fP ()" .br .ti -1c .RI "UDPTransmit::Error \fBconnect\fP (const InetHostAddress &host, tpport_t port=0)" .br .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 "bool \fBisPendingData\fP (\fBmicrotimeout_t\fP timeout)" .br .ti -1c .RI "size_t \fBsendData\fP (const unsigned char *const buffer, size_t len)" .br .ti -1c .RI "size_t \fBrecvData\fP (unsigned char *buffer, size_t len, InetHostAddress &na, tpport_t &tp)" .br .ti -1c .RI "void \fBsetDataPeer\fP (const InetAddress &, tpport_t)" .br .ti -1c .RI "void \fBsetControlPeer\fP (const InetAddress &, tpport_t)" .br .ti -1c .RI "size_t \fBgetNextDataPacketSize\fP () const" .br .ti -1c .RI "\fBSyncSource\fP & \fBgetPeer\fP ()" .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\&. " .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 "virtual bool \fBend2EndDelayed\fP (\fBIncomingRTPPktLink\fP &)" .br .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)\&. " .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 .ti -1c .RI "virtual size_t \fBdispatchBYE\fP (const std::string &)" .br .RI "A plugin point for posting of BYE messages\&. " .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 .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 .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 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 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 A peer associated RTP socket pair for physically connected peer hosts\&. This has no RTCP and assumes the receiver is connected to a known transmitter, hence no 'foreign' packets will arrive\&. .PP \fBAuthor\fP .RS 4 David Sugar .RE .PP RTP peer host over UDP\&. .PP \fBExamples\fP .in +1c \fBrtpduphello\&.cpp\fP\&. .SH "Author" .PP Generated automatically by Doxygen for ccRTP from the source code\&.