Use a smaller size of sequence number set, to improve performance
Bug: webrtc:8857
Change-Id: I78b4e6d191b1b7eb96f5109323ef48b24b99c7c2
Reviewed-on: https://webrtc-review.googlesource.com/49361
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22286}
diff --git a/video/video_send_stream.cc b/video/video_send_stream.cc
index 42a613c..946eed2 100644
--- a/video/video_send_stream.cc
+++ b/video/video_send_stream.cc
@@ -11,9 +11,9 @@
#include <algorithm>
#include <cmath>
-#include <set>
#include <sstream>
#include <string>
+#include <unordered_set>
#include <utility>
#include <vector>
@@ -41,7 +41,11 @@
namespace webrtc {
static const int kMinSendSidePacketHistorySize = 600;
-static const int kSendSideSeqNumSetMaxSize = 15000;
+
+// Assume an average video stream has around 3 packets per frame (1 mbps / 30
+// fps / 1400B) A sequence number set with size 5500 will be able to store
+// packet sequence number for at least last 60 seconds.
+static const int kSendSideSeqNumSetMaxSize = 5500;
namespace {
@@ -414,7 +418,7 @@
RTC_GUARDED_BY(overhead_bytes_per_packet_crit_);
size_t transport_overhead_bytes_per_packet_;
- std::set<uint16_t> feedback_packet_seq_num_set_;
+ std::unordered_set<uint16_t> feedback_packet_seq_num_set_;
std::vector<bool> loss_mask_vector_;
};