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

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

Issue 1925643002: Reland: Deliver reordered packets in arrival time order after parsing feedback message. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 8 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
« no previous file with comments | « no previous file | webrtc/modules/remote_bitrate_estimator/transport_feedback_adapter_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/remote_bitrate_estimator/transport_feedback_adapter.cc
diff --git a/webrtc/modules/remote_bitrate_estimator/transport_feedback_adapter.cc b/webrtc/modules/remote_bitrate_estimator/transport_feedback_adapter.cc
index f7e07a5dc5194a56682770db206161cc2f6e642c..ed8b6e6d3a837b38654b665c053d9ba5688e7314 100644
--- a/webrtc/modules/remote_bitrate_estimator/transport_feedback_adapter.cc
+++ b/webrtc/modules/remote_bitrate_estimator/transport_feedback_adapter.cc
@@ -10,6 +10,7 @@
#include "webrtc/modules/remote_bitrate_estimator/transport_feedback_adapter.h"
+#include <algorithm>
#include <limits>
#include "webrtc/base/checks.h"
@@ -26,6 +27,17 @@ const int64_t kBaseTimestampScaleFactor =
rtcp::TransportFeedback::kDeltaScaleFactor * (1 << 8);
const int64_t kBaseTimestampRangeSizeUs = kBaseTimestampScaleFactor * (1 << 24);
+class PacketInfoComparator {
+ public:
+ inline bool operator()(const PacketInfo& lhs, const PacketInfo& rhs) {
+ if (lhs.arrival_time_ms != rhs.arrival_time_ms)
+ return lhs.arrival_time_ms < rhs.arrival_time_ms;
+ if (lhs.send_time_ms != rhs.send_time_ms)
+ return lhs.send_time_ms < rhs.send_time_ms;
+ return lhs.sequence_number < rhs.sequence_number;
+ }
+};
+
TransportFeedbackAdapter::TransportFeedbackAdapter(
BitrateController* bitrate_controller,
Clock* clock)
@@ -104,6 +116,8 @@ void TransportFeedbackAdapter::OnTransportFeedback(
}
++sequence_number;
}
+ std::sort(packet_feedback_vector.begin(), packet_feedback_vector.end(),
+ PacketInfoComparator());
RTC_DCHECK(delta_it == delta_vec.end());
if (failed_lookups > 0) {
LOG(LS_WARNING) << "Failed to lookup send time for " << failed_lookups
« no previous file with comments | « no previous file | webrtc/modules/remote_bitrate_estimator/transport_feedback_adapter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698