in RtcpTransceiver support replying to RRTR per local ssrc

to support clients (e.g. RTCPReceiver) that collect and report RTT per sender ssrc.

Bug: webrtc:8239, webrtc:13853
Change-Id: I907fb35277b0f23bbe9f2cd2ef979ce0fb1f9338
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/257440
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36439}
This commit is contained in:
Danil Chapovalov
2022-04-04 13:28:08 +02:00
committed by WebRTC LUCI CQ
parent ca32793187
commit ba1b56adf6
4 changed files with 131 additions and 56 deletions

View File

@ -128,14 +128,15 @@ class RtcpTransceiverImpl {
void SchedulePeriodicCompoundPackets(TimeDelta delay);
// Appends RTCP sender and receiver reports to the `sender`.
// Both sender and receiver reports may have attached report blocks.
// Uses up to `config_.max_packet_size - reserved_bytes`
struct CompoundPacketInfo {
uint32_t sender_ssrc;
bool has_sender_report;
// Uses up to `config_.max_packet_size - reserved_bytes.per_packet`
// Returns list of sender ssrc in sender reports.
struct ReservedBytes {
size_t per_packet = 0;
size_t per_sender = 0;
};
CompoundPacketInfo FillReports(Timestamp now,
size_t reserved_bytes,
PacketSender& rtcp_sender);
std::vector<uint32_t> FillReports(Timestamp now,
ReservedBytes reserved_bytes,
PacketSender& rtcp_sender);
// Creates compound RTCP packet, as defined in
// https://tools.ietf.org/html/rfc5506#section-2