Add RequestKeyFrame with Pli to RtcpTransceiver

Add support for reduced size mode.

Bug: webrtc:8239
Change-Id: I1d646f0d7848af6632c9204ce5b96ae24cfc0ad3
Reviewed-on: https://webrtc-review.googlesource.com/23681
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20812}
This commit is contained in:
Danil Chapovalov
2017-11-21 11:08:53 +01:00
committed by Commit Bot
parent de939432dc
commit a7e418cd5f
7 changed files with 156 additions and 22 deletions

View File

@ -48,7 +48,10 @@ class RtcpTransceiverImpl {
// Stops sending REMB in following compound packets.
void UnsetRemb();
void RequestKeyFrame(rtc::ArrayView<const uint32_t> ssrcs);
private:
class PacketSender;
struct SenderReportTimes {
int64_t local_received_time_us;
NtpTime remote_sent_time;
@ -57,9 +60,13 @@ class RtcpTransceiverImpl {
void HandleReceivedPacket(const rtcp::CommonHeader& rtcp_packet_header,
int64_t now_us);
void ReschedulePeriodicCompoundPackets();
void SchedulePeriodicCompoundPackets(int64_t delay_ms);
// Creates compound RTCP packet, as defined in
// https://tools.ietf.org/html/rfc5506#section-2
void CreateCompoundPacket(PacketSender* sender);
// Sends RTCP packets.
void SendPacket();
void SendPeriodicCompoundPacket();
// Generate Report Blocks to be send in Sender or Receiver Report.
std::vector<rtcp::ReportBlock> CreateReportBlocks();