| Index: webrtc/modules/remote_bitrate_estimator/send_time_history.cc
|
| diff --git a/webrtc/modules/remote_bitrate_estimator/send_time_history.cc b/webrtc/modules/remote_bitrate_estimator/send_time_history.cc
|
| index 734a9207130116d78faec56706ac08f42f23a248..95b41b3ea3520b3cb9f431942d87e2fb724f1c83 100644
|
| --- a/webrtc/modules/remote_bitrate_estimator/send_time_history.cc
|
| +++ b/webrtc/modules/remote_bitrate_estimator/send_time_history.cc
|
| @@ -18,7 +18,9 @@ namespace webrtc {
|
|
|
| SendTimeHistory::SendTimeHistory(const Clock* clock,
|
| int64_t packet_age_limit_ms)
|
| - : clock_(clock), packet_age_limit_ms_(packet_age_limit_ms) {}
|
| + : clock_(clock),
|
| + packet_age_limit_ms_(packet_age_limit_ms),
|
| + latest_acked_seq_num_(-1) {}
|
|
|
| SendTimeHistory::~SendTimeHistory() {}
|
|
|
| @@ -52,6 +54,8 @@ bool SendTimeHistory::GetFeedback(PacketFeedback* packet_feedback,
|
| RTC_DCHECK(packet_feedback);
|
| int64_t unwrapped_seq_num =
|
| seq_num_unwrapper_.Unwrap(packet_feedback->sequence_number);
|
| + latest_acked_seq_num_ = std::max(unwrapped_seq_num, latest_acked_seq_num_);
|
| + RTC_DCHECK_GE(latest_acked_seq_num_, 0);
|
| auto it = history_.find(unwrapped_seq_num);
|
| if (it == history_.end())
|
| return false;
|
| @@ -66,4 +70,21 @@ bool SendTimeHistory::GetFeedback(PacketFeedback* packet_feedback,
|
| return true;
|
| }
|
|
|
| +size_t SendTimeHistory::GetOutstandingBytes(uint16_t local_net_id,
|
| + uint16_t remote_net_id) const {
|
| + size_t outstanding_bytes = 0;
|
| + auto unacked_it = history_.begin();
|
| + if (latest_acked_seq_num_ >= 0) {
|
| + unacked_it = history_.lower_bound(latest_acked_seq_num_);
|
| + }
|
| + for (; unacked_it != history_.end(); ++unacked_it) {
|
| + if (unacked_it->second.local_net_id == local_net_id &&
|
| + unacked_it->second.remote_net_id == remote_net_id &&
|
| + unacked_it->second.send_time_ms >= 0) {
|
| + outstanding_bytes += unacked_it->second.payload_size;
|
| + }
|
| + }
|
| + return outstanding_bytes;
|
| +}
|
| +
|
| } // namespace webrtc
|
|
|