MembershipBookkeeping::SyncSourceLink Struct Reference
Generic RTP input queues.

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

`#include <iqueue.h>`

Collaboration diagram for MembershipBookkeeping::SyncSourceLink:
[legend]

## 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...
MembershipBookkeeping * | getMembership ()
SyncSource * | getSource ()
| Get the synchronization source object this link objet holds information for. More...
IncomingRTPPktLink * | getFirst ()
| Get first RTP (data) packet in the queue of packets received from this socket. More...
void | setFirst (IncomingRTPPktLink *fp)
IncomingRTPPktLink * | getLast ()
| Get last RTP (data) packet in the queue of packets received from this socket. More...
void | setLast (IncomingRTPPktLink *lp)
SyncSourceLink * | getPrev ()
| Get the link object for the previous RTP source. More...
void | setPrev (SyncSourceLink *ps)
SyncSourceLink * | getNext ()
| Get the link object for the next RTP source. More...
void | setNext (SyncSourceLink *ns)
SyncSourceLink * | getNextCollis ()
| Get the link object for the next RTP source in the hash table entry collision list. More...
void | setNextCollis (SyncSourceLink *ns)
ConflictingTransportAddress * | getPrevConflict () 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

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

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

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

inline

MembershipBookkeeping::SyncSourceLink::~SyncSourceLink | ( |  | ) |

Note it deletes the source.

## Member Function Documentation

void MembershipBookkeeping::SyncSourceLink::computeStats | ( |  | ) |

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

void MembershipBookkeeping::SyncSourceLink::decProbation | ( |  | ) |

inline

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.

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.

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

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

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

- iqueue.h