Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(234)

Unified Diff: webrtc/modules/pacing/paced_sender.cc

Issue 1392513002: Disable pacer disabling. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Remove RTP FIR + test refactoring Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/pacing/include/paced_sender.h ('k') | webrtc/modules/pacing/paced_sender_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
}
« no previous file with comments | « webrtc/modules/pacing/include/paced_sender.h ('k') | webrtc/modules/pacing/paced_sender_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698