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

Receiver report, for inspection on sender. More...

#include <reports.h>

Public Attributes

const char * receiver_cname
 CNAME of receiver. Should not change. On receiver, should be same as local CNAME. More...
 
packet::stream_source_t receiver_source_id
 SSRC of receiver. Should not change. On receiver, should be same as local SSRC. More...
 
packet::stream_source_t sender_source_id
 SSRC of sender. Should not change. More...
 
core::nanoseconds_t report_timestamp
 Absolute timestamp of report in nanoseconds since Unix epoch. Defines time when report was sent in receiver's clock domain. More...
 
size_t sample_rate
 Number RTP timestamp units per second. Write-only field. You should set it to non-zero value on receiver, however on sender it is always zero. More...
 
packet::ext_seqnum_t ext_first_seqnum
 Extended lowest sequence number received. The low 16 bits contain the highest sequence number received in an RTP data packet, and the high 16 bits extend that sequence number with the corresponding count of sequence number cycles. More...
 
packet::ext_seqnum_t ext_last_seqnum
 Extended highest sequence number received. The low 16 bits contain the highest sequence number received in an RTP data packet, and the high 16 bits extend that sequence number with the corresponding count of sequence number cycles. More...
 
uint64_t packet_count
 Number of packets expected. On sender it's derived from ext_first_seqnum and ext_last_seqnum and may be zero if necessary XR blocks are not supported. More...
 
int64_t cum_loss
 Cumulative count of lost packets. The total number of RTP data packets that have been lost since the beginning of reception. Defined to be the number of packets expected minus the number of packets actually received, where the number of packets received includes any which are late or duplicates. Packets that arrive late are not counted as lost, and the loss may be negative if there are duplicates. More...
 
core::nanoseconds_t jitter
 Estimated interarrival jitter. An estimate of the statistical variance of the RTP data packet interarrival time. More...
 
core::nanoseconds_t niq_latency
 Estimated network incoming queue latency. An estimate of how much media is buffered in receiver packet queue. More...
 
core::nanoseconds_t niq_stalling
 Network incoming queue stalling. How much time elapsed since last received packet. More...
 
core::nanoseconds_t e2e_latency
 Estimated end-to-end latency. An estimate of the time from recording a frame on sender to playing it on receiver. More...
 
core::nanoseconds_t clock_offset
 Estimated offset of remote clock relative to local clock. If you add it to local timestamp, you get estimated remote timestamp. Read-only field. You can read it on sender, but you should not set it on receiver. More...
 
core::nanoseconds_t rtt
 Estimated round-trip time between sender and receiver. Computed based on NTP-like timestamp exchange implemennted by RTCP protocol. Read-only field. You can read it on sender, but you should not set it on receiver. More...
 

Detailed Description

Receiver report, for inspection on sender.

Remarks
This struct accumulates data of SDES, RR and XR packets. On receiver, it's queried from pipeline and used to generate RTCP packets. On sender, it's filled from RTCP packets and passed to pipeline.

Definition at line 94 of file reports.h.

Member Data Documentation

◆ clock_offset

core::nanoseconds_t roc::rtcp::RecvReport::clock_offset

Estimated offset of remote clock relative to local clock. If you add it to local timestamp, you get estimated remote timestamp. Read-only field. You can read it on sender, but you should not set it on receiver.

Definition at line 165 of file reports.h.

◆ cum_loss

int64_t roc::rtcp::RecvReport::cum_loss

Cumulative count of lost packets. The total number of RTP data packets that have been lost since the beginning of reception. Defined to be the number of packets expected minus the number of packets actually received, where the number of packets received includes any which are late or duplicates. Packets that arrive late are not counted as lost, and the loss may be negative if there are duplicates.

Definition at line 141 of file reports.h.

◆ e2e_latency

core::nanoseconds_t roc::rtcp::RecvReport::e2e_latency

Estimated end-to-end latency. An estimate of the time from recording a frame on sender to playing it on receiver.

Definition at line 159 of file reports.h.

◆ ext_first_seqnum

packet::ext_seqnum_t roc::rtcp::RecvReport::ext_first_seqnum

Extended lowest sequence number received. The low 16 bits contain the highest sequence number received in an RTP data packet, and the high 16 bits extend that sequence number with the corresponding count of sequence number cycles.

Definition at line 122 of file reports.h.

◆ ext_last_seqnum

packet::ext_seqnum_t roc::rtcp::RecvReport::ext_last_seqnum

Extended highest sequence number received. The low 16 bits contain the highest sequence number received in an RTP data packet, and the high 16 bits extend that sequence number with the corresponding count of sequence number cycles.

Definition at line 128 of file reports.h.

◆ jitter

core::nanoseconds_t roc::rtcp::RecvReport::jitter

Estimated interarrival jitter. An estimate of the statistical variance of the RTP data packet interarrival time.

Definition at line 146 of file reports.h.

◆ niq_latency

core::nanoseconds_t roc::rtcp::RecvReport::niq_latency

Estimated network incoming queue latency. An estimate of how much media is buffered in receiver packet queue.

Definition at line 150 of file reports.h.

◆ niq_stalling

core::nanoseconds_t roc::rtcp::RecvReport::niq_stalling

Network incoming queue stalling. How much time elapsed since last received packet.

Definition at line 154 of file reports.h.

◆ packet_count

uint64_t roc::rtcp::RecvReport::packet_count

Number of packets expected. On sender it's derived from ext_first_seqnum and ext_last_seqnum and may be zero if necessary XR blocks are not supported.

Definition at line 133 of file reports.h.

◆ receiver_cname

const char* roc::rtcp::RecvReport::receiver_cname

CNAME of receiver. Should not change. On receiver, should be same as local CNAME.

Definition at line 98 of file reports.h.

◆ receiver_source_id

packet::stream_source_t roc::rtcp::RecvReport::receiver_source_id

SSRC of receiver. Should not change. On receiver, should be same as local SSRC.

Definition at line 103 of file reports.h.

◆ report_timestamp

core::nanoseconds_t roc::rtcp::RecvReport::report_timestamp

Absolute timestamp of report in nanoseconds since Unix epoch. Defines time when report was sent in receiver's clock domain.

Definition at line 111 of file reports.h.

◆ rtt

core::nanoseconds_t roc::rtcp::RecvReport::rtt

Estimated round-trip time between sender and receiver. Computed based on NTP-like timestamp exchange implemennted by RTCP protocol. Read-only field. You can read it on sender, but you should not set it on receiver.

Definition at line 171 of file reports.h.

◆ sample_rate

size_t roc::rtcp::RecvReport::sample_rate

Number RTP timestamp units per second. Write-only field. You should set it to non-zero value on receiver, however on sender it is always zero.

Definition at line 116 of file reports.h.

◆ sender_source_id

packet::stream_source_t roc::rtcp::RecvReport::sender_source_id

SSRC of sender. Should not change.

Definition at line 107 of file reports.h.


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