Index: webrtc/modules/pacing/paced_sender.cc |
diff --git a/webrtc/modules/pacing/paced_sender.cc b/webrtc/modules/pacing/paced_sender.cc |
index 55c361b085080e6ac6e7cd3a2c65d2199cf1a7af..6a7d19a25169f7d3ca45d7a8057619d35c9aef9f 100644 |
--- a/webrtc/modules/pacing/paced_sender.cc |
+++ b/webrtc/modules/pacing/paced_sender.cc |
@@ -219,7 +219,6 @@ PacedSender::PacedSender(Clock* clock, |
: clock_(clock), |
callback_(callback), |
critsect_(CriticalSectionWrapper::CreateCriticalSection()), |
- enabled_(true), |
paused_(false), |
probing_enabled_(true), |
media_budget_(new paced_sender::IntervalBudget(max_bitrate_kbps)), |
@@ -249,16 +248,6 @@ void PacedSender::SetProbingEnabled(bool enabled) { |
probing_enabled_ = enabled; |
} |
-void PacedSender::SetStatus(bool enable) { |
- CriticalSectionScoped cs(critsect_.get()); |
- enabled_ = enable; |
-} |
- |
-bool PacedSender::Enabled() const { |
- CriticalSectionScoped cs(critsect_.get()); |
- return enabled_; |
-} |
- |
void PacedSender::UpdateBitrate(int bitrate_kbps, |
int max_bitrate_kbps, |
int min_bitrate_kbps) { |
@@ -268,17 +257,14 @@ void PacedSender::UpdateBitrate(int bitrate_kbps, |
bitrate_bps_ = 1000 * bitrate_kbps; |
} |
-bool PacedSender::SendPacket(RtpPacketSender::Priority priority, |
- uint32_t ssrc, |
- uint16_t sequence_number, |
- int64_t capture_time_ms, |
- size_t bytes, |
- bool retransmission) { |
+void PacedSender::InsertPacket(RtpPacketSender::Priority priority, |
+ uint32_t ssrc, |
+ uint16_t sequence_number, |
+ int64_t capture_time_ms, |
+ size_t bytes, |
+ bool retransmission) { |
CriticalSectionScoped cs(critsect_.get()); |
- if (!enabled_) { |
- return true; // We can send now. |
- } |
if (probing_enabled_ && !prober_->IsProbing()) { |
prober_->SetEnabled(true); |
} |
@@ -291,7 +277,6 @@ bool PacedSender::SendPacket(RtpPacketSender::Priority priority, |
packets_->Push(paced_sender::Packet( |
priority, ssrc, sequence_number, capture_time_ms, |
clock_->TimeInMilliseconds(), bytes, retransmission, packet_counter_++)); |
- return false; |
} |
int64_t PacedSender::ExpectedQueueTimeMs() const { |
@@ -334,48 +319,45 @@ 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 (!enabled_) { |
+ if (paused_) |
return 0; |
+ if (elapsed_time_ms > 0) { |
+ int64_t delta_time_ms = std::min(kMaxIntervalTimeMs, elapsed_time_ms); |
+ UpdateBytesPerInterval(delta_time_ms); |
} |
- if (!paused_) { |
- if (elapsed_time_ms > 0) { |
- int64_t delta_time_ms = std::min(kMaxIntervalTimeMs, elapsed_time_ms); |
- UpdateBytesPerInterval(delta_time_ms); |
+ while (!packets_->Empty()) { |
+ if (media_budget_->bytes_remaining() == 0 && !prober_->IsProbing()) { |
+ return 0; |
} |
- while (!packets_->Empty()) { |
- if (media_budget_->bytes_remaining() == 0 && !prober_->IsProbing()) { |
- return 0; |
- } |
- // 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(); |
- if (SendPacket(packet)) { |
- // Send succeeded, remove it from the queue. |
- packets_->FinalizePop(packet); |
- if (prober_->IsProbing()) { |
- return 0; |
- } |
- } else { |
- // Send failed, put it back into the queue. |
- packets_->CancelPop(packet); |
+ // 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(); |
+ if (SendPacket(packet)) { |
+ // Send succeeded, remove it from the queue. |
+ packets_->FinalizePop(packet); |
+ if (prober_->IsProbing()) { |
return 0; |
} |
+ } else { |
+ // Send failed, put it back into the queue. |
+ packets_->CancelPop(packet); |
+ return 0; |
} |
+ } |
- if (!packets_->Empty()) |
- return 0; |
+ if (!packets_->Empty()) |
+ return 0; |
- size_t padding_needed; |
- if (prober_->IsProbing()) |
- padding_needed = prober_->RecommendedPacketSize(); |
- else |
- padding_needed = padding_budget_->bytes_remaining(); |
+ size_t padding_needed; |
+ if (prober_->IsProbing()) |
+ padding_needed = prober_->RecommendedPacketSize(); |
+ else |
+ padding_needed = padding_budget_->bytes_remaining(); |
- if (padding_needed > 0) |
- SendPadding(static_cast<size_t>(padding_needed)); |
- } |
+ if (padding_needed > 0) |
+ SendPadding(static_cast<size_t>(padding_needed)); |
return 0; |
} |