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); |
}; |