| Index: webrtc/modules/pacing/paced_sender.cc
|
| diff --git a/webrtc/modules/pacing/paced_sender.cc b/webrtc/modules/pacing/paced_sender.cc
|
| index 167be23ab624fda0c7338203dfe9fffb94218257..397e1181e742c9bdfcbcd79e6a90ec9670409b31 100644
|
| --- a/webrtc/modules/pacing/paced_sender.cc
|
| +++ b/webrtc/modules/pacing/paced_sender.cc
|
| @@ -389,21 +389,22 @@ void PacedSender::Process() {
|
| int64_t delta_time_ms = std::min(kMaxIntervalTimeMs, elapsed_time_ms);
|
| UpdateBytesPerInterval(delta_time_ms);
|
| }
|
| +
|
| + bool is_probing = prober_->IsProbing();
|
| + int probe_cluster_id = is_probing ? prober_->CurrentClusterId() : -1;
|
| while (!packets_->Empty()) {
|
| - if (media_budget_->bytes_remaining() == 0 && !prober_->IsProbing())
|
| + if (media_budget_->bytes_remaining() == 0 && !is_probing)
|
| return;
|
|
|
| // Since we need to release the lock in order to send, we first pop the
|
| // element from the priority queue but keep it in storage, so that we can
|
| // reinsert it if send fails.
|
| const paced_sender::Packet& packet = packets_->BeginPop();
|
| - int probe_cluster_id =
|
| - prober_->IsProbing() ? prober_->CurrentClusterId() : -1;
|
|
|
| if (SendPacket(packet, probe_cluster_id)) {
|
| // Send succeeded, remove it from the queue.
|
| packets_->FinalizePop(packet);
|
| - if (prober_->IsProbing())
|
| + if (is_probing)
|
| return;
|
| } else {
|
| // Send failed, put it back into the queue.
|
| @@ -417,14 +418,14 @@ void PacedSender::Process() {
|
| return;
|
|
|
| size_t padding_needed;
|
| - if (prober_->IsProbing()) {
|
| + if (is_probing) {
|
| padding_needed = prober_->RecommendedPacketSize();
|
| } else {
|
| padding_needed = padding_budget_->bytes_remaining();
|
| }
|
|
|
| if (padding_needed > 0)
|
| - SendPadding(static_cast<size_t>(padding_needed));
|
| + SendPadding(static_cast<size_t>(padding_needed), probe_cluster_id);
|
| }
|
|
|
| bool PacedSender::SendPacket(const paced_sender::Packet& packet,
|
| @@ -454,9 +455,10 @@ bool PacedSender::SendPacket(const paced_sender::Packet& packet,
|
| return success;
|
| }
|
|
|
| -void PacedSender::SendPadding(size_t padding_needed) {
|
| +void PacedSender::SendPadding(size_t padding_needed, int probe_cluster_id) {
|
| critsect_->Leave();
|
| - size_t bytes_sent = packet_sender_->TimeToSendPadding(padding_needed);
|
| + size_t bytes_sent =
|
| + packet_sender_->TimeToSendPadding(padding_needed, probe_cluster_id);
|
| critsect_->Enter();
|
|
|
| if (bytes_sent > 0) {
|
|
|