From: Nico Grunbaum 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. Differential Revision: https://phabricator.services.mozilla.com/D228540 Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/4527c41ef71d7683c60d9c435991a0d93bc5ce4d --- BUILD.gn | 4 ++++ media/BUILD.gn | 24 ++++++++++++++---------- rtc_base/BUILD.gn | 4 ++++ webrtc.gni | 4 ++-- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index e890c05e82..1b69ea3427 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -524,6 +524,9 @@ if (!rtc_build_ssl) { "crypto", "ssl", ] + if (build_with_mozilla) { + libs = [] + } } } @@ -618,6 +621,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 614bbdb3e7..02d978446a 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") { @@ -281,6 +279,9 @@ rtc_library("media_engine") { "base/media_engine.cc", "base/media_engine.h", ] + deps -= [ + ":media_channel_impl", + ] } } @@ -430,6 +431,7 @@ rtc_library("codec_list") { ] } +# MOZILLA Bug 1931241 - how much of this do we need? rtc_library("rtp_utils") { if (!build_with_mozilla) { sources = [ @@ -476,7 +478,6 @@ rtc_library("media_constants") { } rtc_library("turn_utils") { -if (!build_with_mozilla) { sources = [ "base/turn_utils.cc", "base/turn_utils.h", @@ -487,17 +488,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 = [ "*" ] @@ -715,6 +713,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 206c90bff5..8d869bc92e 100644 --- a/rtc_base/BUILD.gn +++ b/rtc_base/BUILD.gn @@ -1521,6 +1521,7 @@ rtc_source_set("ssl_header") { } rtc_library("digest") { +if (!build_with_mozilla) { visibility = [ "*" ] sources = [ "message_digest.cc", @@ -1542,8 +1543,10 @@ rtc_library("digest") { configs += [ "..:external_ssl_library" ] } } +} rtc_library("crypto_random") { +if (!build_with_mozilla) { visibility = [ "*" ] sources = [ "crypto_random.cc", @@ -1564,6 +1567,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).