Source code

Revision control

Copy as Markdown

Other Tools

From: Nico Grunbaum <na-g@nostrum.com>
Date: Wed, 27 Nov 2024 03:41:00 +0000
Subject: Bug 1921154 - libwebrtc build related changes for
AV1;r=mjf,webrtc-reviewers
These are most of the changes needed to get a build with AV1.
The crypto/openssl changes are later altered in the stack adding an NSPR based implementation of the functionality that was missing.
---
BUILD.gn | 4 ++++
media/BUILD.gn | 24 ++++++++++++++----------
rtc_base/BUILD.gn | 16 ++++++++++------
webrtc.gni | 4 ++--
4 files changed, 30 insertions(+), 18 deletions(-)
diff --git a/BUILD.gn b/BUILD.gn
index e1acb941cc..e9329d7cbe 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -524,6 +524,9 @@ if (!rtc_build_ssl) {
"crypto",
"ssl",
]
+ if (build_with_mozilla) {
+ libs = []
+ }
}
}
@@ -619,6 +622,7 @@ if (!build_with_chromium) {
"api/environment:environment_factory",
"api/video:video_frame",
"api/video:video_rtp_headers",
+ "api/video_codecs:builtin_video_decoder_factory",
"test:rtp_test_utils",
]
# Added when we removed deps in other places to avoid building
diff --git a/media/BUILD.gn b/media/BUILD.gn
index e327b5d404..a03ee244bb 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -12,12 +12,10 @@ import("../webrtc.gni")
group("media") {
deps = []
- if (!build_with_mozilla) {
- deps += [
- ":rtc_media",
- ":rtc_media_base",
- ]
- }
+ deps += [
+ ":rtc_media",
+ ":rtc_media_base",
+ ]
}
config("rtc_media_defines_config") {
@@ -280,6 +278,9 @@ rtc_library("media_engine") {
"base/media_engine.cc",
"base/media_engine.h",
]
+ deps -= [
+ ":media_channel_impl",
+ ]
}
}
@@ -429,6 +430,7 @@ rtc_library("codec_list") {
]
}
+# MOZILLA Bug 1931241 - how much of this do we need?
rtc_library("rtp_utils") {
if (!build_with_mozilla) {
sources = [
@@ -475,7 +477,6 @@ rtc_library("media_constants") {
}
rtc_library("turn_utils") {
-if (!build_with_mozilla) {
sources = [
"base/turn_utils.cc",
"base/turn_utils.h",
@@ -486,17 +487,14 @@ if (!build_with_mozilla) {
"../rtc_base/system:rtc_export",
]
}
-}
rtc_library("rid_description") {
-if (!build_with_mozilla) {
sources = [
"base/rid_description.cc",
"base/rid_description.h",
]
deps = [ ":codec" ]
}
-}
rtc_library("rtc_simulcast_encoder_adapter") {
visibility = [ "*" ]
@@ -714,6 +712,12 @@ rtc_library("rtc_audio_video") {
"engine/webrtc_voice_engine.cc",
"engine/webrtc_voice_engine.h",
]
+ if (build_with_mozilla) {
+ sources -= [
+ "engine/webrtc_video_engine.cc",
+ "engine/webrtc_voice_engine.cc",
+ ]
+ }
public_configs = []
if (!build_with_chromium) {
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index aa65cccbab..b16bd955f8 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -1511,6 +1511,7 @@ rtc_source_set("ssl_header") {
}
rtc_library("digest") {
+if (!build_with_mozilla) {
visibility = [ "*" ]
sources = [
"message_digest.cc",
@@ -1525,15 +1526,17 @@ rtc_library("digest") {
"//third_party/abseil-cpp/absl/strings:string_view",
]
- # If we are building the SSL library ourselves, we know it's BoringSSL.
- if (rtc_build_ssl) {
- deps += [ "//third_party/boringssl" ]
- } else {
- configs += [ "..:external_ssl_library" ]
- }
+ # If we are building the SSL library ourselves, we know it's BoringSSL.
+ if (rtc_build_ssl) {
+ deps += [ "//third_party/boringssl" ]
+ } else {
+ configs += [ "..:external_ssl_library" ]
+ }
+}
}
rtc_library("crypto_random") {
+if (!build_with_mozilla) {
visibility = [ "*" ]
sources = [
"crypto_random.cc",
@@ -1554,6 +1557,7 @@ rtc_library("crypto_random") {
configs += [ "..:external_ssl_library" ]
}
}
+}
rtc_library("ssl") {
if (!build_with_mozilla) {
diff --git a/webrtc.gni b/webrtc.gni
index a7ad4e2052..269a1611a6 100644
--- a/webrtc.gni
+++ b/webrtc.gni
@@ -125,7 +125,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 = "unused"
+ rtc_ssl_root = ""
# Enable when an external authentication mechanism is used for performing
# packet authentication for RTP packets instead of libsrtp.
@@ -355,7 +355,7 @@ declare_args() {
}
# Enable liboam only on non-mozilla builds.
-enable_libaom = !build_with_mozilla
+enable_libaom = true
# 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).