In video replace non-owning pointer to rtc::TaskQueue with non-owning pointer to TaskQueueBase
rtc::TaskQueue is a simple wrapper over TaskQueueBase and adds no
extra features when task queue is used without passing ownership.
Reducing usage of the internal rtc::TaskQueue wrapper gives users more flexibility how TaskQueueBase* is stored.
Bug: webrtc:14169
Change-Id: If5c8827544c843502c7dfcef775ac558de79ec3a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/268189
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37549}
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index f4d9ff7..2d6ddb3 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -90,7 +90,6 @@
"../../rtc_base:logging",
"../../rtc_base:macromagic",
"../../rtc_base:rtc_numerics",
- "../../rtc_base:rtc_task_queue",
"../../rtc_base/experiments:field_trial_parser",
"../../rtc_base/task_utils:repeating_task",
"../../system_wrappers",
@@ -249,7 +248,6 @@
"../../rtc_base:macromagic",
"../../rtc_base:rtc_event",
"../../rtc_base:rtc_numerics",
- "../../rtc_base:rtc_task_queue",
"../../rtc_base:safe_conversions",
"../../rtc_base:threading",
"../../rtc_base:timeutils",
@@ -439,7 +437,6 @@
"../../rtc_base:rate_statistics",
"../../rtc_base:refcount",
"../../rtc_base:rtc_numerics",
- "../../rtc_base:rtc_task_queue",
"../../rtc_base:stringutils",
"../../rtc_base:timeutils",
"../../rtc_base:weak_ptr",
@@ -868,7 +865,6 @@
"../../rtc_base:checks",
"../../rtc_base:macromagic",
"../../rtc_base:rtc_event",
- "../../rtc_base:rtc_task_queue",
"../../rtc_base:timeutils",
"../../rtc_base/synchronization:mutex",
"../../rtc_base/system:no_unique_address",
@@ -1153,6 +1149,7 @@
"../../api:scoped_refptr",
"../../api:simulcast_test_fixture_api",
"../../api:videocodec_test_fixture_api",
+ "../../api/task_queue",
"../../api/task_queue:default_task_queue_factory",
"../../api/test/video:function_video_factory",
"../../api/units:data_size",
@@ -1185,7 +1182,6 @@
"../../rtc_base:rtc_base_tests_utils",
"../../rtc_base:rtc_event",
"../../rtc_base:rtc_numerics",
- "../../rtc_base:rtc_task_queue",
"../../rtc_base:stringutils",
"../../rtc_base:task_queue_for_test",
"../../rtc_base:timeutils",
diff --git a/modules/video_coding/frame_buffer2.cc b/modules/video_coding/frame_buffer2.cc
index 7e6d622..fbd3c53 100644
--- a/modules/video_coding/frame_buffer2.cc
+++ b/modules/video_coding/frame_buffer2.cc
@@ -83,7 +83,7 @@
void FrameBuffer::NextFrame(int64_t max_wait_time_ms,
bool keyframe_required,
- rtc::TaskQueue* callback_queue,
+ TaskQueueBase* callback_queue,
NextFrameCallback handler) {
RTC_DCHECK_RUN_ON(&callback_checker_);
RTC_DCHECK(callback_queue->IsCurrent());
@@ -107,7 +107,7 @@
RTC_DCHECK(!callback_task_.Running());
int64_t wait_ms = FindNextFrame(clock_->CurrentTime());
callback_task_ = RepeatingTaskHandle::DelayedStart(
- callback_queue_->Get(), TimeDelta::Millis(wait_ms),
+ callback_queue_, TimeDelta::Millis(wait_ms),
[this] {
RTC_DCHECK_RUN_ON(&callback_checker_);
// If this task has not been cancelled, we did not get any new frames
diff --git a/modules/video_coding/frame_buffer2.h b/modules/video_coding/frame_buffer2.h
index 1315d2f..13918b0 100644
--- a/modules/video_coding/frame_buffer2.h
+++ b/modules/video_coding/frame_buffer2.h
@@ -20,6 +20,7 @@
#include "absl/container/inlined_vector.h"
#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
+#include "api/task_queue/task_queue_base.h"
#include "api/video/encoded_frame.h"
#include "modules/video_coding/include/video_coding_defines.h"
#include "modules/video_coding/timing/inter_frame_delay.h"
@@ -31,7 +32,6 @@
#include "rtc_base/numerics/sequence_number_util.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/system/no_unique_address.h"
-#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "rtc_base/thread_annotations.h"
@@ -66,7 +66,7 @@
// or with nullptr if no frame is ready for decoding after `max_wait_time_ms`.
void NextFrame(int64_t max_wait_time_ms,
bool keyframe_required,
- rtc::TaskQueue* callback_queue,
+ TaskQueueBase* callback_queue,
NextFrameCallback handler);
// Tells the FrameBuffer which protection mode that is in use. Affects
@@ -166,7 +166,7 @@
Mutex mutex_;
Clock* const clock_;
- rtc::TaskQueue* callback_queue_ RTC_GUARDED_BY(mutex_);
+ TaskQueueBase* callback_queue_ RTC_GUARDED_BY(mutex_);
RepeatingTaskHandle callback_task_ RTC_GUARDED_BY(mutex_);
NextFrameCallback frame_handler_ RTC_GUARDED_BY(mutex_);
int64_t latest_return_time_ms_ RTC_GUARDED_BY(mutex_);
diff --git a/modules/video_coding/frame_buffer2_unittest.cc b/modules/video_coding/frame_buffer2_unittest.cc
index 4faafa6..2c21a86 100644
--- a/modules/video_coding/frame_buffer2_unittest.cc
+++ b/modules/video_coding/frame_buffer2_unittest.cc
@@ -16,6 +16,7 @@
#include <memory>
#include <vector>
+#include "api/task_queue/task_queue_base.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
#include "modules/video_coding/frame_object.h"
@@ -185,8 +186,9 @@
}
void ExtractFrame(int64_t max_wait_time = 0, bool keyframe_required = false) {
- time_task_queue_.PostTask([this, max_wait_time, keyframe_required]() {
- buffer_->NextFrame(max_wait_time, keyframe_required, &time_task_queue_,
+ time_task_queue_->PostTask([this, max_wait_time, keyframe_required]() {
+ buffer_->NextFrame(max_wait_time, keyframe_required,
+ time_task_queue_.get(),
[this](std::unique_ptr<EncodedFrame> frame) {
frames_.emplace_back(std::move(frame));
});
@@ -218,7 +220,7 @@
test::ScopedKeyValueConfig field_trials_;
webrtc::GlobalSimulatedTimeController time_controller_;
- rtc::TaskQueue time_task_queue_;
+ std::unique_ptr<TaskQueueBase, TaskQueueDeleter> time_task_queue_;
VCMTimingFake timing_;
std::unique_ptr<FrameBuffer> buffer_;
std::vector<std::unique_ptr<EncodedFrame>> frames_;
diff --git a/modules/video_coding/nack_requester.cc b/modules/video_coding/nack_requester.cc
index 9c131a4..80dfe86 100644
--- a/modules/video_coding/nack_requester.cc
+++ b/modules/video_coding/nack_requester.cc
@@ -19,7 +19,6 @@
#include "rtc_base/checks.h"
#include "rtc_base/experiments/field_trial_parser.h"
#include "rtc_base/logging.h"
-#include "rtc_base/task_queue.h"
namespace webrtc {
diff --git a/modules/video_coding/nack_requester.h b/modules/video_coding/nack_requester.h
index 73bb493..c860787 100644
--- a/modules/video_coding/nack_requester.h
+++ b/modules/video_coding/nack_requester.h
@@ -20,12 +20,12 @@
#include "api/field_trials_view.h"
#include "api/sequence_checker.h"
#include "api/task_queue/pending_task_safety_flag.h"
+#include "api/task_queue/task_queue_base.h"
#include "api/units/time_delta.h"
#include "api/units/timestamp.h"
#include "modules/include/module_common_types.h"
#include "modules/video_coding/histogram.h"
#include "rtc_base/numerics/sequence_number_util.h"
-#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "rtc_base/thread_annotations.h"
#include "system_wrappers/include/clock.h"
diff --git a/modules/video_coding/utility/bandwidth_quality_scaler.cc b/modules/video_coding/utility/bandwidth_quality_scaler.cc
index 12f8a49..13502a1 100644
--- a/modules/video_coding/utility/bandwidth_quality_scaler.cc
+++ b/modules/video_coding/utility/bandwidth_quality_scaler.cc
@@ -21,7 +21,6 @@
#include "rtc_base/experiments/bandwidth_quality_scaler_settings.h"
#include "rtc_base/logging.h"
#include "rtc_base/numerics/exp_filter.h"
-#include "rtc_base/task_queue.h"
#include "rtc_base/time_utils.h"
#include "rtc_base/weak_ptr.h"
diff --git a/modules/video_coding/utility/bandwidth_quality_scaler.h b/modules/video_coding/utility/bandwidth_quality_scaler.h
index f35d607..7cd1de0 100644
--- a/modules/video_coding/utility/bandwidth_quality_scaler.h
+++ b/modules/video_coding/utility/bandwidth_quality_scaler.h
@@ -27,7 +27,6 @@
#include "rtc_base/rate_statistics.h"
#include "rtc_base/ref_count.h"
#include "rtc_base/system/no_unique_address.h"
-#include "rtc_base/task_queue.h"
#include "rtc_base/weak_ptr.h"
namespace webrtc {
diff --git a/modules/video_coding/utility/quality_scaler.cc b/modules/video_coding/utility/quality_scaler.cc
index d7e8b57..28252b4 100644
--- a/modules/video_coding/utility/quality_scaler.cc
+++ b/modules/video_coding/utility/quality_scaler.cc
@@ -19,7 +19,6 @@
#include "rtc_base/experiments/quality_scaler_settings.h"
#include "rtc_base/logging.h"
#include "rtc_base/numerics/exp_filter.h"
-#include "rtc_base/task_queue.h"
#include "rtc_base/weak_ptr.h"
// TODO(kthelgason): Some versions of Android have issues with log2.
diff --git a/modules/video_coding/utility/quality_scaler.h b/modules/video_coding/utility/quality_scaler.h
index 898bb72..93014e3 100644
--- a/modules/video_coding/utility/quality_scaler.h
+++ b/modules/video_coding/utility/quality_scaler.h
@@ -24,7 +24,6 @@
#include "rtc_base/numerics/moving_average.h"
#include "rtc_base/ref_count.h"
#include "rtc_base/system/no_unique_address.h"
-#include "rtc_base/task_queue.h"
namespace webrtc {
diff --git a/test/fuzzers/BUILD.gn b/test/fuzzers/BUILD.gn
index 4648fd4..b7394db 100644
--- a/test/fuzzers/BUILD.gn
+++ b/test/fuzzers/BUILD.gn
@@ -620,6 +620,7 @@
webrtc_fuzzer_test("frame_buffer2_fuzzer") {
sources = [ "frame_buffer2_fuzzer.cc" ]
deps = [
+ "../../api/task_queue",
"../../modules/video_coding/",
"../../modules/video_coding/timing:timing_module",
"../../test:scoped_key_value_config",
diff --git a/test/fuzzers/frame_buffer2_fuzzer.cc b/test/fuzzers/frame_buffer2_fuzzer.cc
index 32ac6be..944f069 100644
--- a/test/fuzzers/frame_buffer2_fuzzer.cc
+++ b/test/fuzzers/frame_buffer2_fuzzer.cc
@@ -8,6 +8,9 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include <memory>
+
+#include "api/task_queue/task_queue_base.h"
#include "modules/video_coding/frame_buffer2.h"
#include "modules/video_coding/timing/timing.h"
#include "test/scoped_key_value_config.h"
@@ -66,9 +69,9 @@
}
DataReader reader(data, size);
GlobalSimulatedTimeController time_controller(Timestamp::Seconds(0));
- rtc::TaskQueue task_queue(
+ std::unique_ptr<TaskQueueBase, TaskQueueDeleter> task_queue =
time_controller.GetTaskQueueFactory()->CreateTaskQueue(
- "time_tq", TaskQueueFactory::Priority::NORMAL));
+ "time_tq", TaskQueueFactory::Priority::NORMAL);
test::ScopedKeyValueConfig field_trials;
VCMTiming timing(time_controller.GetClock(), field_trials);
video_coding::FrameBuffer frame_buffer(time_controller.GetClock(), &timing,
@@ -94,11 +97,11 @@
next_frame_task_running = true;
bool keyframe_required = reader.GetNum<uint8_t>() % 2;
int max_wait_time_ms = reader.GetNum<uint8_t>();
- task_queue.PostTask([&task_queue, &frame_buffer,
- &next_frame_task_running, keyframe_required,
- max_wait_time_ms] {
+ task_queue->PostTask([&task_queue, &frame_buffer,
+ &next_frame_task_running, keyframe_required,
+ max_wait_time_ms] {
frame_buffer.NextFrame(
- max_wait_time_ms, keyframe_required, &task_queue,
+ max_wait_time_ms, keyframe_required, task_queue.get(),
[&next_frame_task_running](std::unique_ptr<EncodedFrame> frame) {
next_frame_task_running = false;
});
diff --git a/video/BUILD.gn b/video/BUILD.gn
index 80088e4..c60d9df 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -276,7 +276,6 @@
"../rtc_base:checks",
"../rtc_base:logging",
"../rtc_base:macromagic",
- "../rtc_base:rtc_task_queue",
"../system_wrappers",
"../system_wrappers:field_trial",
]
diff --git a/video/adaptation/BUILD.gn b/video/adaptation/BUILD.gn
index b2f5f27..aadf615 100644
--- a/video/adaptation/BUILD.gn
+++ b/video/adaptation/BUILD.gn
@@ -55,7 +55,6 @@
"../../rtc_base:refcount",
"../../rtc_base:rtc_event",
"../../rtc_base:rtc_numerics",
- "../../rtc_base:rtc_task_queue",
"../../rtc_base:safe_conversions",
"../../rtc_base:stringutils",
"../../rtc_base:timeutils",
@@ -108,7 +107,6 @@
"../../rtc_base:rtc_base_tests_utils",
"../../rtc_base:rtc_event",
"../../rtc_base:rtc_numerics",
- "../../rtc_base:rtc_task_queue",
"../../rtc_base:task_queue_for_test",
"../../rtc_base:threading",
"../../test:field_trial",
diff --git a/video/adaptation/bandwidth_quality_scaler_resource.h b/video/adaptation/bandwidth_quality_scaler_resource.h
index bec864b..a57c990 100644
--- a/video/adaptation/bandwidth_quality_scaler_resource.h
+++ b/video/adaptation/bandwidth_quality_scaler_resource.h
@@ -23,7 +23,6 @@
#include "call/adaptation/degradation_preference_provider.h"
#include "call/adaptation/resource_adaptation_processor_interface.h"
#include "modules/video_coding/utility/bandwidth_quality_scaler.h"
-#include "rtc_base/task_queue.h"
#include "video/adaptation/video_stream_encoder_resource.h"
namespace webrtc {
diff --git a/video/adaptation/encode_usage_resource.h b/video/adaptation/encode_usage_resource.h
index 689ae70..c391132 100644
--- a/video/adaptation/encode_usage_resource.h
+++ b/video/adaptation/encode_usage_resource.h
@@ -17,7 +17,6 @@
#include "absl/types/optional.h"
#include "api/scoped_refptr.h"
#include "api/video/video_adaptation_reason.h"
-#include "rtc_base/task_queue.h"
#include "video/adaptation/overuse_frame_detector.h"
#include "video/adaptation/video_stream_encoder_resource.h"
diff --git a/video/adaptation/quality_scaler_resource.h b/video/adaptation/quality_scaler_resource.h
index 6e4b83f..cbb6d3d 100644
--- a/video/adaptation/quality_scaler_resource.h
+++ b/video/adaptation/quality_scaler_resource.h
@@ -22,7 +22,6 @@
#include "call/adaptation/degradation_preference_provider.h"
#include "call/adaptation/resource_adaptation_processor_interface.h"
#include "modules/video_coding/utility/quality_scaler.h"
-#include "rtc_base/task_queue.h"
#include "video/adaptation/video_stream_encoder_resource.h"
namespace webrtc {
diff --git a/video/adaptation/video_stream_encoder_resource_manager.cc b/video/adaptation/video_stream_encoder_resource_manager.cc
index bd04e5b..2470bc8 100644
--- a/video/adaptation/video_stream_encoder_resource_manager.cc
+++ b/video/adaptation/video_stream_encoder_resource_manager.cc
@@ -308,14 +308,13 @@
default;
void VideoStreamEncoderResourceManager::Initialize(
- rtc::TaskQueue* encoder_queue) {
+ TaskQueueBase* encoder_queue) {
RTC_DCHECK(!encoder_queue_);
RTC_DCHECK(encoder_queue);
encoder_queue_ = encoder_queue;
- encode_usage_resource_->RegisterEncoderTaskQueue(encoder_queue_->Get());
- quality_scaler_resource_->RegisterEncoderTaskQueue(encoder_queue_->Get());
- bandwidth_quality_scaler_resource_->RegisterEncoderTaskQueue(
- encoder_queue_->Get());
+ encode_usage_resource_->RegisterEncoderTaskQueue(encoder_queue_);
+ quality_scaler_resource_->RegisterEncoderTaskQueue(encoder_queue_);
+ bandwidth_quality_scaler_resource_->RegisterEncoderTaskQueue(encoder_queue_);
}
void VideoStreamEncoderResourceManager::SetAdaptationProcessor(
@@ -374,7 +373,7 @@
// resource is active for the lifetme of the stream (until
// StopManagedResources() is called).
pixel_limit_resource_ =
- PixelLimitResource::Create(encoder_queue_->Get(), input_state_provider_);
+ PixelLimitResource::Create(encoder_queue_, input_state_provider_);
pixel_limit_resource_->SetMaxPixels(max_pixels);
AddResource(pixel_limit_resource_, VideoAdaptationReason::kCpu);
}
diff --git a/video/adaptation/video_stream_encoder_resource_manager.h b/video/adaptation/video_stream_encoder_resource_manager.h
index 00c13e3..61660dd 100644
--- a/video/adaptation/video_stream_encoder_resource_manager.h
+++ b/video/adaptation/video_stream_encoder_resource_manager.h
@@ -40,7 +40,6 @@
#include "rtc_base/ref_count.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/synchronization/mutex.h"
-#include "rtc_base/task_queue.h"
#include "rtc_base/thread_annotations.h"
#include "system_wrappers/include/clock.h"
#include "video/adaptation/balanced_constraint.h"
@@ -84,7 +83,7 @@
const FieldTrialsView& field_trials);
~VideoStreamEncoderResourceManager() override;
- void Initialize(rtc::TaskQueue* encoder_queue);
+ void Initialize(TaskQueueBase* encoder_queue);
void SetAdaptationProcessor(
ResourceAdaptationProcessorInterface* adaptation_processor,
VideoStreamAdapter* stream_adapter);
@@ -196,7 +195,7 @@
const rtc::scoped_refptr<BandwidthQualityScalerResource>
bandwidth_quality_scaler_resource_;
- rtc::TaskQueue* encoder_queue_;
+ TaskQueueBase* encoder_queue_;
VideoStreamInputStateProvider* const input_state_provider_
RTC_GUARDED_BY(encoder_queue_);
ResourceAdaptationProcessorInterface* adaptation_processor_;
diff --git a/video/call_stats2.h b/video/call_stats2.h
index 760f7a0..7e941d1 100644
--- a/video/call_stats2.h
+++ b/video/call_stats2.h
@@ -15,10 +15,10 @@
#include <memory>
#include "api/task_queue/pending_task_safety_flag.h"
+#include "api/task_queue/task_queue_base.h"
#include "api/units/timestamp.h"
#include "modules/include/module_common_types.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
-#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "system_wrappers/include/clock.h"
diff --git a/video/call_stats2_unittest.cc b/video/call_stats2_unittest.cc
index 9d33bb3..76abbcf 100644
--- a/video/call_stats2_unittest.cc
+++ b/video/call_stats2_unittest.cc
@@ -13,6 +13,7 @@
#include <memory>
#include "api/task_queue/default_task_queue_factory.h"
+#include "api/task_queue/task_queue_base.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
#include "rtc_base/thread.h"
#include "system_wrappers/include/metrics.h"
@@ -42,20 +43,21 @@
// Queues an rtt update call on the process thread.
void AsyncSimulateRttUpdate(int64_t rtt) {
RtcpRttStats* rtcp_rtt_stats = call_stats_.AsRtcpRttStats();
- task_queue_.PostTask(
+ task_queue_->PostTask(
[rtcp_rtt_stats, rtt] { rtcp_rtt_stats->OnRttUpdate(rtt); });
}
protected:
void FlushProcessAndWorker() {
- task_queue_.PostTask([this] { loop_.PostTask([this] { loop_.Quit(); }); });
+ task_queue_->PostTask([this] { loop_.PostTask([this] { loop_.Quit(); }); });
loop_.Run();
}
test::RunLoop loop_;
- rtc::TaskQueue task_queue_{CreateDefaultTaskQueueFactory()->CreateTaskQueue(
- "CallStats",
- TaskQueueFactory::Priority::NORMAL)};
+ std::unique_ptr<TaskQueueBase, TaskQueueDeleter> task_queue_ =
+ CreateDefaultTaskQueueFactory()->CreateTaskQueue(
+ "CallStats",
+ TaskQueueFactory::Priority::NORMAL);
// Note: Since rtc::Thread doesn't support injecting a Clock, we're going
// to be using a mix of the fake clock (used by CallStats) as well as the
diff --git a/video/frame_buffer_proxy.cc b/video/frame_buffer_proxy.cc
index d427528..e54cd59 100644
--- a/video/frame_buffer_proxy.cc
+++ b/video/frame_buffer_proxy.cc
@@ -17,6 +17,7 @@
#include "absl/base/attributes.h"
#include "absl/functional/bind_front.h"
#include "api/sequence_checker.h"
+#include "api/task_queue/task_queue_base.h"
#include "api/units/data_size.h"
#include "api/video/encoded_frame.h"
#include "api/video/frame_buffer.h"
@@ -41,7 +42,7 @@
FrameBuffer2Proxy(Clock* clock,
VCMTiming* timing,
VCMReceiveStatisticsCallback* stats_proxy,
- rtc::TaskQueue* decode_queue,
+ TaskQueueBase* decode_queue,
FrameSchedulingReceiver* receiver,
TimeDelta max_wait_for_keyframe,
TimeDelta max_wait_for_frame,
@@ -127,7 +128,7 @@
const TimeDelta max_wait_for_keyframe_;
const TimeDelta max_wait_for_frame_;
video_coding::FrameBuffer frame_buffer_;
- rtc::TaskQueue* const decode_queue_;
+ TaskQueueBase* const decode_queue_;
VCMReceiveStatisticsCallback* const stats_proxy_;
FrameSchedulingReceiver* const receiver_;
rtc::scoped_refptr<PendingTaskSafetyFlag> decode_safety_ =
@@ -179,7 +180,7 @@
TaskQueueBase* worker_queue,
VCMTiming* timing,
VCMReceiveStatisticsCallback* stats_proxy,
- rtc::TaskQueue* decode_queue,
+ TaskQueueBase* decode_queue,
FrameSchedulingReceiver* receiver,
TimeDelta max_wait_for_keyframe,
TimeDelta max_wait_for_frame,
@@ -490,7 +491,7 @@
RttMultExperiment::GetRttMultValue();
Clock* const clock_;
TaskQueueBase* const worker_queue_;
- rtc::TaskQueue* const decode_queue_;
+ TaskQueueBase* const decode_queue_;
VCMReceiveStatisticsCallback* const stats_proxy_;
FrameSchedulingReceiver* const receiver_;
VCMTiming* const timing_;
@@ -556,7 +557,7 @@
TaskQueueBase* worker_queue,
VCMTiming* timing,
VCMReceiveStatisticsCallback* stats_proxy,
- rtc::TaskQueue* decode_queue,
+ TaskQueueBase* decode_queue,
FrameSchedulingReceiver* receiver,
TimeDelta max_wait_for_keyframe,
TimeDelta max_wait_for_frame,
diff --git a/video/frame_buffer_proxy.h b/video/frame_buffer_proxy.h
index 16f8fc5..1d440ed 100644
--- a/video/frame_buffer_proxy.h
+++ b/video/frame_buffer_proxy.h
@@ -19,7 +19,6 @@
#include "api/video/encoded_frame.h"
#include "modules/video_coding/include/video_coding_defines.h"
#include "modules/video_coding/timing/timing.h"
-#include "rtc_base/task_queue.h"
#include "system_wrappers/include/clock.h"
#include "video/decode_synchronizer.h"
@@ -44,7 +43,7 @@
TaskQueueBase* worker_queue,
VCMTiming* timing,
VCMReceiveStatisticsCallback* stats_proxy,
- rtc::TaskQueue* decode_queue,
+ TaskQueueBase* decode_queue,
FrameSchedulingReceiver* receiver,
TimeDelta max_wait_for_keyframe,
TimeDelta max_wait_for_frame,
diff --git a/video/frame_buffer_proxy_unittest.cc b/video/frame_buffer_proxy_unittest.cc
index 6babcda..ba7925a 100644
--- a/video/frame_buffer_proxy_unittest.cc
+++ b/video/frame_buffer_proxy_unittest.cc
@@ -132,7 +132,7 @@
run_loop_.task_queue(),
&timing_,
&stats_callback_,
- &decode_queue_,
+ decode_queue_.Get(),
this,
kMaxWaitForKeyframe,
kMaxWaitForFrame,
diff --git a/video/rtp_streams_synchronizer2.h b/video/rtp_streams_synchronizer2.h
index 73fd604..7042b1b 100644
--- a/video/rtp_streams_synchronizer2.h
+++ b/video/rtp_streams_synchronizer2.h
@@ -14,8 +14,8 @@
#include <memory>
#include "api/sequence_checker.h"
+#include "api/task_queue/task_queue_base.h"
#include "rtc_base/system/no_unique_address.h"
-#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "video/stream_synchronization.h"
diff --git a/video/video_receive_stream2.cc b/video/video_receive_stream2.cc
index 106dc4d..4fb2f9c 100644
--- a/video/video_receive_stream2.cc
+++ b/video/video_receive_stream2.cc
@@ -55,7 +55,6 @@
#include "rtc_base/logging.h"
#include "rtc_base/strings/string_builder.h"
#include "rtc_base/synchronization/mutex.h"
-#include "rtc_base/task_queue.h"
#include "rtc_base/thread_annotations.h"
#include "rtc_base/time_utils.h"
#include "rtc_base/trace_event.h"
@@ -268,7 +267,7 @@
frame_buffer_ = FrameBufferProxy::CreateFromFieldTrial(
clock_, call_->worker_thread(), timing_.get(), &stats_proxy_,
- &decode_queue_, this, max_wait_for_keyframe_, max_wait_for_frame_,
+ decode_queue_.Get(), this, max_wait_for_keyframe_, max_wait_for_frame_,
decode_sync_, call_->trials());
if (rtx_ssrc()) {
diff --git a/video/video_send_stream.cc b/video/video_send_stream.cc
index 5320336..799e366 100644
--- a/video/video_send_stream.cc
+++ b/video/video_send_stream.cc
@@ -149,7 +149,7 @@
const std::map<uint32_t, RtpPayloadState>& suspended_payload_states,
std::unique_ptr<FecController> fec_controller,
const FieldTrialsView& field_trials)
- : rtp_transport_queue_(transport->GetWorkerQueue()),
+ : rtp_transport_queue_(transport->GetWorkerQueue()->Get()),
transport_(transport),
stats_proxy_(clock, config, encoder_config.content_type, field_trials),
config_(std::move(config)),
diff --git a/video/video_send_stream.h b/video/video_send_stream.h
index 0faebf9..d495133 100644
--- a/video/video_send_stream.h
+++ b/video/video_send_stream.h
@@ -25,7 +25,6 @@
#include "call/video_send_stream.h"
#include "rtc_base/event.h"
#include "rtc_base/system/no_unique_address.h"
-#include "rtc_base/task_queue.h"
#include "video/encoder_rtcp_feedback.h"
#include "video/send_delay_stats.h"
#include "video/send_statistics_proxy.h"
@@ -100,7 +99,7 @@
absl::optional<float> GetPacingFactorOverride() const;
RTC_NO_UNIQUE_ADDRESS SequenceChecker thread_checker_;
- rtc::TaskQueue* const rtp_transport_queue_;
+ TaskQueueBase* const rtp_transport_queue_;
RtpTransportControllerSendInterface* const transport_;
rtc::Event thread_sync_event_;
rtc::scoped_refptr<PendingTaskSafetyFlag> transport_queue_safety_ =
diff --git a/video/video_send_stream_impl.cc b/video/video_send_stream_impl.cc
index 6a406a4..2032c4c 100644
--- a/video/video_send_stream_impl.cc
+++ b/video/video_send_stream_impl.cc
@@ -202,7 +202,7 @@
VideoSendStreamImpl::VideoSendStreamImpl(
Clock* clock,
SendStatisticsProxy* stats_proxy,
- rtc::TaskQueue* rtp_transport_queue,
+ TaskQueueBase* rtp_transport_queue,
RtpTransportControllerSendInterface* transport,
BitrateAllocatorInterface* bitrate_allocator,
VideoStreamEncoderInterface* video_stream_encoder,
@@ -341,7 +341,7 @@
activity_ = false;
timed_out_ = false;
check_encoder_activity_task_ = RepeatingTaskHandle::DelayedStart(
- rtp_transport_queue_->Get(), kEncoderTimeOut, [this] {
+ rtp_transport_queue_, kEncoderTimeOut, [this] {
RTC_DCHECK_RUN_ON(rtp_transport_queue_);
if (!activity_) {
if (!timed_out_) {
diff --git a/video/video_send_stream_impl.h b/video/video_send_stream_impl.h
index 26f8d2e..d6ce47f 100644
--- a/video/video_send_stream_impl.h
+++ b/video/video_send_stream_impl.h
@@ -21,6 +21,7 @@
#include "absl/types/optional.h"
#include "api/field_trials_view.h"
#include "api/task_queue/pending_task_safety_flag.h"
+#include "api/task_queue/task_queue_base.h"
#include "api/video/encoded_image.h"
#include "api/video/video_bitrate_allocation.h"
#include "api/video/video_bitrate_allocator.h"
@@ -36,7 +37,6 @@
#include "modules/video_coding/include/video_codec_interface.h"
#include "rtc_base/experiments/field_trial_parser.h"
#include "rtc_base/system/no_unique_address.h"
-#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "rtc_base/thread_annotations.h"
#include "video/send_statistics_proxy.h"
@@ -66,7 +66,7 @@
public:
VideoSendStreamImpl(Clock* clock,
SendStatisticsProxy* stats_proxy,
- rtc::TaskQueue* rtp_transport_queue,
+ TaskQueueBase* rtp_transport_queue,
RtpTransportControllerSendInterface* transport,
BitrateAllocatorInterface* bitrate_allocator,
VideoStreamEncoderInterface* video_stream_encoder,
@@ -139,7 +139,7 @@
SendStatisticsProxy* const stats_proxy_;
const VideoSendStream::Config* const config_;
- rtc::TaskQueue* const rtp_transport_queue_;
+ TaskQueueBase* const rtp_transport_queue_;
RepeatingTaskHandle check_encoder_activity_task_
RTC_GUARDED_BY(rtp_transport_queue_);
diff --git a/video/video_send_stream_impl_unittest.cc b/video/video_send_stream_impl_unittest.cc
index b005a63..52593a8 100644
--- a/video/video_send_stream_impl_unittest.cc
+++ b/video/video_send_stream_impl_unittest.cc
@@ -150,7 +150,7 @@
std::map<uint32_t, RtpState> suspended_ssrcs;
std::map<uint32_t, RtpPayloadState> suspended_payload_states;
auto ret = std::make_unique<VideoSendStreamImpl>(
- &clock_, &stats_proxy_, &test_queue_, &transport_controller_,
+ &clock_, &stats_proxy_, test_queue_.Get(), &transport_controller_,
&bitrate_allocator_, &video_stream_encoder_, &config_,
initial_encoder_max_bitrate, initial_encoder_bitrate_priority,
content_type, &rtp_video_sender_, field_trials_);
diff --git a/video/video_stream_decoder_impl.cc b/video/video_stream_decoder_impl.cc
index 5f275ff..91be5a0 100644
--- a/video/video_stream_decoder_impl.cc
+++ b/video/video_stream_decoder_impl.cc
@@ -141,7 +141,7 @@
int64_t max_wait_time = keyframe_required_ ? 200 : 3000;
frame_buffer_.NextFrame(max_wait_time, keyframe_required_,
- &bookkeeping_queue_,
+ bookkeeping_queue_.Get(),
[this](std::unique_ptr<EncodedFrame> frame) {
RTC_DCHECK_RUN_ON(&bookkeeping_queue_);
OnNextFrameCallback(std::move(frame));
diff --git a/video/video_stream_encoder.cc b/video/video_stream_encoder.cc
index 827ef7b..23dc28a 100644
--- a/video/video_stream_encoder.cc
+++ b/video/video_stream_encoder.cc
@@ -702,7 +702,7 @@
RTC_DCHECK_GE(number_of_cores, 1);
frame_cadence_adapter_->Initialize(&cadence_callback_);
- stream_resource_manager_.Initialize(&encoder_queue_);
+ stream_resource_manager_.Initialize(encoder_queue_.Get());
encoder_queue_.PostTask([this] {
RTC_DCHECK_RUN_ON(&encoder_queue_);
diff --git a/video/video_stream_encoder.h b/video/video_stream_encoder.h
index 1953b91..468998f 100644
--- a/video/video_stream_encoder.h
+++ b/video/video_stream_encoder.h
@@ -128,7 +128,7 @@
protected:
// Used for testing. For example the `ScalingObserverInterface` methods must
// be called on `encoder_queue_`.
- rtc::TaskQueue* encoder_queue() { return &encoder_queue_; }
+ TaskQueueBase* encoder_queue() { return encoder_queue_.Get(); }
void OnVideoSourceRestrictionsUpdated(
VideoSourceRestrictions restrictions,