[arch-commits] Commit in libwebrtc/repos/community-testing-x86_64 (15 files)

Jiachen Yang farseerfc at archlinux.org
Fri Aug 21 03:40:15 UTC 2020


    Date: Friday, August 21, 2020 @ 03:40:15
  Author: farseerfc
Revision: 685728

archrelease: copy trunk to community-testing-x86_64

Added:
  libwebrtc/repos/community-testing-x86_64/0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch
    (from rev 685727, libwebrtc/trunk/0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch)
  libwebrtc/repos/community-testing-x86_64/PKGBUILD
    (from rev 685727, libwebrtc/trunk/PKGBUILD)
  libwebrtc/repos/community-testing-x86_64/args.gn
    (from rev 685727, libwebrtc/trunk/args.gn)
  libwebrtc/repos/community-testing-x86_64/build.diff
    (from rev 685727, libwebrtc/trunk/build.diff)
  libwebrtc/repos/community-testing-x86_64/gclient-conf
    (from rev 685727, libwebrtc/trunk/gclient-conf)
  libwebrtc/repos/community-testing-x86_64/libsrtp.diff
    (from rev 685727, libwebrtc/trunk/libsrtp.diff)
  libwebrtc/repos/community-testing-x86_64/src.diff
    (from rev 685727, libwebrtc/trunk/src.diff)
  libwebrtc/repos/community-testing-x86_64/third_party.diff
    (from rev 685727, libwebrtc/trunk/third_party.diff)
Deleted:
  libwebrtc/repos/community-testing-x86_64/PKGBUILD
  libwebrtc/repos/community-testing-x86_64/args.gn
  libwebrtc/repos/community-testing-x86_64/build.diff
  libwebrtc/repos/community-testing-x86_64/gclient-conf
  libwebrtc/repos/community-testing-x86_64/libsrtp.diff
  libwebrtc/repos/community-testing-x86_64/src.diff
  libwebrtc/repos/community-testing-x86_64/third_party.diff

---------------------------------------------------------+
 0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch |  141 +
 PKGBUILD                                                |  144 -
 args.gn                                                 |   55 
 build.diff                                              |  278 +-
 gclient-conf                                            |   22 
 libsrtp.diff                                            |   28 
 src.diff                                                | 1418 +++++++-------
 third_party.diff                                        |  150 -
 8 files changed, 1201 insertions(+), 1035 deletions(-)

Copied: libwebrtc/repos/community-testing-x86_64/0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch (from rev 685727, libwebrtc/trunk/0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch)
===================================================================
--- 0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch	                        (rev 0)
+++ 0001-IWYU-fix-missing-uint32_t-size_t-definitions.patch	2020-08-21 03:40:15 UTC (rev 685728)
@@ -0,0 +1,141 @@
+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
+

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2020-08-21 03:39:01 UTC (rev 685727)
+++ PKGBUILD	2020-08-21 03:40:15 UTC (rev 685728)
@@ -1,59 +0,0 @@
-# Maintainer: Frederik Schwan <freswa at archlinux dot org>
-
-pkgname=libwebrtc
-_commit=18721df
-pkgver=83.git1.${_commit}
-pkgrel=1
-pkgdesc='WebRTC library - static linked'
-arch=('x86_64')
-url='https://webrtc.org/?hl=de'
-license=('custom:BSD')
-makedepends=('git' 'gn' 'ninja' 'unzip' 'python2' 'python' 'libxrandr' 'libxcomposite' 'openssl' 'glibc' 'ffmpeg' 'libva')
-options=('staticlibs')
-source=("webrtc::git+https://github.com/open-webrtc-toolkit/owt-deps-webrtc#commit=${_commit}"
-        'https://storage.googleapis.com/chrome-infra/depot_tools.zip'
-        gclient-conf
-        args.gn
-        src.diff
-        build.diff
-        third_party.diff
-        libsrtp.diff)
-noextract=('depot_tools.zip')
-b2sums=('SKIP'
-        'c931652e11cc81db2cf7b8f547c72dbea2cc1fe1a11b01eae0af677fab91a48ba0339265eda110a4f3f53f859d1bdb520576a534600a582d5dc93979acf3f606'
-        '25ab3e116e2f241219fe31e96166e009a233813417c6901ed3ff0cafcdc7b6bff17ae284167164028203e4a5e94548deff3e4bad00aff6c8286bd7d63cb9cdb2'
-        '235560d3bf6c1023398eb53051f2fde522501c939105d100d0091a832909f0ffe7e4e98068a4ec3f2ee790994e904be7e35c12fdfe9020862fb2a0c8f32209e1'
-        '923a626e69c819e550e1681257e1fb0c5c2a64160b13bd5d5a322125cba58020ba84330c8056d94a23175090055686916860d083adea08f8c8bff9e5e0ebbe01'
-        'f8af81b249989296402e8ab9fa999559b8c9e18ac78c64766554db44289fe16778795a7ce4cd902b13f6ee9aa4866e8ae112af617a32f069674eec659c84a54a'
-        'c8cbe2395066cdb639fd9cc8242ae345e4d4e2dabb3803397f162b26a0dfd170ddb888474e85c65fd2142a3462c984164fac0bc061f163128aad92d350be26ab'
-        'fb6d9de8c49667e3726f255aabe8840a60e73d0d3a2ea5fd539580cc7aa734a2486267b00a236e0114adfd852a0710833b729c153761097668fdf7f6d755de94')
-
-prepare() {
-  mv webrtc 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
-  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 gen out/Release
-}
-
-build() {
-  cd src
-  ninja -C out/Release webrtc
-}
-
-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
-}

Copied: libwebrtc/repos/community-testing-x86_64/PKGBUILD (from rev 685727, libwebrtc/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2020-08-21 03:40:15 UTC (rev 685728)
@@ -0,0 +1,85 @@
+# Maintainer: Frederik Schwan <freswa at archlinux dot org>
+
+pkgname=libwebrtc
+_commit=18721df
+pkgver=83.git1.${_commit}
+pkgrel=2
+pkgdesc='WebRTC library - static linked'
+arch=('x86_64')
+url='https://webrtc.org/?hl=de'
+license=('custom:BSD')
+makedepends=('git' 'gn' 'ninja' 'unzip' 'python2' 'python' 'libxrandr' 'libxcomposite' 'openssl' 'glibc' 'ffmpeg' 'libva')
+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')
+
+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 gen out/Release
+}
+
+build() {
+  cd src
+  
+  ninja -C out/Release webrtc
+}
+
+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
+}

Deleted: args.gn
===================================================================
--- args.gn	2020-08-21 03:39:01 UTC (rev 685727)
+++ args.gn	2020-08-21 03:40:15 UTC (rev 685728)
@@ -1,28 +0,0 @@
-host_cpu="x64"
-target_os="linux"
-is_component_build=false
-is_debug=false
-is_clang=false
-symbol_level=2
-proprietary_codecs=true
-use_custom_libcxx=true
-use_system_libjpeg=true
-use_rtti=true
-use_gold=false
-use_sysroot=false
-linux_use_bundled_binutils=false
-enable_dsyms=false
-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/openssl/"
-rtc_ssl_libs=["/usr/lib/libssl.so","/usr/lib/libcrypto.so","/usr/lib/libdl.so","/usr/lib/libpthread.so"]
-rtc_builtin_ssl_root_certificates=true
-rtc_build_ffmpeg=false
-rtc_ffmpeg_root="../../../ffmpeg"
-rtc_ffmpeg_libs=["/usr/lib/libavfilter.so","/usr/lib/libswscale.so","/usr/lib/libswresample.so","/usr/lib/libavutil.so","/usr/lib/libva-x11.so","/usr/lib/libva-drm.so","/usr/lib/libva.so","/usr/lib/libvdpau.so","/usr/lib/libdrm.so","/usr/lib/libXfixes.so","/usr/lib/libXext.so","/usr/lib/libX11.so","/usr/lib/libxcb.so","/usr/lib/libXau.so","/usr/lib/libXdmcp.so","/usr/lib/libdbus-1.so"]
-rtc_opus_root="/usr/include/opus"
-rtc_enable_protobuf=false
-treat_warnings_as_errors=false

Copied: libwebrtc/repos/community-testing-x86_64/args.gn (from rev 685727, libwebrtc/trunk/args.gn)
===================================================================
--- args.gn	                        (rev 0)
+++ args.gn	2020-08-21 03:40:15 UTC (rev 685728)
@@ -0,0 +1,27 @@
+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-08-21 03:39:01 UTC (rev 685727)
+++ build.diff	2020-08-21 03:40:15 UTC (rev 685728)
@@ -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) {

Copied: libwebrtc/repos/community-testing-x86_64/build.diff (from rev 685727, libwebrtc/trunk/build.diff)
===================================================================
--- build.diff	                        (rev 0)
+++ build.diff	2020-08-21 03:40:15 UTC (rev 685728)
@@ -0,0 +1,139 @@
+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-08-21 03:39:01 UTC (rev 685727)
+++ gclient-conf	2020-08-21 03:40:15 UTC (rev 685728)
@@ -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 = []

Copied: libwebrtc/repos/community-testing-x86_64/gclient-conf (from rev 685727, libwebrtc/trunk/gclient-conf)
===================================================================
--- gclient-conf	                        (rev 0)
+++ gclient-conf	2020-08-21 03:40:15 UTC (rev 685728)
@@ -0,0 +1,11 @@
+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-08-21 03:39:01 UTC (rev 685727)
+++ libsrtp.diff	2020-08-21 03:40:15 UTC (rev 685728)
@@ -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) {

Copied: libwebrtc/repos/community-testing-x86_64/libsrtp.diff (from rev 685727, libwebrtc/trunk/libsrtp.diff)
===================================================================
--- libsrtp.diff	                        (rev 0)
+++ libsrtp.diff	2020-08-21 03:40:15 UTC (rev 685728)
@@ -0,0 +1,14 @@
+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-08-21 03:39:01 UTC (rev 685727)
+++ src.diff	2020-08-21 03:40:15 UTC (rev 685728)
@@ -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"

Copied: libwebrtc/repos/community-testing-x86_64/src.diff (from rev 685727, libwebrtc/trunk/src.diff)
===================================================================
--- src.diff	                        (rev 0)
+++ src.diff	2020-08-21 03:40:15 UTC (rev 685728)
@@ -0,0 +1,709 @@
+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-08-21 03:39:01 UTC (rev 685727)
+++ third_party.diff	2020-08-21 03:40:15 UTC (rev 685728)
@@ -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" ]
-+  }
- }

Copied: libwebrtc/repos/community-testing-x86_64/third_party.diff (from rev 685727, libwebrtc/trunk/third_party.diff)
===================================================================
--- third_party.diff	                        (rev 0)
+++ third_party.diff	2020-08-21 03:40:15 UTC (rev 685728)
@@ -0,0 +1,75 @@
+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