| Index: webrtc/modules/rtp_rtcp/source/rtp_sender.h
 | 
| diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender.h b/webrtc/modules/rtp_rtcp/source/rtp_sender.h
 | 
| index f501d27a723c62f745b3120d76e7e338734e1da0..ffce903cb0475d45572cee0a8b173c999280bddc 100644
 | 
| --- a/webrtc/modules/rtp_rtcp/source/rtp_sender.h
 | 
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.h
 | 
| @@ -24,6 +24,7 @@
 | 
|  #include "webrtc/common_types.h"
 | 
|  #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 | 
|  #include "webrtc/modules/rtp_rtcp/source/bitrate.h"
 | 
| +#include "webrtc/modules/rtp_rtcp/source/playout_delay_oracle.h"
 | 
|  #include "webrtc/modules/rtp_rtcp/source/rtp_header_extension.h"
 | 
|  #include "webrtc/modules/rtp_rtcp/source/rtp_packet_history.h"
 | 
|  #include "webrtc/modules/rtp_rtcp/source/rtp_rtcp_config.h"
 | 
| @@ -180,6 +181,9 @@ class RTPSender : public RTPSenderInterface {
 | 
|    uint8_t BuildVideoRotationExtension(uint8_t* data_buffer) const;
 | 
|    uint8_t BuildTransportSequenceNumberExtension(uint8_t* data_buffer,
 | 
|                                                  uint16_t sequence_number) const;
 | 
| +  uint8_t BuildPlayoutDelayExtension(uint8_t* data_buffer,
 | 
| +                                     uint16_t min_playout_delay_ms,
 | 
| +                                     uint16_t max_playout_delay_ms) const;
 | 
|  
 | 
|    // Verifies that the specified extension is registered, and that it is
 | 
|    // present in rtp packet. If extension is not registered kNotRegistered is
 | 
| @@ -229,6 +233,9 @@ class RTPSender : public RTPSenderInterface {
 | 
|  
 | 
|    bool ProcessNACKBitRate(uint32_t now);
 | 
|  
 | 
| +  // Feedback to decide when to stop sending playout delay.
 | 
| +  void OnReceivedRtcpReceiverReport(const ReportBlockList& report_blocks);
 | 
| +
 | 
|    // RTX.
 | 
|    void SetRtxStatus(int mode);
 | 
|    int RtxStatus() const;
 | 
| @@ -381,6 +388,12 @@ class RTPSender : public RTPSenderInterface {
 | 
|                                       size_t rtp_packet_length,
 | 
|                                       const RTPHeader& rtp_header) const;
 | 
|  
 | 
| +  void UpdatePlayoutDelayLimits(uint8_t* rtp_packet,
 | 
| +                                size_t rtp_packet_length,
 | 
| +                                const RTPHeader& rtp_header,
 | 
| +                                uint16_t min_playout_delay,
 | 
| +                                uint16_t max_playout_delay) const;
 | 
| +
 | 
|    bool AllocateTransportSequenceNumber(int* packet_id) const;
 | 
|  
 | 
|    void UpdateRtpStats(const uint8_t* buffer,
 | 
| @@ -459,6 +472,11 @@ class RTPSender : public RTPSenderInterface {
 | 
|    size_t nack_byte_count_[NACK_BYTECOUNT_SIZE];
 | 
|    Bitrate nack_bitrate_;
 | 
|  
 | 
| +  // Tracks the current request for playout delay limits from application
 | 
| +  // and decides whether the current RTP frame should include the playout
 | 
| +  // delay extension on header.
 | 
| +  PlayoutDelayOracle playout_delay_oracle_;
 | 
| +
 | 
|    RTPPacketHistory packet_history_;
 | 
|  
 | 
|    // Statistics
 | 
| 
 |