Chromium Code Reviews| Index: webrtc/modules/pacing/paced_sender.cc |
| diff --git a/webrtc/modules/pacing/paced_sender.cc b/webrtc/modules/pacing/paced_sender.cc |
| index dcdf64e97e9bd8cfdf0e80891d2ef991354e08dd..943424360bb0cb9fbb94e8e073bc917c52848205 100644 |
| --- a/webrtc/modules/pacing/paced_sender.cc |
| +++ b/webrtc/modules/pacing/paced_sender.cc |
| @@ -358,10 +358,9 @@ int32_t PacedSender::Process() { |
| CriticalSectionScoped cs(critsect_.get()); |
| int64_t elapsed_time_ms = (now_us - time_last_update_us_ + 500) / 1000; |
| time_last_update_us_ = now_us; |
| - if (paused_) |
| - return 0; |
| int target_bitrate_kbps = max_bitrate_kbps_; |
| - if (elapsed_time_ms > 0) { |
| + // TODO(holmer): Remove the !paused_ check when issue 5307 has been fixed. |
| + if (!paused_ && elapsed_time_ms > 0) { |
| size_t queue_size_bytes = packets_->SizeInBytes(); |
| if (queue_size_bytes > 0) { |
| // Assuming equal size packets and input/output rate, the average packet |
| @@ -373,7 +372,7 @@ int32_t PacedSender::Process() { |
| int min_bitrate_needed_kbps = |
| static_cast<int>(queue_size_bytes * 8 / avg_time_left_ms); |
| if (min_bitrate_needed_kbps > target_bitrate_kbps) |
| - target_bitrate_kbps = min_bitrate_needed_kbps; |
| + target_bitrate_kbps = min_bitrate_needed_kbps; |
|
mflodman
2015/12/04 15:25:19
Indentation.
stefan-webrtc
2015/12/04 15:30:22
Done.
|
| } |
| media_budget_->set_target_rate_kbps(target_bitrate_kbps); |
| @@ -389,7 +388,11 @@ int32_t PacedSender::Process() { |
| // 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(); |
| - if (SendPacket(packet)) { |
| + |
| + // TODO(holmer): Because of this bug issue 5307 we have to send audio |
| + // packets even when the pacer is paused. Here we assume audio packets are |
| + // always high priority and that they are the only high priority packets. |
| + if ((!paused_ || packet.priority == kHighPriority) && SendPacket(packet)) { |
| // Send succeeded, remove it from the queue. |
| packets_->FinalizePop(packet); |
| if (prober_->IsProbing()) |
| @@ -401,7 +404,8 @@ int32_t PacedSender::Process() { |
| } |
| } |
| - if (!packets_->Empty()) |
| + // TODO(holmer): Remove the paused_ check when issue 5307 has been fixed. |
| + if (paused_ || !packets_->Empty()) |
| return 0; |
| size_t padding_needed; |