diff --git a/call/call_factory.cc b/call/call_factory.cc index a3079eb7b2..40357850a1 100644 --- a/call/call_factory.cc +++ b/call/call_factory.cc @@ -165,8 +165,7 @@ Call* CallFactory::CreateCall(const Call::Config& config) { config.rtp_transport_controller_send_factory->Create( transportConfig, Clock::GetRealTimeClock(), ProcessThread::Create("PacerThread")))), - send_degradation_configs, receive_degradation_configs, - config.task_queue_factory); + send_degradation_configs, receive_degradation_configs); } if (!module_thread_) { diff --git a/call/degraded_call.cc b/call/degraded_call.cc index 1eb2275d20..0d01e8696d 100644 --- a/call/degraded_call.cc +++ b/call/degraded_call.cc @@ -18,13 +18,13 @@ namespace webrtc { DegradedCall::FakeNetworkPipeOnTaskQueue::FakeNetworkPipeOnTaskQueue( - TaskQueueFactory* task_queue_factory, + TaskQueueBase* task_queue, + const ScopedTaskSafety& task_safety, Clock* clock, std::unique_ptr network_behavior) : clock_(clock), - task_queue_(task_queue_factory->CreateTaskQueue( - "DegradedSendQueue", - TaskQueueFactory::Priority::NORMAL)), + task_queue_(task_queue), + task_safety_(task_safety), pipe_(clock, std::move(network_behavior)) {} void DegradedCall::FakeNetworkPipeOnTaskQueue::SendRtp( @@ -61,21 +61,22 @@ bool DegradedCall::FakeNetworkPipeOnTaskQueue::Process() { return false; } - task_queue_.PostTask([this, time_to_next]() { - RTC_DCHECK_RUN_ON(&task_queue_); + task_queue_->PostTask(ToQueuedTask(task_safety_, [this, time_to_next] { + RTC_DCHECK_RUN_ON(task_queue_); int64_t next_process_time = *time_to_next + clock_->TimeInMilliseconds(); if (!next_process_ms_ || next_process_time < *next_process_ms_) { next_process_ms_ = next_process_time; - task_queue_.PostDelayedHighPrecisionTask( - [this]() { - RTC_DCHECK_RUN_ON(&task_queue_); - if (!Process()) { - next_process_ms_.reset(); - } - }, + task_queue_->PostDelayedHighPrecisionTask( + ToQueuedTask(task_safety_, + [this] { + RTC_DCHECK_RUN_ON(task_queue_); + if (!Process()) { + next_process_ms_.reset(); + } + }), *time_to_next); } - }); + })); return true; } @@ -128,11 +129,9 @@ bool DegradedCall::FakeNetworkPipeTransportAdapter::SendRtcp( DegradedCall::DegradedCall( std::unique_ptr call, const std::vector& send_configs, - const std::vector& receive_configs, - TaskQueueFactory* task_queue_factory) + const std::vector& receive_configs) : clock_(Clock::GetRealTimeClock()), call_(std::move(call)), - task_queue_factory_(task_queue_factory), send_config_index_(0), send_configs_(send_configs), send_simulated_network_(nullptr), @@ -154,7 +153,7 @@ DegradedCall::DegradedCall( auto network = std::make_unique(send_configs_[0]); send_simulated_network_ = network.get(); send_pipe_ = std::make_unique( - task_queue_factory_, clock_, std::move(network)); + call_->network_thread(), task_safety_, clock_, std::move(network)); if (send_configs_.size() > 1) { call_->network_thread()->PostDelayedTask( ToQueuedTask(task_safety_, [this] { UpdateSendNetworkConfig(); }), diff --git a/call/degraded_call.h b/call/degraded_call.h index 87a83f9730..dd80a0c5dd 100644 --- a/call/degraded_call.h +++ b/call/degraded_call.h @@ -52,8 +52,7 @@ class DegradedCall : public Call, private PacketReceiver { explicit DegradedCall( std::unique_ptr call, const std::vector& send_configs, - const std::vector& receive_configs, - TaskQueueFactory* task_queue_factory); + const std::vector& receive_configs); ~DegradedCall() override; // Implements Call. @@ -115,7 +114,8 @@ class DegradedCall : public Call, private PacketReceiver { class FakeNetworkPipeOnTaskQueue { public: FakeNetworkPipeOnTaskQueue( - TaskQueueFactory* task_queue_factory, + TaskQueueBase* task_queue, + const ScopedTaskSafety& task_safety, Clock* clock, std::unique_ptr network_behavior); @@ -134,7 +134,8 @@ class DegradedCall : public Call, private PacketReceiver { bool Process(); Clock* const clock_; - rtc::TaskQueue task_queue_; + TaskQueueBase* const task_queue_; + const ScopedTaskSafety& task_safety_; FakeNetworkPipe pipe_; absl::optional next_process_ms_ RTC_GUARDED_BY(&task_queue_); }; @@ -171,7 +172,6 @@ class DegradedCall : public Call, private PacketReceiver { Clock* const clock_; const std::unique_ptr call_; ScopedTaskSafety task_safety_; - TaskQueueFactory* const task_queue_factory_; size_t send_config_index_; const std::vector send_configs_; SimulatedNetwork* send_simulated_network_;