 Chromium Code Reviews
 Chromium Code Reviews Issue 2182603002:
  Bitrate prober and paced sender improvements  (Closed) 
  Base URL: https://chromium.googlesource.com/external/webrtc.git@master
    
  
    Issue 2182603002:
  Bitrate prober and paced sender improvements  (Closed) 
  Base URL: https://chromium.googlesource.com/external/webrtc.git@master| Index: webrtc/modules/pacing/paced_sender.cc | 
| diff --git a/webrtc/modules/pacing/paced_sender.cc b/webrtc/modules/pacing/paced_sender.cc | 
| index ae9743434029335af98a76a0cc34875aa3ff1552..7e7631471de3d2230275632f5c822cb8dda5d42d 100644 | 
| --- a/webrtc/modules/pacing/paced_sender.cc | 
| +++ b/webrtc/modules/pacing/paced_sender.cc | 
| @@ -250,7 +250,6 @@ PacedSender::PacedSender(Clock* clock, PacketSender* packet_sender) | 
| packet_sender_(packet_sender), | 
| critsect_(CriticalSectionWrapper::CreateCriticalSection()), | 
| paused_(false), | 
| - probing_enabled_(true), | 
| media_budget_(new paced_sender::IntervalBudget(0)), | 
| padding_budget_(new paced_sender::IntervalBudget(0)), | 
| prober_(new BitrateProber()), | 
| @@ -278,7 +277,8 @@ void PacedSender::Resume() { | 
| void PacedSender::SetProbingEnabled(bool enabled) { | 
| RTC_CHECK_EQ(0u, packet_counter_); | 
| - probing_enabled_ = enabled; | 
| + CriticalSectionScoped cs(critsect_.get()); | 
| + prober_->SetEnabled(enabled); | 
| } | 
| void PacedSender::SetEstimatedBitrate(uint32_t bitrate_bps) { | 
| @@ -313,8 +313,6 @@ void PacedSender::InsertPacket(RtpPacketSender::Priority priority, | 
| RTC_DCHECK(estimated_bitrate_bps_ > 0) | 
| << "SetEstimatedBitrate must be called before InsertPacket."; | 
| - if (probing_enabled_ && !prober_->IsProbing()) | 
| - prober_->SetEnabled(true); | 
| int64_t now_ms = clock_->TimeInMilliseconds(); | 
| prober_->OnIncomingPacket(estimated_bitrate_bps_, bytes, now_ms); | 
| @@ -372,8 +370,9 @@ void PacedSender::Process() { | 
| int64_t elapsed_time_ms = (now_us - time_last_update_us_ + 500) / 1000; | 
| time_last_update_us_ = now_us; | 
| int target_bitrate_kbps = pacing_bitrate_kbps_; | 
| - // TODO(holmer): Remove the !paused_ check when issue 5307 has been fixed. | 
| - if (!paused_ && elapsed_time_ms > 0) { | 
| + if (paused_) | 
| + return; | 
| + if (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 | 
| @@ -418,8 +417,7 @@ void PacedSender::Process() { | 
| } | 
| } | 
| - // TODO(holmer): Remove the paused_ check when issue 5307 has been fixed. | 
| - if (paused_ || !packets_->Empty()) | 
| + if (!packets_->Empty()) | 
| return; | 
| // We can not send padding unless a normal packet has first been sent. If we | 
| @@ -435,10 +433,7 @@ void PacedSender::Process() { | 
| bool PacedSender::SendPacket(const paced_sender::Packet& packet, | 
| int probe_cluster_id) { | 
| - // 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) | 
| 
stefan-webrtc
2016/07/29 07:12:07
If there're still bugs in the network layer code w
 
Irfan
2016/08/01 18:29:47
ok I will pull the paused changes into a seperate
 | 
| + if (paused_) | 
| return false; | 
| critsect_->Leave(); | 
| const bool success = packet_sender_->TimeToSendPacket( |