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..2c9de5e34096811f19f3b8e667f0ee0acfe4963d 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,18 @@ 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) { |
+ if (lhs.send_time_ms == rhs.send_time_ms) |
+ return lhs.sequence_number < rhs.sequence_number; |
+ return lhs.send_time_ms < rhs.send_time_ms; |
+ } |
+ return lhs.arrival_time_ms < rhs.arrival_time_ms; |
sprang_webrtc
2016/04/27 09:05:17
Can you restructure this to avoid nesting?
eg
if
|
+ } |
+}; |
+ |
TransportFeedbackAdapter::TransportFeedbackAdapter( |
BitrateController* bitrate_controller, |
Clock* clock) |
@@ -104,6 +117,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 |