| Index: webrtc/modules/rtp_rtcp/source/rtcp_sender.h | 
| diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_sender.h b/webrtc/modules/rtp_rtcp/source/rtcp_sender.h | 
| index f59676685dbe81e27843953680f3b21ef155ff02..9c2a71499ad88152e3f9c18434387df98f34d413 100644 | 
| --- a/webrtc/modules/rtp_rtcp/source/rtcp_sender.h | 
| +++ b/webrtc/modules/rtp_rtcp/source/rtcp_sender.h | 
| @@ -21,6 +21,7 @@ | 
| #include "webrtc/api/call/transport.h" | 
| #include "webrtc/base/constructormagic.h" | 
| #include "webrtc/base/criticalsection.h" | 
| +#include "webrtc/base/optional.h" | 
| #include "webrtc/base/random.h" | 
| #include "webrtc/base/thread_annotations.h" | 
| #include "webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h" | 
| @@ -150,6 +151,7 @@ class RTCPSender { | 
| void SetCsrcs(const std::vector<uint32_t>& csrcs); | 
|  | 
| void SetTargetBitrate(unsigned int target_bitrate); | 
| +  void SetVideoBitrateAllocation(const BitrateAllocation& bitrate); | 
| bool SendFeedbackPacket(const rtcp::TransportFeedback& packet); | 
|  | 
| private: | 
| @@ -197,6 +199,9 @@ class RTCPSender { | 
| EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_); | 
| std::unique_ptr<rtcp::RtcpPacket> BuildDlrr(const RtcpContext& context) | 
| EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_); | 
| +  std::unique_ptr<rtcp::RtcpPacket> BuildTargetBitrate( | 
| +      const RtcpContext& context) | 
| +      EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_); | 
|  | 
| private: | 
| const bool audio_; | 
| @@ -265,6 +270,9 @@ class RTCPSender { | 
|  | 
| RTCPUtility::NackStats nack_stats_ GUARDED_BY(critical_section_rtcp_sender_); | 
|  | 
| +  rtc::Optional<BitrateAllocation> video_bitrate_allocation_ | 
| +      GUARDED_BY(critical_section_rtcp_sender_); | 
| + | 
| void SetFlag(RTCPPacketType type, bool is_volatile) | 
| EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_); | 
| void SetFlags(const std::set<RTCPPacketType>& types, bool is_volatile) | 
|  |