Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(185)

Unified Diff: webrtc/modules/congestion_controller/transport_feedback_adapter.cc

Issue 2684353004: Reduce the BWE with 50% when feedback is received too late. (Closed)
Patch Set: Updated comment. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());

Powered by Google App Engine
This is Rietveld 408576698