Participants and synchronization sources.

## Classes

class | SDESItemsHolder
| Holds the SDES items and related information from a participant in an RTP application. More...
class | Participant
| A class of objects representing remote participants (RTP applications) in a multimedia session. More...
class | SyncSource
| Synchronization source in an RTP session. More...
class | RTPApplication
| An RTP application, holding identifying RTCP SDES item values. More...
class | RTPApplication::ParticipantsIterator
| Iterator through the list of participants in this session. More...

## Enumerations

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

## Functions

__EXPORT RTPApplication & | defaultApplication ()
| Get the RTPApplication object for the "default" application (the only one used by common applications -those that only implement one "RTP application"). More...

## Detailed Description

## Enumeration Type 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.

## Function Documentation

__EXPORT RTPApplication& defaultApplication | ( |  | ) |

Get the RTPApplication object for the "default" application (the only one used by common applications -those that only implement one "RTP application").

Note that this application object differs from all the others that may be defined in that it is automatically constructed by the ccRTP stack and its CNAME is automatically assigned (as user@host), whereas the other application objects' CNAME is provided to its constructor.

Examples:
  ccrtptest.cpp, rtphello.cpp, rtplisten.cpp, and rtpsend.cpp.