| Index: webrtc/voice_engine/transport_feedback_packet_loss_tracker.h
 | 
| diff --git a/webrtc/voice_engine/transport_feedback_packet_loss_tracker.h b/webrtc/voice_engine/transport_feedback_packet_loss_tracker.h
 | 
| index 099c20e92feae469c06591eaf578fba10f3d54ce..bf8fcef4664139060b2a96a2485ca0321a0b702c 100644
 | 
| --- a/webrtc/voice_engine/transport_feedback_packet_loss_tracker.h
 | 
| +++ b/webrtc/voice_engine/transport_feedback_packet_loss_tracker.h
 | 
| @@ -26,20 +26,24 @@ class TransportFeedbackPacketLossTracker final {
 | 
|   public:
 | 
|    // Up to |max_window_size| latest packet statuses wil be used for calculating
 | 
|    // the packet loss metrics. When less than |min_window_size| samples are
 | 
| -  // available for making a reliable estimation, GetPacketLossRates() will
 | 
| -  // return false to indicate packet loss metrics are not ready.
 | 
| +  // available for making a reliable estimation, neither PLR nor RPLR would
 | 
| +  // be considered validly computable.
 | 
| +  // When |min_pairs_num_for_rplr| pairs or more are available, RPLR is reliably
 | 
| +  // computable. This is independent of PLR being computable.
 | 
|    TransportFeedbackPacketLossTracker(size_t min_window_size,
 | 
| -                                     size_t max_window_size);
 | 
| +                                     size_t max_window_size,
 | 
| +                                     size_t min_pairs_num_for_rplr);
 | 
|  
 | 
|    void OnReceivedTransportFeedback(
 | 
|        const rtcp::TransportFeedbackInterface& feedback);
 | 
|  
 | 
| -  // Returns true if packet loss rate and packet loss episode duration are ready
 | 
| -  // and assigns respective values to |*packet_loss_rate| and
 | 
| -  // |*consecutive_packet_loss_rate|. Continuous packet loss rate is defined as
 | 
| -  // the probability of losing two adjacent packets.
 | 
| -  bool GetPacketLossRates(float* packet_loss_rate,
 | 
| -                          float* consecutive_packet_loss_rate) const;
 | 
| +  // Returns the packet loss rate, if the window has enough data to
 | 
| +  // reliably compute it.
 | 
| +  rtc::Optional<float> GetPacketLossRate() const;
 | 
| +
 | 
| +  // Returns the first-order-FEC recoverable packet loss rate, if the window
 | 
| +  // has enough data to reliably compute it.
 | 
| +  rtc::Optional<float> GetRecoverablePacketLossRate() const;
 | 
|  
 | 
|    // Verifies that the internal states are correct. Only used for tests.
 | 
|    void Validate() const;
 | 
| @@ -67,6 +71,7 @@ class TransportFeedbackPacketLossTracker final {
 | 
|  
 | 
|    const size_t min_window_size_;
 | 
|    const size_t max_window_size_;
 | 
| +  const size_t min_pairs_num_for_rplr_;
 | 
|  
 | 
|    PacketStatus packet_status_window_;
 | 
|    // |ref_packet_status_| points to the oldest item in |packet_status_window_|.
 | 
| @@ -74,8 +79,9 @@ class TransportFeedbackPacketLossTracker final {
 | 
|  
 | 
|    size_t num_received_packets_;
 | 
|    size_t num_lost_packets_;
 | 
| -  size_t num_consecutive_losses_;
 | 
| -  size_t num_consecutive_old_reports_;
 | 
| +  size_t num_known_status_pairs_;
 | 
| +  size_t num_loss_followed_by_reception_pairs_;
 | 
| +  size_t num_consecutive_old_reports_;  // TODO(eladalon): Upcoming CL removes.
 | 
|  };
 | 
|  
 | 
|  }  // namespace webrtc
 | 
| 
 |