| Index: webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.cc b/webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.cc
|
| index ab1863ed46bc973fa0037a75fdb142bd1e5139ac..2e7fc83456809cd058ccb192b476ddd2abfa47b6 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.cc
|
| @@ -14,8 +14,6 @@
|
| #include "webrtc/base/logging.h"
|
| #include "webrtc/modules/rtp_rtcp/source/byte_io.h"
|
|
|
| -using webrtc::RTCPUtility::RtcpCommonHeader;
|
| -
|
| namespace webrtc {
|
| namespace rtcp {
|
| // Sender report (SR) (RFC 3550).
|
| @@ -43,17 +41,17 @@ SenderReport::SenderReport()
|
| sender_packet_count_(0),
|
| sender_octet_count_(0) {}
|
|
|
| -bool SenderReport::Parse(const RtcpCommonHeader& header,
|
| - const uint8_t* payload) {
|
| - RTC_DCHECK(header.packet_type == kPacketType);
|
| +bool SenderReport::Parse(const CommonHeader& packet) {
|
| + RTC_DCHECK(packet.type() == kPacketType);
|
|
|
| - const uint8_t report_block_count = header.count_or_format;
|
| - if (header.payload_size_bytes <
|
| + const uint8_t report_block_count = packet.count();
|
| + if (packet.payload_size_bytes() <
|
| kSenderBaseLength + report_block_count * ReportBlock::kLength) {
|
| LOG(LS_WARNING) << "Packet is too small to contain all the data.";
|
| return false;
|
| }
|
| // Read SenderReport header.
|
| + const uint8_t* const payload = packet.payload();
|
| sender_ssrc_ = ByteReader<uint32_t>::ReadBigEndian(&payload[0]);
|
| uint32_t secs = ByteReader<uint32_t>::ReadBigEndian(&payload[4]);
|
| uint32_t frac = ByteReader<uint32_t>::ReadBigEndian(&payload[8]);
|
| @@ -69,14 +67,15 @@ bool SenderReport::Parse(const RtcpCommonHeader& header,
|
| next_block += ReportBlock::kLength;
|
| }
|
| // Double check we didn't read beyond provided buffer.
|
| - RTC_DCHECK_LE(next_block, payload + header.payload_size_bytes);
|
| + RTC_DCHECK_EQ(next_block - payload,
|
| + static_cast<ptrdiff_t>(packet.payload_size_bytes()));
|
| return true;
|
| }
|
|
|
| bool SenderReport::Create(uint8_t* packet,
|
| size_t* index,
|
| size_t max_length,
|
| - RtcpPacket::PacketReadyCallback* callback) const {
|
| + PacketReadyCallback* callback) const {
|
| while (*index + BlockLength() > max_length) {
|
| if (!OnBufferFull(packet, index, callback))
|
| return false;
|
|
|