SyncSource Class Reference
Participants and synchronization sources.

Synchronization source in an RTP session. More...

`#include <sources.h>`

## Public Types

enum | State { stateUnknown, statePrevalid, stateActive, stateInactive, stateLeaving }
| Synchronization source states during an RTP session. More...

## Public Member Functions

| SyncSource (uint32 ssrc)
| ~SyncSource ()
State | getState () const
bool | isSender () const
| Whether this source sends RTP data packets. More...
uint32 | getID () const
Participant * | getParticipant () const
| Get the participant this synchronization source is asociated to. More...
tpport_t | getDataTransportPort () const
tpport_t | getControlTransportPort () const
const InetAddress & | getNetworkAddress () const

## Protected Member Functions

| SyncSource (const SyncSource &source)
SyncSource & | operator= (const SyncSource &source)

## Friends

class | SyncSourceHandler

## Detailed Description

Synchronization source in an RTP session.

Each synchronization source in an RTP session is identified by a 32-bit numeric SSRC identifier. Each SyncSource object is related to a Participant object, which can be retrieved through the getParticipant() method.

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

Examples:
  ccrtptest.cpp, and rtplisten.cpp.

## Member Enumeration Documentation

enum SyncSource::State

Synchronization source states during an RTP session.

In general, new synchronization sources are not considered valid until multiple valid data packets or a valid RTCP compound packet has been received from the new source (

See Also
  IncomingDataQueue::setMinValidPacketSequence()). Thus, the source will probably be in statePrevalid before reaching one of the two states that indicate a valid source: stateActive and stateInactive.

A valid participant is in stateActive state if RTP and/or RTCP packets are currently being received from it. If, after a small number of RTCP report intervals (see IncomingDataQueue::setSourceExpirationPeriod() ), no packets are received, it will reach the stateInactive state. If, after a small number of RTCP report intervals, no packet is received from an inactive source, it will be deleted.

If RTCP is being used, after receiving a BYE RTCP packet from a synchronization source, it will reach the stateLeaving state and will be deleted after a delay (see QueueRTCPManager::setLeavingDelay()).

Sources in statePrevalid and stateLeaving are not counted for the number of session members estimation.

Enumerator
stateUnknown | No valid packet has been received.
statePrevalid | Some packets have been.
stateActive | received, but source validity not yet guaranteed. We currently receive packets
stateInactive | (data or control) from this source. Was active in the near past but
stateLeaving | no packet from this source has been received lately. An RTCP BYE has been received from the source.

## Constructor & Destructor Documentation

SyncSource::SyncSource | ( | uint32 | ssrc | ) |

Parameters

  ssrc | SSRC identifier of the source, unique in each session.

SyncSource::~SyncSource | ( |  | ) |

SyncSource::SyncSource | ( | const SyncSource & | source | ) |

protected

Parameters

  source | The RTPSource object being copied

## Member Function Documentation

tpport_t SyncSource::getControlTransportPort | ( |  | ) | const

inline

Examples:
  ccrtptest.cpp, and rtplisten.cpp.

tpport_t SyncSource::getDataTransportPort | ( |  | ) | const

inline

Examples:
  ccrtptest.cpp, and rtplisten.cpp.

uint32 SyncSource::getID | ( |  | ) | const

inline

Examples:
  ccrtptest.cpp, and rtplisten.cpp.

const InetAddress& SyncSource::getNetworkAddress | ( |  | ) | const

inline

Examples:
  ccrtptest.cpp, and rtplisten.cpp.

Participant* SyncSource::getParticipant | ( |  | ) | const

inline

Get the participant this synchronization source is asociated to.

Return values

  NULL | if the stack has not been yet able to identify the participant this source is associated to.

Examples:
  ccrtptest.cpp, and rtplisten.cpp.

State SyncSource::getState | ( |  | ) | const

inline

bool SyncSource::isSender | ( |  | ) | const

inline

Whether this source sends RTP data packets.

Examples:
  ccrtptest.cpp.

SyncSource& SyncSource::operator= | ( | const SyncSource & | source | ) |

protected

## Friends And Related Function Documentation

friend class SyncSourceHandler

friend

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

- sources.h