[arch-commits] Commit in libwebrtc/trunk (8 files)

Jiachen Yang farseerfc at archlinux.org
Wed Nov 11 08:27:06 UTC 2020


    Date: Wednesday, November 11, 2020 @ 08:27:05
  Author: farseerfc
Revision: 750001

upgpkg: libwebrtc 83.git2.12f4a27-1: libwebrtc: changed upstream to tg_owt

Modified:
  libwebrtc/trunk/PKGBUILD
Deleted:
  libwebrtc/trunk/0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch
  libwebrtc/trunk/args.gn
  libwebrtc/trunk/build.diff
  libwebrtc/trunk/gclient-conf
  libwebrtc/trunk/libsrtp.diff
  libwebrtc/trunk/src.diff
  libwebrtc/trunk/third_party.diff

---------------------------------------------------------+
 0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch |  141 --
 PKGBUILD                                                |   94 -
 args.gn                                                 |   27 
 build.diff                                              |  139 --
 gclient-conf                                            |   11 
 libsrtp.diff                                            |   14 
 src.diff                                                |  709 --------------
 third_party.diff                                        |   75 -
 8 files changed, 24 insertions(+), 1186 deletions(-)

Deleted: 0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch
===================================================================
--- 0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch	2020-11-11 07:48:21 UTC (rev 750000)
+++ 0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch	2020-11-11 08:27:05 UTC (rev 750001)
@@ -1,141 +0,0 @@
-From 0e7b7af7fbf86732dd64888f260a5df0335c695a Mon Sep 17 00:00:00 2001
-From: Jiachen YANG <farseerfc at gmail.com>
-Date: Fri, 21 Aug 2020 09:11:29 +0900
-Subject: [PATCH] IWYU fix missing uint32_t size_t definitions
-
----
- call/rtx_receive_stream.h                                      | 1 +
- common_video/h264/h264_common.h                                | 1 +
- common_video/h264/pps_parser.h                                 | 1 +
- common_video/h264/prefix_parser.h                              | 1 +
- common_video/h264/sps_parser.h                                 | 1 +
- common_video/h265/h265_common.h                                | 1 +
- common_video/h265/h265_pps_parser.h                            | 1 +
- modules/audio_processing/aec3/clockdrift_detector.h            | 1 +
- modules/congestion_controller/rtp/transport_feedback_demuxer.h | 1 +
- modules/rtp_rtcp/source/receive_statistics_impl.h              | 1 +
- 10 files changed, 10 insertions(+)
-
-diff --git a/call/rtx_receive_stream.h b/call/rtx_receive_stream.h
-index 8ffa4400a9..66cc46dc09 100644
---- a/call/rtx_receive_stream.h
-+++ b/call/rtx_receive_stream.h
-@@ -12,6 +12,7 @@
- #define CALL_RTX_RECEIVE_STREAM_H_
- 
- #include <map>
-+#include <stdint.h>
- 
- #include "call/rtp_packet_sink_interface.h"
- 
-diff --git a/common_video/h264/h264_common.h b/common_video/h264/h264_common.h
-index 0b1843ee38..e0f10432af 100644
---- a/common_video/h264/h264_common.h
-+++ b/common_video/h264/h264_common.h
-@@ -14,6 +14,7 @@
- #include <stddef.h>
- #include <stdint.h>
- 
-+#include <stdint.h>
- #include <vector>
- 
- #include "rtc_base/buffer.h"
-diff --git a/common_video/h264/pps_parser.h b/common_video/h264/pps_parser.h
-index d6c31b0688..43acb66c15 100644
---- a/common_video/h264/pps_parser.h
-+++ b/common_video/h264/pps_parser.h
-@@ -10,6 +10,7 @@
- 
- #ifndef COMMON_VIDEO_H264_PPS_PARSER_H_
- #define COMMON_VIDEO_H264_PPS_PARSER_H_
-+#include <stdint.h>
- 
- #include "absl/types/optional.h"
- 
-diff --git a/common_video/h264/prefix_parser.h b/common_video/h264/prefix_parser.h
-index 9298eb4276..486a591d87 100644
---- a/common_video/h264/prefix_parser.h
-+++ b/common_video/h264/prefix_parser.h
-@@ -10,6 +10,7 @@
- 
- #ifndef COMMON_VIDEO_H264_PREFIX_PARSER_H_
- #define COMMON_VIDEO_H264_PREFIX_PARSER_H_
-+#include <stdint.h>
- 
- #include "absl/types/optional.h"
- 
-diff --git a/common_video/h264/sps_parser.h b/common_video/h264/sps_parser.h
-index 76e627d27a..376b52852e 100644
---- a/common_video/h264/sps_parser.h
-+++ b/common_video/h264/sps_parser.h
-@@ -10,6 +10,7 @@
- 
- #ifndef COMMON_VIDEO_H264_SPS_PARSER_H_
- #define COMMON_VIDEO_H264_SPS_PARSER_H_
-+#include <stdint.h>
- 
- #include "absl/types/optional.h"
- 
-diff --git a/common_video/h265/h265_common.h b/common_video/h265/h265_common.h
-index a829195a10..d2d93fb89e 100644
---- a/common_video/h265/h265_common.h
-+++ b/common_video/h265/h265_common.h
-@@ -14,6 +14,7 @@
- #include <memory>
- #include <vector>
- 
-+#include <stdint.h>
- #include "rtc_base/buffer.h"
- 
- namespace webrtc {
-diff --git a/common_video/h265/h265_pps_parser.h b/common_video/h265/h265_pps_parser.h
-index 28c95ea9bc..a923b2b334 100644
---- a/common_video/h265/h265_pps_parser.h
-+++ b/common_video/h265/h265_pps_parser.h
-@@ -10,6 +10,7 @@
- 
- #ifndef COMMON_VIDEO_H265_PPS_PARSER_H_
- #define COMMON_VIDEO_H265_PPS_PARSER_H_
-+#include <stdint.h>
- 
- #include "absl/types/optional.h"
- 
-diff --git a/modules/audio_processing/aec3/clockdrift_detector.h b/modules/audio_processing/aec3/clockdrift_detector.h
-index 22528c9489..69e624e8b1 100644
---- a/modules/audio_processing/aec3/clockdrift_detector.h
-+++ b/modules/audio_processing/aec3/clockdrift_detector.h
-@@ -12,6 +12,7 @@
- #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
- 
- #include <array>
-+#include <cstddef>
- 
- namespace webrtc {
- 
-diff --git a/modules/congestion_controller/rtp/transport_feedback_demuxer.h b/modules/congestion_controller/rtp/transport_feedback_demuxer.h
-index bcd25d5835..c7cede7ac3 100644
---- a/modules/congestion_controller/rtp/transport_feedback_demuxer.h
-+++ b/modules/congestion_controller/rtp/transport_feedback_demuxer.h
-@@ -10,6 +10,7 @@
- #ifndef MODULES_CONGESTION_CONTROLLER_RTP_TRANSPORT_FEEDBACK_DEMUXER_H_
- #define MODULES_CONGESTION_CONTROLLER_RTP_TRANSPORT_FEEDBACK_DEMUXER_H_
- 
-+#include <stdint.h>
- #include <map>
- #include <utility>
- #include <vector>
-diff --git a/modules/rtp_rtcp/source/receive_statistics_impl.h b/modules/rtp_rtcp/source/receive_statistics_impl.h
-index e352ae8787..363dd9272a 100644
---- a/modules/rtp_rtcp/source/receive_statistics_impl.h
-+++ b/modules/rtp_rtcp/source/receive_statistics_impl.h
-@@ -14,6 +14,7 @@
- #include <algorithm>
- #include <map>
- #include <vector>
-+#include <stdint.h>
- 
- #include "absl/types/optional.h"
- #include "modules/include/module_common_types_public.h"
--- 
-2.28.0
-

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2020-11-11 07:48:21 UTC (rev 750000)
+++ PKGBUILD	2020-11-11 08:27:05 UTC (rev 750001)
@@ -1,85 +1,39 @@
 # Maintainer: Frederik Schwan <freswa at archlinux dot org>
 
 pkgname=libwebrtc
-_commit=18721df
-pkgver=83.git1.${_commit}
-pkgrel=2
+_commit=12f4a27
+pkgver=83.git2.${_commit}
+pkgrel=1
 pkgdesc='WebRTC library - static linked'
 arch=('x86_64')
 url='https://webrtc.org/?hl=de'
 license=('custom:BSD')
-makedepends=('git' 'gn-m85' 'ninja' 'unzip' 'python2' 'python' 'libxrandr' 'libxcomposite' 'openssl' 'glibc' 'ffmpeg' 'libva')
+depends=('protobuf')
+makedepends=('git' 'ninja' 'unzip' 'cmake' 'libxrandr' 'libxcomposite' 'openssl' 'glibc' 'ffmpeg' 'libva' 'opus' 'yasm' 'libjpeg-turbo')
 options=('staticlibs')
-source=("webrtc_src::git+https://github.com/open-webrtc-toolkit/owt-deps-webrtc.git#commit=${_commit}"
-        'https://storage.googleapis.com/chrome-infra/depot_tools.zip'
-        gclient-conf
-        args.gn
-        src.diff
-        build.diff
-        third_party.diff
-        libsrtp.diff
-        0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch)
-noextract=('depot_tools.zip')
-b2sums=('SKIP'
-        'f903724dcb80904aeb85c4ba4d4140916b96e278efcba52a28c76db093801850d8d74d34c63b78374ed2f18fa8d5f649cb6fdf6879939b58142e8382bcdd77b4'
-        '25ab3e116e2f241219fe31e96166e009a233813417c6901ed3ff0cafcdc7b6bff17ae284167164028203e4a5e94548deff3e4bad00aff6c8286bd7d63cb9cdb2'
-        '3c20948f295d58df70a3b579ad33c5d92b9bb140b0a01bbb59e3157e07944978a10396c112c99fe28d57997e223eb4adebde31f41d995f47c14107bc52d443a8'
-        '923a626e69c819e550e1681257e1fb0c5c2a64160b13bd5d5a322125cba58020ba84330c8056d94a23175090055686916860d083adea08f8c8bff9e5e0ebbe01'
-        'f8af81b249989296402e8ab9fa999559b8c9e18ac78c64766554db44289fe16778795a7ce4cd902b13f6ee9aa4866e8ae112af617a32f069674eec659c84a54a'
-        'c8cbe2395066cdb639fd9cc8242ae345e4d4e2dabb3803397f162b26a0dfd170ddb888474e85c65fd2142a3462c984164fac0bc061f163128aad92d350be26ab'
-        'fb6d9de8c49667e3726f255aabe8840a60e73d0d3a2ea5fd539580cc7aa734a2486267b00a236e0114adfd852a0710833b729c153761097668fdf7f6d755de94'
-        '06bb59cb637bd896d4ee719023adb7d3595e4884c9c697b44796a88aaf575bd6bd898e2be594e007b6dcce6f5d5956dd0498ef5a611d401a075a5abb4dea2a92')
+source=("tg_owt::git+https://github.com/desktop-app/tg_owt.git#commit=${_commit}")
+b2sums=('SKIP')
 
-prepare() {
-  mv webrtc_src src
-  unzip depot_tools.zip -d depot_tools
-  mv gclient-conf .gclient
-  DEPOT_TOOLS_UPDATE=0 "${srcdir}"/depot_tools/gclient sync --no-history
-  cd src
-  patch -Np1 < "${srcdir}"/src.diff
-  patch -Np1 < "${srcdir}"/0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch
-  cd build
-  patch -Np1 < "${srcdir}"/build.diff
-  cd ../third_party
-  patch -Np1 < "${srcdir}"/third_party.diff
-  cd libsrtp
-  patch -Np1 < "${srcdir}"/libsrtp.diff
 
-  cd ../..
-  mkdir out/Release
-  cp "${srcdir}"/args.gn out/Release/args.gn
-
-  gn-m85 gen out/Release
-}
-
 build() {
-  cd src
-
-  ninja -C out/Release webrtc
+  cd tg_owt
+  mkdir build
+  cd build
+  # path to openssl include is intentionally wrong, so that it will not mess up srtp include headers
+  cmake -G Ninja \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr \
+    -DTG_OWT_SPECIAL_TARGET=linux \
+    -DTG_OWT_LIBJPEG_INCLUDE_PATH=/usr/include \
+    -DTG_OWT_OPENSSL_INCLUDE_PATH=/usr/include \
+    -DTG_OWT_OPUS_INCLUDE_PATH=/usr/include/opus \
+    -DTG_OWT_FFMPEG_INCLUDE_PATH=/usr/include \
+    ..
+  #  -DTG_OWT_LIBJPEG_INCLUDE_PATH=$(pwd)/../../mozjpeg/output/include \
+  ninja
 }
 
 package() {
-  install -Dm644 -t "${pkgdir}"/usr/lib/ "${srcdir}"/src/out/Release/obj/${pkgname}.a
-  install -Dm644 -t "${pkgdir}"/usr/share/licenses/libwebrtc/ "${srcdir}"/src/LICENSE
-  mkdir -p "${pkgdir}"/usr/include/libwebrtc
-  cd src
-  shopt -s globstar
-  for i in ./**/*.h;do
-    if [[ $i =~ "./test/" || $i =~ "./build/" || $i =~ "./third_party/" ]]; then
-        continue
-    fi
-    install -Dm644 -t ${pkgdir}/usr/include/libwebrtc/$(dirname $i) $i
-  done
-  for i in third_party/abseil-cpp/**/*.h; do
-    if [[ $i =~ "/test/" || $i =~ "/build/" ]]; then
-        continue
-    fi
-    install -Dm644 -t ${pkgdir}/usr/include/libwebrtc/$(dirname $i) $i
-  done
-  for i in third_party/libyuv/**/*.h; do
-    if [[ $i =~ "/test/" || $i =~ "/build/" ]]; then
-        continue
-    fi
-    install -Dm644 -t ${pkgdir}/usr/include/libwebrtc/$(dirname $i) $i
-  done
+  cd tg_owt/build
+  DESTDIR="${pkgdir}/" ninja install
 }

Deleted: args.gn
===================================================================
--- args.gn	2020-11-11 07:48:21 UTC (rev 750000)
+++ args.gn	2020-11-11 08:27:05 UTC (rev 750001)
@@ -1,27 +0,0 @@
-host_cpu="x64"
-target_os="linux"
-is_component_build=false
-is_debug=false
-is_clang=false
-proprietary_codecs=true
-use_custom_libcxx=false
-use_system_libjpeg=false
-use_rtti=true
-use_gold=false
-use_sysroot=false
-linux_use_bundled_binutils=false
-enable_dsyms=true
-rtc_include_tests=false
-rtc_build_examples=false
-rtc_build_tools=false
-rtc_build_opus=false
-rtc_build_ssl=false
-rtc_ssl_root="/usr/include"
-rtc_ssl_libs=["ssl","crypto"]
-rtc_builtin_ssl_root_certificates=true
-rtc_build_ffmpeg=false
-rtc_ffmpeg_root="/usr/include"
-rtc_ffmpeg_libs=["avcodec","swscale","swresample","avutil"]
-rtc_opus_root="/usr/include/opus"
-rtc_enable_protobuf=false
-treat_warnings_as_errors=false

Deleted: build.diff
===================================================================
--- build.diff	2020-11-11 07:48:21 UTC (rev 750000)
+++ build.diff	2020-11-11 08:27:05 UTC (rev 750001)
@@ -1,139 +0,0 @@
-diff --git a/config/c++/c++.gni b/config/c++/c++.gni
-index 5ced459..db1b27c 100644
---- a/config/c++/c++.gni
-+++ b/config/c++/c++.gni
-@@ -11,7 +11,7 @@ declare_args() {
-   # Don't check in changes that set this to false for more platforms; doing so
-   # is not supported.
-   use_custom_libcxx =
--      is_fuchsia || is_android || is_mac || (is_ios && !use_xcode_clang) ||
-+      is_fuchsia || is_android || (is_mac && !use_xcode_clang) || (is_ios && !use_xcode_clang) ||
-       (is_win && is_clang) ||
-       (is_linux &&
-        (!is_chromeos || default_toolchain != "//build/toolchain/cros:target"))
-diff --git a/config/compiler/BUILD.gn b/config/compiler/BUILD.gn
-index 3d5e4de..1ebe692 100644
---- a/config/compiler/BUILD.gn
-+++ b/config/compiler/BUILD.gn
-@@ -535,7 +535,7 @@ config("compiler") {
-       # Override Chromium's default for projects that wish to stay on C++11.
-       cflags_cc += [ "-std=${standard_prefix}++11" ]
-     } else {
--      cflags_cc += [ "-std=${standard_prefix}++14" ]
-+      cflags_cc += [ "-std=${standard_prefix}++17" ]
-     }
-   } else if (!is_win && !is_nacl) {
-     if (target_os == "android") {
-@@ -1379,6 +1379,8 @@ config("default_warnings") {
- 
-       "/wd4715",  # 'function' : not all control paths return a value'
-                   # MSVC does not analyze switch (enum) for completeness.
-+
-+      "/wd4018",  # signed/unsigned mismatch in h265 codec.
-     ]
- 
-     cflags_cc += [
-@@ -1480,6 +1482,7 @@ config("default_warnings") {
-       cflags += [
-         # TODO(thakis): https://crbug.com/604888
-         "-Wno-undefined-var-template",
-+        "-Wno-deprecated-declarations", # 'OSAtomicCompareAndSwap32Barrier' is deprecated: first deprecated in macOS 10.12
-       ]
- 
-       if (is_win) {
-@@ -1488,7 +1491,7 @@ config("default_warnings") {
-         cflags += [ "-Wno-nonportable-include-path" ]
-       }
- 
--      if (current_toolchain == host_toolchain || !use_xcode_clang) {
-+      if (current_toolchain == host_toolchain && !use_xcode_clang) {
-         # Flags NaCl (Clang 3.7) and Xcode 9.2 (Clang clang-900.0.39.2) do not
-         # recognize.
-         cflags += [
-@@ -1528,6 +1531,25 @@ config("default_warnings") {
-         ]
-       }
-     }
-+  } else if (!is_win) {
-+    cflags += [
-+      "-Wno-attributes",
-+      "-Wno-address",
-+      "-Wno-nonnull-compare",
-+      "-Wno-return-type",
-+      "-Wno-dangling-else",
-+      "-Wno-sequence-point",
-+      "-Wno-sign-compare",
-+      "-Wno-unused-but-set-variable",
-+      "-Wno-int-in-bool-context",
-+      "-Wno-unused-function",
-+      "-Wno-parentheses",
-+    ]
-+    cflags_cc += [
-+      "-Wno-subobject-linkage",
-+      "-Wno-register",
-+      "-Wno-array-bounds", # array subscript 18446744073709551615 is above array bounds of ‘const webrtc::SpatialLayer [5]’ `codec.spatialLayers[num_active_layers - 1].minBitrate);`
-+    ]
-   }
- }
- 
-@@ -1660,7 +1682,7 @@ config("no_chromium_code") {
-       # suppressing them individually, we just blanket suppress them here.
-       "-Wno-unused-variable",
-     ]
--    if (!is_nacl && (current_toolchain == host_toolchain || !use_xcode_clang)) {
-+    if (!is_nacl && (current_toolchain == host_toolchain && !use_xcode_clang)) {
-       cflags += [
-         # TODO(https://crbug.com/1031169): Clean up and enable.
-         "-Wno-misleading-indentation",
-diff --git a/config/gcc/BUILD.gn b/config/gcc/BUILD.gn
-index 747245f..6e35afb 100644
---- a/config/gcc/BUILD.gn
-+++ b/config/gcc/BUILD.gn
-@@ -91,7 +91,8 @@ if (is_component_build && !is_android) {
- # Settings for executables.
- config("executable_config") {
-   configs = executable_and_shared_library_configs_
--  ldflags = [ "-pie" ]
-+  # ldflags = [ "-pie" ]
-+  ldflags = []
-   if (is_android) {
-     ldflags += [
-       "-Bdynamic",
-diff --git a/config/linux/gtk/gtk.gni b/config/linux/gtk/gtk.gni
-index 0a3f35d..b23571a 100644
---- a/config/linux/gtk/gtk.gni
-+++ b/config/linux/gtk/gtk.gni
-@@ -12,4 +12,4 @@ declare_args() {
-   gtk_version = 3
- }
- 
--assert(gtk_version >= 3 && gtk_version <= 4)
-+assert(gtk_version >= 2 && gtk_version <= 4)
-diff --git a/toolchain/mac/BUILD.gn b/toolchain/mac/BUILD.gn
-index 08b17ff..7661885 100644
---- a/toolchain/mac/BUILD.gn
-+++ b/toolchain/mac/BUILD.gn
-@@ -86,7 +86,7 @@ template("mac_toolchain") {
- 
-     # Supports building with the version of clang shipped with Xcode when
-     # targeting iOS by not respecting clang_base_path.
--    if (toolchain_args.current_os == "ios" && use_xcode_clang) {
-+    if (use_xcode_clang) {
-       prefix = ""
-     } else {
-       prefix = rebase_path("$clang_base_path/bin/", root_build_dir)
-diff --git a/toolchain/toolchain.gni b/toolchain/toolchain.gni
-index 552ceb6..71f2f64 100644
---- a/toolchain/toolchain.gni
-+++ b/toolchain/toolchain.gni
-@@ -45,8 +45,8 @@ declare_args() {
- # Check target_os here instead of is_ios as this file is loaded for secondary
- # toolchain (host toolchain in particular) but the argument is the same for
- # all toolchains.
--assert(!use_xcode_clang || target_os == "ios",
--       "Using Xcode's clang is only supported in iOS builds")
-+# assert(!use_xcode_clang || target_os == "ios",
-+#        "Using Xcode's clang is only supported in iOS builds")
- 
- # Extension for shared library files (including leading dot).
- if (is_mac || is_ios) {

Deleted: gclient-conf
===================================================================
--- gclient-conf	2020-11-11 07:48:21 UTC (rev 750000)
+++ gclient-conf	2020-11-11 08:27:05 UTC (rev 750001)
@@ -1,11 +0,0 @@
-solutions = [
-  {
-     "managed": False,
-     "name": "src",
-     "url": "https://github.com/open-webrtc-toolkit/owt-deps-webrtc.git",
-     "custom_deps": {},
-     "deps_file": "DEPS",
-     "safesync_url": "",
-  },
-]
-target_os = []

Deleted: libsrtp.diff
===================================================================
--- libsrtp.diff	2020-11-11 07:48:21 UTC (rev 750000)
+++ libsrtp.diff	2020-11-11 08:27:05 UTC (rev 750001)
@@ -1,14 +0,0 @@
-diff --git a/BUILD.gn b/BUILD.gn
-index 6359585..0c9d2ff 100644
---- a/BUILD.gn
-+++ b/BUILD.gn
-@@ -114,9 +115,6 @@ static_library("libsrtp") {
-     "srtp/ekt.c",
-     "srtp/srtp.c",
-   ]
--  public_deps = [
--    "//third_party/boringssl:boringssl",
--  ]
- }
- 
- if (build_libsrtp_tests) {

Deleted: src.diff
===================================================================
--- src.diff	2020-11-11 07:48:21 UTC (rev 750000)
+++ src.diff	2020-11-11 08:27:05 UTC (rev 750001)
@@ -1,709 +0,0 @@
-diff --git a/BUILD.gn b/BUILD.gn
-index 5fe6f84..719626d 100644
---- a/BUILD.gn
-+++ b/BUILD.gn
-@@ -335,7 +335,7 @@ config("common_config") {
-         "-Wnon-virtual-dtor",
- 
-         # This is enabled for clang; enable for gcc as well.
--        "-Woverloaded-virtual",
-+        # "-Woverloaded-virtual", # a lot of such errors when compiling with g++.
-       ]
-     }
- 
-@@ -445,9 +445,9 @@ if (!build_with_chromium) {
-       ":webrtc_lib_link_test",
-     ]
- 
--    if (build_with_owt) {
--      visibility += [ "//talk/owt" ]
--    }
-+    # if (build_with_owt) {
-+    #   visibility += [ "//talk/owt" ]
-+    # }
-     sources = []
-     complete_static_lib = true
-     suppressed_configs += [ "//build/config/compiler:thin_archive" ]
-diff --git a/api/test/video/BUILD.gn b/api/test/video/BUILD.gn
-index 4ebb0c9..a4a0d7b 100644
---- a/api/test/video/BUILD.gn
-+++ b/api/test/video/BUILD.gn
-@@ -8,7 +8,7 @@
- 
- import("../../../webrtc.gni")
- 
--rtc_library("function_video_factory") {
-+rtc_source_set("function_video_factory") {
-   visibility = [ "*" ]
-   testonly = true
-   public = [
-diff --git a/audio/utility/channel_mixer.cc b/audio/utility/channel_mixer.cc
-index 8867a3e..4bd3662 100644
---- a/audio/utility/channel_mixer.cc
-+++ b/audio/utility/channel_mixer.cc
-@@ -10,6 +10,8 @@
- 
- #include "audio/utility/channel_mixer.h"
- 
-+#include <cstring> // fix build with -std=gnu++17
-+
- #include "audio/utility/channel_mixing_matrix.h"
- #include "rtc_base/checks.h"
- #include "rtc_base/logging.h"
-diff --git a/build_overrides/build.gni b/build_overrides/build.gni
-index 6025cdd..a9f63f0 100644
---- a/build_overrides/build.gni
-+++ b/build_overrides/build.gni
-@@ -16,6 +16,8 @@ linux_use_bundled_binutils_override = true
- # only needed to support both WebRTC standalone and Chromium builds.
- build_with_chromium = false
- 
-+build_with_owt = false
-+
- # Use our own suppressions files.
- asan_suppressions_file = "//build/sanitizers/asan_suppressions.cc"
- lsan_suppressions_file = "//tools_webrtc/sanitizers/lsan_suppressions_webrtc.cc"
-@@ -35,7 +37,7 @@ lint_suppressions_file = "//tools_webrtc/android/suppressions.xml"
- # so we just ignore that assert. See https://crbug.com/648948 for more info.
- ignore_elf32_limitations = true
- 
--if (is_win || is_ios || is_android) {
-+if (is_win || is_ios || is_android || is_mac || is_linux) {
-   rtc_use_h265 = true
- } else {
-   rtc_use_h265 = false
-diff --git a/examples/BUILD.gn b/examples/BUILD.gn
-index 4fd2d70..217f520 100644
---- a/examples/BUILD.gn
-+++ b/examples/BUILD.gn
-@@ -232,7 +232,7 @@ if (is_ios || (is_mac && target_cpu != "x86")) {
-       # iOS must use WebRTC.framework which is dynamically linked.
-       deps = [ "../sdk:framework_objc+link" ]
-     } else {
--      deps = [ "../sdk:mac_framework_objc+link" ]
-+      deps = [ "../sdk:mac_framework_objc_static" ]
-     }
-   }
- 
-@@ -301,7 +301,7 @@ if (is_ios || (is_mac && target_cpu != "x86")) {
-         "../sdk:ios_framework_bundle",
-       ]
-     } else {
--      deps += [ "../sdk:mac_framework_objc+link" ]
-+      deps += [ "../sdk:mac_framework_objc_static" ]
-     }
-     libs = [
-       "CoreMedia.framework",
-@@ -528,7 +528,7 @@ if (is_ios || (is_mac && target_cpu != "x86")) {
-       deps = [
-         ":apprtc_common",
-         ":apprtc_signaling",
--        "../sdk:mac_framework_objc+link",
-+        "../sdk:mac_framework_objc_static",
-       ]
-     }
- 
-@@ -551,8 +551,8 @@ if (is_ios || (is_mac && target_cpu != "x86")) {
- 
-       deps = [
-         ":AppRTCMobile_lib",
--        "../sdk:mac_framework_bundle",
--        "../sdk:mac_framework_objc+link",
-+        # "../sdk:mac_framework_bundle",
-+        "../sdk:mac_framework_objc_static",
-       ]
-     }
-   }
-diff --git a/modules/audio_coding/BUILD.gn b/modules/audio_coding/BUILD.gn
-index ceee0c0..8c4f00d 100644
---- a/modules/audio_coding/BUILD.gn
-+++ b/modules/audio_coding/BUILD.gn
-@@ -763,6 +763,8 @@ rtc_library("webrtc_opus") {
-     public_deps += [ rtc_opus_dir ]  # no-presubmit-check TODO(webrtc:8603)
-   } else if (build_with_mozilla) {
-     include_dirs = [ "/media/libopus/include" ]
-+  } else {
-+    public_configs = [ "../../rtc_base:external_opus_library" ]
-   }
- }
- 
-@@ -801,6 +803,8 @@ rtc_library("webrtc_multiopus") {
-     public_deps += [ rtc_opus_dir ]
-   } else if (build_with_mozilla) {
-     include_dirs = [ "/media/libopus/include" ]
-+  } else {
-+    public_configs = [ "../../rtc_base:external_opus_library" ]
-   }
- }
- 
-@@ -818,6 +822,8 @@ rtc_library("webrtc_opus_wrapper") {
-     public_deps = [ rtc_opus_dir ]  # no-presubmit-check TODO(webrtc:8603)
-   } else if (build_with_mozilla) {
-     include_dirs = [ getenv("DIST") + "/include/opus" ]
-+  } else {
-+    public_configs = [ "../../rtc_base:external_opus_library" ]
-   }
- 
-   deps = [
-diff --git a/modules/audio_device/audio_device_buffer.cc b/modules/audio_device/audio_device_buffer.cc
-index 336846e..f0c388b 100644
---- a/modules/audio_device/audio_device_buffer.cc
-+++ b/modules/audio_device/audio_device_buffer.cc
-@@ -456,7 +456,7 @@ void AudioDeviceBuffer::LogStats(LogState state) {
-   }
-   last_stats_ = stats;
- 
--  int64_t time_to_wait_ms = next_callback_time - rtc::TimeMillis();
-+  int64_t time_to_wait_ms = std::max(next_callback_time - rtc::TimeMillis(), int64_t(1));
-   RTC_DCHECK_GT(time_to_wait_ms, 0) << "Invalid timer interval";
- 
-   // Keep posting new (delayed) tasks until state is changed to kLogStop.
-diff --git a/modules/audio_processing/aec3/reverb_model_estimator.h b/modules/audio_processing/aec3/reverb_model_estimator.h
-index 3b9971a..efc2912 100644
---- a/modules/audio_processing/aec3/reverb_model_estimator.h
-+++ b/modules/audio_processing/aec3/reverb_model_estimator.h
-@@ -13,6 +13,7 @@
- 
- #include <array>
- #include <vector>
-+#include <memory> // fix build with -std=gnu++17
- 
- #include "absl/types/optional.h"
- #include "api/array_view.h"
-diff --git a/modules/utility/BUILD.gn b/modules/utility/BUILD.gn
-index 8710ed4..2a8fa4e 100644
---- a/modules/utility/BUILD.gn
-+++ b/modules/utility/BUILD.gn
-@@ -40,7 +40,7 @@ rtc_library("utility") {
-   ]
- }
- 
--rtc_library("mock_process_thread") {
-+rtc_source_set("mock_process_thread") {
-   testonly = true
-   visibility = [ "*" ]
-   sources = [ "include/mock/mock_process_thread.h" ]
-diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
-index 2f9d257..65130a8 100644
---- a/modules/video_coding/BUILD.gn
-+++ b/modules/video_coding/BUILD.gn
-@@ -370,10 +370,13 @@ rtc_library("webrtc_h264") {
-   ]
- 
-   if (rtc_use_h264) {
--    deps += [
--      "//third_party/ffmpeg",
--      "//third_party/openh264:encoder",
--    ]
-+    deps += [ "//third_party/openh264:encoder" ]
-+    if (rtc_build_ffmpeg) {
-+      deps += [ "//third_party/ffmpeg" ]
-+    } else {
-+      configs += [ "../../rtc_base:external_ffmpeg_library" ]
-+      all_dependent_configs = [ "../../rtc_base:external_ffmpeg_linking" ]
-+    }
-     if (!build_with_mozilla) {
-       deps += [ "../../media:rtc_media_base" ]
-     }
-diff --git a/modules/video_coding/codecs/h264/h264_color_space.h b/modules/video_coding/codecs/h264/h264_color_space.h
-index aec76ef..918ea26 100644
---- a/modules/video_coding/codecs/h264/h264_color_space.h
-+++ b/modules/video_coding/codecs/h264/h264_color_space.h
-@@ -19,7 +19,7 @@
- #include "api/video/color_space.h"
- 
- extern "C" {
--#include "third_party/ffmpeg/libavcodec/avcodec.h"
-+#include <libavcodec/avcodec.h>
- }  // extern "C"
- 
- namespace webrtc {
-diff --git a/modules/video_coding/codecs/h264/h264_decoder_impl.cc b/modules/video_coding/codecs/h264/h264_decoder_impl.cc
-index 6725a3b..a7e837c 100644
---- a/modules/video_coding/codecs/h264/h264_decoder_impl.cc
-+++ b/modules/video_coding/codecs/h264/h264_decoder_impl.cc
-@@ -21,9 +21,9 @@
- #include <memory>
- 
- extern "C" {
--#include "third_party/ffmpeg/libavcodec/avcodec.h"
--#include "third_party/ffmpeg/libavformat/avformat.h"
--#include "third_party/ffmpeg/libavutil/imgutils.h"
-+#include <libavcodec/avcodec.h>
-+#include <libavformat/avformat.h>
-+#include <libavutil/imgutils.h>
- }  // extern "C"
- 
- #include "api/video/color_space.h"
-diff --git a/modules/video_coding/codecs/h264/h264_decoder_impl.h b/modules/video_coding/codecs/h264/h264_decoder_impl.h
-index 80892de..70f34fb 100644
---- a/modules/video_coding/codecs/h264/h264_decoder_impl.h
-+++ b/modules/video_coding/codecs/h264/h264_decoder_impl.h
-@@ -36,7 +36,7 @@
- // passed to ffmpeg.
- 
- extern "C" {
--#include "third_party/ffmpeg/libavcodec/avcodec.h"
-+#include <libavcodec/avcodec.h>
- }  // extern "C"
- 
- #include "common_video/h264/h264_bitstream_parser.h"
-diff --git a/modules/video_coding/utility/ivf_file_reader.cc b/modules/video_coding/utility/ivf_file_reader.cc
-index 9667bb7..6fe4e88 100644
---- a/modules/video_coding/utility/ivf_file_reader.cc
-+++ b/modules/video_coding/utility/ivf_file_reader.cc
-@@ -12,6 +12,7 @@
- 
- #include <string>
- #include <vector>
-+#include <cstring> // fix build with -std=gnu++17
- 
- #include "api/video_codecs/video_codec.h"
- #include "modules/rtp_rtcp/source/byte_io.h"
-diff --git a/p2p/BUILD.gn b/p2p/BUILD.gn
-index ae49deb..af19241 100644
---- a/p2p/BUILD.gn
-+++ b/p2p/BUILD.gn
-@@ -118,7 +118,7 @@ rtc_library("rtc_p2p") {
- }
- 
- if (rtc_include_tests) {
--  rtc_library("fake_ice_transport") {
-+  rtc_source_set("fake_ice_transport") {
-     testonly = true
-     visibility = [ "*" ]
-     sources = [ "base/fake_ice_transport.h" ]
-@@ -132,7 +132,7 @@ if (rtc_include_tests) {
-     ]
-   }
- 
--  rtc_library("fake_port_allocator") {
-+  rtc_source_set("fake_port_allocator") {
-     testonly = true
-     visibility = [ "*" ]
-     sources = [ "base/fake_port_allocator.h" ]
-diff --git a/p2p/base/basic_ice_controller.cc b/p2p/base/basic_ice_controller.cc
-index aa20025..506bf5c 100644
---- a/p2p/base/basic_ice_controller.cc
-+++ b/p2p/base/basic_ice_controller.cc
-@@ -195,7 +195,7 @@ const Connection* BasicIceController::FindNextPingableConnection() {
-         if (conn1 == conn2) {
-           return false;
-         }
--        return MorePingable(conn1, conn2) == conn2;
-+        return MorePingable(std::min(conn1, conn2), std::max(conn1, conn2)) == conn2;
-       });
-   if (iter != pingable_connections.end()) {
-     return *iter;
-diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
-index d078482..a1bb711 100644
---- a/rtc_base/BUILD.gn
-+++ b/rtc_base/BUILD.gn
-@@ -24,6 +24,35 @@ if (!rtc_build_ssl) {
-     assert(rtc_ssl_root != "",
-            "You must specify rtc_ssl_root when rtc_build_ssl==0.")
-     include_dirs = [ rtc_ssl_root ]
-+    libs = rtc_ssl_libs
-+  }
-+}
-+
-+if (!rtc_build_ffmpeg) {
-+  config("external_ffmpeg_linking") {
-+    if (is_win && !is_clang) {
-+      ldflags = [
-+        "/NODEFAULTLIB:LIBCMT",
-+
-+        # libavcodec.a(me_cmp.o) : warning LNK4078: multiple '.rodata' sections found with different attributes (60500020)
-+        "/ignore:4078",
-+      ]
-+    }
-+  }
-+  config("external_ffmpeg_library") {
-+    assert(rtc_ffmpeg_root != "",
-+           "You must specify rtc_ffmpeg_root when rtc_build_ffmpeg==0.")
-+    include_dirs = [ rtc_ffmpeg_root ]
-+    libs = rtc_ffmpeg_libs
-+  }
-+}
-+
-+if (!rtc_build_opus) {
-+  config("external_opus_library") {
-+    assert(rtc_opus_root != "",
-+           "You must specify rtc_opus_root when rtc_build_opus==0.")
-+    include_dirs = [ rtc_opus_root ]
-+    libs = rtc_opus_libs
-   }
- }
- 
-@@ -1326,7 +1355,7 @@ if (rtc_include_tests) {
-         "win32_window_unittest.cc",
-       ]
-     }
--    if (is_posix || is_fuchsia) {
-+    if ((is_posix || is_fuchsia) && rtc_build_ssl) {
-       sources += [
-         "openssl_adapter_unittest.cc",
-         "openssl_session_cache_unittest.cc",
-diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
-index 7588baa..81f5ccf 100644
---- a/sdk/BUILD.gn
-+++ b/sdk/BUILD.gn
-@@ -23,6 +23,8 @@ group("sdk") {
-     }
-     if (is_ios) {
-       public_deps += [ ":framework_objc" ]
-+    } else if (is_mac) {
-+      public_deps += [ ":mac_framework_objc_static" ]
-     }
-   }
- }
-@@ -1399,6 +1401,107 @@ if (is_ios || is_mac) {
-     }
- 
-     if (is_mac) {
-+      rtc_source_set("mac_framework_objc_static") {
-+        visibility = [ "*" ]
-+        allow_poison = [ "software_video_codecs", "audio_codecs", "default_task_queue" ]
-+        sources = [
-+          "objc/api/peerconnection/RTCAudioSource.h",
-+          "objc/api/peerconnection/RTCAudioTrack.h",
-+          "objc/api/peerconnection/RTCCertificate.h",
-+          "objc/api/peerconnection/RTCConfiguration.h",
-+          "objc/api/peerconnection/RTCCryptoOptions.h",
-+          "objc/api/peerconnection/RTCDataChannel.h",
-+          "objc/api/peerconnection/RTCDataChannelConfiguration.h",
-+          "objc/api/peerconnection/RTCDtmfSender.h",
-+          "objc/api/peerconnection/RTCFieldTrials.h",
-+          "objc/api/peerconnection/RTCIceCandidate.h",
-+          "objc/api/peerconnection/RTCIceServer.h",
-+          "objc/api/peerconnection/RTCLegacyStatsReport.h",
-+          "objc/api/peerconnection/RTCMediaConstraints.h",
-+          "objc/api/peerconnection/RTCMediaSource.h",
-+          "objc/api/peerconnection/RTCMediaStream.h",
-+          "objc/api/peerconnection/RTCMediaStreamTrack.h",
-+          "objc/api/peerconnection/RTCMetrics.h",
-+          "objc/api/peerconnection/RTCMetricsSampleInfo.h",
-+          "objc/api/peerconnection/RTCPeerConnection.h",
-+          "objc/api/peerconnection/RTCPeerConnectionFactory.h",
-+          "objc/api/peerconnection/RTCPeerConnectionFactoryOptions.h",
-+          "objc/api/peerconnection/RTCRtcpParameters.h",
-+          "objc/api/peerconnection/RTCRtpCodecParameters.h",
-+          "objc/api/peerconnection/RTCRtpEncodingParameters.h",
-+          "objc/api/peerconnection/RTCRtpHeaderExtension.h",
-+          "objc/api/peerconnection/RTCRtpParameters.h",
-+          "objc/api/peerconnection/RTCRtpReceiver.h",
-+          "objc/api/peerconnection/RTCRtpSender.h",
-+          "objc/api/peerconnection/RTCRtpTransceiver.h",
-+          "objc/api/peerconnection/RTCSSLAdapter.h",
-+          "objc/api/peerconnection/RTCSessionDescription.h",
-+          "objc/api/peerconnection/RTCTracing.h",
-+          "objc/api/peerconnection/RTCVideoSource.h",
-+          "objc/api/peerconnection/RTCVideoTrack.h",
-+          "objc/api/video_codec/RTCVideoDecoderVP8.h",
-+          "objc/api/video_codec/RTCVideoDecoderVP9.h",
-+          "objc/api/video_codec/RTCVideoEncoderVP8.h",
-+          "objc/api/video_codec/RTCVideoEncoderVP9.h",
-+          "objc/api/video_frame_buffer/RTCNativeI420Buffer.h",
-+          "objc/api/video_frame_buffer/RTCNativeMutableI420Buffer.h",
-+          "objc/base/RTCCodecSpecificInfo.h",
-+          "objc/base/RTCEncodedImage.h",
-+          "objc/base/RTCI420Buffer.h",
-+          "objc/base/RTCLogging.h",
-+          "objc/base/RTCMacros.h",
-+          "objc/base/RTCMutableI420Buffer.h",
-+          "objc/base/RTCMutableYUVPlanarBuffer.h",
-+          "objc/base/RTCRtpFragmentationHeader.h",
-+          "objc/base/RTCVideoCapturer.h",
-+          "objc/base/RTCVideoCodecInfo.h",
-+          "objc/base/RTCVideoDecoder.h",
-+          "objc/base/RTCVideoDecoderFactory.h",
-+          "objc/base/RTCVideoEncoder.h",
-+          "objc/base/RTCVideoEncoderFactory.h",
-+          "objc/base/RTCVideoEncoderQpThresholds.h",
-+          "objc/base/RTCVideoEncoderSettings.h",
-+          "objc/base/RTCVideoFrame.h",
-+          "objc/base/RTCVideoFrameBuffer.h",
-+          "objc/base/RTCVideoRenderer.h",
-+          "objc/base/RTCYUVPlanarBuffer.h",
-+          "objc/components/capturer/RTCCameraVideoCapturer.h",
-+          "objc/components/capturer/RTCFileVideoCapturer.h",
-+          "objc/components/renderer/metal/RTCMTLNSVideoView.h",
-+          "objc/components/renderer/opengl/RTCNSGLVideoView.h",
-+          "objc/components/renderer/opengl/RTCVideoViewShading.h",
-+          "objc/components/video_codec/RTCCodecSpecificInfoH264.h",
-+          "objc/components/video_codec/RTCDefaultVideoDecoderFactory.h",
-+          "objc/components/video_codec/RTCDefaultVideoEncoderFactory.h",
-+          "objc/components/video_codec/RTCH264ProfileLevelId.h",
-+          "objc/components/video_codec/RTCVideoDecoderFactoryH264.h",
-+          "objc/components/video_codec/RTCVideoDecoderH264.h",
-+          "objc/components/video_codec/RTCVideoEncoderFactoryH264.h",
-+          "objc/components/video_codec/RTCVideoEncoderH264.h",
-+          "objc/components/video_frame_buffer/RTCCVPixelBuffer.h",
-+          "objc/helpers/RTCDispatcher.h",
-+        ]
-+        if (!build_with_chromium) {
-+          sources += [
-+            "objc/api/logging/RTCCallbackLogger.h",
-+            "objc/api/peerconnection/RTCFileLogger.h",
-+          ]
-+        }
-+
-+        deps = [
-+          ":base_objc",
-+          ":default_codec_factory_objc",
-+          ":native_api",
-+          ":native_video",
-+          ":videocapture_objc",
-+          ":videocodec_objc",
-+          ":videotoolbox_objc",
-+        ]
-+
-+        configs += [ "..:common_objc" ]
-+
-+        public_configs = [ ":common_config_objc" ]
-+      }
-       mac_framework_bundle_with_umbrella_header("mac_framework_objc") {
-         info_plist = "objc/Info.plist"
-         output_name = "WebRTC"
-diff --git a/sdk/objc/components/video_codec/nalu_rewriter.cc b/sdk/objc/components/video_codec/nalu_rewriter.cc
-index ddf7346..05d15f5 100644
---- a/sdk/objc/components/video_codec/nalu_rewriter.cc
-+++ b/sdk/objc/components/video_codec/nalu_rewriter.cc
-@@ -269,8 +269,14 @@ bool H265CMSampleBufferToAnnexBBuffer(
-   // Get parameter set information.
-   int nalu_header_size = 0;
-   size_t param_set_count = 0;
--  OSStatus status = CMVideoFormatDescriptionGetHEVCParameterSetAtIndex(
-+  OSStatus status = noErr;
-+  if (__builtin_available(macOS 10.13, *)) {
-+    status = CMVideoFormatDescriptionGetHEVCParameterSetAtIndex(
-       description, 0, nullptr, nullptr, &param_set_count, &nalu_header_size);
-+  } else {
-+    RTC_LOG(LS_ERROR) << "H265 is unavailable on this system.";
-+    return false;
-+  }
-   if (status != noErr) {
-     RTC_LOG(LS_ERROR) << "Failed to get parameter set.";
-     return false;
-@@ -290,8 +296,13 @@ bool H265CMSampleBufferToAnnexBBuffer(
-     size_t param_set_size = 0;
-     const uint8_t* param_set = nullptr;
-     for (size_t i = 0; i < param_set_count; ++i) {
--      status = CMVideoFormatDescriptionGetHEVCParameterSetAtIndex(
-+      if (__builtin_available(macOS 10.13, *)) {
-+        status = CMVideoFormatDescriptionGetHEVCParameterSetAtIndex(
-           description, i, &param_set, &param_set_size, nullptr, nullptr);
-+      } else {
-+        RTC_LOG(LS_ERROR) << "H265 is unavailable on this system.";
-+        return false;
-+      }
-       if (status != noErr) {
-         RTC_LOG(LS_ERROR) << "Failed to get parameter set.";
-         return false;
-@@ -527,9 +538,15 @@ CMVideoFormatDescriptionRef CreateH265VideoFormatDescription(
- 
-   // Parse the SPS and PPS into a CMVideoFormatDescription.
-   CMVideoFormatDescriptionRef description = nullptr;
--  OSStatus status = CMVideoFormatDescriptionCreateFromHEVCParameterSets(
-+  OSStatus status = noErr;
-+  if (__builtin_available(macOS 10.13, *)) {
-+    status = CMVideoFormatDescriptionCreateFromHEVCParameterSets(
-       kCFAllocatorDefault, 3, param_set_ptrs, param_set_sizes, 4, nullptr,
-       &description);
-+  } else {
-+    RTC_LOG(LS_ERROR) << "H265 is unavailable on this system.";
-+    return nullptr;
-+  }
-   if (status != noErr) {
-     RTC_LOG(LS_ERROR) << "Failed to create video format description.";
-     return nullptr;
-diff --git a/test/BUILD.gn b/test/BUILD.gn
-index 2e22476..7d64957 100644
---- a/test/BUILD.gn
-+++ b/test/BUILD.gn
-@@ -768,7 +768,7 @@ rtc_library("encoder_settings") {
-   ]
- }
- 
--rtc_library("rtc_expect_death") {
-+rtc_source_set("rtc_expect_death") {
-   testonly = true
-   sources = [ "testsupport/rtc_expect_death.h" ]
-   deps = [ ":test_support" ]
-diff --git a/test/network/BUILD.gn b/test/network/BUILD.gn
-index fc56001..d3dd0e8 100644
---- a/test/network/BUILD.gn
-+++ b/test/network/BUILD.gn
-@@ -143,7 +143,7 @@ rtc_library("feedback_generator_unittest") {
-   ]
- }
- 
--rtc_library("network_emulation_unittests") {
-+rtc_source_set("network_emulation_unittests") {
-   testonly = true
-   deps = [
-     ":cross_traffic_unittest",
-diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn
-index 8a5607a..8b28e64 100644
---- a/test/pc/e2e/BUILD.gn
-+++ b/test/pc/e2e/BUILD.gn
-@@ -42,7 +42,7 @@ if (rtc_include_tests) {
-   }
- }
- 
--rtc_library("peer_connection_quality_test_params") {
-+rtc_source_set("peer_connection_quality_test_params") {
-   visibility = [ "*" ]
-   testonly = true
-   sources = [ "peer_connection_quality_test_params.h" ]
-@@ -62,7 +62,7 @@ rtc_library("peer_connection_quality_test_params") {
-   ]
- }
- 
--rtc_library("encoded_image_data_injector_api") {
-+rtc_source_set("encoded_image_data_injector_api") {
-   visibility = [ "*" ]
-   testonly = true
-   sources = [ "analyzer/video/encoded_image_data_injector.h" ]
-diff --git a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc
-index b8f1740..4de32d7 100644
---- a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc
-+++ b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.cc
-@@ -10,6 +10,8 @@
- 
- #include "test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h"
- 
-+#include <cstring> // fix build with -std=gnu++17
-+
- #include "api/stats_types.h"
- #include "rtc_base/logging.h"
- 
-diff --git a/test/pc/e2e/analyzer/video/default_encoded_image_data_injector.cc b/test/pc/e2e/analyzer/video/default_encoded_image_data_injector.cc
-index 2634e6e..11d7f4b 100644
---- a/test/pc/e2e/analyzer/video/default_encoded_image_data_injector.cc
-+++ b/test/pc/e2e/analyzer/video/default_encoded_image_data_injector.cc
-@@ -12,6 +12,7 @@
- 
- #include <algorithm>
- #include <cstddef>
-+#include <cstring> // fix build with -std=gnu++17
- 
- #include "absl/memory/memory.h"
- #include "api/video/encoded_image.h"
-diff --git a/test/pc/e2e/analyzer/video/single_process_encoded_image_data_injector.cc b/test/pc/e2e/analyzer/video/single_process_encoded_image_data_injector.cc
-index ec0d26b..f51d57c 100644
---- a/test/pc/e2e/analyzer/video/single_process_encoded_image_data_injector.cc
-+++ b/test/pc/e2e/analyzer/video/single_process_encoded_image_data_injector.cc
-@@ -12,6 +12,7 @@
- 
- #include <algorithm>
- #include <cstddef>
-+#include <cstring> // fix build with -std=gnu++17
- 
- #include "absl/memory/memory.h"
- #include "api/video/encoded_image.h"
-diff --git a/test/testsupport/jpeg_frame_writer.cc b/test/testsupport/jpeg_frame_writer.cc
-index 8bf1ee4..6817ee5 100644
---- a/test/testsupport/jpeg_frame_writer.cc
-+++ b/test/testsupport/jpeg_frame_writer.cc
-@@ -65,7 +65,7 @@ bool JpegFrameWriter::WriteFrame(const VideoFrame& input_frame, int quality) {
-   cinfo.image_width = input_frame.width();
-   cinfo.image_height = input_frame.height();
-   cinfo.input_components = kColorPlanes;
--  cinfo.in_color_space = JCS_EXT_BGR;
-+  cinfo.in_color_space = JCS_RGB; // JCS_EXT_BGR; <- this only in _turbo
-   jpeg_set_defaults(&cinfo);
-   jpeg_set_quality(&cinfo, quality, TRUE);
- 
-diff --git a/video/BUILD.gn b/video/BUILD.gn
-index 14109c3..21d768b 100644
---- a/video/BUILD.gn
-+++ b/video/BUILD.gn
-@@ -242,7 +242,7 @@ rtc_library("video_stream_encoder_impl") {
- }
- 
- if (rtc_include_tests) {
--  rtc_library("video_mocks") {
-+  rtc_source_set("video_mocks") {
-     testonly = true
-     sources = [ "test/mock_video_stream_encoder.h" ]
-     deps = [
-diff --git a/webrtc.gni b/webrtc.gni
-index 96b654a..636d1ce 100644
---- a/webrtc.gni
-+++ b/webrtc.gni
-@@ -12,7 +12,7 @@ import("//build/config/sanitizers/sanitizers.gni")
- import("//build/config/sysroot.gni")
- import("//build/config/ui.gni")
- import("//build_overrides/build.gni")
--import("//build_overrides/ssl/ssl.gni")
-+#import("//build_overrides/ssl/ssl.gni")
- 
- if (!build_with_chromium && is_component_build) {
-   print("The Gn argument `is_component_build` is currently " +
-@@ -37,6 +37,25 @@ if (is_mac) {
- }
- 
- declare_args() {
-+  # Allow providing external ffmpeg
-+  rtc_build_ffmpeg = true
-+
-+  # Used to specify an external ffmpeg include path when not compiling the
-+  # library that comes with WebRTC (i.e. rtc_build_ffmpeg == 0).
-+  rtc_ffmpeg_root = ""
-+
-+  # Used to specify an external ffmpeg libs.
-+  rtc_ffmpeg_libs = []
-+
-+  # Used to specify and external opus include path when not compiling the
-+  # library that comes with WebRTC (i.e. rtc_build_opus == 0).
-+  rtc_opus_root = ""
-+
-+  # Used to specify an external opus libs.
-+  rtc_opus_libs = []
-+}
-+
-+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.
-   rtc_enable_symbol_export = false
-@@ -84,7 +103,10 @@ 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 = owt_openssl_header_root
-+  rtc_ssl_root = "" # owt_openssl_header_root
-+
-+  # Used to specify an external OpenSSL libs.
-+  rtc_ssl_libs = []
- 
-   # Selects fixed-point code where possible.
-   rtc_prefer_fixed_point = false
-@@ -151,7 +173,7 @@ declare_args() {
-   # Enabling H264 when building with MSVC is currently not supported, see
-   # bugs.webrtc.org/9213#c13 for more info.
-   rtc_use_h264 =
--      proprietary_codecs && !is_android && !is_ios && !(is_win && !is_clang)
-+      proprietary_codecs && !is_android && !is_ios && !(is_win && !is_clang && rtc_build_ffmpeg)
- 
-   # By default, use normal platform audio support or dummy audio, but don't
-   # use file-based audio playout and record.
-@@ -213,7 +235,7 @@ declare_args() {
-   rtc_build_libvpx = !build_with_mozilla
-   rtc_libvpx_build_vp9 = !build_with_mozilla
-   rtc_build_opus = !build_with_mozilla
--  rtc_build_ssl = !owt_use_openssl
-+  rtc_build_ssl = !build_with_mozilla # owt_use_openssl
-   rtc_build_usrsctp = !build_with_mozilla
- 
-   # Enable libevent task queues on platforms that support it.
-@@ -619,7 +641,8 @@ template("rtc_static_library") {
- # For the same reason, testonly targets will always be expanded to
- # source_set in order to be sure that tests are present in the test binary.
- template("rtc_library") {
--  if (is_component_build || (defined(invoker.testonly) && invoker.testonly)) {
-+  # if (is_component_build || (defined(invoker.testonly) && invoker.testonly)) {
-+  if (is_component_build) {
-     target_type = "source_set"
-   } else {
-     target_type = "static_library"

Deleted: third_party.diff
===================================================================
--- third_party.diff	2020-11-11 07:48:21 UTC (rev 750000)
+++ third_party.diff	2020-11-11 08:27:05 UTC (rev 750001)
@@ -1,75 +0,0 @@
-diff --git a/BUILD.gn b/BUILD.gn
-index a62632e2c3f..ea2a9325a9c 100644
---- a/BUILD.gn
-+++ b/BUILD.gn
-@@ -11,6 +11,9 @@ assert(!is_ios, "This is not used on iOS, don't drag it in unintentionally")
- config("system_libjpeg_config") {
-   libs = [ "jpeg" ]
-   defines = [ "USE_SYSTEM_LIBJPEG" ]
-+  if (system_libjpeg_root != "") {
-+    include_dirs = [ system_libjpeg_root, system_libjpeg_root + "/src" ]
-+  }
- }
- 
- config("libjpeg_turbo_config") {
-diff --git a/abseil-cpp/absl/meta/type_traits.h b/abseil-cpp/absl/meta/type_traits.h
-index ba87d2f0edf..b9c5340cd3c 100644
---- a/abseil-cpp/absl/meta/type_traits.h
-+++ b/abseil-cpp/absl/meta/type_traits.h
-@@ -616,8 +616,19 @@ using common_type_t = typename std::common_type<T...>::type;
- template <typename T>
- using underlying_type_t = typename std::underlying_type<T>::type;
- 
-+#if __cplusplus > 201703L || (defined(_MSC_VER) && _MSVC_LANG > 201703L)
-+template <typename T>
-+struct result_of_helper;
-+template <typename F, typename ...Args>
-+struct result_of_helper<F(Args...)> {
-+  using type = std::invoke_result_t<F, Args...>;
-+};
-+template <typename T>
-+using result_of_t = typename result_of_helper<T>::type;
-+#else   // C++20
- template <typename T>
- using result_of_t = typename std::result_of<T>::type;
-+#endif  // C++20
- 
- namespace type_traits_internal {
- // In MSVC we can't probe std::hash or stdext::hash because it triggers a
-diff --git a/libjpeg.gni b/libjpeg.gni
-index 049348b79bd..039385c9739 100644
---- a/libjpeg.gni
-+++ b/libjpeg.gni
-@@ -6,6 +6,9 @@ declare_args() {
-   # Uses system libjpeg. If true, overrides use_libjpeg_turbo.
-   use_system_libjpeg = false
- 
-+  # Used to specify an external libjpeg root path
-+  system_libjpeg_root = ""
-+
-   # Uses libjpeg_turbo as the jpeg implementation. Has no effect if
-   # use_system_libjpeg is set.
-   use_libjpeg_turbo = true
-diff --git a/usrsctp/BUILD.gn b/usrsctp/BUILD.gn
-index e8a5b1f9d41..1b52f28141c 100644
---- a/usrsctp/BUILD.gn
-+++ b/usrsctp/BUILD.gn
-@@ -3,6 +3,7 @@
- # found in the LICENSE file.
- 
- import("//build/toolchain/toolchain.gni")
-+import("//webrtc.gni")
- 
- config("usrsctp_config") {
-   include_dirs = [
-@@ -145,5 +146,9 @@ static_library("usrsctp") {
-   if (is_fuchsia) {
-     defines += [ "__Userspace_os_Fuchsia" ]
-   }
--  deps = [ "//third_party/boringssl" ]
-+  if (rtc_build_ssl) {
-+    deps += [ "//third_party/boringssl" ]
-+  } else {
-+    configs += [ "//rtc_base:external_ssl_library" ]
-+  }
- }



More information about the arch-commits mailing list