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 a10af8f53a..2643e61c90 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -526,6 +526,9 @@ if (!rtc_build_ssl) { "crypto", "ssl", ] + if (build_with_mozilla) { + libs = [] + } } } @@ -620,6 +623,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 09d411f80e..2ea661f05d 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") { @@ -283,6 +281,9 @@ rtc_library("media_engine") { "base/media_engine.cc", "base/media_engine.h", ] + deps -= [ + ":media_channel_impl", + ] } } @@ -434,6 +435,7 @@ rtc_library("codec_list") { ] } +# MOZILLA Bug 1931241 - how much of this do we need? rtc_library("rtp_utils") { if (!build_with_mozilla) { sources = [ @@ -480,7 +482,6 @@ rtc_library("media_constants") { } rtc_library("turn_utils") { -if (!build_with_mozilla) { sources = [ "base/turn_utils.cc", "base/turn_utils.h", @@ -491,17 +492,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 = [ "*" ] @@ -720,6 +718,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 7f01778a28..b2a85d2b76 100644 --- a/rtc_base/BUILD.gn +++ b/rtc_base/BUILD.gn @@ -1596,6 +1596,7 @@ rtc_source_set("ssl_header") { } rtc_library("digest") { +if (!build_with_mozilla) { visibility = [ "*" ] sources = [ "message_digest.cc", @@ -1617,8 +1618,10 @@ rtc_library("digest") { configs += [ "..:external_ssl_library" ] } } +} rtc_library("crypto_random") { +if (!build_with_mozilla) { visibility = [ "*" ] sources = [ "crypto_random.cc", @@ -1639,6 +1642,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 18c5f9c080..06acdc47bb 100644 --- a/webrtc.gni +++ b/webrtc.gni @@ -112,7 +112,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. @@ -340,7 +340,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).