| Index: webrtc/modules/pacing/bitrate_prober.cc | 
| diff --git a/webrtc/modules/pacing/bitrate_prober.cc b/webrtc/modules/pacing/bitrate_prober.cc | 
| index 39fe0f4fd286031bcf828d929c05c2741fdff6e9..dd9ee3325758d93ee9e930a3ce97deb3ff6dd8b8 100644 | 
| --- a/webrtc/modules/pacing/bitrate_prober.cc | 
| +++ b/webrtc/modules/pacing/bitrate_prober.cc | 
| @@ -88,16 +88,18 @@ void BitrateProber::CreateProbeCluster(int bitrate_bps, int64_t now_ms) { | 
| } | 
|  | 
| ProbeCluster cluster; | 
| -  cluster.min_probes = kMinProbePacketsSent; | 
| -  cluster.min_bytes = bitrate_bps * kMinProbeDurationMs / 8000; | 
| -  cluster.bitrate_bps = bitrate_bps; | 
| cluster.time_created_ms = now_ms; | 
| -  cluster.id = next_cluster_id_++; | 
| +  cluster.pace_info.probe_cluster_min_probes = kMinProbePacketsSent; | 
| +  cluster.pace_info.probe_cluster_min_bytes = | 
| +      bitrate_bps * kMinProbeDurationMs / 8000; | 
| +  cluster.pace_info.send_bitrate_bps = bitrate_bps; | 
| +  cluster.pace_info.probe_cluster_id = next_cluster_id_++; | 
| clusters_.push(cluster); | 
|  | 
| LOG(LS_INFO) << "Probe cluster (bitrate:min bytes:min packets): (" | 
| -               << cluster.bitrate_bps << ":" << cluster.min_bytes << ":" | 
| -               << cluster.min_probes << ")"; | 
| +               << cluster.pace_info.send_bitrate_bps << ":" | 
| +               << cluster.pace_info.probe_cluster_min_bytes << ":" | 
| +               << cluster.pace_info.probe_cluster_min_probes << ")"; | 
| // If we are already probing, continue to do so. Otherwise set it to | 
| // kInactive and wait for OnIncomingPacket to start the probing. | 
| if (probing_state_ != ProbingState::kActive) | 
| @@ -112,7 +114,7 @@ void BitrateProber::ResetState(int64_t now_ms) { | 
| clusters.swap(clusters_); | 
| while (!clusters.empty()) { | 
| if (clusters.front().retries < kMaxRetryAttempts) { | 
| -      CreateProbeCluster(clusters.front().bitrate_bps, now_ms); | 
| +      CreateProbeCluster(clusters.front().pace_info.send_bitrate_bps, now_ms); | 
| clusters_.back().retries = clusters.front().retries + 1; | 
| } | 
| clusters.pop(); | 
| @@ -138,10 +140,10 @@ int BitrateProber::TimeUntilNextProbe(int64_t now_ms) { | 
| return std::max(time_until_probe_ms, 0); | 
| } | 
|  | 
| -int BitrateProber::CurrentClusterId() const { | 
| +PacedPacketInfo BitrateProber::CurrentCluster() const { | 
| RTC_DCHECK(!clusters_.empty()); | 
| RTC_DCHECK(ProbingState::kActive == probing_state_); | 
| -  return clusters_.front().id; | 
| +  return clusters_.front().pace_info; | 
| } | 
|  | 
| // Probe size is recommended based on the probe bitrate required. We choose | 
| @@ -149,7 +151,8 @@ int BitrateProber::CurrentClusterId() const { | 
| // feasible. | 
| size_t BitrateProber::RecommendedMinProbeSize() const { | 
| RTC_DCHECK(!clusters_.empty()); | 
| -  return clusters_.front().bitrate_bps * 2 * kMinProbeDeltaMs / (8 * 1000); | 
| +  return clusters_.front().pace_info.send_bitrate_bps * 2 * kMinProbeDeltaMs / | 
| +         (8 * 1000); | 
| } | 
|  | 
| void BitrateProber::ProbeSent(int64_t now_ms, size_t bytes) { | 
| @@ -165,8 +168,8 @@ void BitrateProber::ProbeSent(int64_t now_ms, size_t bytes) { | 
| cluster->sent_bytes += static_cast<int>(bytes); | 
| cluster->sent_probes += 1; | 
| next_probe_time_ms_ = GetNextProbeTime(clusters_.front()); | 
| -    if (cluster->sent_bytes >= cluster->min_bytes && | 
| -        cluster->sent_probes >= cluster->min_probes) { | 
| +    if (cluster->sent_bytes >= cluster->pace_info.probe_cluster_min_bytes && | 
| +        cluster->sent_probes >= cluster->pace_info.probe_cluster_min_probes) { | 
| clusters_.pop(); | 
| } | 
| if (clusters_.empty()) | 
| @@ -175,13 +178,14 @@ void BitrateProber::ProbeSent(int64_t now_ms, size_t bytes) { | 
| } | 
|  | 
| int64_t BitrateProber::GetNextProbeTime(const ProbeCluster& cluster) { | 
| -  RTC_CHECK_GT(cluster.bitrate_bps, 0); | 
| +  RTC_CHECK_GT(cluster.pace_info.send_bitrate_bps, 0); | 
| RTC_CHECK_GE(cluster.time_started_ms, 0); | 
|  | 
| // Compute the time delta from the cluster start to ensure probe bitrate stays | 
| // close to the target bitrate. Result is in milliseconds. | 
| -  int64_t delta_ms = (8000ll * cluster.sent_bytes + cluster.bitrate_bps / 2) / | 
| -                  cluster.bitrate_bps; | 
| +  int64_t delta_ms = | 
| +      (8000ll * cluster.sent_bytes + cluster.pace_info.send_bitrate_bps / 2) / | 
| +      cluster.pace_info.send_bitrate_bps; | 
| return cluster.time_started_ms + delta_ms; | 
| } | 
|  | 
|  |