Index: webrtc/modules/congestion_controller/transport_feedback_adapter.cc |
diff --git a/webrtc/modules/congestion_controller/transport_feedback_adapter.cc b/webrtc/modules/congestion_controller/transport_feedback_adapter.cc |
index 87fab26c8af5c20f883cecc27e3bb17c97debc92..52f8e5118d6b5d0ef301a6ca2a89462389bcc709 100644 |
--- a/webrtc/modules/congestion_controller/transport_feedback_adapter.cc |
+++ b/webrtc/modules/congestion_controller/transport_feedback_adapter.cc |
@@ -24,7 +24,7 @@ |
namespace webrtc { |
const int64_t kNoTimestamp = -1; |
-const int64_t kSendTimeHistoryWindowMs = 10000; |
+const int64_t kSendTimeHistoryWindowMs = 60000; |
const int64_t kBaseTimestampScaleFactor = |
rtcp::TransportFeedback::kDeltaScaleFactor * (1 << 8); |
const int64_t kBaseTimestampRangeSizeUs = kBaseTimestampScaleFactor * (1 << 24); |
@@ -44,7 +44,8 @@ TransportFeedbackAdapter::TransportFeedbackAdapter( |
Clock* clock, |
BitrateController* bitrate_controller) |
: send_side_bwe_with_overhead_(webrtc::field_trial::FindFullName( |
- "WebRTC-SendSideBwe-WithOverhead") == "Enabled"), |
+ "WebRTC-SendSideBwe-WithOverhead") == |
+ "Enabled"), |
transport_overhead_bytes_per_packet_(0), |
send_time_history_(clock, kSendTimeHistoryWindowMs), |
clock_(clock), |
@@ -118,21 +119,25 @@ std::vector<PacketInfo> TransportFeedbackAdapter::GetPacketFeedbackVector( |
} |
last_timestamp_us_ = timestamp_us; |
+ auto received_packets = feedback.GetReceivedPackets(); |
std::vector<PacketInfo> packet_feedback_vector; |
- packet_feedback_vector.reserve(feedback.GetReceivedPackets().size()); |
+ packet_feedback_vector.reserve(received_packets.size()); |
+ if (received_packets.empty()) { |
+ LOG(LS_INFO) << "Empty transport feedback packet received."; |
+ return packet_feedback_vector; |
+ } |
{ |
rtc::CritScope cs(&lock_); |
size_t failed_lookups = 0; |
int64_t offset_us = 0; |
+ int64_t timestamp_ms = 0; |
for (const auto& packet : feedback.GetReceivedPackets()) { |
offset_us += packet.delta_us(); |
- int64_t timestamp_ms = current_offset_ms_ + (offset_us / 1000); |
+ timestamp_ms = current_offset_ms_ + (offset_us / 1000); |
PacketInfo info(timestamp_ms, packet.sequence_number()); |
- if (send_time_history_.GetInfo(&info, true) && info.send_time_ms >= 0) { |
- packet_feedback_vector.push_back(info); |
- } else { |
+ if (!send_time_history_.GetInfo(&info, true)) |
stefan-webrtc
2017/02/10 14:15:11
With this change we will add also acks which have
|
++failed_lookups; |
- } |
+ packet_feedback_vector.push_back(info); |
} |
std::sort(packet_feedback_vector.begin(), packet_feedback_vector.end(), |
PacketInfoComparator()); |
@@ -154,8 +159,9 @@ void TransportFeedbackAdapter::OnTransportFeedback( |
result = delay_based_bwe_->IncomingPacketFeedbackVector( |
last_packet_feedback_vector_); |
} |
- if (result.updated) |
+ if (result.updated) { |
bitrate_controller_->OnDelayBasedBweResult(result); |
+ } |
} |
std::vector<PacketInfo> TransportFeedbackAdapter::GetTransportFeedbackVector() |