measure ice candidate poolsize setting for different bundle policys
The ICE candidate pool size defined in
https://w3c.github.io/webrtc-pc/#dom-rtcconfiguration-icecandidatepoolsize
is an optimization and it may be desirable to restrict the maximum amount of
the pre-gathered components or limit the usage to the max-bundle policy.
BUG=webrtc:12383
Change-Id: I24a6434fb55b4d7f4471078785712996182f394a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/209701
Reviewed-by: Justin Uberti <juberti@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33442}
diff --git a/pc/peer_connection.cc b/pc/peer_connection.cc
index 1766bf5..e3a4b27 100644
--- a/pc/peer_connection.cc
+++ b/pc/peer_connection.cc
@@ -1817,6 +1817,29 @@
}
RTC_HISTOGRAM_ENUMERATION("WebRTC.PeerConnection.BundlePolicy", policy,
kBundlePolicyUsageMax);
+
+ // Record configured ice candidate pool size depending on the
+ // BUNDLE policy. See
+ // https://w3c.github.io/webrtc-pc/#dom-rtcconfiguration-icecandidatepoolsize
+ // The ICE candidate pool size is an optimization and it may be desirable
+ // to restrict the maximum size of the pre-gathered candidates.
+ switch (configuration_.bundle_policy) {
+ case kBundlePolicyBalanced:
+ RTC_HISTOGRAM_COUNTS_LINEAR(
+ "WebRTC.PeerConnection.CandidatePoolUsage.Balanced",
+ configuration_.ice_candidate_pool_size, 0, 255, 256);
+ break;
+ case kBundlePolicyMaxBundle:
+ RTC_HISTOGRAM_COUNTS_LINEAR(
+ "WebRTC.PeerConnection.CandidatePoolUsage.MaxBundle",
+ configuration_.ice_candidate_pool_size, 0, 255, 256);
+ break;
+ case kBundlePolicyMaxCompat:
+ RTC_HISTOGRAM_COUNTS_LINEAR(
+ "WebRTC.PeerConnection.CandidatePoolUsage.MaxCompat",
+ configuration_.ice_candidate_pool_size, 0, 255, 256);
+ break;
+ }
}
}