| Index: webrtc/modules/rtp_rtcp/source/rtcp_packet/extended_reports.h
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_packet/extended_reports.h b/webrtc/modules/rtp_rtcp/source/rtcp_packet/extended_reports.h
|
| index c433477707a57f6100c650ff01e3ec54d5dcacb3..592ac3fe43f2777823f20b65a6c473b28628c9c1 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtcp_packet/extended_reports.h
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtcp_packet/extended_reports.h
|
| @@ -18,6 +18,7 @@
|
| #include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h"
|
| #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/dlrr.h"
|
| #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/rrtr.h"
|
| +#include "webrtc/modules/rtp_rtcp/source/rtcp_packet/target_bitrate.h"
|
| #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/voip_metric.h"
|
|
|
| namespace webrtc {
|
| @@ -40,6 +41,7 @@ class ExtendedReports : public RtcpPacket {
|
| void SetRrtr(const Rrtr& rrtr);
|
| void AddDlrrItem(const ReceiveTimeInfo& time_info);
|
| void SetVoipMetric(const VoipMetric& voip_metric);
|
| + void SetTargetBitrate(const TargetBitrate& target_bitrate);
|
|
|
| uint32_t sender_ssrc() const { return sender_ssrc_; }
|
| const rtc::Optional<Rrtr>& rrtr() const { return rrtr_block_; }
|
| @@ -47,6 +49,9 @@ class ExtendedReports : public RtcpPacket {
|
| const rtc::Optional<VoipMetric>& voip_metric() const {
|
| return voip_metric_block_;
|
| }
|
| + const rtc::Optional<TargetBitrate>& target_bitrate() {
|
| + return target_bitrate_;
|
| + }
|
|
|
| protected:
|
| bool Create(uint8_t* packet,
|
| @@ -59,7 +64,7 @@ class ExtendedReports : public RtcpPacket {
|
|
|
| size_t BlockLength() const override {
|
| return kHeaderLength + kXrBaseLength + RrtrLength() + DlrrLength() +
|
| - VoipMetricLength();
|
| + VoipMetricLength() + TargetBitrateLength();
|
| }
|
|
|
| size_t RrtrLength() const { return rrtr_block_ ? Rrtr::kLength : 0; }
|
| @@ -67,15 +72,18 @@ class ExtendedReports : public RtcpPacket {
|
| size_t VoipMetricLength() const {
|
| return voip_metric_block_ ? VoipMetric::kLength : 0;
|
| }
|
| + size_t TargetBitrateLength() const;
|
|
|
| void ParseRrtrBlock(const uint8_t* block, uint16_t block_length);
|
| void ParseDlrrBlock(const uint8_t* block, uint16_t block_length);
|
| void ParseVoipMetricBlock(const uint8_t* block, uint16_t block_length);
|
| + void ParseTargetBitrateBlock(const uint8_t* block, uint16_t block_length);
|
|
|
| uint32_t sender_ssrc_;
|
| rtc::Optional<Rrtr> rrtr_block_;
|
| Dlrr dlrr_block_; // Dlrr without items treated same as no dlrr block.
|
| rtc::Optional<VoipMetric> voip_metric_block_;
|
| + rtc::Optional<TargetBitrate> target_bitrate_;
|
|
|
| RTC_DISALLOW_COPY_AND_ASSIGN(ExtendedReports);
|
| };
|
|
|