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 | 44 ++++++++++++++++++++++++-------------------- webrtc.gni | 4 ++-- 4 files changed, 44 insertions(+), 32 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index b44356c790..0dd2bb4f74 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -521,6 +521,9 @@ if (!rtc_build_ssl) { "crypto", "ssl", ] + if (build_with_mozilla) { + libs = [] + } } } @@ -615,6 +618,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 b855511fdb..b32e6aba0d 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") { @@ -273,6 +271,9 @@ rtc_library("media_engine") { "base/media_engine.cc", "base/media_engine.h", ] + deps -= [ + ":media_channel_impl", + ] } } @@ -419,6 +420,7 @@ rtc_library("codec_list") { ] } +# MOZILLA Bug 1931241 - how much of this do we need? rtc_library("rtp_utils") { if (!build_with_mozilla) { sources = [ @@ -464,7 +466,6 @@ rtc_library("media_constants") { } rtc_library("turn_utils") { -if (!build_with_mozilla) { sources = [ "base/turn_utils.cc", "base/turn_utils.h", @@ -475,17 +476,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 = [ "*" ] @@ -734,6 +732,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 233e5f2a9d..d8494187c9 100644 --- a/rtc_base/BUILD.gn +++ b/rtc_base/BUILD.gn @@ -1501,29 +1501,32 @@ rtc_source_set("ssl_header") { } rtc_source_set("digest") { - visibility = [ "*" ] - sources = [ - "message_digest.cc", - "message_digest.h", - "openssl_digest.cc", - "openssl_digest.h", - ] - deps = [ - ":checks", - ":ssl_header", - ":stringutils", - "//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 (!build_with_mozilla) { + visibility = [ "*" ] + sources = [ + "message_digest.cc", + "message_digest.h", + "openssl_digest.cc", + "openssl_digest.h", + ] + deps = [ + ":checks", + ":ssl_header", + ":stringutils", + "//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" ] + } +} } rtc_library("crypto_random") { +if (!build_with_mozilla) { visibility = [ "*" ] sources = [ "crypto_random.cc", @@ -1544,6 +1547,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 fe68d3317d..17306b77b7 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. @@ -347,7 +347,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).