Source code

Revision control

Copy as Markdown

Other Tools

From: Dan Minor <dminor@mozilla.com>
Date: Thu, 5 Nov 2020 07:47:00 +0000
Subject: Bug 1654112 - Tweak upstream gn files for Firefox build. r=ng
Bug 1820869 - avoid building unreachable files. r=ng,webrtc-reviewers
Bug 1822194 - (fix-acabb3641b) Break the new SetParametersCallback stuff into stand-alone files.
acabb3641b from upstream added a callback mechanism to allow failures to be
propagated back to RTCRtpSender.setParameters. Unfortunately, this callback
mechanism was (needlessly) tightly coupled to libwebrtc's implementation of
RTCRtpSender, and also their media channel code. This introduced a lot of
unnecessary dependencies throughout libwebrtc, that spilled into our code as
well.
Bug 1828517 - (fix-794d599741) account for moved files in BUILD.gn that we don't want to build.
Bug 1839451 - (fix-186ebdc1b0) remove BUILD.gn refs to gone files delayable.h, media_channel.h
Bug 1839451 - (fix-f6eae959bf) s/rtc_encoder_simulcast_proxy/rtc_simulcast_encoder_adapter/ BUILD ref.
Bug 1828517 - (fix-a138c6c8a5) handle file moves in BUILD.gn
Bug 1817024 - (fix-0e2cf6cc01) Skip library create_peer_connection_quality_test_frame_generator. r?mjf!
Bug 1826428 - remove libwebrtc's jvm_android.cc from build r=ng,webrtc-reviewers
Based on info from John Lin and previous try runs, we're almost
certainly not using this. Let's try removing it from the build
and landing it. If no problems emerge, we'll be able to remove
our custom changes to upstream code in jvm_android.cc.
Bug 1774628 - re-enable support for Windows.Graphics.Capture APIs in libwebrtc. r=pehrsons,webrtc-reviewers
Bug 1876843 - (fix-082cb56ee7) remove mozilla dependency on pc:media_factory.
Bug 1876843 - (fix-b29ff000da) remove mozilla dependency on api:enable_media
Bug 1883116 - (fix-3d9c3687a4) Supporting change of call_factory.cc to create_call.cc.
---
.gn | 2 +
BUILD.gn | 46 ++++++++++++++++++-
api/BUILD.gn | 37 ++++++++++++++-
api/rtp_sender_interface.h | 4 +-
api/rtp_sender_setparameters_callback.cc | 27 +++++++++++
api/rtp_sender_setparameters_callback.h | 28 +++++++++++
api/task_queue/BUILD.gn | 2 +
api/transport/BUILD.gn | 2 +
call/BUILD.gn | 14 +++++-
call/audio_send_stream.h | 2 +-
call/video_send_stream.h | 2 +-
common_audio/BUILD.gn | 4 --
common_audio/fir_filter_avx2.cc | 2 +
common_audio/intrin.h | 8 ++++
media/BUILD.gn | 39 +++++++++++++++-
media/base/media_channel.h | 4 --
media/base/media_channel_impl.cc | 13 ------
modules/audio_coding/BUILD.gn | 2 +-
modules/audio_device/BUILD.gn | 17 +++++--
modules/audio_processing/aec3/BUILD.gn | 13 ++----
.../aec3/adaptive_fir_filter_avx2.cc | 2 +-
.../audio_processing/agc2/rnn_vad/BUILD.gn | 2 +-
modules/desktop_capture/BUILD.gn | 29 +-----------
modules/portal/BUILD.gn | 24 ++++++++++
modules/utility/BUILD.gn | 4 ++
modules/video_capture/BUILD.gn | 11 +----
rtc_base/BUILD.gn | 26 ++++++++++-
rtc_base/system/BUILD.gn | 2 +-
test/BUILD.gn | 10 ++++
video/BUILD.gn | 4 +-
webrtc.gni | 32 ++++++++-----
31 files changed, 316 insertions(+), 98 deletions(-)
create mode 100644 api/rtp_sender_setparameters_callback.cc
create mode 100644 api/rtp_sender_setparameters_callback.h
create mode 100644 common_audio/intrin.h
diff --git a/.gn b/.gn
index 8928cdbaaf..b374016a64 100644
--- a/.gn
+++ b/.gn
@@ -72,6 +72,8 @@ default_args = {
# Prevent jsoncpp to pass -Wno-deprecated-declarations to users
jsoncpp_no_deprecated_declarations = false
+ use_custom_libcxx = false
+
# Fixes the abi-revision issue.
# TODO(https://bugs.webrtc.org/14437): Remove this section if general
# Chromium fix resolves the problem.
diff --git a/BUILD.gn b/BUILD.gn
index 7c8a0fcb1e..92e12eb277 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -33,7 +33,7 @@ if (is_android) {
import("//third_party/jni_zero/jni_zero.gni")
}
-if (!build_with_chromium) {
+if (!build_with_chromium && !build_with_mozilla) {
# This target should (transitively) cause everything to be built; if you run
# 'ninja default' and then 'ninja all', the second build should do no work.
group("default") {
@@ -154,6 +154,10 @@ config("common_inherited_config") {
defines += [ "WEBRTC_ENABLE_OBJC_SYMBOL_EXPORT" ]
}
+ if (build_with_mozilla) {
+ defines += [ "WEBRTC_MOZILLA_BUILD" ]
+ }
+
if (!rtc_builtin_ssl_root_certificates) {
defines += [ "WEBRTC_EXCLUDE_BUILT_IN_SSL_ROOT_CERTS" ]
}
@@ -505,9 +509,11 @@ config("common_config") {
}
}
+if (is_mac) {
config("common_objc") {
frameworks = [ "Foundation.framework" ]
}
+}
if (!build_with_chromium) {
# Target to build all the WebRTC production code.
@@ -558,6 +564,34 @@ if (!build_with_chromium) {
"sdk",
"video",
]
+ if (build_with_mozilla) {
+ deps -= [
+ "api:create_peerconnection_factory",
+ "api:enable_media",
+ "api:rtc_error",
+ "api:transport_api",
+ "api/crypto",
+ "api/rtc_event_log:rtc_event_log_factory",
+ "api/task_queue",
+ "api/task_queue:default_task_queue_factory",
+ "api/test/metrics",
+ "api/video_codecs:video_decoder_factory_template",
+ "api/video_codecs:video_decoder_factory_template_dav1d_adapter",
+ "api/video_codecs:video_decoder_factory_template_libvpx_vp8_adapter",
+ "api/video_codecs:video_decoder_factory_template_libvpx_vp9_adapter",
+ "api/video_codecs:video_decoder_factory_template_open_h264_adapter",
+ "api/video_codecs:video_encoder_factory_template",
+ "api/video_codecs:video_encoder_factory_template_libaom_av1_adapter",
+ "api/video_codecs:video_encoder_factory_template_libvpx_vp8_adapter",
+ "api/video_codecs:video_encoder_factory_template_libvpx_vp9_adapter",
+ "api/video_codecs:video_encoder_factory_template_open_h264_adapter",
+ "logging:rtc_event_log_api",
+ "p2p:rtc_p2p",
+ "pc:libjingle_peerconnection",
+ "pc:rtc_pc",
+ "sdk",
+ ]
+ }
if (rtc_include_builtin_audio_codecs) {
deps += [
@@ -570,6 +604,16 @@ if (!build_with_chromium) {
deps += [
"api/video:video_frame",
"api/video:video_rtp_headers",
+ "test:rtp_test_utils",
+ ]
+ # Added when we removed deps in other places to avoid building
+ # unreachable sources. See Bug 1820869.
+ deps += [
+ "api/video_codecs:video_codecs_api",
+ "api/video_codecs:rtc_software_fallback_wrappers",
+ "media:rtc_simulcast_encoder_adapter",
+ "modules/video_coding:webrtc_vp8",
+ "modules/video_coding:webrtc_vp9",
]
} else {
deps += [
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 419ebc1785..54bd4b6a63 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -44,6 +44,9 @@ rtc_source_set("enable_media") {
"../rtc_base/system:rtc_export",
"environment",
]
+ if (build_with_mozilla) {
+ deps -= [ "../pc:media_factory" ]
+ }
}
rtc_source_set("enable_media_with_defaults") {
@@ -76,7 +79,7 @@ rtc_source_set("enable_media_with_defaults") {
]
}
-if (!build_with_chromium) {
+if (!build_with_chromium && !build_with_mozilla) {
rtc_library("create_peerconnection_factory") {
visibility = [ "*" ]
allow_poison = [ "environment_construction" ]
@@ -230,6 +233,10 @@ rtc_source_set("ice_transport_interface") {
}
rtc_library("dtls_transport_interface") {
+# Previously, Mozilla has tried to limit including this dep, but as
+# upstream changes, it requires whack-a-mole. Making it an empty
+# definition has the same effect, but only requires one change.
+if (!build_with_mozilla) {
visibility = [ "*" ]
sources = [
@@ -247,6 +254,7 @@ rtc_library("dtls_transport_interface") {
"//third_party/abseil-cpp/absl/types:optional",
]
}
+}
rtc_library("dtmf_sender_interface") {
visibility = [ "*" ]
@@ -259,6 +267,10 @@ rtc_library("dtmf_sender_interface") {
}
rtc_library("rtp_sender_interface") {
+# Previously, Mozilla has tried to limit including this dep, but as
+# upstream changes, it requires whack-a-mole. Making it an empty
+# definition has the same effect, but only requires one change.
+if (!build_with_mozilla) {
visibility = [ "*" ]
sources = [
@@ -273,6 +285,7 @@ rtc_library("rtp_sender_interface") {
":ref_count",
":rtc_error",
":rtp_parameters",
+ ":rtp_sender_setparameters_callback",
":scoped_refptr",
"../rtc_base:checks",
"../rtc_base/system:rtc_export",
@@ -281,8 +294,23 @@ rtc_library("rtp_sender_interface") {
"//third_party/abseil-cpp/absl/functional:any_invocable",
]
}
+}
+
+rtc_library("rtp_sender_setparameters_callback") {
+ visibility = [ "*" ]
+
+ sources = [
+ "rtp_sender_setparameters_callback.cc",
+ "rtp_sender_setparameters_callback.h",
+ ]
+ deps = [
+ ":rtc_error",
+ "//third_party/abseil-cpp/absl/functional:any_invocable",
+ ]
+}
rtc_library("libjingle_peerconnection_api") {
+if (!build_with_mozilla) {
visibility = [ "*" ]
cflags = []
sources = [
@@ -405,6 +433,7 @@ rtc_library("libjingle_peerconnection_api") {
"../rtc_base/system:rtc_export",
]
}
+}
rtc_source_set("frame_transformer_interface") {
visibility = [ "*" ]
@@ -592,6 +621,7 @@ rtc_source_set("peer_network_dependencies") {
}
rtc_source_set("peer_connection_quality_test_fixture_api") {
+if (!build_with_mozilla) {
visibility = [ "*" ]
testonly = true
sources = [ "test/peerconnection_quality_test_fixture.h" ]
@@ -638,6 +668,7 @@ rtc_source_set("peer_connection_quality_test_fixture_api") {
"//third_party/abseil-cpp/absl/types:optional",
]
}
+}
rtc_source_set("frame_generator_api") {
visibility = [ "*" ]
@@ -763,6 +794,7 @@ rtc_library("create_frame_generator") {
]
}
+if (!build_with_mozilla) {
rtc_library("create_peer_connection_quality_test_frame_generator") {
visibility = [ "*" ]
testonly = true
@@ -781,6 +813,7 @@ rtc_library("create_peer_connection_quality_test_frame_generator") {
"//third_party/abseil-cpp/absl/types:optional",
]
}
+}
rtc_source_set("libjingle_logging_api") {
visibility = [ "*" ]
@@ -968,6 +1001,7 @@ rtc_source_set("refcountedbase") {
]
}
+if (!build_with_mozilla) {
rtc_library("ice_transport_factory") {
visibility = [ "*" ]
sources = [
@@ -993,6 +1027,7 @@ rtc_library("ice_transport_factory") {
"rtc_event_log:rtc_event_log",
]
}
+}
rtc_library("neteq_simulator_api") {
visibility = [ "*" ]
diff --git a/api/rtp_sender_interface.h b/api/rtp_sender_interface.h
index 7d92c42a18..98591c6c99 100644
--- a/api/rtp_sender_interface.h
+++ b/api/rtp_sender_interface.h
@@ -34,9 +34,9 @@
#include "api/video_codecs/video_encoder_factory.h"
#include "rtc_base/system/rtc_export.h"
-namespace webrtc {
+#include "api/rtp_sender_setparameters_callback.h"
-using SetParametersCallback = absl::AnyInvocable<void(RTCError) &&>;
+namespace webrtc {
class RTC_EXPORT RtpSenderInterface : public webrtc::RefCountInterface,
public FrameTransformerHost {
diff --git a/api/rtp_sender_setparameters_callback.cc b/api/rtp_sender_setparameters_callback.cc
new file mode 100644
index 0000000000..99728ef95e
--- /dev/null
+++ b/api/rtp_sender_setparameters_callback.cc
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2015 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+// File added by mozilla, to decouple this from libwebrtc's implementation of
+// RTCRtpSender.
+
+#include "api/rtp_sender_setparameters_callback.h"
+
+namespace webrtc {
+
+webrtc::RTCError InvokeSetParametersCallback(SetParametersCallback& callback,
+ RTCError error) {
+ if (callback) {
+ std::move(callback)(error);
+ callback = nullptr;
+ }
+ return error;
+}
+
+} // namespace webrtc
diff --git a/api/rtp_sender_setparameters_callback.h b/api/rtp_sender_setparameters_callback.h
new file mode 100644
index 0000000000..45194f5ace
--- /dev/null
+++ b/api/rtp_sender_setparameters_callback.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2015 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+// File added by mozilla, to decouple this from libwebrtc's implementation of
+// RTCRtpSender.
+
+#ifndef API_RTP_SENDER_SETPARAMETERS_CALLBACK_H_
+#define API_RTP_SENDER_SETPARAMETERS_CALLBACK_H_
+
+#include "api/rtc_error.h"
+#include "absl/functional/any_invocable.h"
+
+namespace webrtc {
+
+using SetParametersCallback = absl::AnyInvocable<void(RTCError) &&>;
+
+webrtc::RTCError InvokeSetParametersCallback(SetParametersCallback& callback,
+ RTCError error);
+} // namespace webrtc
+
+#endif // API_RTP_SENDER_SETPARAMETERS_CALLBACK_H_
diff --git a/api/task_queue/BUILD.gn b/api/task_queue/BUILD.gn
index 2e72dd644d..7e6be706f8 100644
--- a/api/task_queue/BUILD.gn
+++ b/api/task_queue/BUILD.gn
@@ -29,6 +29,7 @@ rtc_library("task_queue") {
]
}
+if (rtc_include_tests) {
rtc_library("task_queue_test") {
visibility = [ "*" ]
testonly = true
@@ -74,6 +75,7 @@ rtc_library("task_queue_test") {
]
}
}
+}
rtc_library("default_task_queue_factory") {
visibility = [ "*" ]
diff --git a/api/transport/BUILD.gn b/api/transport/BUILD.gn
index 991a0d3880..05982eb029 100644
--- a/api/transport/BUILD.gn
+++ b/api/transport/BUILD.gn
@@ -106,6 +106,7 @@ rtc_source_set("sctp_transport_factory_interface") {
}
rtc_source_set("stun_types") {
+if (!build_with_mozilla) {
visibility = [ "*" ]
sources = [
"stun.cc",
@@ -127,6 +128,7 @@ rtc_source_set("stun_types") {
"//third_party/abseil-cpp/absl/strings:string_view",
]
}
+}
if (rtc_include_tests) {
rtc_source_set("test_feedback_generator_interface") {
diff --git a/call/BUILD.gn b/call/BUILD.gn
index 9f2833196d..50652de2e1 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -44,7 +44,7 @@ rtc_library("call_interfaces") {
"../api:network_state_predictor_api",
"../api:rtp_headers",
"../api:rtp_parameters",
- "../api:rtp_sender_interface",
+ "../api:rtp_sender_setparameters_callback",
"../api:scoped_refptr",
"../api:transport_api",
"../api/adaptation:resource_adaptation_api",
@@ -335,6 +335,16 @@ rtc_library("call") {
"//third_party/abseil-cpp/absl/strings:string_view",
"//third_party/abseil-cpp/absl/types:optional",
]
+ if (build_with_mozilla) { # See Bug 1820869.
+ sources -= [
+ "create_call.cc",
+ "degraded_call.cc",
+ ]
+ deps -= [
+ ":fake_network",
+ ":simulated_network",
+ ]
+ }
}
rtc_source_set("receive_stream_interface") {
@@ -362,7 +372,7 @@ rtc_library("video_stream_api") {
"../api:frame_transformer_interface",
"../api:rtp_headers",
"../api:rtp_parameters",
- "../api:rtp_sender_interface",
+ "../api:rtp_sender_setparameters_callback",
"../api:scoped_refptr",
"../api:transport_api",
"../api/adaptation:resource_adaptation_api",
diff --git a/call/audio_send_stream.h b/call/audio_send_stream.h
index 1b7a9065d5..ca38f82c3c 100644
--- a/call/audio_send_stream.h
+++ b/call/audio_send_stream.h
@@ -26,7 +26,7 @@
#include "api/crypto/frame_encryptor_interface.h"
#include "api/frame_transformer_interface.h"
#include "api/rtp_parameters.h"
-#include "api/rtp_sender_interface.h"
+#include "api/rtp_sender_setparameters_callback.h"
#include "api/scoped_refptr.h"
#include "call/audio_sender.h"
#include "call/rtp_config.h"
diff --git a/call/video_send_stream.h b/call/video_send_stream.h
index 2c3fe55f8d..ca900823c8 100644
--- a/call/video_send_stream.h
+++ b/call/video_send_stream.h
@@ -23,7 +23,7 @@
#include "api/crypto/crypto_options.h"
#include "api/frame_transformer_interface.h"
#include "api/rtp_parameters.h"
-#include "api/rtp_sender_interface.h"
+#include "api/rtp_sender_setparameters_callback.h"
#include "api/scoped_refptr.h"
#include "api/video/video_content_type.h"
#include "api/video/video_frame.h"
diff --git a/common_audio/BUILD.gn b/common_audio/BUILD.gn
index 3603fdf860..4397c45085 100644
--- a/common_audio/BUILD.gn
+++ b/common_audio/BUILD.gn
@@ -268,14 +268,10 @@ if (current_cpu == "x86" || current_cpu == "x64") {
"resampler/sinc_resampler_avx2.cc",
]
- if (is_win) {
- cflags = [ "/arch:AVX2" ]
- } else {
cflags = [
"-mavx2",
"-mfma",
]
- }
deps = [
":fir_filter",
diff --git a/common_audio/fir_filter_avx2.cc b/common_audio/fir_filter_avx2.cc
index 9cb0f770ca..0031392f8a 100644
--- a/common_audio/fir_filter_avx2.cc
+++ b/common_audio/fir_filter_avx2.cc
@@ -15,6 +15,8 @@
#include <string.h>
#include <xmmintrin.h>
+#include "common_audio/intrin.h"
+
#include "rtc_base/checks.h"
#include "rtc_base/memory/aligned_malloc.h"
diff --git a/common_audio/intrin.h b/common_audio/intrin.h
new file mode 100644
index 0000000000..f6ff7f218f
--- /dev/null
+++ b/common_audio/intrin.h
@@ -0,0 +1,8 @@
+#if defined (__SSE__)
+ #include <immintrin.h>
+ #if defined (__clang__)
+ #include <avxintrin.h>
+ #include <avx2intrin.h>
+ #include <fmaintrin.h>
+ #endif
+#endif
diff --git a/media/BUILD.gn b/media/BUILD.gn
index 79662b04bf..2b99bc948c 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -77,7 +77,7 @@ rtc_library("rtc_media_base") {
"../api:media_stream_interface",
"../api:rtc_error",
"../api:rtp_parameters",
- "../api:rtp_sender_interface",
+ "../api:rtp_sender_setparameters_callback",
"../api:scoped_refptr",
"../api:sequence_checker",
"../api:transport_api",
@@ -128,6 +128,12 @@ rtc_library("rtc_media_base") {
"../video/config:encoder_config",
"//third_party/abseil-cpp/absl/types:optional",
]
+ if (build_with_mozilla) {
+ sources -= [
+ "base/adapted_video_track_source.cc",
+ "base/adapted_video_track_source.h",
+ ]
+ }
}
rtc_library("adapted_video_track_source") {
@@ -153,6 +159,9 @@ rtc_library("adapted_video_track_source") {
rtc_source_set("audio_source") {
sources = [ "base/audio_source.h" ]
+ if (build_with_mozilla) {
+ sources -= [ "base/audio_source.h" ]
+ }
deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
}
@@ -250,9 +259,16 @@ rtc_library("media_engine") {
"../rtc_base/system:file_wrapper",
"//third_party/abseil-cpp/absl/algorithm:container",
]
+ if (build_with_mozilla) {
+ sources -= [
+ "base/media_engine.cc",
+ "base/media_engine.h",
+ ]
+ }
}
rtc_library("media_channel_impl") {
+if (!build_with_mozilla) {
sources = [
"base/media_channel_impl.cc",
"base/media_channel_impl.h",
@@ -300,6 +316,7 @@ rtc_library("media_channel_impl") {
"//third_party/abseil-cpp/absl/types:optional",
]
}
+}
rtc_source_set("media_channel") {
sources = [ "base/media_channel.h" ]
@@ -373,6 +390,7 @@ rtc_library("codec") {
}
rtc_library("rtp_utils") {
+if (!build_with_mozilla) {
sources = [
"base/rtp_utils.cc",
"base/rtp_utils.h",
@@ -389,8 +407,10 @@ rtc_library("rtp_utils") {
"//third_party/abseil-cpp/absl/strings:string_view",
]
}
+}
rtc_library("stream_params") {
+if (!build_with_mozilla) {
sources = [
"base/stream_params.cc",
"base/stream_params.h",
@@ -403,6 +423,7 @@ rtc_library("stream_params") {
"//third_party/abseil-cpp/absl/algorithm:container",
]
}
+}
rtc_library("media_constants") {
sources = [
@@ -413,6 +434,7 @@ rtc_library("media_constants") {
}
rtc_library("turn_utils") {
+if (!build_with_mozilla) {
sources = [
"base/turn_utils.cc",
"base/turn_utils.h",
@@ -423,14 +445,17 @@ rtc_library("turn_utils") {
"../rtc_base/system:rtc_export",
]
}
+}
rtc_library("rid_description") {
+if (!build_with_mozilla) {
sources = [
"base/rid_description.cc",
"base/rid_description.h",
]
deps = []
}
+}
rtc_library("rtc_simulcast_encoder_adapter") {
visibility = [ "*" ]
@@ -513,6 +538,11 @@ rtc_library("rtc_internal_video_codecs") {
"//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
]
+ if (build_with_mozilla) {
+ deps -= [
+ "../test:fake_video_codecs",
+ ]
+ }
if (enable_libaom) {
defines += [ "RTC_USE_LIBAOM_AV1_ENCODER" ]
@@ -532,6 +562,13 @@ rtc_library("rtc_internal_video_codecs") {
"engine/internal_encoder_factory.cc",
"engine/internal_encoder_factory.h",
]
+ if (build_with_mozilla) {
+ sources -= [
+ "engine/fake_video_codec_factory.cc",
+ "engine/fake_video_codec_factory.h",
+ "engine/internal_encoder_factory.cc", # See Bug 1820869.
+ ]
+ }
}
rtc_library("rtc_audio_video") {
diff --git a/media/base/media_channel.h b/media/base/media_channel.h
index d656304971..6e1f2b103f 100644
--- a/media/base/media_channel.h
+++ b/media/base/media_channel.h
@@ -65,10 +65,6 @@ class Timing;
namespace webrtc {
class VideoFrame;
-
-webrtc::RTCError InvokeSetParametersCallback(SetParametersCallback& callback,
- RTCError error);
-
} // namespace webrtc
namespace cricket {
diff --git a/media/base/media_channel_impl.cc b/media/base/media_channel_impl.cc
index 1c08382969..ff69ea62dc 100644
--- a/media/base/media_channel_impl.cc
+++ b/media/base/media_channel_impl.cc
@@ -31,19 +31,6 @@
#include "modules/rtp_rtcp/include/report_block_data.h"
#include "rtc_base/checks.h"
-namespace webrtc {
-
-webrtc::RTCError InvokeSetParametersCallback(SetParametersCallback& callback,
- RTCError error) {
- if (callback) {
- std::move(callback)(error);
- callback = nullptr;
- }
- return error;
-}
-
-} // namespace webrtc
-
namespace cricket {
using webrtc::FrameDecryptorInterface;
using webrtc::FrameEncryptorInterface;
diff --git a/modules/audio_coding/BUILD.gn b/modules/audio_coding/BUILD.gn
index cb98266510..b630ad2a79 100644
--- a/modules/audio_coding/BUILD.gn
+++ b/modules/audio_coding/BUILD.gn
@@ -550,7 +550,7 @@ rtc_library("webrtc_opus_wrapper") {
deps += [ rtc_opus_dir ]
public_configs = [ "//third_party/opus:opus_config" ]
} else if (build_with_mozilla) {
- include_dirs = [ getenv("DIST") + "/include/opus" ]
+ public_configs = [ "//third_party/opus:opus_config" ]
}
}
diff --git a/modules/audio_device/BUILD.gn b/modules/audio_device/BUILD.gn
index d4eee0b6f4..bd3599e1d0 100644
--- a/modules/audio_device/BUILD.gn
+++ b/modules/audio_device/BUILD.gn
@@ -30,6 +30,7 @@ rtc_source_set("audio_device_default") {
}
rtc_source_set("audio_device") {
+if (!build_with_mozilla) { # See Bug 1820869.
visibility = [ "*" ]
public_deps += [ # no-presubmit-check TODO(webrtc:8603)
":audio_device_api",
@@ -40,6 +41,7 @@ rtc_source_set("audio_device") {
":audio_device_impl",
]
}
+}
rtc_source_set("audio_device_api") {
visibility = [ "*" ]
@@ -55,6 +57,7 @@ rtc_library("audio_device_config") {
}
rtc_library("audio_device_buffer") {
+if (!build_with_mozilla) { # See Bug 1820869.
sources = [
"audio_device_buffer.cc",
"audio_device_buffer.h",
@@ -81,6 +84,7 @@ rtc_library("audio_device_buffer") {
"//third_party/abseil-cpp/absl/types:optional",
]
}
+}
rtc_library("audio_device_generic") {
sources = [
@@ -253,6 +257,7 @@ if (!build_with_chromium) {
# Contains default implementations of webrtc::AudioDeviceModule for Windows,
# Linux, Mac, iOS and Android.
rtc_library("audio_device_impl") {
+if (!build_with_mozilla) { # See Bug 1820869.
visibility = [ "*" ]
deps = [
":audio_device_buffer",
@@ -298,9 +303,9 @@ rtc_library("audio_device_impl") {
sources = [ "include/fake_audio_device.h" ]
if (build_with_mozilla) {
- sources += [
- "opensl/single_rw_fifo.cc",
- "opensl/single_rw_fifo.h",
+ sources -= [
+ "include/test_audio_device.cc",
+ "include/test_audio_device.h",
]
}
@@ -405,6 +410,7 @@ rtc_library("audio_device_impl") {
sources += [ "dummy/file_audio_device_factory.h" ]
}
}
+}
if (is_mac) {
rtc_source_set("audio_device_impl_frameworks") {
@@ -422,6 +428,7 @@ if (is_mac) {
}
}
+if (!build_with_mozilla) { # See Bug 1820869.
rtc_source_set("mock_audio_device") {
visibility = [ "*" ]
testonly = true
@@ -440,8 +447,10 @@ rtc_source_set("mock_audio_device") {
"//third_party/abseil-cpp/absl/types:optional",
]
}
+}
-if (rtc_include_tests && !build_with_chromium) {
+# See Bug 1820869 for !build_with_mozilla.
+if (rtc_include_tests && !build_with_chromium && !build_with_mozilla) {
rtc_library("audio_device_unittests") {
testonly = true
diff --git a/modules/audio_processing/aec3/BUILD.gn b/modules/audio_processing/aec3/BUILD.gn
index 0f84e246fd..a55132fcdc 100644
--- a/modules/audio_processing/aec3/BUILD.gn
+++ b/modules/audio_processing/aec3/BUILD.gn
@@ -262,14 +262,11 @@ if (current_cpu == "x86" || current_cpu == "x64") {
"vector_math_avx2.cc",
]
- if (is_win) {
- cflags = [ "/arch:AVX2" ]
- } else {
- cflags = [
- "-mavx2",
- "-mfma",
- ]
- }
+ cflags = [
+ "-mavx",
+ "-mavx2",
+ "-mfma",
+ ]
deps = [
":adaptive_fir_filter",
diff --git a/modules/audio_processing/aec3/adaptive_fir_filter_avx2.cc b/modules/audio_processing/aec3/adaptive_fir_filter_avx2.cc
index b6eda9f117..8d6e1cf3d7 100644
--- a/modules/audio_processing/aec3/adaptive_fir_filter_avx2.cc
+++ b/modules/audio_processing/aec3/adaptive_fir_filter_avx2.cc
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include <immintrin.h>
+#include "common_audio/intrin.h"
#include "modules/audio_processing/aec3/adaptive_fir_filter.h"
#include "rtc_base/checks.h"
diff --git a/modules/audio_processing/agc2/rnn_vad/BUILD.gn b/modules/audio_processing/agc2/rnn_vad/BUILD.gn
index a0dd3942ee..47b9466a44 100644
--- a/modules/audio_processing/agc2/rnn_vad/BUILD.gn
+++ b/modules/audio_processing/agc2/rnn_vad/BUILD.gn
@@ -122,7 +122,7 @@ rtc_source_set("vector_math") {
if (current_cpu == "x86" || current_cpu == "x64") {
rtc_library("vector_math_avx2") {
sources = [ "vector_math_avx2.cc" ]
- if (is_win) {
+ if (is_win && !build_with_mozilla) {
cflags = [ "/arch:AVX2" ]
} else {
cflags = [
diff --git a/modules/desktop_capture/BUILD.gn b/modules/desktop_capture/BUILD.gn
index ddbf3c3d58..1d6f6d567f 100644
--- a/modules/desktop_capture/BUILD.gn
+++ b/modules/desktop_capture/BUILD.gn
@@ -347,37 +347,12 @@ rtc_library("desktop_capture") {
]
deps += [ ":desktop_capture_objc" ]
}
-
- if (build_with_mozilla) {
- sources += [
- "desktop_device_info.cc",
- "desktop_device_info.h",
- ]
- if (is_win) {
- sources += [
- "app_capturer_win.cc",
- "win/desktop_device_info_win.cc",
- "win/win_shared.cc",
- ]
- }
- }
if (rtc_use_x11_extensions || rtc_use_pipewire) {
sources += [
"mouse_cursor_monitor_linux.cc",
"screen_capturer_linux.cc",
"window_capturer_linux.cc",
]
-
- if (build_with_mozilla && (is_linux || is_chromeos)) {
- sources += [
- "app_capturer_linux.cc",
- "linux/x11/app_capturer_x11.cc",
- "linux/x11/desktop_device_info_linux.cc",
- "linux/x11/desktop_device_info_linux.h",
- "linux/x11/shared_x_util.cc",
- "linux/x11/shared_x_util.h",
- ]
- }
}
if (rtc_use_x11_extensions) {
@@ -536,9 +511,7 @@ rtc_library("desktop_capture") {
deps += [ "../../rtc_base:sanitizer" ]
}
- if (!build_with_mozilla) {
- deps += [ "//third_party/libyuv" ]
- }
+ deps += [ "//third_party/libyuv" ]
if (use_desktop_capture_differ_sse2) {
deps += [ ":desktop_capture_differ_sse2" ]
diff --git a/modules/portal/BUILD.gn b/modules/portal/BUILD.gn
index e2b2717c89..aff8609b54 100644
--- a/modules/portal/BUILD.gn
+++ b/modules/portal/BUILD.gn
@@ -11,6 +11,7 @@ import("//tools/generate_stubs/rules.gni")
import("../../webrtc.gni")
if ((is_linux || is_chromeos) && rtc_use_pipewire) {
+if (!build_with_mozilla) {
pkg_config("gio") {
packages = [
"gio-2.0",
@@ -88,6 +89,12 @@ if ((is_linux || is_chromeos) && rtc_use_pipewire) {
defines += [ "WEBRTC_USE_GIO" ]
}
}
+} else {
+ config("pipewire_all") {
+ }
+ config("pipewire_config") {
+ }
+}
rtc_library("portal") {
sources = [
@@ -120,5 +127,22 @@ if ((is_linux || is_chromeos) && rtc_use_pipewire) {
deps += [ ":pipewire_stubs" ]
}
+
+ if (build_with_mozilla) {
+ configs -= [
+ ":gio",
+ ":pipewire",
+ ":pipewire_config",
+ ]
+ deps -= [ ":pipewire_stubs" ]
+ defines -= [ "WEBRTC_DLOPEN_PIPEWIRE" ]
+ public_deps = [
+ "//third_party/pipewire",
+ "//third_party/drm",
+ "//third_party/gbm",
+ "//third_party/libepoxy"
+ ]
+ }
}
}
+
diff --git a/modules/utility/BUILD.gn b/modules/utility/BUILD.gn
index 8cefe5653c..b8d75865f7 100644
--- a/modules/utility/BUILD.gn
+++ b/modules/utility/BUILD.gn
@@ -25,5 +25,9 @@ rtc_source_set("utility") {
"../../rtc_base:platform_thread",
"../../rtc_base/system:arch",
]
+
+ if (build_with_mozilla) {
+ sources -= [ "source/jvm_android.cc" ]
+ }
}
}
diff --git a/modules/video_capture/BUILD.gn b/modules/video_capture/BUILD.gn
index 29a7bea9d9..a8994aaa68 100644
--- a/modules/video_capture/BUILD.gn
+++ b/modules/video_capture/BUILD.gn
@@ -129,21 +129,12 @@ if (!build_with_chromium || is_linux || is_chromeos) {
"strmiids.lib",
"user32.lib",
]
-
- if (build_with_mozilla) {
- sources += [
- "windows/BaseFilter.cpp",
- "windows/BaseInputPin.cpp",
- "windows/BasePin.cpp",
- "windows/MediaType.cpp",
- ]
- }
}
if (is_fuchsia) {
sources += [ "video_capture_factory_null.cc" ]
}
- if (build_with_mozilla && is_android) {
+ if (!build_with_mozilla && is_android) {
include_dirs = [
"/config/external/nspr",
"/nsprpub/lib/ds",
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 2bdbb971ef..0ed0780651 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -338,6 +338,7 @@ rtc_library("sample_counter") {
]
}
+if (!build_with_mozilla) { # See Bug 1820869.
rtc_library("timestamp_aligner") {
visibility = [ "*" ]
sources = [
@@ -351,6 +352,7 @@ rtc_library("timestamp_aligner") {
"system:rtc_export",
]
}
+}
rtc_library("zero_memory") {
visibility = [ "*" ]
@@ -858,7 +860,9 @@ rtc_library("rtc_json") {
":stringutils",
"//third_party/abseil-cpp/absl/strings:string_view",
]
+if (!build_with_mozilla) {
all_dependent_configs = [ "//third_party/jsoncpp:jsoncpp_config" ]
+}
if (rtc_build_json) {
deps += [ "//third_party/jsoncpp" ]
} else {
@@ -1210,6 +1214,7 @@ if (!build_with_chromium) {
}
rtc_library("network") {
+if (!build_with_mozilla) {
visibility = [ "*" ]
sources = [
"network.cc",
@@ -1247,16 +1252,20 @@ rtc_library("network") {
deps += [ ":win32" ]
}
}
+}
rtc_library("socket_address_pair") {
+if (!build_with_mozilla) {
sources = [
"socket_address_pair.cc",
"socket_address_pair.h",
]
deps = [ ":socket_address" ]
}
+}
rtc_library("net_helper") {
+if (!build_with_mozilla) {
visibility = [ "*" ]
sources = [
"net_helper.cc",
@@ -1267,8 +1276,10 @@ rtc_library("net_helper") {
"//third_party/abseil-cpp/absl/strings:string_view",
]
}
+}
rtc_library("socket_adapters") {
+if (!build_with_mozilla) {
visibility = [ "*" ]
sources = [
"socket_adapters.cc",
@@ -1287,6 +1298,7 @@ rtc_library("socket_adapters") {
"//third_party/abseil-cpp/absl/strings:string_view",
]
}
+}
rtc_library("network_route") {
sources = [
@@ -1301,6 +1313,7 @@ rtc_library("network_route") {
}
rtc_library("async_tcp_socket") {
+if (!build_with_mozilla) {
sources = [
"async_tcp_socket.cc",
"async_tcp_socket.h",
@@ -1318,8 +1331,10 @@ rtc_library("async_tcp_socket") {
"network:sent_packet",
]
}
+}
rtc_library("async_udp_socket") {
+if (!build_with_mozilla) {
visibility = [ "*" ]
sources = [
"async_udp_socket.cc",
@@ -1343,8 +1358,10 @@ rtc_library("async_udp_socket") {
"//third_party/abseil-cpp/absl/types:optional",
]
}
+}
rtc_library("async_packet_socket") {
+if (!build_with_mozilla) {
visibility = [ "*" ]
sources = [
"async_packet_socket.cc",
@@ -1364,6 +1381,7 @@ rtc_library("async_packet_socket") {
"third_party/sigslot",
]
}
+}
if (rtc_include_tests) {
rtc_library("async_packet_socket_unittest") {
@@ -1419,6 +1437,7 @@ rtc_library("data_rate_limiter") {
}
rtc_library("unique_id_generator") {
+if (!build_with_mozilla) {
sources = [
"unique_id_generator.cc",
"unique_id_generator.h",
@@ -1433,6 +1452,7 @@ rtc_library("unique_id_generator") {
"//third_party/abseil-cpp/absl/strings:string_view",
]
}
+}
rtc_library("crc32") {
sources = [
@@ -1466,6 +1486,7 @@ rtc_library("stream") {
}
rtc_library("rtc_certificate_generator") {
+if (!build_with_mozilla) {
visibility = [ "*" ]
sources = [
"rtc_certificate_generator.cc",
@@ -1481,6 +1502,7 @@ rtc_library("rtc_certificate_generator") {
"//third_party/abseil-cpp/absl/types:optional",
]
}
+}
rtc_source_set("ssl_header") {
visibility = [ "*" ]
@@ -1537,6 +1559,7 @@ rtc_library("crypto_random") {
}
rtc_library("ssl") {
+if (!build_with_mozilla) {
visibility = [ "*" ]
sources = [
"openssl_key_pair.cc",
@@ -1610,6 +1633,7 @@ rtc_library("ssl") {
deps += [ ":win32" ]
}
}
+}
rtc_library("ssl_adapter") {
visibility = [ "*" ]
@@ -2223,7 +2247,7 @@ if (rtc_include_tests) {
}
}
-if (is_android) {
+if (is_android && !build_with_mozilla) {
rtc_android_library("base_java") {
visibility = [ "*" ]
sources = [
diff --git a/rtc_base/system/BUILD.gn b/rtc_base/system/BUILD.gn
index eef2754883..90f746e594 100644
--- a/rtc_base/system/BUILD.gn
+++ b/rtc_base/system/BUILD.gn
@@ -102,7 +102,7 @@ if (is_mac || is_ios) {
rtc_source_set("warn_current_thread_is_deadlocked") {
sources = [ "warn_current_thread_is_deadlocked.h" ]
deps = []
- if (is_android && !build_with_chromium) {
+ if (is_android && (!build_with_chromium && !build_with_mozilla)) {
sources += [ "warn_current_thread_is_deadlocked.cc" ]
deps += [
"..:logging",
diff --git a/test/BUILD.gn b/test/BUILD.gn
index bec49f04e3..56ba9d597d 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -232,6 +232,7 @@ rtc_library("audio_test_common") {
]
}
+if (!build_with_mozilla) {
if (!build_with_chromium) {
if (is_mac || is_ios) {
rtc_library("video_test_mac") {
@@ -285,8 +286,12 @@ if (!build_with_chromium) {
}
}
}
+}
rtc_library("rtp_test_utils") {
+ if (build_with_mozilla) {
+ sources = []
+ } else {
testonly = true
sources = [
"rtcp_packet_parser.cc",
@@ -296,6 +301,7 @@ rtc_library("rtp_test_utils") {
"rtp_file_writer.cc",
"rtp_file_writer.h",
]
+ }
deps = [
"../api:array_view",
@@ -521,7 +527,9 @@ rtc_library("video_frame_writer") {
]
if (!is_ios) {
+ if (!build_with_mozilla) {
deps += [ "//third_party:jpeg" ]
+ }
sources += [ "testsupport/jpeg_frame_writer.cc" ]
} else {
sources += [ "testsupport/jpeg_frame_writer_ios.cc" ]
@@ -1303,6 +1311,7 @@ if (!build_with_chromium) {
}
}
+if (!build_with_mozilla) {
if (!build_with_chromium && is_android) {
rtc_android_library("native_test_java") {
testonly = true
@@ -1316,6 +1325,7 @@ if (!build_with_chromium && is_android) {
]
}
}
+}
rtc_library("call_config_utils") {
testonly = true
diff --git a/video/BUILD.gn b/video/BUILD.gn
index aa18fd019a..377ca361c3 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -17,7 +17,7 @@ rtc_library("video_stream_encoder_interface") {
"../api:fec_controller_api",
"../api:rtc_error",
"../api:rtp_parameters",
- "../api:rtp_sender_interface",
+ "../api:rtp_sender_setparameters_callback",
"../api:scoped_refptr",
"../api/adaptation:resource_adaptation_api",
"../api/units:data_rate",
@@ -406,7 +406,7 @@ rtc_library("video_stream_encoder_impl") {
":video_stream_encoder_interface",
"../api:field_trials_view",
"../api:rtp_parameters",
- "../api:rtp_sender_interface",
+ "../api:rtp_sender_setparameters_callback",
"../api:sequence_checker",
"../api/adaptation:resource_adaptation_api",
"../api/environment",
diff --git a/webrtc.gni b/webrtc.gni
index 45293063a9..98c1dd279f 100644
--- a/webrtc.gni
+++ b/webrtc.gni
@@ -35,6 +35,11 @@ if (is_mac) {
import("//build/config/mac/rules.gni")
}
+if (is_android) {
+ import("//build/config/android/config.gni")
+ import("//build/config/android/rules.gni")
+}
+
if (is_fuchsia) {
import("//build/config/fuchsia/config.gni")
}
@@ -46,6 +51,11 @@ if (build_with_chromium) {
# This declare_args is separated from the next one because args declared
# in this one, can be read from the next one (args defined in the same
# declare_args cannot be referenced in that scope).
+declare_args() {
+ # Enable to use the Mozilla internal settings.
+ build_with_mozilla = true
+}
+
declare_args() {
# Setting this to true will make RTC_EXPORT (see rtc_base/system/rtc_export.h)
# expand to code that will manage symbols visibility.
@@ -92,7 +102,7 @@ declare_args() {
# will tell the pre-processor to remove the default definition of the
# SystemTimeNanos() which is defined in rtc_base/system_time.cc. In
# that case a new implementation needs to be provided.
- rtc_exclude_system_time = build_with_chromium
+ rtc_exclude_system_time = build_with_chromium || build_with_mozilla
# Setting this to false will require the API user to pass in their own
# SSLCertificateVerifier to verify the certificates presented from a
@@ -118,7 +128,7 @@ declare_args() {
# Used to specify an external OpenSSL include path when not compiling the
# library that comes with WebRTC (i.e. rtc_build_ssl == 0).
- rtc_ssl_root = ""
+ rtc_ssl_root = "unused"
# Enable when an external authentication mechanism is used for performing
# packet authentication for RTP packets instead of libsrtp.
@@ -132,13 +142,13 @@ declare_args() {
rtc_exclude_audio_processing_module = false
# Set this to false to skip building examples.
- rtc_build_examples = true
+ rtc_build_examples = false
# Set this to false to skip building tools.
- rtc_build_tools = true
+ rtc_build_tools = false
# Set this to false to skip building code that requires X11.
- rtc_use_x11 = ozone_platform_x11
+ rtc_use_x11 = use_x11
# Set this to use PipeWire on the Wayland display server.
# By default it's only enabled on desktop Linux (excludes ChromeOS) and
@@ -149,9 +159,6 @@ declare_args() {
# Set this to link PipeWire and required libraries directly instead of using the dlopen.
rtc_link_pipewire = false
- # Enable to use the Mozilla internal settings.
- build_with_mozilla = false
-
# Experimental: enable use of Android AAudio which requires Android SDK 26 or above
# and NDK r16 or above.
rtc_enable_android_aaudio = false
@@ -287,7 +294,7 @@ declare_args() {
rtc_build_json = !build_with_mozilla
rtc_build_libsrtp = !build_with_mozilla
rtc_build_libvpx = !build_with_mozilla
- rtc_libvpx_build_vp9 = !build_with_mozilla
+ rtc_libvpx_build_vp9 = true
rtc_build_opus = !build_with_mozilla
rtc_build_ssl = !build_with_mozilla
@@ -306,7 +313,7 @@ declare_args() {
# Chromium uses its own IO handling, so the internal ADM is only built for
# standalone WebRTC.
- rtc_include_internal_audio_device = !build_with_chromium
+ rtc_include_internal_audio_device = !build_with_chromium && !build_with_mozilla
# Set this to true to enable the avx2 support in webrtc.
# TODO: Make sure that AVX2 works also for non-clang compilers.
@@ -346,6 +353,9 @@ declare_args() {
rtc_enable_grpc = rtc_enable_protobuf && (is_linux || is_mac)
}
+# Enable liboam only on non-mozilla builds.
+enable_libaom = !build_with_mozilla
+
# Make it possible to provide custom locations for some libraries (move these
# up into declare_args should we need to actually use them for the GN build).
rtc_libvpx_dir = "//third_party/libvpx"
@@ -1189,7 +1199,7 @@ if (is_mac || is_ios) {
}
}
-if (is_android) {
+if (is_android && !build_with_mozilla) {
template("rtc_android_library") {
android_library(target_name) {
forward_variables_from(invoker,