[Battery]: Delay start of TaskQueuePacedSender.

To avoid unnecessary repeating tasks, TaskQueuePacedSender is started
only upon RtpTransportControllerSend::EnsureStarted().

More specifically, the repeating task happens in
TaskQueuePacedSender::MaybeProcessPackets() every 500ms, using a self
task_queue_.PostDelayedTask().

Bug: chromium:1152887
Change-Id: I72c96d2c4b491d5edb45a30b210b3797165cbf48
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208560
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33421}
This commit is contained in:
Etienne Pierre-Doray 2021-02-23 15:31:19 -05:00 committed by Commit Bot
parent 79011ef4a7
commit 89cb65ed66

View File

@ -133,9 +133,6 @@ RtpTransportControllerSend::RtpTransportControllerSend(
initial_config_.key_value_config = trials;
RTC_DCHECK(bitrate_config.start_bitrate_bps > 0);
pacer()->SetPacingRates(
DataRate::BitsPerSec(bitrate_config.start_bitrate_bps), DataRate::Zero());
if (absl::StartsWith(trials->Lookup("WebRTC-LazyPacerStart"), "Disabled")) {
EnsureStarted();
}
@ -498,6 +495,10 @@ void RtpTransportControllerSend::IncludeOverheadInPacedSender() {
void RtpTransportControllerSend::EnsureStarted() {
if (!use_task_queue_pacer_ && !process_thread_started_) {
process_thread_started_ = true;
pacer()->SetPacingRates(
DataRate::BitsPerSec(
bitrate_configurator_.GetConfig().start_bitrate_bps),
DataRate::Zero());
process_thread_->Start();
}
}