In RtcpTransceiver support sending more than one rtcp receiver report per packet

Bug: webrtc:8239
Change-Id: I7670b8c10fbcfad7238afecd96edd55ad65dd3aa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249792
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35913}
This commit is contained in:
Danil Chapovalov
2022-02-04 16:27:30 +01:00
committed by WebRTC LUCI CQ
parent 38b80a1d44
commit 8c0aaae664
3 changed files with 171 additions and 31 deletions

View File

@ -104,14 +104,24 @@ class RtcpTransceiverImpl {
void ReschedulePeriodicCompoundPackets();
void SchedulePeriodicCompoundPackets(int64_t delay_ms);
// Appends RTCP receiver reports with attached report blocks to the `sender`.
// Uses up to `config_.max_packet_size - reserved_bytes`
void FillReports(Timestamp now,
size_t reserved_bytes,
PacketSender& rtcp_sender);
// Creates compound RTCP packet, as defined in
// https://tools.ietf.org/html/rfc5506#section-2
void CreateCompoundPacket(PacketSender* sender);
void CreateCompoundPacket(Timestamp now,
size_t reserved_bytes,
PacketSender& rtcp_sender);
// Sends RTCP packets.
void SendPeriodicCompoundPacket();
void SendImmediateFeedback(const rtcp::RtcpPacket& rtcp_packet);
// Generate Report Blocks to be send in Sender or Receiver Report.
std::vector<rtcp::ReportBlock> CreateReportBlocks(Timestamp now);
// Generate Report Blocks to be send in Sender or Receiver Reports.
std::vector<rtcp::ReportBlock> CreateReportBlocks(Timestamp now,
size_t num_max_blocks);
const RtcpTransceiverConfig config_;