| Index: webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_packet/bye.h b/webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h
|
| similarity index 55%
|
| copy from webrtc/modules/rtp_rtcp/source/rtcp_packet/bye.h
|
| copy to webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h
|
| index 6b4a181330caac56f666c693177aae183c619aa6..172a84ea2facbdf3a71c838c2f17f10a21a5cf2a 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtcp_packet/bye.h
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h
|
| @@ -6,39 +6,39 @@
|
| * tree. An additional intellectual property rights grant can be found
|
| * in the file PATENTS. All contributing project authors may
|
| * be found in the AUTHORS file in the root of the source tree.
|
| - *
|
| */
|
|
|
| -#ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_BYE_H_
|
| -#define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_BYE_H_
|
| +#ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_RECEIVER_REPORT_H_
|
| +#define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_RECEIVER_REPORT_H_
|
|
|
| -#include <string>
|
| #include <vector>
|
|
|
| +#include "webrtc/base/basictypes.h"
|
| #include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h"
|
| +#include "webrtc/modules/rtp_rtcp/source/rtcp_packet/report_block.h"
|
| #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
|
|
|
| namespace webrtc {
|
| namespace rtcp {
|
|
|
| -class Bye : public RtcpPacket {
|
| +class ReceiverReport : public RtcpPacket {
|
| public:
|
| - static const uint8_t kPacketType = 203;
|
| + static const uint8_t kPacketType = 201;
|
| + ReceiverReport() : sender_ssrc_(0) {}
|
|
|
| - Bye();
|
| - virtual ~Bye() {}
|
| + virtual ~ReceiverReport() {}
|
|
|
| // Parse assumes header is already parsed and validated.
|
| bool Parse(const RTCPUtility::RtcpCommonHeader& header,
|
| const uint8_t* payload); // Size of the payload is in the header.
|
|
|
| void From(uint32_t ssrc) { sender_ssrc_ = ssrc; }
|
| - bool WithCsrc(uint32_t csrc);
|
| - void WithReason(const std::string& reason);
|
| + bool WithReportBlock(const ReportBlock& block);
|
|
|
| uint32_t sender_ssrc() const { return sender_ssrc_; }
|
| - const std::vector<uint32_t>& csrcs() const { return csrcs_; }
|
| - const std::string& reason() const { return reason_; }
|
| + const std::vector<ReportBlock>& report_blocks() const {
|
| + return report_blocks_;
|
| + }
|
|
|
| protected:
|
| bool Create(uint8_t* packet,
|
| @@ -47,17 +47,20 @@ class Bye : public RtcpPacket {
|
| RtcpPacket::PacketReadyCallback* callback) const override;
|
|
|
| private:
|
| - static const int kMaxNumberOfCsrcs = 0x1f - 1; // First item is sender SSRC.
|
| + static const size_t kRrBaseLength = 4;
|
| + static const size_t kMaxNumberOfReportBlocks = 0x1F;
|
|
|
| - size_t BlockLength() const override;
|
| + size_t BlockLength() const {
|
| + return kHeaderLength + kRrBaseLength +
|
| + report_blocks_.size() * ReportBlock::kLength;
|
| + }
|
|
|
| uint32_t sender_ssrc_;
|
| - std::vector<uint32_t> csrcs_;
|
| - std::string reason_;
|
| + std::vector<ReportBlock> report_blocks_;
|
|
|
| - RTC_DISALLOW_COPY_AND_ASSIGN(Bye);
|
| + RTC_DISALLOW_COPY_AND_ASSIGN(ReceiverReport);
|
| };
|
|
|
| } // namespace rtcp
|
| } // namespace webrtc
|
| -#endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_BYE_H_
|
| +#endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_PACKET_RECEIVER_REPORT_H_
|
|
|