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 5c4bacbaf2d8eb200ea129cc741100d1cf9f3dbf..c4be2b1c0b8b2fbccf11dbc23e483c6b9e8e8fed 100644 |
--- a/webrtc/modules/congestion_controller/transport_feedback_adapter.cc |
+++ b/webrtc/modules/congestion_controller/transport_feedback_adapter.cc |
@@ -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)) |
++failed_lookups; |
- } |
+ packet_feedback_vector.push_back(info); |
} |
std::sort(packet_feedback_vector.begin(), packet_feedback_vector.end(), |
PacketInfoComparator()); |