Upstream commit: https://webrtc.googlesource.com/src/+/7e3a9ce99d832687d1eef3eaa270754970a761b0 Rely on TaskQueueBase interface in modules/rtp_rtcp Instead of requiring Thread to be passed to the RtpVideoStreamReceiverFrameTransformerDelegate. This class already uses it only though the TaskQueueBase interface. In tests rely on RunLoop helper when test makes calls that are required to be done on the same task queue, and rely on TaskQueueForTests where test does not make such calls. Bug: webrtc:42225410 Change-Id: I7aba5c696436d8ce43c85ccba5b9448e852ea81d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/470880 Auto-Submit: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Erik Språng <sprang@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Cr-Commit-Position: refs/heads/main@{#47662}
75 lines
2.8 KiB
Diff
75 lines
2.8 KiB
Diff
From: Dan Baker <dbaker@mozilla.com>
|
|
Date: Thu, 14 Mar 2024 10:51:00 -0600
|
|
Subject: Bug 1883116 - (fix-e79e722834) add enviroment_factory to libwebrtc
|
|
build and enforce providing clock and task_queue when creating Environment
|
|
|
|
Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/2185cab977988fd4ab03b38dc67f9b06162444da
|
|
---
|
|
BUILD.gn | 1 +
|
|
api/environment/environment_factory.cc | 10 ++++++++++
|
|
api/task_queue/BUILD.gn | 5 +++++
|
|
3 files changed, 16 insertions(+)
|
|
|
|
diff --git a/BUILD.gn b/BUILD.gn
|
|
index e373a8c45b..5b12f95346 100644
|
|
--- a/BUILD.gn
|
|
+++ b/BUILD.gn
|
|
@@ -613,6 +613,7 @@ if (!build_with_chromium) {
|
|
"api:frame_transformer_factory",
|
|
"api/audio:builtin_audio_processing_builder",
|
|
"api/video:builtin_video_bitrate_allocator_factory",
|
|
+ "api/environment:environment_factory",
|
|
"api/video:video_frame",
|
|
"api/video:video_rtp_headers",
|
|
"test:rtp_test_utils",
|
|
diff --git a/api/environment/environment_factory.cc b/api/environment/environment_factory.cc
|
|
index 529bbecad7..6e0810267b 100644
|
|
--- a/api/environment/environment_factory.cc
|
|
+++ b/api/environment/environment_factory.cc
|
|
@@ -102,12 +102,22 @@ Environment EnvironmentFactory::CreateWithDefaults() && {
|
|
if (field_trials_ == nullptr) {
|
|
Set(std::make_unique<DeprecatedGlobalFieldTrials>());
|
|
}
|
|
+#if defined(WEBRTC_MOZILLA_BUILD)
|
|
+ // We want to use our clock, not GetRealTimeClockRaw, and we avoid
|
|
+ // building the code under third_party/libwebrtc/task_queue. To
|
|
+ // ensure we're setting up things correctly, namely providing an
|
|
+ // Environment object with a preset task_queue_factory and clock,
|
|
+ // we'll do a release assert here.
|
|
+ RTC_CHECK(clock_);
|
|
+ RTC_CHECK(task_queue_factory_);
|
|
+#else
|
|
if (clock_ == nullptr) {
|
|
Set(Clock::GetRealTimeClock());
|
|
}
|
|
if (task_queue_factory_ == nullptr) {
|
|
Set(CreateDefaultTaskQueueFactory(field_trials_));
|
|
}
|
|
+#endif
|
|
if (event_log_ == nullptr) {
|
|
Set(std::make_unique<RtcEventLogNull>());
|
|
}
|
|
diff --git a/api/task_queue/BUILD.gn b/api/task_queue/BUILD.gn
|
|
index dc14e40d7a..48d6e66435 100644
|
|
--- a/api/task_queue/BUILD.gn
|
|
+++ b/api/task_queue/BUILD.gn
|
|
@@ -83,6 +83,10 @@ rtc_library("task_queue_test") {
|
|
}
|
|
|
|
rtc_library("default_task_queue_factory") {
|
|
+# Mozilla - disable this entire target to avoid inclusion of code we want
|
|
+# to avoid. Better here than trying to wack-a-mole for places that list
|
|
+# it as a dependency.
|
|
+if (!build_with_mozilla) {
|
|
visibility = [ "*" ]
|
|
|
|
# Internally webrtc shouldn't rely on any specific TaskQueue implementation
|
|
@@ -106,6 +110,7 @@ rtc_library("default_task_queue_factory") {
|
|
sources += [ "default_task_queue_factory_stdlib.cc" ]
|
|
deps += [ "../../rtc_base:rtc_task_queue_stdlib" ]
|
|
}
|
|
+} # of if (!build_with_mozilla) {
|
|
}
|
|
|
|
rtc_library("pending_task_safety_flag") {
|