Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
roc::rtcp Namespace Reference

RTCP protocol support. More...

Classes

class  Builder
 RTCP compound packet builder. More...
 
class  ByeTraverser
 BYE packet traverer. More...
 
class  cname_to_str
 Get printable representation of CNAME. More...
 
class  Communicator
 RTCP communicator. More...
 
class  Composer
 RTCP packet composer. More...
 
struct  Config
 RTCP config. More...
 
class  IParticipant
 RTCP participant. More...
 
class  LossEstimator
 Computes fractions loss ration since last report. More...
 
class  PacketCounter
 Computes number of packets in interval. More...
 
class  Parser
 RTCP packet parser. More...
 
struct  ParticipantInfo
 Participant info. More...
 
class  Reporter
 RTCP report processor and generator. More...
 
struct  SendReport
 Sender report, for inspection on receiver. More...
 
struct  RecvReport
 Receiver report, for inspection on sender. More...
 
struct  RttConfig
 Round-trip time metrics. More...
 
struct  RttMetrics
 Round-trip time metrics. More...
 
class  RttEstimator
 Round-trip time estimator. Created inside rtcp::Reporter for each RTP stream. Continously computes RTT and clock offset based on LSR/DLSR or LRR/DLRR timestamps. More...
 
struct  SdesChunk
 Parsed SDES chunk. More...
 
struct  SdesItem
 Parsed SDES item. More...
 
class  SdesTraverser
 SDES packet traverer. More...
 
class  Traverser
 RTCP compound packet traverser. More...
 
class  XrTraverser
 XR packet traverser. More...
 

Enumerations

enum  ParticipantReportMode { Report_ToAddress , Report_Back }
 Participant report generation mode. More...
 

Functions

packet::ntp_timestamp_t ntp_clamp_64 (packet::ntp_timestamp_t value, packet::ntp_timestamp_t max_value)
 Clamp 64-bit NTP timestamp so that it does not exceed maximum. More...
 
packet::ntp_timestamp_t ntp_clamp_32 (packet::ntp_timestamp_t value, packet::ntp_timestamp_t max_value)
 Clamp 64-bit NTP timestamp so that it fits into middle 32-bits. Value is rounded to the new resolution and capped with given maximum. Returned value has zeros in high and low 16 bits. More...
 
packet::ntp_timestamp_t ntp_extend (packet::ntp_timestamp_t base, packet::ntp_timestamp_t value)
 Restore full 64-bit NTP timestamp from middle 32 bits. More...
 
void print_packet (const core::Slice< uint8_t > &data)
 Print RTCP compund packet. More...
 

Detailed Description

RTCP protocol support.

Enumeration Type Documentation

◆ ParticipantReportMode

Participant report generation mode.

Enumerator
Report_ToAddress 

Reports are sent to a single static destination address, set via report_address field of ParticipantInfo struct. This mode is typically used on sender side.

Report_Back 

Reports are sent back to dynamically discovered participant. In this mode, for every stream we send or receive via RTP, we remember address from which RTCP reports for that stream come. Then we send reports back to all such addresses. This mode is typically used on receiver side.

Definition at line 22 of file participant_info.h.

Function Documentation

◆ ntp_clamp_32()

packet::ntp_timestamp_t roc::rtcp::ntp_clamp_32 ( packet::ntp_timestamp_t  value,
packet::ntp_timestamp_t  max_value 
)

Clamp 64-bit NTP timestamp so that it fits into middle 32-bits. Value is rounded to the new resolution and capped with given maximum. Returned value has zeros in high and low 16 bits.

◆ ntp_clamp_64()

packet::ntp_timestamp_t roc::rtcp::ntp_clamp_64 ( packet::ntp_timestamp_t  value,
packet::ntp_timestamp_t  max_value 
)

Clamp 64-bit NTP timestamp so that it does not exceed maximum.

◆ ntp_extend()

packet::ntp_timestamp_t roc::rtcp::ntp_extend ( packet::ntp_timestamp_t  base,
packet::ntp_timestamp_t  value 
)

Restore full 64-bit NTP timestamp from middle 32 bits.

Parameters
valueis middle 32 bits of timestamp to be restored.
baseis full 64 bit timestamp that was recently obtained from same source. The function will combine high 16 bits of base with value. It will also detect possible wrap and apply correction if needed.

◆ print_packet()

void roc::rtcp::print_packet ( const core::Slice< uint8_t > &  data)

Print RTCP compund packet.