MEMBERSHIPBOOKKEEPING_SYNCSOURCELINK(3)

๐Ÿ“ฆ
version 2.0.9 ยท 4 versions
, in debian trixie, ubuntu noble, ubuntu questing

๐Ÿ’– NAME ๐Ÿ’–

MembershipBookkeeping::SyncSourceLink โ€” the synchronization source internal handler that lives inside the incoming packets queue ๐Ÿซถ

okay bestie, real talk: this is Membership...cSourceLink(3) from the Library Functions Manual, and it's giving โœจdeep RTP internalsโœจ so grab a snack and let's go ๐Ÿ’…


๐ŸŒธ SYNOPSIS ๐ŸŒธ

#include <iqueue.h>

๐ŸŽ€ Public Member Functions ๐ŸŽ€

  • SyncSourceLink (MembershipBookkeeping *m, SyncSource *s, IncomingRTPPktLink *fp=NULL, IncomingRTPPktLink *lp=NULL, SyncSourceLink *ps=NULL, SyncSourceLink *ns=NULL, SyncSourceLink *ncollis=NULL)
  • ~SyncSourceLink () โ€” bestie listen, note it deletes the source ๐Ÿ˜ญ so don't be out here double-freeing.
  • MembershipBookkeeping * getMembership ()
  • SyncSource * getSource () โ€” hands you the synchronization source object this link object is holding info for ๐Ÿซถ
  • IncomingRTPPktLink * getFirst () โ€” the first RTP (data) packet in the queue of packets we got from this socket โญ
  • void setFirst (IncomingRTPPktLink *fp)
  • IncomingRTPPktLink * getLast () โ€” the last RTP (data) packet in the queue of packets we got from this socket ๐ŸŒˆ
  • void setLast (IncomingRTPPktLink *lp)
  • SyncSourceLink * getPrev () โ€” the link object for the previous RTP source ๐Ÿ‘‘
  • void setPrev (SyncSourceLink *ps)
  • SyncSourceLink * getNext () โ€” the link object for the next RTP source โœจ
  • void setNext (SyncSourceLink *ns)
  • SyncSourceLink * getNextCollis () โ€” the link object for the next RTP source in the hash table entry collision list ๐Ÿ’€ yes, collisions are a whole thing.
  • void setNextCollis (SyncSourceLink *ns)
  • ConflictingTransportAddress * getPrevConflict () const
  • void setPrevConflict (InetAddress &addr, tpport_t dataPort, tpport_t controlPort) โ€” get that conflicting address ๐Ÿšฉ
  • unsigned char * getSenderInfo ()
  • void setSenderInfo (unsigned char *si)
  • unsigned char * getReceiverInfo ()
  • void setReceiverInfo (unsigned char *ri)
  • timeval getLastPacketTime () const
  • timeval getLastRTCPPacketTime () const
  • timeval getLastRTCPSRTime () const
  • uint32 getObservedPacketCount () const โ€” the total number of RTP packets we've received from this source, periodt ๐Ÿ“Š
  • void incObservedPacketCount ()
  • uint32 getObservedOctetCount () const โ€” the total number of payload octets we've received from this source ๐Ÿ“
  • void incObservedOctetCount (uint32 n)
  • uint16 getMaxSeqNum () const โ€” the highest valid sequence number received ๐Ÿ‘‘
  • void setMaxSeqNum (uint16 max) โ€” set the highest valid sequence number recived (yes, "recived", we don't fix the typo, we respect the lore) ๐Ÿ™ˆ
  • uint32 getExtendedMaxSeqNum () const
  • void setExtendedMaxSeqNum (uint32 seq)
  • uint32 getCumulativePacketLost () const
  • void setCumulativePacketLost (uint32 pl)
  • uint8 getFractionLost () const
  • void setFractionLost (uint8 fl)
  • uint32 getLastPacketTransitTime ()
  • void setLastPacketTransitTime (uint32 time)
  • float getJitter () const
  • void setJitter (float j)
  • uint32 getInitialDataTimestamp () const
  • void setInitialDataTimestamp (uint32 ts)
  • timeval getInitialDataTime () const
  • void setInitialDataTime (timeval it)
  • bool getGoodbye () โ€” mark this source as having sent a BYE control packet ๐Ÿ‘‹
  • bool getHello () โ€” mark this source as having sent some packet ๐Ÿซถ
  • uint32 getBadSeqNum () const
  • void setBadSeqNum (uint32 seq)
  • uint8 getProbation () const
  • void setProbation (uint8 p)
  • void decProbation ()
  • bool isValid () const
  • uint16 getBaseSeqNum () const
  • void setBaseSeqNum (uint16 seqnum)
  • uint32 getSeqNumAccum () const
  • void incSeqNumAccum ()
  • void initSequence (uint16 seqnum) โ€” start a brand new sequence of received packets ๐ŸŒฑ
  • void recordInsertion (const IncomingRTPPktLink &pl) โ€” record the insertion of an RTP packet from this source into the scheduled reception queue ๐Ÿ“
  • void initStats ()
  • void computeStats () โ€” compute cumulative packet lost and the fraction of packets lost during the last reporting interval ๐Ÿงฎ

๐ŸŒˆ Public Attributes ๐ŸŒˆ

  • MembershipBookkeeping * membership
  • SyncSource * source
  • IncomingRTPPktLink * first
  • IncomingRTPPktLink * last
  • SyncSourceLink * prev
  • SyncSourceLink * next
  • SyncSourceLink * nextCollis
  • ConflictingTransportAddress * prevConflict
  • unsigned char * senderInfo
  • unsigned char * receiverInfo
  • timeval lastPacketTime
  • timeval lastRTCPPacketTime
  • timeval lastRTCPSRTime
  • uint32 obsPacketCount
  • uint32 obsOctetCount
  • uint16 maxSeqNum
  • uint32 extendedMaxSeqNum
  • uint32 cumulativePacketLost
  • uint8 fractionLost
  • uint32 lastPacketTransitTime
  • float jitter
  • uint32 initialDataTimestamp
  • timeval initialDataTime
  • bool flag
  • uint32 badSeqNum
  • uint8 probation
  • uint16 baseSeqNum
  • uint32 expectedPrior
  • uint32 receivedPrior
  • uint32 seqNumAccum

๐Ÿ’œ Static Public Attributes ๐Ÿ’œ

  • static const uint32 SEQNUMMOD

๐Ÿฆ‹ Detailed Description ๐Ÿฆ‹

SyncSourceLink is the synchronization source internal handler within the incoming packets queue โœจ

So here's the tea: incoming packets queue objects hold a hash table and a linked list of synchronization sources. For each one of those sources, there's also a linked list of incoming rtp packets, which are linked into an 'all incoming packets' list as well. SyncSourceLink objects hold all the data you need to keep these data estructures alive and thriving, plus source specific information and statistics for RTCP ๐Ÿ’…

๐Ÿ‘‘ Author ๐Ÿ‘‘

Federico Montesino Pouzols fedemp@altern.org


๐Ÿงš Constructor & Destructor Documentation ๐Ÿงš

MembershipBookkeeping::SyncSourceLink::SyncSourceLink (
    MembershipBookkeeping * m,
    SyncSource * s,
    IncomingRTPPktLink * fp = NULL,
    IncomingRTPPktLink * lp = NULL,
    SyncSourceLink * ps = NULL,
    SyncSourceLink * ns = NULL,
    SyncSourceLink * ncollis = NULL
) [inline]

Note it deletes the source. fr fr, that's the whole note โ€” it deletes the source, so don't come crying later when your pointer's gone ๐Ÿ’€

๐Ÿ’– Member Function Documentation ๐Ÿ’–

Bestie, this is the getter-and-setter zone, and it's giving very thorough little bookkeeping goblin. Every function here belongs to MembershipBookkeeping::SyncSourceLink, so buckle up. ๐ŸŽ€

  • void MembershipBookkeeping::SyncSourceLink::computeStats () โ€” Compute cumulative packet lost and fraction of packets lost during the last reporting interval. ๐Ÿ“‰
  • void MembershipBookkeeping::SyncSourceLink::decProbation () [inline] โ€” no description in the original, just an inline lil thing. ๐Ÿซง
  • uint32 MembershipBookkeeping::SyncSourceLink::getBadSeqNum () const [inline]
  • uint16 MembershipBookkeeping::SyncSourceLink::getBaseSeqNum () const [inline]
  • uint32 MembershipBookkeeping::SyncSourceLink::getCumulativePacketLost () const [inline]
  • uint32 MembershipBookkeeping::SyncSourceLink::getExtendedMaxSeqNum () const [inline]
  • IncomingRTPPktLink * MembershipBookkeeping::SyncSourceLink::getFirst () [inline] โ€” Get first RTP (data) packet in the queue of packets received from this socket. ๐Ÿฅ‡
  • uint8 MembershipBookkeeping::SyncSourceLink::getFractionLost () const [inline]
  • bool MembershipBookkeeping::SyncSourceLink::getGoodbye () [inline] โ€” Mark this source as having sent a BYE control packet.
    • Returns: whether some packet from this source had been received before (getHello() has been called at least once). ๐Ÿ‘‹
  • bool MembershipBookkeeping::SyncSourceLink::getHello () [inline] โ€” Mark this source as having sent some packet.
    • Returns: whether no packet from this source had been received before. โœจ
  • timeval MembershipBookkeeping::SyncSourceLink::getInitialDataTime () const [inline]
  • uint32 MembershipBookkeeping::SyncSourceLink::getInitialDataTimestamp () const [inline]
  • float MembershipBookkeeping::SyncSourceLink::getJitter () const [inline]
  • IncomingRTPPktLink * MembershipBookkeeping::SyncSourceLink::getLast () [inline] โ€” Get last RTP (data) packet in the queue of packets received from this socket. ๐Ÿงธ
  • timeval MembershipBookkeeping::SyncSourceLink::getLastPacketTime () const [inline]
  • uint32 MembershipBookkeeping::SyncSourceLink::getLastPacketTransitTime () [inline]
  • timeval MembershipBookkeeping::SyncSourceLink::getLastRTCPPacketTime () const [inline]
  • timeval MembershipBookkeeping::SyncSourceLink::getLastRTCPSRTime () const [inline]
  • uint16 MembershipBookkeeping::SyncSourceLink::getMaxSeqNum () const [inline] โ€” Get the highest valid sequence number received. ๐Ÿ‘‘
  • MembershipBookkeeping * MembershipBookkeeping::SyncSourceLink::getMembership () [inline]
  • SyncSourceLink * MembershipBookkeeping::SyncSourceLink::getNext () [inline] โ€” Get the link object for the next RTP source. โžก๏ธ
  • SyncSourceLink * MembershipBookkeeping::SyncSourceLink::getNextCollis () [inline] โ€” Get the link object for the next RTP source in the hash table entry collision list. Note that collision does not refer to SSRC collision, but hash table collision. ๐Ÿง 
  • uint32 MembershipBookkeeping::SyncSourceLink::getObservedOctetCount () const [inline] โ€” Get the total number of payload octets received from this source. ๐Ÿ”ข
  • uint32 MembershipBookkeeping::SyncSourceLink::getObservedPacketCount () const [inline] โ€” Get the total number of RTP packets received from this source. ๐Ÿ“ฆ
  • SyncSourceLink * MembershipBookkeeping::SyncSourceLink::getPrev () [inline] โ€” Get the link object for the previous RTP source. โฌ…๏ธ
  • ConflictingTransportAddress * MembershipBookkeeping::SyncSourceLink::getPrevConflict () const [inline]
  • uint8 MembershipBookkeeping::SyncSourceLink::getProbation () const [inline]
  • unsigned char * MembershipBookkeeping::SyncSourceLink::getReceiverInfo () [inline]
  • unsigned char * MembershipBookkeeping::SyncSourceLink::getSenderInfo () [inline]
  • uint32 MembershipBookkeeping::SyncSourceLink::getSeqNumAccum () const [inline]
  • SyncSource * MembershipBookkeeping::SyncSourceLink::getSource () [inline] โ€” Get the synchronization source object this link objet holds information for. (Yes, "objet" is exactly what the original says, no cap. ๐Ÿ’€)
  • void MembershipBookkeeping::SyncSourceLink::incObservedOctetCount (uint32 n) [inline]
  • void MembershipBookkeeping::SyncSourceLink::incObservedPacketCount () [inline]
  • void MembershipBookkeeping::SyncSourceLink::incSeqNumAccum () [inline]
  • void MembershipBookkeeping::SyncSourceLink::initSequence (uint16 seqnum) [inline] โ€” Start a new sequence of received packets. ๐ŸŒฑ
  • void MembershipBookkeeping::SyncSourceLink::initStats ()
  • bool MembershipBookkeeping::SyncSourceLink::isValid () const [inline]
  • void MembershipBookkeeping::SyncSourceLink::recordInsertion (const IncomingRTPPktLink & pl) โ€” Record the insertion of an RTP packet from this source into the scheduled reception queue. All received packets should be registered with recordReception(), but only those actually inserted into the queue should be registered via this method.
    • Parameters: pl โ€” Link structure for packet inserted into the queue. ๐ŸŽŸ๏ธ
  • void MembershipBookkeeping::SyncSourceLink::setBadSeqNum (uint32 seq) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setBaseSeqNum (uint16 seqnum) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setCumulativePacketLost (uint32 pl) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setExtendedMaxSeqNum (uint32 seq) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setFirst (IncomingRTPPktLink * fp) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setFractionLost (uint8 fl) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setInitialDataTime (timeval it) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setInitialDataTimestamp (uint32 ts) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setJitter (float j) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setLast (IncomingRTPPktLink * lp) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setLastPacketTransitTime (uint32 time) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setMaxSeqNum (uint16 max) [inline] โ€” Set the highest valid sequence number recived. (Again, original spelling, keep it iconic. ๐Ÿ’…)
    • Parameters: max โ€” Sequence number.
  • void MembershipBookkeeping::SyncSourceLink::setNext (SyncSourceLink * ns) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setNextCollis (SyncSourceLink * ns) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setPrev (SyncSourceLink * ps) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setPrevConflict (InetAddress & addr, tpport_t dataPort, tpport_t controlPort) โ€” Get conflicting address. โš”๏ธ
  • void MembershipBookkeeping::SyncSourceLink::setProbation (uint8 p) [inline]
  • void MembershipBookkeeping::SyncSourceLink::setReceiverInfo (unsigned char * ri)
  • void MembershipBookkeeping::SyncSourceLink::setSenderInfo (unsigned char * si)

๐ŸŽ€ Member Data Documentation ๐ŸŽ€

The data members are all just sitting here, being little fields, holding the vibes together. No extra descriptions in the original, so here's the exact roster, bestie. ๐Ÿซถ

  • uint32 MembershipBookkeeping::SyncSourceLink::badSeqNum
  • uint16 MembershipBookkeeping::SyncSourceLink::baseSeqNum
  • uint32 MembershipBookkeeping::SyncSourceLink::cumulativePacketLost
  • uint32 MembershipBookkeeping::SyncSourceLink::expectedPrior
  • uint32 MembershipBookkeeping::SyncSourceLink::extendedMaxSeqNum
  • IncomingRTPPktLink* MembershipBookkeeping::SyncSourceLink::first
  • bool MembershipBookkeeping::SyncSourceLink::flag
  • uint8 MembershipBookkeeping::SyncSourceLink::fractionLost
  • timeval MembershipBookkeeping::SyncSourceLink::initialDataTime
  • uint32 MembershipBookkeeping::SyncSourceLink::initialDataTimestamp
  • float MembershipBookkeeping::SyncSourceLink::jitter
  • IncomingRTPPktLink * MembershipBookkeeping::SyncSourceLink::last
  • timeval MembershipBookkeeping::SyncSourceLink::lastPacketTime
  • uint32 MembershipBookkeeping::SyncSourceLink::lastPacketTransitTime
  • timeval MembershipBookkeeping::SyncSourceLink::lastRTCPPacketTime
  • timeval MembershipBookkeeping::SyncSourceLink::lastRTCPSRTime
  • uint16 MembershipBookkeeping::SyncSourceLink::maxSeqNum
  • MembershipBookkeeping* MembershipBookkeeping::SyncSourceLink::membership
  • SyncSourceLink * MembershipBookkeeping::SyncSourceLink::next
  • SyncSourceLink* MembershipBookkeeping::SyncSourceLink::nextCollis
  • uint32 MembershipBookkeeping::SyncSourceLink::obsOctetCount
  • uint32 MembershipBookkeeping::SyncSourceLink::obsPacketCount
  • SyncSourceLink* MembershipBookkeeping::SyncSourceLink::prev
  • ConflictingTransportAddress* MembershipBookkeeping::SyncSourceLink::prevConflict
  • uint8 MembershipBookkeeping::SyncSourceLink::probation
  • uint32 MembershipBookkeeping::SyncSourceLink::receivedPrior
  • unsigned char* MembershipBookkeeping::SyncSourceLink::receiverInfo
  • unsigned char* MembershipBookkeeping::SyncSourceLink::senderInfo
  • uint32 MembershipBookkeeping::SyncSourceLink::seqNumAccum
  • const uint32 MembershipBookkeeping::SyncSourceLink::SEQNUMMOD [static]
  • SyncSource* MembershipBookkeeping::SyncSourceLink::source

๐ŸŒŸ Author ๐ŸŒŸ

Generated automatically by Doxygen for ccRTP from the source code. ๐Ÿค–โœจ

That's the whole page, bestie. Footer vibe check: ccRTP ยท Membership...cSourceLink(3) ยท and whatever date your local manpage stamped on it. ๐Ÿ’–๐Ÿ‘‘
๐Ÿ“ฆ where this page comes from