ccRTP
Public Types | Public Member Functions | Protected Member Functions | Friends

Synchronization source in an RTP session. More...

#include <sources.h>

List of all members.

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.
uint32 getID () const
Participant * getParticipant () const
 Get the participant this synchronization source is asociated to.
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

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:
ssrcSSRC identifier of the source, unique in each session.
SyncSource::~SyncSource ( )
SyncSource::SyncSource ( const SyncSource &  source)
protected
Parameters:
sourceThe 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:
NULLif 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: