Reland "[Battery]: Delay start of TaskQueuePacedSender."

This is a reland of 89cb65ed663a9000b9f7c90a78039bd85731e9ae
Reason for revert: failing trybots: https://ci.chromium.org/ui/p/chromium/builders/webrtc.fyi/WebRTC%20Chromium%20FYI%20Win8%20Tester/7757/overview

Original change's description:
> [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}

Bug: chromium:1152887
Change-Id: Ia4fae13294472160e2dff40738b6fd245700beeb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/211920
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#33491}
This commit is contained in:
Etienne Pierre-doray
2021-03-15 14:27:21 +00:00
committed by Commit Bot
parent 32af25b72a
commit dd4d5e36c6

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();
}
@ -496,9 +493,14 @@ void RtpTransportControllerSend::IncludeOverheadInPacedSender() {
}
void RtpTransportControllerSend::EnsureStarted() {
if (!use_task_queue_pacer_ && !process_thread_started_) {
if (!process_thread_started_) {
process_thread_started_ = true;
process_thread_->Start();
pacer()->SetPacingRates(
DataRate::BitsPerSec(
bitrate_configurator_.GetConfig().start_bitrate_bps),
DataRate::Zero());
if (!use_task_queue_pacer_)
process_thread_->Start();
}
}