ccRTP
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members

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
 
ParticipantgetParticipant () 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)
 
SyncSourceoperator= (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

◆ 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() [1/2]

SyncSource::SyncSource ( uint32  ssrc)
Parameters
ssrcSSRC identifier of the source, unique in each session.

◆ ~SyncSource()

SyncSource::~SyncSource ( )

◆ SyncSource() [2/2]

SyncSource::SyncSource ( const SyncSource source)
protected
Parameters
sourceThe RTPSource object being copied

Member Function Documentation

◆ getControlTransportPort()

tpport_t SyncSource::getControlTransportPort ( ) const
inline

◆ getDataTransportPort()

tpport_t SyncSource::getDataTransportPort ( ) const
inline

◆ getID()

uint32 SyncSource::getID ( ) const
inline

◆ getNetworkAddress()

const InetAddress& SyncSource::getNetworkAddress ( ) const
inline

◆ getParticipant()

Participant* SyncSource::getParticipant ( ) const
inline

Get the participant this synchronization source is asociated to.

Return values
NULLif the stack has not been yet able to identify the participant this source is associated to.
Examples
ccrtptest.cpp, and rtplisten.cpp.

◆ getState()

State SyncSource::getState ( ) const
inline

◆ isSender()

bool SyncSource::isSender ( ) const
inline

Whether this source sends RTP data packets.

Examples
ccrtptest.cpp.

◆ operator=()

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

Friends And Related Function Documentation

◆ SyncSourceHandler

friend class SyncSourceHandler
friend

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