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

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

Issue 2182603002: Bitrate prober and paced sender improvements (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Bitrate prober and paced sender improvements Created 4 years, 5 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
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(
« webrtc/modules/pacing/bitrate_prober_unittest.cc ('K') | « webrtc/modules/pacing/paced_sender.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698