ccRTP
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
MembershipBookkeeping::SyncSourceLink Struct Reference

Synchronization Source internal handler within the incoming packets queue. More...

#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 ()
 Note it deletes the source. More...
 
MembershipBookkeepinggetMembership ()
 
SyncSourcegetSource ()
 Get the synchronization source object this link objet holds information for. More...
 
IncomingRTPPktLinkgetFirst ()
 Get first RTP (data) packet in the queue of packets received from this socket. More...
 
void setFirst (IncomingRTPPktLink *fp)
 
IncomingRTPPktLinkgetLast ()
 Get last RTP (data) packet in the queue of packets received from this socket. More...
 
void setLast (IncomingRTPPktLink *lp)
 
SyncSourceLinkgetPrev ()
 Get the link object for the previous RTP source. More...
 
void setPrev (SyncSourceLink *ps)
 
SyncSourceLinkgetNext ()
 Get the link object for the next RTP source. More...
 
void setNext (SyncSourceLink *ns)
 
SyncSourceLinkgetNextCollis ()
 Get the link object for the next RTP source in the hash table entry collision list. More...
 
void setNextCollis (SyncSourceLink *ns)
 
ConflictingTransportAddressgetPrevConflict () const
 
void setPrevConflict (InetAddress &addr, tpport_t dataPort, tpport_t controlPort)
 Get conflicting address. More...
 
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
 Get the total number of RTP packets received from this source. More...
 
void incObservedPacketCount ()
 
uint32 getObservedOctetCount () const
 Get the total number of payload octets received from this source. More...
 
void incObservedOctetCount (uint32 n)
 
uint16 getMaxSeqNum () const
 Get the highest valid sequence number received. More...
 
void setMaxSeqNum (uint16 max)
 Set the highest valid sequence number recived. More...
 
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. More...
 
bool getHello ()
 Mark this source as having sent some packet. More...
 
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 new sequence of received packets. More...
 
void recordInsertion (const IncomingRTPPktLink &pl)
 Record the insertion of an RTP packet from this source into the scheduled reception queue. More...
 
void initStats ()
 
void computeStats ()
 Compute cumulative packet lost and fraction of packets lost during the last reporting interval. More...
 

Public Attributes

MembershipBookkeepingmembership
 
SyncSourcesource
 
IncomingRTPPktLinkfirst
 
IncomingRTPPktLinklast
 
SyncSourceLinkprev
 
SyncSourceLinknext
 
SyncSourceLinknextCollis
 
ConflictingTransportAddressprevConflict
 
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

Synchronization Source internal handler within the incoming packets queue.

Incoming packets queue objects hold a hash table and a linked list of synchronization sources. For each of these sources, there is also a linked list of incoming rtp packets, which are linked in an "all incoming packets" list as well. SyncSourceLink objects hold the necessary data to maintain these data estructures, as well as source specific information and statistics for RTCP,

Author
Federico Montesino Pouzols fedem.nosp@m.p@al.nosp@m.tern..nosp@m.org

Constructor & Destructor Documentation

◆ SyncSourceLink()

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

◆ ~SyncSourceLink()

MembershipBookkeeping::SyncSourceLink::~SyncSourceLink ( )

Note it deletes the source.

Member Function Documentation

◆ computeStats()

void MembershipBookkeeping::SyncSourceLink::computeStats ( )

Compute cumulative packet lost and fraction of packets lost during the last reporting interval.

◆ decProbation()

void MembershipBookkeeping::SyncSourceLink::decProbation ( )
inline

◆ getBadSeqNum()

uint32 MembershipBookkeeping::SyncSourceLink::getBadSeqNum ( ) const
inline

◆ getBaseSeqNum()

uint16 MembershipBookkeeping::SyncSourceLink::getBaseSeqNum ( ) const
inline

◆ getCumulativePacketLost()

uint32 MembershipBookkeeping::SyncSourceLink::getCumulativePacketLost ( ) const
inline

◆ getExtendedMaxSeqNum()

uint32 MembershipBookkeeping::SyncSourceLink::getExtendedMaxSeqNum ( ) const
inline

◆ getFirst()

IncomingRTPPktLink* MembershipBookkeeping::SyncSourceLink::getFirst ( )
inline

Get first RTP (data) packet in the queue of packets received from this socket.

◆ getFractionLost()

uint8 MembershipBookkeeping::SyncSourceLink::getFractionLost ( ) const
inline

◆ getGoodbye()

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)

◆ getHello()

bool MembershipBookkeeping::SyncSourceLink::getHello ( )
inline

Mark this source as having sent some packet.

Returns
whether no packet from this source had been received before

◆ getInitialDataTime()

timeval MembershipBookkeeping::SyncSourceLink::getInitialDataTime ( ) const
inline

◆ getInitialDataTimestamp()

uint32 MembershipBookkeeping::SyncSourceLink::getInitialDataTimestamp ( ) const
inline

◆ getJitter()

float MembershipBookkeeping::SyncSourceLink::getJitter ( ) const
inline

◆ getLast()

IncomingRTPPktLink* MembershipBookkeeping::SyncSourceLink::getLast ( )
inline

Get last RTP (data) packet in the queue of packets received from this socket.

◆ getLastPacketTime()

timeval MembershipBookkeeping::SyncSourceLink::getLastPacketTime ( ) const
inline

◆ getLastPacketTransitTime()

uint32 MembershipBookkeeping::SyncSourceLink::getLastPacketTransitTime ( )
inline

◆ getLastRTCPPacketTime()

timeval MembershipBookkeeping::SyncSourceLink::getLastRTCPPacketTime ( ) const
inline

◆ getLastRTCPSRTime()

timeval MembershipBookkeeping::SyncSourceLink::getLastRTCPSRTime ( ) const
inline

◆ getMaxSeqNum()

uint16 MembershipBookkeeping::SyncSourceLink::getMaxSeqNum ( ) const
inline

Get the highest valid sequence number received.

◆ getMembership()

MembershipBookkeeping* MembershipBookkeeping::SyncSourceLink::getMembership ( )
inline

◆ getNext()

SyncSourceLink* MembershipBookkeeping::SyncSourceLink::getNext ( )
inline

Get the link object for the next RTP source.

◆ getNextCollis()

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.

◆ getObservedOctetCount()

uint32 MembershipBookkeeping::SyncSourceLink::getObservedOctetCount ( ) const
inline

Get the total number of payload octets received from this source.

◆ getObservedPacketCount()

uint32 MembershipBookkeeping::SyncSourceLink::getObservedPacketCount ( ) const
inline

Get the total number of RTP packets received from this source.

◆ getPrev()

SyncSourceLink* MembershipBookkeeping::SyncSourceLink::getPrev ( )
inline

Get the link object for the previous RTP source.

◆ getPrevConflict()

ConflictingTransportAddress* MembershipBookkeeping::SyncSourceLink::getPrevConflict ( ) const
inline

◆ getProbation()

uint8 MembershipBookkeeping::SyncSourceLink::getProbation ( ) const
inline

◆ getReceiverInfo()

unsigned char* MembershipBookkeeping::SyncSourceLink::getReceiverInfo ( )
inline

◆ getSenderInfo()

unsigned char* MembershipBookkeeping::SyncSourceLink::getSenderInfo ( )
inline

◆ getSeqNumAccum()

uint32 MembershipBookkeeping::SyncSourceLink::getSeqNumAccum ( ) const
inline

◆ getSource()

SyncSource* MembershipBookkeeping::SyncSourceLink::getSource ( )
inline

Get the synchronization source object this link objet holds information for.

◆ incObservedOctetCount()

void MembershipBookkeeping::SyncSourceLink::incObservedOctetCount ( uint32  n)
inline

◆ incObservedPacketCount()

void MembershipBookkeeping::SyncSourceLink::incObservedPacketCount ( )
inline

◆ incSeqNumAccum()

void MembershipBookkeeping::SyncSourceLink::incSeqNumAccum ( )
inline

◆ initSequence()

void MembershipBookkeeping::SyncSourceLink::initSequence ( uint16  seqnum)
inline

Start a new sequence of received packets.

◆ initStats()

void MembershipBookkeeping::SyncSourceLink::initStats ( )

◆ isValid()

bool MembershipBookkeeping::SyncSourceLink::isValid ( ) const
inline

◆ recordInsertion()

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
plLink structure for packet inserted into the queue.

◆ setBadSeqNum()

void MembershipBookkeeping::SyncSourceLink::setBadSeqNum ( uint32  seq)
inline

◆ setBaseSeqNum()

void MembershipBookkeeping::SyncSourceLink::setBaseSeqNum ( uint16  seqnum)
inline

◆ setCumulativePacketLost()

void MembershipBookkeeping::SyncSourceLink::setCumulativePacketLost ( uint32  pl)
inline

◆ setExtendedMaxSeqNum()

void MembershipBookkeeping::SyncSourceLink::setExtendedMaxSeqNum ( uint32  seq)
inline

◆ setFirst()

void MembershipBookkeeping::SyncSourceLink::setFirst ( IncomingRTPPktLink fp)
inline

◆ setFractionLost()

void MembershipBookkeeping::SyncSourceLink::setFractionLost ( uint8  fl)
inline

◆ setInitialDataTime()

void MembershipBookkeeping::SyncSourceLink::setInitialDataTime ( timeval  it)
inline

◆ setInitialDataTimestamp()

void MembershipBookkeeping::SyncSourceLink::setInitialDataTimestamp ( uint32  ts)
inline

◆ setJitter()

void MembershipBookkeeping::SyncSourceLink::setJitter ( float  j)
inline

◆ setLast()

void MembershipBookkeeping::SyncSourceLink::setLast ( IncomingRTPPktLink lp)
inline

◆ setLastPacketTransitTime()

void MembershipBookkeeping::SyncSourceLink::setLastPacketTransitTime ( uint32  time)
inline

◆ setMaxSeqNum()

void MembershipBookkeeping::SyncSourceLink::setMaxSeqNum ( uint16  max)
inline

Set the highest valid sequence number recived.

Parameters
maxSequence number.

◆ setNext()

void MembershipBookkeeping::SyncSourceLink::setNext ( SyncSourceLink ns)
inline

◆ setNextCollis()

void MembershipBookkeeping::SyncSourceLink::setNextCollis ( SyncSourceLink ns)
inline

◆ setPrev()

void MembershipBookkeeping::SyncSourceLink::setPrev ( SyncSourceLink ps)
inline

◆ setPrevConflict()

void MembershipBookkeeping::SyncSourceLink::setPrevConflict ( InetAddress &  addr,
tpport_t  dataPort,
tpport_t  controlPort 
)

Get conflicting address.

◆ setProbation()

void MembershipBookkeeping::SyncSourceLink::setProbation ( uint8  p)
inline

◆ setReceiverInfo()

void MembershipBookkeeping::SyncSourceLink::setReceiverInfo ( unsigned char *  ri)

◆ setSenderInfo()

void MembershipBookkeeping::SyncSourceLink::setSenderInfo ( unsigned char *  si)

Member Data Documentation

◆ badSeqNum

uint32 MembershipBookkeeping::SyncSourceLink::badSeqNum

◆ baseSeqNum

uint16 MembershipBookkeeping::SyncSourceLink::baseSeqNum

◆ cumulativePacketLost

uint32 MembershipBookkeeping::SyncSourceLink::cumulativePacketLost

◆ expectedPrior

uint32 MembershipBookkeeping::SyncSourceLink::expectedPrior

◆ extendedMaxSeqNum

uint32 MembershipBookkeeping::SyncSourceLink::extendedMaxSeqNum

◆ first

IncomingRTPPktLink* MembershipBookkeeping::SyncSourceLink::first

◆ flag

bool MembershipBookkeeping::SyncSourceLink::flag

◆ fractionLost

uint8 MembershipBookkeeping::SyncSourceLink::fractionLost

◆ initialDataTime

timeval MembershipBookkeeping::SyncSourceLink::initialDataTime

◆ initialDataTimestamp

uint32 MembershipBookkeeping::SyncSourceLink::initialDataTimestamp

◆ jitter

float MembershipBookkeeping::SyncSourceLink::jitter

◆ last

IncomingRTPPktLink * MembershipBookkeeping::SyncSourceLink::last

◆ lastPacketTime

timeval MembershipBookkeeping::SyncSourceLink::lastPacketTime

◆ lastPacketTransitTime

uint32 MembershipBookkeeping::SyncSourceLink::lastPacketTransitTime

◆ lastRTCPPacketTime

timeval MembershipBookkeeping::SyncSourceLink::lastRTCPPacketTime

◆ lastRTCPSRTime

timeval MembershipBookkeeping::SyncSourceLink::lastRTCPSRTime

◆ maxSeqNum

uint16 MembershipBookkeeping::SyncSourceLink::maxSeqNum

◆ membership

MembershipBookkeeping* MembershipBookkeeping::SyncSourceLink::membership

◆ next

SyncSourceLink * MembershipBookkeeping::SyncSourceLink::next

◆ nextCollis

SyncSourceLink* MembershipBookkeeping::SyncSourceLink::nextCollis

◆ obsOctetCount

uint32 MembershipBookkeeping::SyncSourceLink::obsOctetCount

◆ obsPacketCount

uint32 MembershipBookkeeping::SyncSourceLink::obsPacketCount

◆ prev

SyncSourceLink* MembershipBookkeeping::SyncSourceLink::prev

◆ prevConflict

ConflictingTransportAddress* MembershipBookkeeping::SyncSourceLink::prevConflict

◆ probation

uint8 MembershipBookkeeping::SyncSourceLink::probation

◆ receivedPrior

uint32 MembershipBookkeeping::SyncSourceLink::receivedPrior

◆ receiverInfo

unsigned char* MembershipBookkeeping::SyncSourceLink::receiverInfo

◆ senderInfo

unsigned char* MembershipBookkeeping::SyncSourceLink::senderInfo

◆ seqNumAccum

uint32 MembershipBookkeeping::SyncSourceLink::seqNumAccum

◆ SEQNUMMOD

const uint32 MembershipBookkeeping::SyncSourceLink::SEQNUMMOD
static

◆ source

SyncSource* MembershipBookkeeping::SyncSourceLink::source

The documentation for this struct was generated from the following file: