2022-01-25  Michael Saboff  <msaboff@apple.com>

        Install build failure when using SYSTEM_CONTENT_PATH
        https://bugs.webkit.org/show_bug.cgi?id=235609

        Reviewed by Filip Pizlo.

        Change the Create Symlinks to Alternate Root script to create the links for the headers
        for both the install headers and install phases.

        * Scripts/create-symlink-to-altroot.sh:

2022-01-24  Youenn Fablet  <youenn@apple.com>

        Cherry-pick WebRTC 235826 change
        https://bugs.webkit.org/show_bug.cgi?id=235510
        <rdar://87884184>

        Reviewed by Eric Carlson.

        Cherry-picking above fixing for compliance.

        * Source/webrtc/media/engine/webrtc_media_engine.cc:
        * Source/webrtc/media/engine/webrtc_media_engine.h:
        * Source/webrtc/media/engine/webrtc_media_engine_unittest.cc:
        * Source/webrtc/media/engine/webrtc_video_engine.cc:
        * Source/webrtc/media/engine/webrtc_video_engine.h:
        * Source/webrtc/media/engine/webrtc_voice_engine.cc:
        * Source/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map.cc:
        * Source/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map_unittest.cc:

2022-01-24  Youenn Fablet  <youenn@apple.com>

        Reject large number of WebRTC audio channels
        https://bugs.webkit.org/show_bug.cgi?id=235511

        Reviewed by Eric Carlson.

        Cherry-picking WebRTC upstream fix for compliance.

        * Source/webrtc/pc/webrtc_sdp.cc:
        * Source/webrtc/pc/webrtc_sdp_unittest.cc:

2022-01-21  Michael Saboff  <msaboff@apple.com>

        WebKit fails to build - error: 'webrtc/rtc_base/network.h' file not found
        https://bugs.webkit.org/show_bug.cgi?id=235459

        Reviewed by Mark Lam.

        We needed to create symlinks from the standard location to the SYSTEM_CONTENT_PATH location.
        This is needed for both the include files and archive libraries.

        * Configurations/boringssl.xcconfig:
        * Configurations/libsrtp.xcconfig:
        * Configurations/libvpx.xcconfig:
        * Configurations/libwebm.xcconfig:
        * Configurations/libwebrtc.xcconfig:
        * Configurations/libyuv.xcconfig:
        * Configurations/opus.xcconfig:
        * Configurations/usrsctp.xcconfig:
        * Scripts: Added.
        * Scripts/create-symlink-to-altroot.sh: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2022-01-19  Youenn Fablet  <youenn@apple.com>

        libvpx firstpass.c is not needed
        https://bugs.webkit.org/show_bug.cgi?id=235354

        Reviewed by Alexey Proskuryakov.

        * libwebrtc.xcodeproj/project.pbxproj:

2022-01-18  Alex Christensen  <achristensen@webkit.org>

        Use c++2a instead of gnu++2a for Cocoa builds
        https://bugs.webkit.org/show_bug.cgi?id=234936

        Reviewed by Sam Weinig.

        * Configurations/Base.xcconfig:

2022-01-12  Youenn Fablet  <youenn@apple.com>

        VP9-SVS no video stream from remote peer on some devices
        https://bugs.webkit.org/show_bug.cgi?id=231074
        <rdar://problem/84024646>

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:
        (-[RTCDefaultVideoDecoderFactory initWithH265:vp9Profile0:vp9Profile2:vp9VTB:]):
        Do not use VTIsHardwareDecodeSupported('vp09') to know whether WebProcess can use VTB since sandboxing can control this.

2022-01-10  Alex Christensen  <achristensen@webkit.org>

        Start using C++20
        https://bugs.webkit.org/show_bug.cgi?id=233963

        Reviewed by Yusuke Suzuki.

        * Configurations/Base.xcconfig:
        * Source/webrtc/rtc_base/system/no_unique_address.h:

2022-01-07  Alex Christensen  <achristensen@webkit.org>

        Unreviewed, reverting r287698.

        Broke an internal build

        Reverted changeset:

        "Start using C++20"
        https://bugs.webkit.org/show_bug.cgi?id=233963
        https://commits.webkit.org/r287698

2022-01-06  Alex Christensen  <achristensen@webkit.org>

        Start using C++20
        https://bugs.webkit.org/show_bug.cgi?id=233963

        Reviewed by Yusuke Suzuki.

        * Configurations/Base.xcconfig:
        * Source/webrtc/rtc_base/system/no_unique_address.h:

2022-01-05  Michael Saboff  <msaboff@apple.com>

        REGRESSION (r287382): libANGLE is built into a wrong location on iOS
        https://bugs.webkit.org/show_bug.cgi?id=234857

        Reviewed by Saam Barati.

        Reverted to the prior logic to compute INSTALL_PATH.  Then added an optional prefix
        for the alternate root framework location.

        * Configurations/libwebrtc.xcconfig:

2021-12-22  Michael Saboff  <msaboff@apple.com>

        Fix WebKit Build issues when using system content path
        https://bugs.webkit.org/show_bug.cgi?id=234624

        Reviewed by Filip Pizlo.

        Changed INSTALL_PATH on macOS builds to use fully qualified .../WebCore.framework/Versions/A/Frameworks.

        * Configurations/libwebrtc.xcconfig:

2021-12-16  Michael Saboff  <msaboff@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=234173
        Update Install Paths for build system changes

        Reviewed by Filip Pizlo.

        Added build variables and build step to create symlinks pointing to the alternate
        build locations from the current framework install location.

        * Configurations/libwebrtc.xcconfig:

2021-12-10  Michael Saboff  <msaboff@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=234173
        Update Install Paths for build system changes

        Reviewed by Yusuke Suzuki.

        Updated install paths for changes in the build system that use a system path prefix.

        * Configurations/libwebrtc.xcconfig:

2021-12-09  Alex Christensen  <achristensen@webkit.org>

        Prepare for transition to C++20
        https://bugs.webkit.org/show_bug.cgi?id=234022

        Reviewed by Yusuke Suzuki.

        * Source/webrtc/common_audio/wav_header.cc:
        * Source/webrtc/modules/audio_processing/include/aec_dump.cc:
        * Source/webrtc/modules/audio_processing/include/aec_dump.h:
        * Source/webrtc/modules/audio_processing/utility/delay_estimator_wrapper.cc:
        * Source/webrtc/modules/audio_processing/vad/vad_audio_proc.h:
        * Source/webrtc/modules/video_coding/media_opt_util.h:
        * Source/webrtc/rtc_base/race_checker.h:
        * Source/webrtc/rtc_base/units/unit_base.h:
        (webrtc::rtc_units_impl::UnitBase::operator== const):
        (webrtc::rtc_units_impl::UnitBase::operator!= const):
        (webrtc::rtc_units_impl::UnitBase::operator<= const):
        (webrtc::rtc_units_impl::UnitBase::operator>= const):
        (webrtc::rtc_units_impl::UnitBase::operator> const):
        (webrtc::rtc_units_impl::UnitBase::operator< const):

2021-12-06  Youenn Fablet  <youenn@apple.com>

        Close WebRTC allocation sequence shared socket in case of sequence network failure
        https://bugs.webkit.org/show_bug.cgi?id=233808

        Reviewed by Geoffrey Garen.

        * Source/webrtc/p2p/client/basic_port_allocator.cc:
        * Source/webrtc/p2p/client/basic_port_allocator.h:

2021-11-22  Youenn Fablet  <youenn@apple.com>

        Remove h264_bitstream_parser spurious logging
        https://bugs.webkit.org/show_bug.cgi?id=233361

        Reviewed by Eric Carlson.

        * Source/webrtc/common_video/h264/h264_bitstream_parser.cc:

2021-11-17  Youenn Fablet  <youenn@apple.com>

        Safari 15.1 H264 FullHD video encode/decode fails
        https://bugs.webkit.org/show_bug.cgi?id=233036
        <rdar://80345048>

        Reviewed by Eric Carlson.

        H264 encoder now checks the profile and fails if frame is too big.
        To get back to the past behavior, we are now using auto level for both ARM64 devices as well as devices with Monterey OS.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

2021-11-10  Youenn Fablet  <youenn@apple.com> and Victor M. Jaquez L. <vjaquez@igalia.com>

        Update libwebrtc to M96
        https://bugs.webkit.org/show_bug.cgi?id=232873

        Reviewed by Alex Christensen.

        Updated libwebrtc code according M96 upstream branch.

        * CMakeLists.txt:
        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc: resynced.
        * libwebrtc.xcodeproj/project.pbxproj:

2021-10-27  David Kilzer  <ddkilzer@apple.com>

        [WebRTC] Enable -Wformat=2 warnings
        <https://webkit.org/b/232335>
        <rdar://problem/84571752>

        Reviewed by Eric Carlson.

        * Configurations/Base.xcconfig:
        (WARNING_CFLAGS):
        - Add -Wformat=2 switch, which includes -Wformat-nonliteral.
        * Source/third_party/libsrtp/crypto/include/err.h:
        (LIBSRTP_FORMAT_PRINTF): Add.
        - Define a macro for the printf format attribute.
        (srtp_err_report):
        - Apply LIBSRTP_FORMAT_PRINTF() macro to this function to fix
          -Wformat-nonliteral warnings.
        * Source/third_party/libvpx/source/libvpx/vpx/internal/vpx_codec_internal.h:
        (LIBVPX_FORMAT_PRINTF): Add.
        - Define a macro for the printf format attribute.
        (vpx_internal_error):
        - Apply LIBVPX_FORMAT_PRINTF() macro to this function to fix
          -Wformat-nonliteral warnings.
        * WebKit/0001-WebKitLegacy-Enable-Wformat-2-warnings.patch: Add.

2021-10-21  David Kilzer  <ddkilzer@apple.com>

        [WebRTC] Simplify libwebtc Xcode project
        <https://webkit.org/b/232044>
        <rdar://problem/82743710>

        Reviewed by Youenn Fablet.

        * Configurations/libwebm.xcconfig:
        (INSTALL_HEADERS_PATH):
        (LIBWEBM_HEADERS_FOLDER_PATH):
        (LIBWEBM_HEADERS_FOLDER_PATH_NO):
        (LIBWEBM_HEADERS_FOLDER_PATH_YES):
        - Remove variables used by now-removed build phase scripts.
        (PUBLIC_HEADERS_FOLDER_PATH): Add.
        - This determines where webm public headers are installed.

        * libwebrtc.xcodeproj/project.pbxproj:
        (Recovered References): Remove.
        - The two source files were added back at the correct path
          elsewhere, so these references can be removed.
        (webm target):
        - Remove "Copy webm headers" and "Copy common headers" build
          phase scripts since headers are installed by Xcode's built-in
          "Headers" phase.
        - Remove duplicate C++ source files (noticed after reviewing
          "Recovered References" files).
        - Install webm headers as public headers since their is no
          subdirectory structure, and this fixes the bug in the radar
          where webm headers were not installed consistently.

2021-10-20  Youenn Fablet  <youenn@apple.com>

        WebRTC p2p call, VP9-SVC only low layer decoded on receiver side
        https://bugs.webkit.org/show_bug.cgi?id=231071
        <rdar://problem/83763291>

        Reviewed by Eric Carlson.

        In case VP9 SVC is used, fallback to software decoder for now.

        * Source/webrtc/sdk/WebKit/WebKitDecoder.mm:

2021-10-18  Cameron McCormack  <heycam@apple.com>

        Always set color space for incoming H.264/265 streams
        https://bugs.webkit.org/show_bug.cgi?id=231881
        <rdar://problem/84350707>

        Reviewed by Youenn Fablet.

        Followup from https://bugs.webkit.org/show_bug.cgi?id=231353. In some
        configurations, the "ColorInfoGuessedBy" attachment is not set on the
        CVPixelBuffers coming out of the VTDecompressionSession, but the
        guessed, incorrect color space attachments are still there. Since we
        currently always have an sRGB stream, don't bother looking for
        "ColorInfoGuessedBy".

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm:
        (overrideColorSpaceAttachments):
        (decompressionOutputCallback):
        (overrideColorSpaceAttachmentsIfNeeded): Deleted.
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm:
        (overrideColorSpaceAttachments):
        (h265DecompressionOutputCallback):
        (overrideColorSpaceAttachmentsIfNeeded): Deleted.

2021-10-14  Chris Dumez  <cdumez@apple.com>

        Unreviewed, fix up r284190 build fix.

        * Source/third_party/libwebm/webm_parser/src/master_parser.h:

2021-10-14  Chris Dumez  <cdumez@apple.com>

        Unreviewed build fix with latest SDKs.

        * Source/third_party/libwebm/webm_parser/src/master_parser.h:

2021-10-13  Cameron McCormack  <heycam@apple.com>

        Override guessed color space for incoming H.264/265 streams
        https://bugs.webkit.org/show_bug.cgi?id=231353
        <rdar://problem/83969311>

        Reviewed by Youenn Fablet.

        When the VTDecompressionSession decodes incoming H.264/H.265 samples,
        it puts guessed color space attachments on the CVPixelBuffer, and the
        guesses are based on video resolution. WebRTC streams however default
        to being sRGB. So this patch overrides a guess with what we know the
        stream will be. (Once we support different color spaces in WebRTC
        video streams we'll need to adjust this.)

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm:
        (overrideColorSpaceAttachmentsIfNeeded):
        (decompressionOutputCallback):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm:
        (overrideColorSpaceAttachmentsIfNeeded):
        (h265DecompressionOutputCallback):

2021-10-12  Alexey Proskuryakov  <ap@apple.com>

        Invoke ThirdParty build scripts with python3 explicitly
        https://bugs.webkit.org/show_bug.cgi?id=231605

        Reviewed by Dean Jackson.

        * Source/third_party/googletest/googletest/xcode/gtest.xcodeproj/project.pbxproj:

2021-10-06  Youenn Fablet  <youenn@apple.com>

        ObjectiveC WebRTC frame buffers are autoreleased late, especially on Debug builds
        https://bugs.webkit.org/show_bug.cgi?id=231162

        Reviewed by David Kilzer.

        Instead of waiting for the autorelease pool to release these objects, we explicitly release them by calling close.
        This ensures that pixel buffers get released very quickly.

        * Source/webrtc/sdk/WebKit/WebKitEncoder.mm:
        * Source/webrtc/sdk/objc/api/video_frame_buffer/RTCNativeI420Buffer+Private.h:
        * Source/webrtc/sdk/objc/api/video_frame_buffer/RTCNativeI420Buffer.mm:
        * Source/webrtc/sdk/objc/base/RTCI420Buffer.h:
        * Source/webrtc/sdk/objc/base/RTCVideoFrameBuffer.h:
        * Source/webrtc/sdk/objc/components/video_frame_buffer/RTCCVPixelBuffer.h:
        * Source/webrtc/sdk/objc/components/video_frame_buffer/RTCCVPixelBuffer.mm:
        * Source/webrtc/sdk/objc/native/src/objc_frame_buffer.mm:

2021-10-01  Chris Dumez  <cdumez@apple.com>

        Drop support for macOS < 10.15
        https://bugs.webkit.org/show_bug.cgi?id=231085

        Reviewed by Darin Adler.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:

2021-09-30  Youenn Fablet  <youenn@apple.com>

        Support AES GCM ciphers in WebRTC
        https://bugs.webkit.org/show_bug.cgi?id=214402
        <rdar://problem/65700381>

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2021-09-28  Alex Christensen  <achristensen@webkit.org>

        Mostly fix Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=230868

        Reviewed by Don Olmstead.

        * CMakeLists.txt:

2021-09-21  Youenn Fablet  <youenn@apple.com>

        NetworkRTCUDPSocketCocoaConnections should handle NAT64 IP addresses correctly
        https://bugs.webkit.org/show_bug.cgi?id=230552
        <rdar://83297256>

        Reviewed by Alex Christensen.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2021-09-15  Youenn Fablet  <youenn@apple.com>

        Migrate to libwebrtc non-racy setRemoteDescription/setLocalDescription variants
        https://bugs.webkit.org/show_bug.cgi?id=230262

        Reviewed by Darin Adler.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2021-09-09  Youenn Fablet  <youenn@apple.com>

        Add support for RTCSctpTransport
        https://bugs.webkit.org/show_bug.cgi?id=229292
        <rdar://problem/82394152>

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2021-09-06  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r282057.
        https://bugs.webkit.org/show_bug.cgi?id=229977

        made a layout test extremely flaky

        Reverted changeset:

        "Add support for RTCSctpTransport"
        https://bugs.webkit.org/show_bug.cgi?id=229292
        https://commits.webkit.org/r282057

2021-09-06  Youenn Fablet  <youenn@apple.com>

        Add support for RTCSctpTransport
        https://bugs.webkit.org/show_bug.cgi?id=229292
        <rdar://problem/82394152>

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2021-09-01  David Kilzer  <ddkilzer@apple.com>

        [WebRTC] Leak or over-release of CFPixelBufferRef returned from webrtc::createPixelBufferFromFrame()
        <https://webkit.org/b/229661>
        <rdar://problem/82507827>

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        - Update export symbol for rename from pixelBufferFromFrame() to
          createPixelBufferFromFrame().

        * Source/webrtc/sdk/WebKit/WebKitDecoderReceiver.cpp:
        (webrtc::WebKitDecoderReceiver::Decoded):
        - Update to call renamed createPixelBufferFromFrame() function.
          This method already released the returned CFPixelBufferRef, so
          it did not require any more changes.  Also, its functor
          returned a +1 retained CFPixelBufferRef, so it did not need to
          change, either.

        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        - Include <CoreFoundation/CFBase.h> for CF_RETURNS_RETAINED.
        (webrtc::createPixelBufferFromFrame):
        - Name const std::function<>& as `createPixelBuffer` to describe
          its behavior.
        - Add CF_RETURNS_RETAINED to describe memory management of the
          returned object.
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::pixelBufferFromFrame):
        - Rename to createPixelBufferFromFrame().
        (webrtc::createPixelBufferFromFrame):
        - Rename from pixelBufferFromFrame().
        - Rename const std::function<>& argument to `createPixelBuffer`
          to describe its behavior of returning a +1 retained
          CVPixelBufferRef.
        - Fix last return statement to return a +1 retained
          CFPixelBufferRef if it is not nullptr.

        * WebKit/libwebrtc.diff:
        - Update diff for WebKitUtilities.{h|mm}.

2021-08-19  Youenn Fablet  <youenn@apple.com>

        Add support for RTCDtlsTransport
        https://bugs.webkit.org/show_bug.cgi?id=229133

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2021-08-13  Youenn Fablet  <youenn@apple.com>

        Use profile auto level for WebRTC H264 encoder on Apple Silicon
        https://bugs.webkit.org/show_bug.cgi?id=229071
        <rdar://80345048>

        Reviewed by Eric Carlson.

        AS H264 encoder will fail if its profile is too low compared to the size of the video.
        Use autolevel to prevent this.
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

2021-07-01  Youenn Fablet  <youenn@apple.com>

        Disable ABSL_HAVE_THREAD_LOCAL in libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=227577
        <rdar://79915864>

        Reviewed by Eric Carlson.

        We do no want to resort on thread local yet so disable ABSL_HAVE_THREAD_LOCAL until we can use it properly.

        * Source/third_party/abseil-cpp/absl/base/config.h:

2021-07-01  Youenn Fablet  <youenn@apple.com>

        [Cocoa] Migrate WebRTC UDP socket handling to NW API
        https://bugs.webkit.org/show_bug.cgi?id=227210

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2021-06-30  Truitt Savell  <tsavell@apple.com>

        Unreviewed, reverting r279405.

        Casued 50+ webrtc crashes on Big Sur Debug

        Reverted changeset:

        "[Cocoa] Migrate WebRTC UDP socket handling to NW API"
        https://bugs.webkit.org/show_bug.cgi?id=227210
        https://commits.webkit.org/r279405

2021-06-30  Youenn Fablet  <youenn@apple.com>

        [Cocoa] Migrate WebRTC UDP socket handling to NW API
        https://bugs.webkit.org/show_bug.cgi?id=227210

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2021-06-23  Eric Carlson  <eric.carlson@apple.com>

        WebKitDecoder.h should include TargetConditionals.h
        https://bugs.webkit.org/show_bug.cgi?id=227314
        <rdar://problem/79689776>

        Reviewed by Geoff Garen.

        * Source/webrtc/sdk/WebKit/WebKitDecoder.h: Include TargetConditionals.h so the
        TARGET_ defines are initialized correctly.

2021-06-21  Eric Carlson  <eric.carlson@apple.com>

        [Mac] libwebrtc CMBaseClass objects need alignment fixup
        https://bugs.webkit.org/show_bug.cgi?id=227137
        <rdar://problem/79464124>

        Reviewed by Youenn Fablet.

        * Source/webrtc/sdk/WebKit/WebKitDecoder.h: Define CMBASE_OBJECT_NEEDS_ALIGNMENT.

        * Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp:
        (webrtc::createWebKitVP8Decoder): Add padding to the CMBaseClass object on Mac and
        Mac Catalyst when building for x86_64 so function pointers are naturally aligned.
        Add static_asserts to ensure alignment and sizes are correct.

        * Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:
        (webrtc::createWebKitVP9Decoder): Ditto.

2021-06-21  Philippe Normand  <pnormand@igalia.com>

        [GLIB] REGRESSION(r278701): numerous WebRTC tests failing after libwebrtc update to M92
        https://bugs.webkit.org/show_bug.cgi?id=227172

        Reviewed by Adrian Perez de Castro.

        Non-apple ports do not use the bundled libvpx library, they rely on the host libvpx instead.
        LibWebRTC expects to depend on the bundled version, thus using its API. So we need to be
        very careful with which libvpx version is used from the host, in order to avoid API/ABI
        issues. Hence the version check should specify a version that is API/ABI compatible with
        what libwebrtc expects.

        This patch also re-enables data channel support, which was disabled during the update to M92
        in CMake ports.

        * CMakeLists.txt:

2021-06-17  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r279011.
        https://bugs.webkit.org/show_bug.cgi?id=227153

        broke ios build

        Reverted changeset:

        "[Mac] libwebrtc CMBaseClass objects need alignment fixup"
        https://bugs.webkit.org/show_bug.cgi?id=227137
        https://trac.webkit.org/changeset/279011

2021-06-17  Eric Carlson  <eric.carlson@apple.com>

        [Mac] libwebrtc CMBaseClass objects need alignment fixup
        https://bugs.webkit.org/show_bug.cgi?id=227137

        Reviewed by Youenn Fablet.

        * Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp:
        (webrtc::createWebKitVP8Decoder): Add padding to the CMBaseClass object on x86_64
        so function pointers are naturally aligned. Add static_asserts to ensure alignment
        and sizes are correct.
        * Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:
        (webrtc::createWebKitVP9Decoder): Ditto.

2021-06-15  Youenn Fablet  <youenn@apple.com>

        Enable kVTVideoEncoderSpecification_RequiredLowLatency in case of MacOS software encoder
        https://bugs.webkit.org/show_bug.cgi?id=226873

        Reviewed by Eric Carlson.

        In case software encoder is being created for baseline, we can use kVTVideoEncoderSpecification_RequiredLowLatency
        which provides better bitrate management than the regular SW encoder while still generating baseline content.
        We check whether SW encoder is created based on kVTCompressionPropertyKey_UsingHardwareAcceleratedVideoEncoder.
        If property is unsupported or if its value is false, it means the encoder is software.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

2021-06-15  Youenn Fablet  <youenn@apple.com>

        REGRESSION: [ BigSur iOS wk1 Debug ] imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html is flaky crashing
        https://bugs.webkit.org/show_bug.cgi?id=226928
        <rdar://problem/79205526>

        Reviewed by Eric Carlson.

        * Source/webrtc/rtc_base/task_queue_stdlib.cc:
        thread_ is created in TaskQueueStdlib constructor before other members pending_queue_ or delayed_queue_.
        It might happen that thread_ will start executing its callback which will read delayed_queue_ before it is initialized by TaskQueueStdlib constructor.
        Update to create thread_ before all other members.

2021-06-10  Youenn Fablet  <youenn@apple.com> and Victor M. Jaquez L. <vjaquez@igalia.com>

        Update libwebrtc to M92
        https://bugs.webkit.org/show_bug.cgi?id=226494

        Reviewed by Eric Carlson.

        * CMakeLists.txt:
        * Source/webrtc: Resynced.
        * libwebrtc.xcodeproj/project.pbxproj:

2021-06-08  Truitt Savell  <tsavell@apple.com>

        Unreviewed, reverting r278609.

        Broke builds with a linker error.

        Reverted changeset:

        "Update libwebrtc to M92"
        https://bugs.webkit.org/show_bug.cgi?id=226494
        https://commits.webkit.org/r278609

2021-06-08  Youenn Fablet  <youenn@apple.com> and Victor M. Jaquez L. <vjaquez@igalia.com>

        Update libwebrtc to M92
        https://bugs.webkit.org/show_bug.cgi?id=226494

        Reviewed by Eric Carlson.

        * CMakeLists.txt:
        * Source/webrtc: Resynced.
        * libwebrtc.xcodeproj/project.pbxproj:

2021-06-08  Youenn Fablet  <youenn@apple.com>

        Update usrsctp to M92
        https://bugs.webkit.org/show_bug.cgi?id=226493

        Reviewed by Alex Christensen.

        * Source/third_party/usrsctp: Resynced.
        * Source/third_party/usrsctp/usrsctplib/.gitattributes: Added.

2021-06-07  Youenn Fablet  <youenn@apple.com>

        Update libvpx to M92
        https://bugs.webkit.org/show_bug.cgi?id=226488

        Reviewed by Eric Carlson.

        * CMakeLists.txt:
        * Source/third_party/libvpx: Resynced.
        * libwebrtc.xcodeproj/project.pbxproj:

2021-06-07  Youenn Fablet  <youenn@apple.com> and Victor M. Jaquez L. <vjaquez@igalia.com>

        Update libyuv to M92
        https://bugs.webkit.org/show_bug.cgi?id=226489

        Reviewed by Eric Carlson.

        * CMakeLists.txt:
        * Source/third_party/libyuv: Resynced.
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        Updated 10 bits frame conversion routine to use new libyuv routines (covered by webrtc/vp9-profile2.html)
        * libwebrtc.xcodeproj/project.pbxproj:

2021-06-06  Youenn Fablet  <youenn@apple.com>

        Update libsrtp to M92
        https://bugs.webkit.org/show_bug.cgi?id=226487

        Reviewed by Eric Carlson.

        * Configurations/libsrtp.xcconfig:
        * Source/third_party/libsrtp: Resynced.
        * libwebrtc.xcodeproj/project.pbxproj:

2021-06-03  Youenn Fablet  <youenn@apple.com>

        Cherry-pick webrtc fix to correctly handle audio track state in case of renegotiation
        https://bugs.webkit.org/show_bug.cgi?id=226577

        Reviewed by Eric Carlson.

        Cherry-pick https://webrtc.googlesource.com/src/+/c335b0e63bff56ca0fbfa617dee6a644c85df164%5E%21/.
        We need to do small changes to peer_connection.cc given the upstream fix is based on a newer version
        which has some code moved from peer_connection.cc to rtp_transmission_manager.cc.

        * Source/webrtc/pc/audio_rtp_receiver.cc:
        * Source/webrtc/pc/audio_rtp_receiver.h:
        * Source/webrtc/pc/peer_connection.cc:
        * Source/webrtc/pc/peer_connection_rtp_unittest.cc:
        * Source/webrtc/pc/remote_audio_source.cc:
        * Source/webrtc/pc/remote_audio_source.h:
        * Source/webrtc/pc/rtp_sender_receiver_unittest.cc:

2021-06-02  Youenn Fablet  <youenn@apple.com>

        Update boringssl to M92
        https://bugs.webkit.org/show_bug.cgi?id=226486

        Reviewed by Alex Christensen.

        * CMakeLists.txt:
        * Source/third_party/boringssl/BUILD.generated.gni: Resynced.
        * libwebrtc.xcodeproj/project.pbxproj:

2021-06-02  Youenn Fablet  <youenn@apple.com>

        Update pffft to M92
        https://bugs.webkit.org/show_bug.cgi?id=226491

        Reviewed by Alex Christensen.

        * Source/third_party/pffft/BUILD.gn:
        * Source/third_party/pffft/DIR_METADATA: Added.

2021-06-02  Youenn Fablet  <youenn@apple.com>

        Update opus to M92
        https://bugs.webkit.org/show_bug.cgi?id=226490

        Reviewed by Alex Christensen.

        * Source/third_party: Resynced.

2021-06-02  Youenn Fablet  <youenn@apple.com>

        Update to rnnoise to M92
        https://bugs.webkit.org/show_bug.cgi?id=226492

        Reviewed by Alex Christensen.

        * Source/third_party/rnnoise/DIR_METADATA: Added.
        * Source/third_party/rnnoise/OWNERS:

2021-06-02  Youenn Fablet  <youenn@apple.com>

        Update abseil-cpp to M92
        https://bugs.webkit.org/show_bug.cgi?id=226485

        Reviewed by Alex Christensen.

        * Source/third_party/abseil-cpp: Resynced.

2021-05-31  Youenn Fablet  <youenn@apple.com>

        Use tighter bitrate allocation rules for WebRTC H264 software encoder
        https://bugs.webkit.org/show_bug.cgi?id=226319
        <rdar://73150695>

        Reviewed by Eric Carlson.

        Software H264 encoder is sometimes overshooting target bitrate in which case WebRTC backend will start dropping frames.
        The encoder might then think it is on target and will not try to increase compression.
        This makes it possible to be locked in a very low frame rate but high quality image situation.
        It is often better to preserve frame rate and lower quality, the application could always lower frame rate if desired.

        To do so, we detect whether the encoder is using software code path or not.
        If so, we compute the actual frame rate and compare it with the expected frame rate.
        If the actual frame rate is twice smaller or even below, we enter in a low frame rate mode.
        Otherwise, we are in a regular frame rate mode where we apply the normal bitrate rules.
        In the low frame rate mode, we divide the target bitrate by 3 so as to quickly recover frame rate.

        This works well in situations where motion increases from time to time.
        It is still not perfect for instance in case the video is muted and gets unmuted or when the scene is completely still and suddenly large motion happens.
        In those cases, frame rate is recovered after a minute or so according my testing.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 initWithCodecInfo:]):
        (-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        (-[RTCVideoEncoderH264 setEncoderBitrateBps:frameRate:]):
        (-[RTCVideoEncoderH264 updateBitRateAccordingActualFrameRate]):

2021-05-20  Youenn Fablet  <youenn@apple.com>

        Enable VCP for H264 baseline
        https://bugs.webkit.org/show_bug.cgi?id=224043

        Reviewed by Eric Carlson.

        Enable VCP for baseline past BigSur/iOS14.
        Add macros and introduce _useBaseline in addition to _useVCP for that purpose.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 initWithCodecInfo:]):
        (-[RTCVideoEncoderH264 configureCompressionSession]):

2021-05-11  Youenn Fablet  <youenn@apple.com>

        Improve usrsctp restart handling
        https://bugs.webkit.org/show_bug.cgi?id=225638
        <rdar://77582953>

        Reviewed by Alex Christensen.

        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:
        (sctp_process_cookie_existing):

2021-05-07  Alex Christensen  <achristensen@webkit.org>

        Allow libwebrtc to build for Mac Catalyst
        https://bugs.webkit.org/show_bug.cgi?id=225505

        Reviewed by Youenn Fablet.

        This is progress towards rdar://77568774

        Changes necessary to get it to build and link were:
        1. kCVPixelBufferOpenGLESCompatibilityKey is unavailable on Catalyst, so use kCVPixelBufferOpenGLCompatibilityKey like we do on macOS.
        2. SSE4 and AVX seem to be unavailable in the Catalyst SDK like they are in the iOS simulator SDK, so disable them similarly.
        3. Link to UIKit and CoreGraphics in debug builds like we do with iOS family builds.
        4. Don't use @loader_path/../../../ for DYLIB_INSTALL_NAME_BASE like we do with relocatable Safari builds, similar to an ANGLE change I made in r276318
        5. Export the same symbols as iOS for now.  This may need some tweaking when I get it to link with WebCore, but that's why this is only progress.

        * Configurations/DebugRelease.xcconfig:
        * Configurations/SDKVariant.xcconfig:
        * Configurations/libvpx.xcconfig:
        * Configurations/libwebrtc.xcconfig:
        * Configurations/opus.xcconfig:
        * Source/third_party/libvpx/source/config/mac/x64/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/mac/x64/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm:
        (-[RTCVideoDecoderH264 resetDecompressionSession]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm:
        (-[RTCVideoDecoderH265 resetDecompressionSession]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm:
        (-[RTCVideoDecoderVTBVP9 resetDecompressionSession]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH265.mm:
        (-[RTCVideoEncoderH265 resetCompressionSession]):

2021-05-05  Yury Semikhatsky  <yurys@chromium.org>

        [LibWebRTC][WPE][GTK] do not use system installed vpx headers when building webrtc
        https://bugs.webkit.org/show_bug.cgi?id=225401

        Reviewed by Philippe Normand.

        Use vpx headers from Source/ThirdParty/libwebrtc instead of those from the host system.

        * CMakeLists.txt: expose libvpx headers to webrtc

2021-04-27  Youenn Fablet  <youenn@apple.com>

        Disable WebRTC trace event macros
        https://bugs.webkit.org/show_bug.cgi?id=225104
        <rdar://76146558>

        Reviewed by Eric Carlson.

        We are not using trace events so we can disable them as a small optimization.

        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtcpcrtc.xcconfig:

2021-04-23  Philippe Normand  <pnormand@igalia.com>

        [LibWebRTC][WPE][GTK] Enable vp9 and NO_MAIN_THREAD_WRAPPING
        https://bugs.webkit.org/show_bug.cgi?id=222795

        Reviewed by Xabier Rodriguez-Calvar.

        * CMakeLists.txt: Enable NO_MAIN_THREAD_WRAPPING as in the XCode build and harmonize options
        between Apple and non-Apple ports.
        * Source/webrtc/common_video/h265/h265_pps_parser.h:

2021-04-21  Kimmo Kinnunen  <kkinnunen@apple.com>

        WebRTC should be compiled with thread-safe statics
        https://bugs.webkit.org/show_bug.cgi?id=224863

        Reviewed by Youenn Fablet.

        Compile libwebrtc with normal thread-safe c++ local statics.
        No known threading failures. Based on ad-hoc risk vs benefit
        evaluation of today and after future merges, it appears
        better to err in the side of caution.

        * Configurations/Base.xcconfig:

2021-04-21  Youenn Fablet  <youenn@apple.com>

        [ BigSur wk2 ARM64 ] http/wpt/webrtc/change-encoded-transform.html is a flakey crash
        https://bugs.webkit.org/show_bug.cgi?id=224696
        <rdar://problem/76780020>

        Reviewed by Eric Carlson.

        On stream recreation, the new delegate may have to process a transformed frame before receiving one from the encoder.
        Check for encoder_queue to not be null in that case.

        * Source/webrtc/modules/rtp_rtcp/source/rtp_sender_video_frame_transformer_delegate.cc:

2021-04-15  Philippe Normand  <pnormand@igalia.com>

        [WebRTC][GStreamer] Build and use the openh264 based encoder if present on the system
        https://bugs.webkit.org/show_bug.cgi?id=202538
        <rdar://problem/76047172>

        Reviewed by Xabier Rodriguez-Calvar.

        In WPE/GTK we would like to have the libwebrtc openh264 encoder enabled if libopenh264 is
        present on the host (eg not vendored).

        * CMakeLists.txt:
        * LibWebRTCWebKitMacros.h.in: Added.
        * Source/webrtc/modules/video_coding/codecs/h264/h264.cc:
        * Source/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc:
        * Source/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.h:
        * cmake/FindOpenh264.cmake: Added.

2021-04-06  Philippe Normand  <pnormand@igalia.com>

        REGRESSION(r275275): Broke some build configs lacking openh264
        https://bugs.webkit.org/show_bug.cgi?id=224244

        Unreviewed, manual revert of r275275 and r275409.

        * CMakeLists.txt:
        * LibWebRTCWebKitMacros.h.in: Removed.
        * Source/webrtc/modules/video_coding/codecs/h264/h264.cc:
        * Source/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc:
        * Source/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.h:
        * cmake/FindOpenh264.cmake: Removed.

2021-04-05  Alex Christensen  <achristensen@webkit.org>

        Resurrect Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=224084

        Reviewed by Tim Horton.

        * CMakeLists.txt:

2021-04-02  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [CMake][GStremer] Fails to build if OpenH264 is not present
        https://bugs.webkit.org/show_bug.cgi?id=224089

        Reviewed by Philippe Normand.

        * CMakeLists.txt: Only try to link with OpenH264 when it is found.

2021-03-31  Youenn Fablet  <youenn@apple.com>

        In case WebRTC VTB decoder returns a null frame, mark the decoder as failing
        https://bugs.webkit.org/show_bug.cgi?id=223993
        <rdar://problem/76049206>

        Reviewed by Eric Carlson.

        In case VTB does not return any pixel buffer, consider decoding is failing.
        Set the error so that we we will send the error on the next frame we try to decode.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm:
        (decompressionOutputCallback):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm:
        (h265DecompressionOutputCallback):
        (-[RTCVideoDecoderH265 setError:]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm:
        (vp9DecompressionOutputCallback):

2021-03-31  Thibault Saunier  <tsaunier@igalia.com> and Philippe Normand  <pnormand@igalia.com>

        [WebRTC][GStreamer] Build and use the openh264 based encoder if present on the system
        https://bugs.webkit.org/show_bug.cgi?id=202538

        Reviewed by Xabier Rodriguez-Calvar and Adrian Perez de Castro.

        In WPE/GTK we would like to have the libwebrtc openh264 encoder enabled if libopenh264 is
        present on the host (eg not vendored).

        * CMakeLists.txt:
        * Source/webrtc/modules/video_coding/codecs/h264/h264.cc:
        * Source/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc:
        * Source/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.h:

2021-03-26  Jessie Berlin  <jberlin@webkit.org>

        Update the BEFORE/SINCE, SYSTEM_VERSION_PREFIX, and MACOSX_DEPLOYMENT_TARGET flags
        https://bugs.webkit.org/show_bug.cgi?id=223779

        Reviewed by Tim Horton.

        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:
        * Configurations/WebKitTargetConditionals.xcconfig:

2021-03-25  Jessie Berlin  <jberlin@webkit.org>

        Remove 10.13 DEPLOYMENT_TARGETs and SYSTEM_VERSION_PREFIXs
        https://bugs.webkit.org/show_bug.cgi?id=223765

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:

2021-03-25  Youenn Fablet  <youenn@apple.com>

        Switch from PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION to filtering interfaces in Network process
        https://bugs.webkit.org/show_bug.cgi?id=223679

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2021-03-25  Youenn Fablet  <youenn@apple.com>

        Align RemoteVideoDecoder destruction strategy with RemoteVideoEncoder
        https://bugs.webkit.org/show_bug.cgi?id=223745

        Reviewed by Eric Carlson.

        When decoder is released, we make sure to nullify the decoder callback.
        We wait to release WebKit decoder at RemoteVideoDecoder destruction time.

        * Source/webrtc/sdk/WebKit/WebKitDecoder.mm:
        (webrtc::RemoteVideoDecoder::~RemoteVideoDecoder):
        (webrtc::RemoteVideoDecoder::Release):

2021-03-10  Jer Noble  <jer.noble@apple.com>

        CRASH in MergeUVRow_AVX2
        https://bugs.webkit.org/show_bug.cgi?id=222996
        <rdar://75183835>

        Reviewed by Geoff Garen.

        Crash logging shows occasional crashes in MergeUVRow_AVX2. These crashes  all occur when
        calling -[AVAssetImageGenerator copyCGImageAtTime:actualTime:error:]. This path is only used
        when there was no prior image generated, and a new image is not available from
        AVPlayerItemVideoOutput, which is a scenario which only occurs when doing a software-paint
        immedately after a <video> element begins loading. While we should probably stop using
        AVAssetImageGenerator, that would be a much riskier change, and wouldn't address the
        underlying cause of the crash. Instead, bailing out early when in this state would cause
        decoding to fail, but since this scenario only appears to occur for the
        AVAssetImageGenerator path, painting would quickly recover as soon as
        AVPlayerItemVideoOutput begins emitting frames.

        The explanation for these crashes seems to be a mismatch between the size of the libvpx
        output frame and the size of the CVPixelBuffer where the converted frame data is being
        stored. Add a pre-flight check that will bail out early in this scenario.

        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::CopyVideoFrameToPixelBuffer):

2021-03-09  Youenn Fablet  <youenn@apple.com>

        Duplicate headers in WebRTC
        https://bugs.webkit.org/show_bug.cgi?id=222519
        <rdar://problem/75137024>

        Reviewed by Eric Carlson.

        * libwebrtc.xcodeproj/project.pbxproj:

2021-03-04  Youenn Fablet  <youenn@apple.com>

        Use NO_MAIN_THREAD_WRAPPING to compile libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=222717
        <rdar://problem/74988599>

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.xcconfig:
        This prevents creating socket server in Web Process.

2021-02-24  Youenn Fablet  <youenn@apple.com>

        Update fipsmodule cipher.c to handle EVP_CipherUpdate
        https://bugs.webkit.org/show_bug.cgi?id=222354
        <rdar://problem/74436356>

        Reviewed by Eric Carlson.

        Cherry-picking of https://boringssl.googlesource.com/boringssl/+/e7c0c9734f5491e62665ea156603209a80fbb235%5E%21/.

        * Source/third_party/boringssl/src/crypto/fipsmodule/cipher/cipher.c:
        (EVP_EncryptUpdate):
        (EVP_DecryptUpdate):
        * Source/third_party/boringssl/src/include/openssl/cipher.h:

2021-02-24  Youenn Fablet  <youenn@apple.com>

        Fix null pointer deref in X509_issuer_and_serial_hash
        https://bugs.webkit.org/show_bug.cgi?id=222353
        <rdar://problem/74446806>

        Reviewed by Eric Carlson.

        Cherry-picking of https://github.com/openssl/openssl/commit/8130d654d1de922ea224fa18ee3bc7262edc39c0.

        * Source/third_party/boringssl/src/crypto/x509/x509_cmp.c:
        (X509_issuer_and_serial_hash):

2021-02-18  Youenn Fablet  <youenn@apple.com>

        libwebrtc installs some files into incorrect locations in /usr/local/include
        https://bugs.webkit.org/show_bug.cgi?id=221534
        <rdar://problem/74333613>

        Reviewed by Eric Carlson.

        * libwebrtc.xcodeproj/project.pbxproj:
        Mark optional.h as project instead of private.
        Move vp9 header copying from common to webm.

2021-02-16  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r272914.
        https://bugs.webkit.org/show_bug.cgi?id=222001

        broke macOS build

        Reverted changeset:

        "libwebrtc installs some files into incorrect locations in
        /usr/local/include"
        https://bugs.webkit.org/show_bug.cgi?id=221534
        https://trac.webkit.org/changeset/272914

2021-02-16  Youenn Fablet  <youenn@apple.com>

        libwebrtc installs some files into incorrect locations in /usr/local/include
        https://bugs.webkit.org/show_bug.cgi?id=221534
        <rdar://problem/74333613>

        Reviewed by Eric Carlson.

        * libwebrtc.xcodeproj/project.pbxproj:
        Remove no longer needed private header copying.
        Move vp9 header copying from common to webm.

2021-02-15  Youenn Fablet  <youenn@apple.com>

        Move WebRTCPlatformCodecsInGPUProcessEnabled to Page Settings
        https://bugs.webkit.org/show_bug.cgi?id=221893

        Reviewed by Eric Carlson.

        Always use the remote factory to simplify things. This ensures that factories remain in sync whether callbacks are set or not.
        We check anyway whether callbacks are set and use them if needed.
        Otherwise, we default to the in-process code path.

        * Source/webrtc/sdk/WebKit/WebKitDecoder.mm:
        (webrtc::createWebKitDecoderFactory):
        * Source/webrtc/sdk/WebKit/WebKitEncoder.mm:
        (webrtc::createWebKitEncoderFactory):

2021-02-11  Jer Noble  <jer.noble@apple.com>

        [Mac] Add Experimental Opus Codec support
        https://bugs.webkit.org/show_bug.cgi?id=221745

        Reviewed by Eric Carlson.

        Copy libopus headers into the libwebrtc header directory.

        * libwebrtc.xcodeproj/project.pbxproj:

2021-02-05  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>

        [CMake] Hide libwebrtc symbols
        https://bugs.webkit.org/show_bug.cgi?id=221333

        This is a naive approach to hide libwebrtc symbols, particularly beacuse of boringssl, which
        migth collide with system's libssl. It compiles libwebrtc with visibility set to hidden.

        Reviewed by Michael Catanzaro.

        * CMakeLists.txt:

2021-02-02  Youenn Fablet  <youenn@apple.com>

        Update WebRTC usrsctp to M88
        https://bugs.webkit.org/show_bug.cgi?id=221205

        Reviewed by Eric Carlson.

        * Source/third_party/usrsctp/usrsctplib/.github/workflows/build-with-cmake.yml: Removed.
        * Source/third_party/usrsctp/usrsctplib/CMakeLists.txt:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/CMakeLists.txt:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:
        (sctp_process_asconf_set_primary):
        (sctp_handle_asconf):
        (sctp_handle_asconf_ack):
        (sctp_asconf_iterator_ep_end):
        (sctp_asconf_iterator_stcb):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_auth.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_auth.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_bsd_addr.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_bsd_addr.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_cc_functions.c:
        (sctp_enforce_cwnd_limit):
        (sctp_cwnd_update_after_fr):
        (cc_bw_same):
        (cc_bw_decrease):
        (sctp_cwnd_update_after_sack_common):
        (sctp_cwnd_update_after_ecn_echo_common):
        (sctp_cwnd_update_after_output):
        (sctp_cwnd_update_after_sack):
        (sctp_cwnd_update_after_ecn_echo):
        (sctp_cwnd_update_rtcc_after_ecn_echo):
        (sctp_cwnd_update_rtcc_tsn_acknowledged):
        (sctp_cwnd_prepare_rtcc_net_for_sack):
        (sctp_cwnd_new_rtcc_transmission_begins):
        (sctp_set_rtcc_initial_cc_param):
        (sctp_cwnd_rtcc_socket_option):
        (sctp_cwnd_update_rtcc_after_sack):
        (sctp_hs_cwnd_update_after_sack):
        (htcp_alpha_update):
        (htcp_cong_avoid):
        (sctp_htcp_cwnd_update_after_sack):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_constants.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_header.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c:
        (sctp_mark_non_revokable):
        (sctp_place_control_in_stream):
        (sctp_queue_data_to_stream):
        (sctp_inject_old_unordered_data):
        (sctp_deliver_reasm_check):
        (sctp_process_a_data_chunk):
        (sctp_sack_check):
        (sctp_process_segment_range):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:
        (sctp_process_init):
        (sctp_handle_heartbeat_ack):
        (sctp_handle_error):
        (sctp_process_cookie_existing):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_os.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_os_userspace.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:
        (sctp_choose_boundspecific_stcb):
        (sctp_select_nth_preferred_addr_from_ifn_boundall):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_ss_functions.c:
        (sctp_ss_prio_clear):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_structs.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_sysctl.c:
        (sctp_init_sysctls):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_sysctl.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_uio.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_userspace.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:
        (sctp_finish):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:
        (sctp_auditing):
        (sctp_timeout_handler):
        (sctp_timer_start):
        (sctp_notify_remote_error):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:
        (in6_sin_2_v4mapsin6):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_environment.c:
        (init_random):
        (read_random):
        (finish_random):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_environment.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_inpcb.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_ip6_var.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_ip_icmp.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_malloc.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_mbuf.c:
        (mbuf_initialize):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_queue.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_recv_thread.c:
        (recv_function_raw):
        (recv_function_raw6):
        (recv_function_udp):
        (recv_function_udp6):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_route.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c:
        (usrsctp_init_nothreads):
        (usrsctp_socket):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_socketvar.h:

2021-01-25  Youenn Fablet  <youenn@apple.com>

        Resync libwebrtc with M87 latest branch
        https://bugs.webkit.org/show_bug.cgi?id=220913

        Reviewed by Eric Carlson.

        Cherry-picking two changes that have been cherry-picked in upstream M87 after our latest resync.
        This includes: https://webrtc-review.googlesource.com/c/src/+/187349 and https://webrtc-review.googlesource.com/c/src/+/191485.

        * Source/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc:
        * Source/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.h:
        * Source/webrtc/modules/audio_coding/codecs/opus/opus_interface.cc:
        * Source/webrtc/modules/audio_coding/codecs/opus/opus_unittest.cc:
        * Source/webrtc/modules/audio_coding/test/TestVADDTX.cc:
        * Source/webrtc/pc/peer_connection_rtp_unittest.cc:
        * Source/webrtc/pc/sdp_offer_answer.cc:

2021-01-08  Ryan Hostetler  <rhost@apple.com>

        Add support for source caching between platforms
        https://bugs.webkit.org/show_bug.cgi?id=220439
        rdar://72905725

        Reviewed by Andy Estes.

        Include libwebrtc Source during any installsrc phase.

        * Makefile:

2021-01-07  Ryan Hostetler  <rhost@apple.com>

        make clean/installsrc fail: You cannot specify -alltargets and also specify individual targets.
        https://bugs.webkit.org/show_bug.cgi?id=220370
        rdar://72834872

        Reviewed by Andy Estes.

        Use new XCODE_TARGET variable to set boringssl target on watchOS builds.

        * Makefile:

2021-01-07  Youenn Fablet  <youenn@apple.com>

        Remove non-inclusive language from libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=220101
        <rdar://problem/72727968>

        Reviewed by Beth Dakin.

        Remove logging erroneously added in https://trac.webkit.org/changeset/271150.
        Remove non-inclusive language from Source/webrtc/rtc_base/message_digest.h as done in
        https://webrtc-review.googlesource.com/c/src/+/200701.

        * Source/webrtc/rtc_base/message_digest.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm:
        (-[RTCVideoDecoderH264 init]):
        (-[RTCVideoDecoderH264 decodeData:size:timeStamp:]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 initWithCodecInfo:]):
        (-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
        (-[RTCVideoEncoderH264 frameWasEncoded:flags:sampleBuffer:codecSpecificInfo:width:height:renderTimeMs:timestamp:rotation:isKeyFrameRequired:]):

2021-01-05  Youenn Fablet  <youenn@apple.com>

        Remove non-inclusive language from libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=220101
        <rdar://problem/72727968>

        Reviewed by Beth Dakin.

        * Source/webrtc/build_overrides: Removed.
        * Source/webrtc/modules/audio_device/android: Removed.
        * Source/webrtc/rtc_base/win: Removed.
        * Source/webrtc/sdk/android: Removed.
        * Source/webrtc/tools_webrtc/msan: Removed.
        * Source/webrtc/tools_webrtc/ubsan: Removed.
        * Source/webrtc/tools_webrtc/vim: Removed.

2020-12-21  Ryan Hostetler  <rhost@apple.com>

        $(findstring iphone,$(SDKROOT)) fails when SDKROOT is not lowercase
        https://bugs.webkit.org/show_bug.cgi?id=219993
        rdar://72436093

        Reviewed by Darin Adler.

        Update SDKROOT evaluation to be lowercase and SDK filename only.

        * Makefile:

2020-12-16  Youenn Fablet  <youenn@apple.com>

        Cherry-pick usrsctp 355fb576b1a9dfef70fc0e158d66692662baaddc
        https://bugs.webkit.org/show_bug.cgi?id=219937

        Reviewed by Alex Christensen.

        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:
        (sctp_process_cookie_existing):

2020-12-16  Youenn Fablet  <youenn@apple.com>

        Cherry-pick usrsctp 7dab23aa0d8db86fedd222a308067439b03fad0f
        https://bugs.webkit.org/show_bug.cgi?id=219936
        <rdar://problem/72304588>

        Reviewed by Alex Christensen.

        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:
        (sctp_process_cookie_existing):

2020-12-16  Youenn Fablet  <youenn@apple.com>

        Remove ILBC audio codec as WebRTC audio codec
        https://bugs.webkit.org/show_bug.cgi?id=219912
        <rdar://problem/72302868>

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtcpcrtc.xcconfig:
        Compile out ILBC audio codec.

2020-12-16  Youenn Fablet  <youenn@apple.com>

        Make sure to correctly initialize the vpcC configuration in RTCVideoDecoderVTBVP9
        https://bugs.webkit.org/show_bug.cgi?id=219782

        Reviewed by Eric Carlson.

        We need to initialize the configuration record based on the frame header.
        We do so for every key frame.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm:
        (convertSubsamplingXYToChromaSubsampling):
        (-[RTCVideoDecoderVTBVP9 startDecodeWithNumberOfCores:]):
        (-[RTCVideoDecoderVTBVP9 decode:missingFrames:codecSpecificInfo:renderTimeMs:]):
        (-[RTCVideoDecoderVTBVP9 decodeData:size:timeStamp:]):

2020-12-13  Andy Estes  <aestes@apple.com>

        [Mac] Create a MediaToolbox format reader plug-in for WebM
        https://bugs.webkit.org/show_bug.cgi?id=218908
        <rdar://problem/71373264>

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/WebKit/CMBaseObjectSPI.h:

2020-12-11  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Add Experimental VP8 support
        https://bugs.webkit.org/show_bug.cgi?id=219732

        Reviewed by Eric Carlson.

        Add a new decoder for VP8 video using the decoder exposed by libwebrtc. Refactor
        WebKitDecoderReceiver into its own file, to be used by both the VP8 and VP9 decoders.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitDecoderReceiver.cpp: Added.
        (webrtc::WebKitDecoderReceiver::WebKitDecoderReceiver):
        (webrtc::WebKitDecoderReceiver::~WebKitDecoderReceiver):
        (webrtc::WebKitDecoderReceiver::initializeFromFormatDescription):
        (webrtc::WebKitDecoderReceiver::pixelBufferPool):
        (webrtc::WebKitDecoderReceiver::decoderFailed):
        (webrtc::WebKitDecoderReceiver::Decoded):
        * Source/webrtc/sdk/WebKit/WebKitDecoderReceiver.h: Added
        * Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp: Added.
        (webrtc::registerWebKitVP8Decoder):
        (webrtc::createWebKitVP8Decoder):
        (webrtc::invalidateVP8Decoder):
        (webrtc::finalizeVP8Decoder):
        (webrtc::copyVP8DecoderDebugDescription):
        (webrtc::webKitVP8DecoderFromVTDecoder):
        (webrtc::startVP8DecoderSession):
        (webrtc::decodeVP8DecoderFrameFromContiguousBlock):
        (webrtc::decodeVP8DecoderFrame):
        * Source/webrtc/sdk/WebKit/WebKitVP8Decoder.h: Copied from Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h.
        * Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:
        (webrtc::createWebKitVP9Decoder):
        (webrtc::startVP9DecoderSession):
        (webrtc::WebKitVP9DecoderReceiver::WebKitVP9DecoderReceiver): Deleted.
        (webrtc::WebKitVP9DecoderReceiver::~WebKitVP9DecoderReceiver): Deleted.
        (webrtc::WebKitVP9DecoderReceiver::initializeFromFormatDescription): Deleted.
        (webrtc::WebKitVP9DecoderReceiver::pixelBufferPool): Deleted.
        (webrtc::WebKitVP9DecoderReceiver::decoderFailed): Deleted.
        (webrtc::WebKitVP9DecoderReceiver::Decoded): Deleted.
        * libwebrtc.xcodeproj/project.pbxproj:

2020-12-10  Youenn Fablet  <youenn@apple.com>

        ICE does not resolve for `turns` relay candidates rooted in LetsEncrypt CA
        https://bugs.webkit.org/show_bug.cgi?id=219274

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2020-12-04  Adam Roben  <aroben@apple.com>

        More FALLBACK_PLATFORM adoption
        https://bugs.webkit.org/show_bug.cgi?id=219545

        Reviewed by Tim Horton.

        * Configurations/SDKVariant.xcconfig:
        WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
        NO.

2020-12-03  Adam Roben  <aroben@apple.com>

        Adopt FALLBACK_PLATFORM
        https://bugs.webkit.org/show_bug.cgi?id=219504

        Reviewed by Tim Horton.

        * Configurations/SDKVariant.xcconfig: Use FALLBACK_PLATFORM it if it's
        defined, otherwise use PLATFORM_NAME as before.

2020-12-01  Youenn Fablet  <youenn@apple.com>

        libwebrtc.dylib relies on dead code stripping (fails to link if dead code is not stripped in Debug builds)
        https://bugs.webkit.org/show_bug.cgi?id=218453

        Reviewed by Eric Carlson.

        Update build config and code to allow building without code stripping.

        * Configurations/Base.xcconfig:
        * Source/third_party/libvpx/source/libvpx/vp9/encoder/vp9_temporal_filter.c:
        Compile out some functions that are not-realtime only.
        * libwebrtc.xcodeproj/project.pbxproj:

2020-12-01  Youenn Fablet  <youenn@apple.com>

        Allow RTCRtpScriptTransformer to request key frames
        https://bugs.webkit.org/show_bug.cgi?id=219199

        Reviewed by Eric Carlson.

        Add GenerateKeyFrame to sender and receiver interface.
        Pipe the request to the necessary underlying objects implementing this as follows:
        - Ask encoder to generate a key frame for sender transforms
        - Send a FIR network request from receiver to sender for receiver transforms

        * Source/webrtc/api/rtp_receiver_interface.h:
        * Source/webrtc/api/rtp_sender_interface.h:
        * Source/webrtc/call/video_send_stream.h:
        * Source/webrtc/media/base/media_channel.h:
        (cricket::MediaChannel::GenerateKeyFrame):
        * Source/webrtc/media/engine/webrtc_video_engine.cc:
        * Source/webrtc/media/engine/webrtc_video_engine.h:
        * Source/webrtc/pc/rtp_sender.cc:
        * Source/webrtc/pc/rtp_sender.h:
        * Source/webrtc/pc/video_rtp_receiver.cc:
        * Source/webrtc/pc/video_rtp_receiver.h:
        * Source/webrtc/video/video_send_stream.cc:
        * Source/webrtc/video/video_send_stream.h:

2020-11-30  Youenn Fablet  <youenn@apple.com>

        Introduce an experimental flag specific to VP9 profile 2
        https://bugs.webkit.org/show_bug.cgi?id=219350

        Reviewed by Eric Carlson.

        Allow to enable profile 0 but not profile 2 for VP9 encoder and decoder.

        * Source/webrtc/sdk/WebKit/WebKitDecoder.mm:
        (webrtc::createWebKitDecoderFactory):
        * Source/webrtc/sdk/WebKit/WebKitEncoder.mm:
        (webrtc::createWebKitEncoderFactory):
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:
        (-[RTCDefaultVideoDecoderFactory initWithH265:vp9Profile0:vp9Profile2:vp9VTB:]):
        (-[RTCDefaultVideoDecoderFactory supportedCodecs]):
        (-[RTCDefaultVideoDecoderFactory initWithH265:vp9:vp9VTB:]): Deleted.
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m:
        (-[RTCDefaultVideoEncoderFactory initWithH265:vp9Profile0:vp9Profile2:lowLatencyH264:]):
        (+[RTCDefaultVideoEncoderFactory supportedCodecs]):
        (+[RTCDefaultVideoEncoderFactory supportedCodecsWithH265:vp9Profile0:vp9Profile2:]):
        (-[RTCDefaultVideoEncoderFactory supportedCodecs]):
        (-[RTCDefaultVideoEncoderFactory initWithH265:vp9:lowLatencyH264:]): Deleted.
        (+[RTCDefaultVideoEncoderFactory supportedCodecsWithH265:vp9:]): Deleted.

2020-11-27  Youenn Fablet  <youenn@apple.com>

        RTCVideoEncoderH264 does not need to support case without ENABLE_VCP_ENCODER and without HAVE_VTB_REQUIREDLOWLATENCY
        https://bugs.webkit.org/show_bug.cgi?id=219224

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        Make sure to compile the same with public SDK
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        Remove code path that is no longer useful.

2020-11-13  Youenn Fablet  <youenn@apple.com>

        Remote encoder should set its encoder frame callback to nullptr when being released
        https://bugs.webkit.org/show_bug.cgi?id=218906

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/WebKit/WebKitEncoder.mm:
        (webrtc::RemoteVideoEncoder::Release):
        We need to reset the callback at Release call time so that WebKit will take a lock to set it back to null.
        That way, we ensure to not call this callback while libwebrtc expects not to be called.

2020-11-12  Youenn Fablet  <youenn@apple.com>

        Add infrastructure for WebRTC transforms
        https://bugs.webkit.org/show_bug.cgi?id=218750

        Reviewed by Eric Carlson.

        Make sure buffer is owned by the encoded image object.

        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitEncoder.h:
        * Source/webrtc/sdk/WebKit/WebKitEncoder.mm:
        (webrtc::encoderVideoTaskComplete):

2020-11-10  Youenn Fablet  <youenn@apple.com> and Victor M Jaquez <vjaquez@igalia.com>

        Update WebRTC liwebrtc to M87
        https://bugs.webkit.org/show_bug.cgi?id=218436

        Reviewed by Eric Carlson.

        * CMakeLists.txt:
        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc: Resynced.
        * WebKit/libwebrtc-m87-diff: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2020-11-04  David Kilzer  <ddkilzer@apple.com>

        WebKit should remove unused debug variant support
        <https://webkit.org/b/218315>
        <rdar://problem/70785369>

        Reviewed by Darin Adler.

        Remove support for building the debug variant since it is
        currently unused. We now set default values for the
        DEAD_CODE_STRIPPING, DEBUG_DEFINES, GCC_OPTIMIZATION_LEVEL and
        STRIP_INSTALLED_PRODUCT variables.

        Also move these values out of the Xcode project into
        Base.xcconfig files using the [config=Debug] specifier so that
        these overrides are next to the definitions.

        Additional changes in behavior are noted below.

        * Configurations/Base.xcconfig:
        - Add missing copyright block.
        - Set up DEBUG_DEFINES and GCC_OPTIMIZATION_LEVEL the same as
          other WebKit projects.

        * Configurations/DebugRelease.xcconfig:
        - Add missing copyright block.
        - Move DEBUG_DEFINES and GCC_OPTIMIZATION_LEVEL to Base.xcconfig
          for [config=Debug].

        * Configurations/libwebrtc.xcconfig:
        - Add missing copyright block.
        - Set up STRIP_INSTALLED_PRODUCT the same as for other WebKit
          projects.  Previously symbols were never stripped in Release
          or Production builds.

        * Configurations/yasm.xcconfig:
        - Add missing copyright block.
        (GCC_PREPROCESSOR_DEFINITIONS):
        - Add $(DEBUG_DEFINES) so yasm builds with -DNDEBUG in Release
          and Production configurations.

        * libwebrtc.xcodeproj/project.pbxproj:
        - Remove unneeded PRODUCT_NAME variables.

2020-11-04  Youenn Fablet  <youenn@apple.com>

        Make functional WebRTC encoders in GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=218498

        Reviewed by Eric Carlson.

        Add support for a remote encoder and remote factory that will first try to create a  remote encoder and use an in process encoder otherwise.
        This is similar to what was done for remote video decoders.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitEncoder.h:
        (webrtc::WebKitEncodedFrameInfo::decode):
        (webrtc::WebKitRTPFragmentationHeader::encode const):
        (webrtc::WebKitRTPFragmentationHeader::decode):
        Fix issues in routines to encode/decode frame/fragmentation headers.
        * Source/webrtc/sdk/WebKit/WebKitEncoder.mm:
        (-[WK_RTCLocalVideoH264H265Encoder initWithCodecInfo:]):
        (-[WK_RTCLocalVideoH264H265Encoder codecType]):
        (webrtc::RemoteVideoEncoderFactory::RemoteVideoEncoderFactory):
        (webrtc::RemoteVideoEncoderFactory::CreateVideoEncoder):
        (webrtc::createWebKitEncoderFactory):
        (webrtc::RemoteVideoEncoder::~RemoteVideoEncoder):
        (webrtc::RemoteVideoEncoder::Release):
        (webrtc::encoderVideoTaskComplete):
        (webrtc::initializeLocalEncoder):
        (webrtc::encodeLocalEncoderFrame):

2020-11-03  Youenn Fablet  <youenn@apple.com>

        Add support for WebRTC VP9 decoder in GPU process
        https://bugs.webkit.org/show_bug.cgi?id=218445

        Reviewed by Eric Carlson.

        Allow creating a VTB VP9 decoder from WebCore.
        VTB VP9 decoder currently needs key frame width and height information so we provide it as part of the decode callback.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitDecoder.h:
        * Source/webrtc/sdk/WebKit/WebKitDecoder.mm:
        (-[WK_RTCLocalVideoH264H265VP9Decoder initVP9DecoderWithCallback:]):
        (-[WK_RTCLocalVideoH264H265VP9Decoder decodeData:size:timeStamp:]):
        (-[WK_RTCLocalVideoH264H265VP9Decoder setWidth:height:]):
        (-[WK_RTCLocalVideoH264H265VP9Decoder releaseDecoder]):
        (webrtc::RemoteVideoDecoder::Decode):
        (webrtc::RemoteVideoDecoderFactory::GetSupportedFormats const):
        (webrtc::createLocalH264Decoder):
        (webrtc::createLocalH265Decoder):
        (webrtc::createLocalVP9Decoder):
        (webrtc::releaseLocalDecoder):
        (webrtc::decodeFrame):
        (webrtc::setDecoderFrameSize):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm:
        (-[RTCVideoDecoderVTBVP9 decode:missingFrames:codecSpecificInfo:renderTimeMs:]):
        (-[RTCVideoDecoderVTBVP9 setWidth:height:]):

2020-11-03  Youenn Fablet  <youenn@apple.com>

        Update WebRTC boringssl to M87
        https://bugs.webkit.org/show_bug.cgi?id=218431

        Reviewed by Eric Carlson.

        * CMakeLists.txt:
        * Source/third_party/boringssl: Resynced.
        * libwebrtc.xcodeproj/project.pbxproj:

2020-11-03  Youenn Fablet  <youenn@apple.com>

        Update WebRTC usrsctp to M87
        https://bugs.webkit.org/show_bug.cgi?id=218433

        Reviewed by Eric Carlson.

        * Source/third_party/usrsctp: Resynced.

2020-11-03  Youenn Fablet  <youenn@apple.com>

        Allow low latency H264 encoder in GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=218442

        Reviewed by Eric Carlson.

        Add a useLowLatency boolean in RTCVideoEncoderH264 and in encoder factory.
        Encoder is set by the factory at creation time.
        useLowLatency factory value is set at creation of the factory.

        Clean up WebKitXX.h headers to do less include and move declarations in specific headers.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitDecoder.h:
        * Source/webrtc/sdk/WebKit/WebKitDecoder.mm:
        (webrtc::videoDecoderTaskComplete):
        * Source/webrtc/sdk/WebKit/WebKitEncoder.h:
        * Source/webrtc/sdk/WebKit/WebKitEncoder.mm:
        (-[WK_RTCLocalVideoH264H265Encoder setLowLatency:]):
        (webrtc::createWebKitEncoderFactory):
        (webrtc::setLocalEncoderLowLatency):
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m:
        (-[RTCDefaultVideoEncoderFactory initWithH265:vp9:lowLatencyH264:]):
        (-[RTCDefaultVideoEncoderFactory createEncoder:]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 initWithCodecInfo:]):
        (-[RTCVideoEncoderH264 setH264LowLatencyEncoderEnabled:]):
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

2020-11-03  Youenn Fablet  <youenn@apple.com>

        Update WebRTC libyuv to M87
        https://bugs.webkit.org/show_bug.cgi?id=218434

        Reviewed by Eric Carlson.

        * Source/third_party/usrsctp: Resynced.

2020-11-03  Youenn Fablet  <youenn@apple.com>

        Update WebRTC abseil to M87
        https://bugs.webkit.org/show_bug.cgi?id=218432

        Reviewed by Eric Carlson.

        * CMakeLists.txt:
        * Source/third_party/abseil-cpp: Resynced.

2020-11-03  Youenn Fablet  <youenn@apple.com>

        Update WebRTC opus to M87
        https://bugs.webkit.org/show_bug.cgi?id=218435

        Reviewed by Eric Carlson.

        * Source/third_party/opus: Resynced.

2020-11-02  Youenn Fablet  <youenn@apple.com>

        Set vpcC box for hardware WebRTC VP9 decoder
        https://bugs.webkit.org/show_bug.cgi?id=218337

        Reviewed by Eric Carlson.

        Hardware VP9 decoder code path requires vpcC box information.
        Provide it as part of the video format.
        Initialize the vpcC box with a zeroed buffer.

        Make sure WebKitVP9Decoder is able to handle dynamically 10 bits or 8 bits frames.

        * Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:
        (webrtc::createWebKitVP9Decoder):
        (webrtc::startVP9DecoderSession):
        (webrtc::WebKitVP9DecoderReceiver::initializeFromFormatDescription):
        (webrtc::WebKitVP9DecoderReceiver::pixelBufferPool):
        (webrtc::WebKitVP9DecoderReceiver::Decoded):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm:
        (-[RTCVideoDecoderVTBVP9 decodeData:size:timeStamp:]):
        (-[RTCVideoDecoderVTBVP9 resetDecompressionSession]):

2020-10-29  Youenn Fablet  <youenn@apple.com>

        Add some logging to SequenceCheckerImpl::IsCurrent
        https://bugs.webkit.org/show_bug.cgi?id=218328

        Reviewed by Eric Carlson.

        * Source/webrtc/rtc_base/synchronization/sequence_checker.cc:
        This might help debugging https://bugs.webkit.org/show_bug.cgi?id=218063.

2020-10-29  Youenn Fablet  <youenn@apple.com>

        Disable VP9 VTB hardware decoding
        https://bugs.webkit.org/show_bug.cgi?id=218326

        Reviewed by Alex Christensen.

        VP9 hardware decoder does not work properly yet as used in WebRTC pipeline.
        Disable hardware support for now and use software based VP9 through VTB.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm:
        (-[RTCVideoDecoderVTBVP9 resetDecompressionSession]):

2020-10-26  Youenn Fablet  <youenn@apple.com>

        Add support for VP9 Profile 2 (10-bit color) in WebRTC
        https://bugs.webkit.org/show_bug.cgi?id=217673
        <rdar://problem/70283885>

        Reviewed by Eric Carlson.

        Add support for VP9 profile 0 and 2.
        This requires correctly handling 10-bit decoded buffers as is done by the MSE code path.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::pixelBufferFromFrame):
        * Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:
        (webrtc::WebKitVP9DecoderReceiver::Decoded):
        * Source/webrtc/sdk/objc/api/video_codec/RTCVideoEncoderVP9.h:
        * Source/webrtc/sdk/objc/api/video_codec/RTCVideoEncoderVP9.mm:
        (+[RTCVideoEncoderVP9 vp9Encoder:]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:
        (-[RTCDefaultVideoDecoderFactory supportedCodecs]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m:
        (+[RTCDefaultVideoEncoderFactory supportedCodecsWithH265:vp9:]):
        (-[RTCDefaultVideoEncoderFactory createEncoder:]):

2020-10-24  Jer Noble  <jer.noble@apple.com>

        [BigSur] Appending a new WebM init segment between Cluster elements throws an error
        https://bugs.webkit.org/show_bug.cgi?id=218149
        <rdar://problem/70416537>

        Reviewed by Eric Carlson.

        Add an "OnElementEnd()" callback to libwebm.

        * Source/third_party/libwebm/webm_parser/include/webm/callback.h:
        * Source/third_party/libwebm/webm_parser/src/callback.cc:
        * Source/third_party/libwebm/webm_parser/src/master_parser.cc:
        * Source/third_party/libwebm/webm_parser/src/webm_parser.cc:

2020-10-21  Youenn Fablet  <youenn@apple.com>

        WebRTC VP9 Decoder should be able to use VTB
        https://bugs.webkit.org/show_bug.cgi?id=217811

        Reviewed by Eric Carlson.

        Add RTCVideoDecoderVTBVP9 as a VP9 decoder using the VTB API.
        Enable this code path by default if VP9 is enabled and hardware VP9 decoding is supported.
        Allow to override this setting for testing purposes.

        Add SPI header files in case they are not available.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/CMBaseObjectSPI.h: Added.
        * Source/webrtc/sdk/WebKit/VTVideoDecoderSPI.h: Added.
        * Source/webrtc/sdk/WebKit/WebKitDecoder.mm:
        (webrtc::createWebKitDecoderFactory):
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:
        (webrtc::createWebKitVP9Decoder):
        * Source/webrtc/sdk/objc/api/video_codec/RTCWrappedNativeVideoDecoder.mm:
        (-[RTCWrappedNativeVideoDecoder implementationName]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:
        (-[RTCDefaultVideoDecoderFactory initWithH265:vp9:vp9VTB:]):
        (-[RTCDefaultVideoDecoderFactory createDecoder:]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.h: Added.
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderVTBVP9.mm: Added.
        (RTCFrameDecodeParams::RTCFrameDecodeParams):
        (VP9BufferToCMSampleBuffer):
        (vp9DecompressionOutputCallback):
        (-[RTCVideoDecoderVTBVP9 dealloc]):
        (-[RTCVideoDecoderVTBVP9 startDecodeWithNumberOfCores:]):
        (-[RTCVideoDecoderVTBVP9 decode:missingFrames:codecSpecificInfo:renderTimeMs:]):
        (-[RTCVideoDecoderVTBVP9 decodeData:size:timeStamp:]):
        (-[RTCVideoDecoderVTBVP9 setCallback:]):
        (-[RTCVideoDecoderVTBVP9 setError:]):
        (-[RTCVideoDecoderVTBVP9 releaseDecoder]):
        (-[RTCVideoDecoderVTBVP9 resetDecompressionSession]):
        (-[RTCVideoDecoderVTBVP9 configureDecompressionSession]):
        (-[RTCVideoDecoderVTBVP9 destroyDecompressionSession]):
        (-[RTCVideoDecoderVTBVP9 setVideoFormat:]):
        (-[RTCVideoDecoderVTBVP9 implementationName]):
        * Source/webrtc/sdk/objc/native/src/objc_video_decoder_factory.mm:
        (webrtc::ObjCVideoDecoderFactory::CreateVideoDecoder):
        * libwebrtc.xcodeproj/project.pbxproj:

2020-10-13  Keith Rollin  <krollin@apple.com>

        Remove leftover MACOSX_DEPLOYMENT_TARGET_macosx support
        https://bugs.webkit.org/show_bug.cgi?id=217649
        <rdar://problem/70236877>

        Reviewed by Darin Adler.

        Bug 42796 introduced MACOSX_DEPLOYMENT_TARGET_<PLATFORM> as "support
        for compiling WebKit against iOS SDKs". Support for the iOS part of
        this feature was later removed in several changes, including Bug
        139212, Bug 139463 and Bug 144762. However, vestiges have remained for
        five or six years in the form of MACOSX_DEPLOYMENT_TARGET_macosx. The
        inclusion of the platform in MACOSX_DEPLOYMENT_TARGET is no longer
        needed and can be removed.

        This changes brings most projects in conformance with other projects
        that don't support including the platform in MACOSX_DEPLOYMENT_TARGET,
        including WebEditingTester, gtest, WebKitTestRunner, MiniBrowser, and
        TestWebKitAPI.

        Along the way, remove a couple of left-over references to macOS 10.16,
        and a couple of places where [sdk=macosx*] was still being used.

        With this change, initialization of MACOSX_DEPLOYMENT_TARGET should be
        consistent across all projects, with two exceptions: WebKitLauncher
        (which hardcodes it to 10.12) and libwebrtc's copy of googletest
        (which hardcodes it to 10.4). The reasons for these hard-coded values
        is not apparent, so leave them be.

        * Configurations/DebugRelease.xcconfig:

2020-10-12  Luming Yin  <luming_yin@apple.com>

        [macOS] Workaround for MAC_OS_X_VERSION_MAJOR incorrectly including minor version when building 
        with Xcode 12 on macOS Big Sur SUs
        https://bugs.webkit.org/show_bug.cgi?id=217602
        rdar://70194453

        Reviewed by Darin Adler.

        The previous workaround turns out to be ineffective because we can't set the value of 
        TARGET_MAC_OS_X_VERSION_MAJOR based on a previous value of itself. Introduce a new 
        variable TARGET_MAC_OS_X_VERSION_MAJOR to determine whether we need to explicitly 
        adjust MAC_OS_X_VERSION_MAJOR to 110000.

        * Configurations/DebugRelease.xcconfig:

2020-10-12  Luming Yin  <luming_yin@apple.com>

        [macOS] Workaround for MAC_OS_X_VERSION_MAJOR incorrectly including minor version when building 
        with Xcode 12 on macOS Big Sur SUs
        https://bugs.webkit.org/show_bug.cgi?id=217602
        rdar://70194453

        Reviewed by Darin Adler.

        Due to a bug in Xcode (rdar://70185899), Xcode 12.0 and Xcode 12.1 Beta incorrectly includes the 
        minor release number in MAC_OS_X_VERSION_MAJOR, which causes Debug and Release builds of WebKit 
        to be misconfigured when building on macOS Big Sur SUs, leading to webpages failing to load.

        To work around the Xcode bug, when the MAC_OS_X_VERSION_MAJOR includes the minor version number, 
        drop the minor version number by explicitly setting TARGET_MAC_OS_X_VERSION_MAJOR to 110000.

        Note: This change should be reverted after <rdar://70185899> is resolved.

        * Configurations/DebugRelease.xcconfig:

2020-10-11  Luming Yin  <luming_yin@apple.com>

        Strip patch version from TARGET_MAC_OS_X_VERSION_MAJOR when building for macOS Big Sur 
        or later
        https://bugs.webkit.org/show_bug.cgi?id=217594
        rdar://70188497

        Reviewed by Darin Adler.

        To ensure successful Mac Catalyst WebKit builds, strip the patch version from 
        TARGET_MAC_OS_X_VERSION_MAJOR by using two `base:`s on MACOSX_DEPLOYMENT_TARGET.

        * Configurations/Base.xcconfig:

2020-10-11  Luming Yin  <luming_yin@apple.com>

        Ignore deployment suffix and identifier when computing major OS version for macOS 
        Big Sur and newer
        https://bugs.webkit.org/show_bug.cgi?id=217584
        rdar://70168426

        Reviewed by Darin Adler.

        Stop using MACOSX_DEPLOYMENT_TARGET:suffix:identifier to compute major OS versions. 
        Only use the deployment target base for macOS Big Sur and newer. Keep the manual 
        definitions for legacy versions of macOS.

        * Configurations/Base.xcconfig:

2020-10-09  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, reverting r267539.

        Causes WebContent process crash in certain configurations

        Reverted changeset:

        "Add libwebrtc.dylib version check"
        https://bugs.webkit.org/show_bug.cgi?id=216884
        https://trac.webkit.org/changeset/267539

2020-10-07  Keith Rollin  <krollin@apple.com>

        Update post-processing rules for headers to not unnecessarily change timestamps
        https://bugs.webkit.org/show_bug.cgi?id=217371
        <rdar://problem/69992230>

        Reviewed by Darin Adler.

        Under XCBuild, the scripts employed in custom build rules can be
        invoked in innocuous situations. A common example is when the user is
        building from the command-line and they change the `make` output from
        stdout to a file, or vice-versa. Changing the output changes the
        setting of the COLOR_DIAGNOSTICS environment variable, which is enough
        to cause XCBuild to think something is different and that the custom
        build rule needs to be invoked. For the script's part, nothing
        significant has changed, yet it post-processes the header files,
        causing their modification dates to change, causing downstream
        rebuilds to occur.

        Fix this problem by adopting an approach that doesn't modify the
        post-processed header files unless their contents actually change.

        * libwebrtc.xcodeproj/project.pbxproj:

2020-09-24  Youenn Fablet  <youenn@apple.com>

        Add libwebrtc.dylib version check
        https://bugs.webkit.org/show_bug.cgi?id=216884
        <rdar://problem/69441354>

        Reviewed by Eric Carlson.

        Introduce isMatchingBundleVersion to check libwebrtc.dylib version.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Configurations/libwebrtc.xcconfig:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::isMatchingBundleVersion):

2020-09-09  David Kilzer  <ddkilzer@apple.com>

        [WebRTC] Fix uninitialized fields in FilterAnalyzer::ConsistentFilterDetector, FilterAnalyzer::FilterAnalysisState and InterArrival::TimestampGroup
        <https://webkit.org/b/216314>

        Reviewed by Youenn Fablet.

        * Source/webrtc/modules/audio_processing/aec3/filter_analyzer.h:
        (webrtc::FilterAnalyzer::ConsistentFilterDetector):
        - Initialize fields in declarations. This matches the values set
          by webrtc::FilterAnalyzer::ConsistentFilterDetector::Reset().
        (webrtc::FilterAnalyzer::FilterAnalysisState):
        - Initialize fields in declarations. Note that the
          FilterAnalysis constructor calls FilterAnalyzer::Reset(),
          which also sets these fields, but after the FilterAnalysisState
          construtor is called.
        * Source/webrtc/modules/remote_bitrate_estimator/inter_arrival.h:
        (webrtc::InterArrival::TimestampGroup::TimestampGroup):
        - Initialize field in constructor argument list.
        * WebKit/0001-fix-216314.patch: Add.

2020-09-07  Youenn Fablet  <youenn@apple.com>

        Add missing members to RTCIceCandidate
        https://bugs.webkit.org/show_bug.cgi?id=216075

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2020-08-24  Youenn Fablet  <youenn@apple.com>

        Enable VP9D_SET_LOOP_FILTER_OPT for libvpx vp9 decoder
        https://bugs.webkit.org/show_bug.cgi?id=215765
        <rdar://problem/67677285>

        Reviewed by Eric Carlson.

        Following https://webrtc-review.googlesource.com/c/src/+/177335 upstream, let's enable VP9D_SET_LOOP_FILTER_OPT for improved performances.

        * Source/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc:

2020-08-12  Youenn Fablet  <youenn@apple.com>

        Enable H264 low latency code path by default for MacOS
        https://bugs.webkit.org/show_bug.cgi?id=215371

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        Remove the workaround to use VCP encoder if software is detected as regular software code path should work now.

2020-08-11  Youenn Fablet  <youenn@apple.com>

        Cherry-pick usrsctp 264ce452885bfed73348ba6b6f63693bc2f52a6e commit
        https://bugs.webkit.org/show_bug.cgi?id=215378
        <rdar://problem/66788144>

        Reviewed by Eric Carlson.

        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:
        (sctp_handle_asconf):

2020-08-05  Tim Horton  <timothy_horton@apple.com>

        Remove all references to non-existent 10.16
        https://bugs.webkit.org/show_bug.cgi?id=215202

        Reviewed by Wenson Hsieh.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:
        * Configurations/WebKitTargetConditionals.xcconfig:
        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:

2020-08-03  Youenn Fablet  <youenn@apple.com>

        Remove libwebrtc protobuf copy
        https://bugs.webkit.org/show_bug.cgi?id=215076
        rdar://problem/66291604

        Reviewed by Eric Carlson.

        This is not used currently and contains code that is not up to date.

        * Source/third_party/protobuf: Removed.

2020-07-29  Jer Noble  <jer.noble@apple.com>

        Support HDR decode in SW VP9
        https://bugs.webkit.org/show_bug.cgi?id=214928

        Reviewed by Eric Carlson.

        Support converting I010 buffers (full-planar, 10-bit data packed into the LSB of a 16-bit int)
        into CVPixelBuffers (bi-planar, 10-bit data packed into the MSB of a 16-bit int). This requires
        using functions from libyuv to merge and scale 16-bit planar data, optimized for AVX2. To know
        that incoming buffers are 10-bit, and whether they're full-range, parse the 'vpcC' atom attached
        to the CMFormatDescription.

        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::MergeUVPlane_16):
        (webrtc::CopyPlane_16):
        (webrtc::CopyVideoFrameToPixelBuffer):
        (webrtc::pixelBufferFromFrame):
        * Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:
        (webrtc::createWebKitVP9Decoder):
        (webrtc::startVP9DecoderSession):
        (webrtc::WebKitVP9DecoderReceiver::createPixelBufferPoolForFormatDescription):
        (webrtc::WebKitVP9DecoderReceiver::Decoded):

2020-07-28  Youenn Fablet  <youenn@apple.com>

        Disable low latency code path for H264 constrained baseline
        https://bugs.webkit.org/show_bug.cgi?id=214830

        Reviewed by Eric Carlson.

        In case of baseline profile, use straight VTB encoder.
        In case of high profile, use low latency code path if enabled.
        In case of MacOS software code path, enable low latency code path as straight VTB encoder buffers frames.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 initWithCodecInfo:]):
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

2020-07-26  Michael Catanzaro  <mcatanzaro@gnome.org>

        libwebrtc uint64_t build fixes
        https://bugs.webkit.org/show_bug.cgi?id=214806

        Reviewed by Darin Adler.

        WebKitGTK currently fails to build with -DENABLE_EXPERIMENTAL_FEATURES=ON because a bunch of
        libwebrtc headers use integer typedefs without declaring them:

        * Source/webrtc/call/rtx_receive_stream.h:
        * Source/webrtc/common_video/h264/pps_parser.h:
        * Source/webrtc/common_video/h264/sps_parser.h:
        * Source/webrtc/modules/audio_processing/aec3/clockdrift_detector.h:
        * Source/webrtc/modules/include/module_common_types_public.h:
        * Source/webrtc/modules/video_coding/decoding_state.h:

2020-07-24  Youenn Fablet  <youenn@apple.com>

        Do not require hardware H264 encoder in case of HAVE_VTB_REQUIREDLOWLATENCY
        https://bugs.webkit.org/show_bug.cgi?id=214687

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

2020-07-24  Youenn Fablet  <youenn@apple.com>

        Remove assertions in RTCVideoEncoderH264 that are wrong in case of simulcast
        https://bugs.webkit.org/show_bug.cgi?id=214684

        Reviewed by Darin Adler.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
        In case of simulcast, the session expected width/height and samples width/height are not matching.
        This is expected and the session handles it properly.

2020-07-22  Conrad Shultz  <conrad_shultz@apple.com>

        Update macOS Version macros
        https://bugs.webkit.org/show_bug.cgi?id=214653

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:
        * Configurations/WebKitTargetConditionals.xcconfig:

2020-07-21  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix after r264685; copy headers to the correct path during a DEPLOYMENT_LOCATION build.

        * Configurations/libwebm.xcconfig:
        * libwebrtc.xcodeproj/project.pbxproj:

2020-07-21  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Add experimental MSE WebM parser
        https://bugs.webkit.org/show_bug.cgi?id=214529
        <rdar://problem/65782467>

        Reviewed by Eric Carlson.

        Add the vp9_header_parser from libwebrtc to the project, and add its
        symbols to the list of exported symbols. Because this header wants to
        be installed to a "common/vp9_header_parser.h" path, split up the default
        CopyHeadersInstallPhase into two separate CopyFiles build phases that
        put headers into different locations.

        * Configurations/libwebm.xcconfig:
        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/third_party/libwebm/common/vp9_header_parser.h:
        (vp9_parser::Vp9HeaderParser::color_range const):
        (vp9_parser::Vp9HeaderParser::subsampling_x const):
        (vp9_parser::Vp9HeaderParser::subsampling_y const):
        * libwebrtc.xcodeproj/project.pbxproj:

2020-07-21  Youenn Fablet  <youenn@apple.com>

        Resync filter_analyzer.cc up to upstream libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=214592
        <rdar://problem/65247051>

        Reviewed by Eric Carlson.

        * Source/webrtc/modules/audio_processing/aec3/filter_analyzer.cc:

2020-07-20  Youenn Fablet  <youenn@apple.com>

        Fix buggy assert in h265_vps_sps_pps_tracker.cc
        https://bugs.webkit.org/show_bug.cgi?id=214545

        Reviewed by Eric Carlson.

        * Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.cc:

2020-07-17  Jer Noble  <jer.noble@apple.com>

        Unreviwed build fix after r265592; rather than remove the dead code causing link errors
        instead link against CoreGraphics and UIKit for debug builds; revert the previous build
        fix as well.

        * Configurations/DebugRelease.xcconfig:
        * Source/webrtc/sdk/objc/api/video_frame_buffer/RTCNativeI420Buffer.mm:
        (-[RTCI420Buffer debugQuickLookObject]):

2020-07-16  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix after r264492; previously dead code in RTCNativeI420Buffer.mm was
        revivified after a project file fix which stopped setting NDEBUG for debug builds in
        libwebrc. Delete this undead code, which would have always caused build errors if it was
        ever compiled.

        * Source/webrtc/sdk/objc/api/video_frame_buffer/RTCNativeI420Buffer.mm:
        (-[RTCI420Buffer debugQuickLookObject]): Deleted.

2020-07-16  Jer Noble  <jer.noble@apple.com>

        Integrate libwebm into the libwebrtc project.
        https://bugs.webkit.org/show_bug.cgi?id=214410

        Reviewed by Eric Carlson.

        Add the libwebm and resulting static library target to libwebrtc.

        Drive-by fix: update the DebugRelease.xcconfig to set the correct DEBUG_DEFINES and GCC_OPTIMIZATION_LEVEL
        when building the Debug configuration.

        * Configurations/DebugRelease.xcconfig:
        * Configurations/libwebm.xcconfig: Added.
        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/third_party/libwebm/AUTHORS.TXT: Added.
        * Source/third_party/libwebm/Android.mk: Added.
        * Source/third_party/libwebm/CMakeLists.txt: Added.
        * Source/third_party/libwebm/LICENSE.TXT: Added.
        * Source/third_party/libwebm/Makefile.unix: Added.
        * Source/third_party/libwebm/PATENTS.TXT: Added.
        * Source/third_party/libwebm/README.libwebm: Added.
        * Source/third_party/libwebm/codereview.settings: Added.
        * Source/third_party/libwebm/common/common.sh: Added.
        * Source/third_party/libwebm/common/file_util.cc: Added.
        * Source/third_party/libwebm/common/file_util.h: Added.
        (libwebm::TempFileDeleter::TempFileDeleter):
        (libwebm::TempFileDeleter::name const):
        * Source/third_party/libwebm/common/hdr_util.cc: Added.
        * Source/third_party/libwebm/common/hdr_util.h: Added.
        (libwebm::Vp9CodecFeatures::Vp9CodecFeatures):
        (libwebm::Vp9CodecFeatures::~Vp9CodecFeatures):
        * Source/third_party/libwebm/common/indent.cc: Added.
        * Source/third_party/libwebm/common/indent.h: Added.
        (libwebm::Indent::indent_str const):
        * Source/third_party/libwebm/common/libwebm_util.cc: Added.
        * Source/third_party/libwebm/common/libwebm_util.h: Added.
        (libwebm::FILEDeleter::operator()):
        (libwebm::Range::Range):
        * Source/third_party/libwebm/common/video_frame.cc: Added.
        * Source/third_party/libwebm/common/video_frame.h: Added.
        (libwebm::VideoFrame::VideoFrame):
        (libwebm::VideoFrame::buffer const):
        (libwebm::VideoFrame::keyframe const):
        (libwebm::VideoFrame::nanosecond_pts const):
        (libwebm::VideoFrame::codec const):
        (libwebm::VideoFrame::set_nanosecond_pts):
        * Source/third_party/libwebm/common/vp9_header_parser.cc: Added.
        * Source/third_party/libwebm/common/vp9_header_parser.h: Added.
        (vp9_parser::Vp9HeaderParser::Vp9HeaderParser):
        (vp9_parser::Vp9HeaderParser::frame_size const):
        (vp9_parser::Vp9HeaderParser::profile const):
        (vp9_parser::Vp9HeaderParser::key const):
        (vp9_parser::Vp9HeaderParser::altref const):
        (vp9_parser::Vp9HeaderParser::error_resilient_mode const):
        (vp9_parser::Vp9HeaderParser::bit_depth const):
        (vp9_parser::Vp9HeaderParser::color_space const):
        (vp9_parser::Vp9HeaderParser::width const):
        (vp9_parser::Vp9HeaderParser::height const):
        (vp9_parser::Vp9HeaderParser::refresh_frame_flags const):
        (vp9_parser::Vp9HeaderParser::row_tiles const):
        (vp9_parser::Vp9HeaderParser::column_tiles const):
        (vp9_parser::Vp9HeaderParser::frame_parallel_mode const):
        * Source/third_party/libwebm/common/vp9_header_parser_tests.cc: Added.
        * Source/third_party/libwebm/common/vp9_level_stats.cc: Added.
        * Source/third_party/libwebm/common/vp9_level_stats.h: Added.
        (vp9_parser::Vp9LevelStats::Vp9LevelStats):
        (vp9_parser::Vp9LevelStats::set_duration):
        (vp9_parser::Vp9LevelStats::max_luma_sample_rate_grace_percent const):
        (vp9_parser::Vp9LevelStats::set_max_luma_sample_rate_grace_percent):
        (vp9_parser::Vp9LevelStats::estimate_last_frame_duration const):
        (vp9_parser::Vp9LevelStats::set_estimate_last_frame_duration):
        * Source/third_party/libwebm/common/vp9_level_stats_tests.cc: Added.
        * Source/third_party/libwebm/common/webm_constants.h: Added.
        * Source/third_party/libwebm/common/webm_endian.cc: Added.
        * Source/third_party/libwebm/common/webm_endian.h: Added.
        * Source/third_party/libwebm/common/webmids.h: Added.
        * Source/third_party/libwebm/dumpvtt.cc: Added.
        * Source/third_party/libwebm/hdr_util.hpp: Added.
        * Source/third_party/libwebm/iosbuild.sh: Added.
        * Source/third_party/libwebm/m2ts/tests/webm2pes_tests.cc: Added.
        * Source/third_party/libwebm/m2ts/vpxpes2ts.cc: Added.
        * Source/third_party/libwebm/m2ts/vpxpes2ts.h: Added.
        (libwebm::VpxPes2Ts::VpxPes2Ts):
        * Source/third_party/libwebm/m2ts/vpxpes2ts_main.cc: Added.
        * Source/third_party/libwebm/m2ts/vpxpes_parser.cc: Added.
        * Source/third_party/libwebm/m2ts/vpxpes_parser.h: Added.
        (libwebm::VpxPesParser::BcmvHeader::size):
        (libwebm::VpxPesParser::pes_file_size const):
        (libwebm::VpxPesParser::pes_file_data const):
        * Source/third_party/libwebm/m2ts/webm2pes.cc: Added.
        * Source/third_party/libwebm/m2ts/webm2pes.h: Added.
        (libwebm::PesHeaderField::PesHeaderField):
        (libwebm::PesHeaderField::Check const):
        (libwebm::PesOptionalHeader::size_in_bytes):
        (libwebm::BCMVHeader::BCMVHeader):
        (libwebm::BCMVHeader::size):
        (libwebm::PesHeader::size const):
        (libwebm::PacketReceiverInterface::~PacketReceiverInterface):
        (libwebm::Webm2Pes::Webm2Pes):
        (libwebm::Webm2Pes::bytes_written const):
        * Source/third_party/libwebm/m2ts/webm2pes_main.cc: Added.
        * Source/third_party/libwebm/mkvmuxer.hpp: Added.
        * Source/third_party/libwebm/mkvmuxer/mkvmuxer.cc: Added.
        * Source/third_party/libwebm/mkvmuxer/mkvmuxer.h: Added.
        (mkvmuxer::Frame::add_id const):
        (mkvmuxer::Frame::additional const):
        (mkvmuxer::Frame::additional_length const):
        (mkvmuxer::Frame::duration const):
        (mkvmuxer::Frame::duration_set const):
        (mkvmuxer::Frame::frame const):
        (mkvmuxer::Frame::set_is_key):
        (mkvmuxer::Frame::is_key const):
        (mkvmuxer::Frame::length const):
        (mkvmuxer::Frame::set_track_number):
        (mkvmuxer::Frame::track_number const):
        (mkvmuxer::Frame::set_timestamp):
        (mkvmuxer::Frame::timestamp const):
        (mkvmuxer::Frame::set_discard_padding):
        (mkvmuxer::Frame::discard_padding const):
        (mkvmuxer::Frame::reference_block_timestamp const):
        (mkvmuxer::Frame::reference_block_timestamp_set const):
        (mkvmuxer::CuePoint::set_time):
        (mkvmuxer::CuePoint::time const):
        (mkvmuxer::CuePoint::set_track):
        (mkvmuxer::CuePoint::track const):
        (mkvmuxer::CuePoint::set_cluster_pos):
        (mkvmuxer::CuePoint::cluster_pos const):
        (mkvmuxer::CuePoint::set_block_number):
        (mkvmuxer::CuePoint::block_number const):
        (mkvmuxer::CuePoint::set_output_block_number):
        (mkvmuxer::CuePoint::output_block_number const):
        (mkvmuxer::Cues::cue_entries_size const):
        (mkvmuxer::Cues::set_output_block_number):
        (mkvmuxer::Cues::output_block_number const):
        (mkvmuxer::ContentEncAESSettings::~ContentEncAESSettings):
        (mkvmuxer::ContentEncAESSettings::cipher_mode const):
        (mkvmuxer::ContentEncoding::enc_algo const):
        (mkvmuxer::ContentEncoding::encoding_order const):
        (mkvmuxer::ContentEncoding::encoding_scope const):
        (mkvmuxer::ContentEncoding::encoding_type const):
        (mkvmuxer::ContentEncoding::enc_aes_settings):
        (mkvmuxer::PrimaryChromaticity::PrimaryChromaticity):
        (mkvmuxer::PrimaryChromaticity::~PrimaryChromaticity):
        (mkvmuxer::PrimaryChromaticity::x const):
        (mkvmuxer::PrimaryChromaticity::set_x):
        (mkvmuxer::PrimaryChromaticity::y const):
        (mkvmuxer::PrimaryChromaticity::set_y):
        (mkvmuxer::MasteringMetadata::MasteringMetadata):
        (mkvmuxer::MasteringMetadata::~MasteringMetadata):
        (mkvmuxer::MasteringMetadata::r const):
        (mkvmuxer::MasteringMetadata::g const):
        (mkvmuxer::MasteringMetadata::b const):
        (mkvmuxer::MasteringMetadata::white_point const):
        (mkvmuxer::MasteringMetadata::luminance_max const):
        (mkvmuxer::MasteringMetadata::set_luminance_max):
        (mkvmuxer::MasteringMetadata::luminance_min const):
        (mkvmuxer::MasteringMetadata::set_luminance_min):
        (mkvmuxer::Colour::Colour):
        (mkvmuxer::Colour::~Colour):
        (mkvmuxer::Colour::mastering_metadata const):
        (mkvmuxer::Colour::matrix_coefficients const):
        (mkvmuxer::Colour::set_matrix_coefficients):
        (mkvmuxer::Colour::bits_per_channel const):
        (mkvmuxer::Colour::set_bits_per_channel):
        (mkvmuxer::Colour::chroma_subsampling_horz const):
        (mkvmuxer::Colour::set_chroma_subsampling_horz):
        (mkvmuxer::Colour::chroma_subsampling_vert const):
        (mkvmuxer::Colour::set_chroma_subsampling_vert):
        (mkvmuxer::Colour::cb_subsampling_horz const):
        (mkvmuxer::Colour::set_cb_subsampling_horz):
        (mkvmuxer::Colour::cb_subsampling_vert const):
        (mkvmuxer::Colour::set_cb_subsampling_vert):
        (mkvmuxer::Colour::chroma_siting_horz const):
        (mkvmuxer::Colour::set_chroma_siting_horz):
        (mkvmuxer::Colour::chroma_siting_vert const):
        (mkvmuxer::Colour::set_chroma_siting_vert):
        (mkvmuxer::Colour::range const):
        (mkvmuxer::Colour::set_range):
        (mkvmuxer::Colour::transfer_characteristics const):
        (mkvmuxer::Colour::set_transfer_characteristics):
        (mkvmuxer::Colour::primaries const):
        (mkvmuxer::Colour::set_primaries):
        (mkvmuxer::Colour::max_cll const):
        (mkvmuxer::Colour::set_max_cll):
        (mkvmuxer::Colour::max_fall const):
        (mkvmuxer::Colour::set_max_fall):
        (mkvmuxer::Projection::Projection):
        (mkvmuxer::Projection::~Projection):
        (mkvmuxer::Projection::type const):
        (mkvmuxer::Projection::set_type):
        (mkvmuxer::Projection::pose_yaw const):
        (mkvmuxer::Projection::set_pose_yaw):
        (mkvmuxer::Projection::pose_pitch const):
        (mkvmuxer::Projection::set_pose_pitch):
        (mkvmuxer::Projection::pose_roll const):
        (mkvmuxer::Projection::set_pose_roll):
        (mkvmuxer::Projection::private_data const):
        (mkvmuxer::Projection::private_data_length const):
        (mkvmuxer::Track::codec_id const):
        (mkvmuxer::Track::codec_private const):
        (mkvmuxer::Track::language const):
        (mkvmuxer::Track::set_max_block_additional_id):
        (mkvmuxer::Track::max_block_additional_id const):
        (mkvmuxer::Track::name const):
        (mkvmuxer::Track::set_number):
        (mkvmuxer::Track::number const):
        (mkvmuxer::Track::set_type):
        (mkvmuxer::Track::type const):
        (mkvmuxer::Track::set_uid):
        (mkvmuxer::Track::uid const):
        (mkvmuxer::Track::set_codec_delay):
        (mkvmuxer::Track::codec_delay const):
        (mkvmuxer::Track::set_seek_pre_roll):
        (mkvmuxer::Track::seek_pre_roll const):
        (mkvmuxer::Track::set_default_duration):
        (mkvmuxer::Track::default_duration const):
        (mkvmuxer::Track::codec_private_length const):
        (mkvmuxer::Track::content_encoding_entries_size const):
        (mkvmuxer::VideoTrack::set_display_height):
        (mkvmuxer::VideoTrack::display_height const):
        (mkvmuxer::VideoTrack::set_display_width):
        (mkvmuxer::VideoTrack::display_width const):
        (mkvmuxer::VideoTrack::set_pixel_height):
        (mkvmuxer::VideoTrack::pixel_height const):
        (mkvmuxer::VideoTrack::set_pixel_width):
        (mkvmuxer::VideoTrack::pixel_width const):
        (mkvmuxer::VideoTrack::set_crop_left):
        (mkvmuxer::VideoTrack::crop_left const):
        (mkvmuxer::VideoTrack::set_crop_right):
        (mkvmuxer::VideoTrack::crop_right const):
        (mkvmuxer::VideoTrack::set_crop_top):
        (mkvmuxer::VideoTrack::crop_top const):
        (mkvmuxer::VideoTrack::set_crop_bottom):
        (mkvmuxer::VideoTrack::crop_bottom const):
        (mkvmuxer::VideoTrack::set_frame_rate):
        (mkvmuxer::VideoTrack::frame_rate const):
        (mkvmuxer::VideoTrack::set_height):
        (mkvmuxer::VideoTrack::height const):
        (mkvmuxer::VideoTrack::stereo_mode):
        (mkvmuxer::VideoTrack::alpha_mode):
        (mkvmuxer::VideoTrack::set_width):
        (mkvmuxer::VideoTrack::width const):
        (mkvmuxer::VideoTrack::colour_space const):
        (mkvmuxer::VideoTrack::colour):
        (mkvmuxer::VideoTrack::projection):
        (mkvmuxer::AudioTrack::set_bit_depth):
        (mkvmuxer::AudioTrack::bit_depth const):
        (mkvmuxer::AudioTrack::set_channels):
        (mkvmuxer::AudioTrack::channels const):
        (mkvmuxer::AudioTrack::set_sample_rate):
        (mkvmuxer::AudioTrack::sample_rate const):
        (mkvmuxer::Tracks::track_entries_size const):
        (mkvmuxer::Chapter::set_uid):
        (mkvmuxer::Cluster::size_position const):
        (mkvmuxer::Cluster::blocks_added const):
        (mkvmuxer::Cluster::payload_size const):
        (mkvmuxer::Cluster::position_for_cues const):
        (mkvmuxer::Cluster::timecode const):
        (mkvmuxer::Cluster::timecode_scale const):
        (mkvmuxer::Cluster::set_write_last_frame_with_duration):
        (mkvmuxer::Cluster::write_last_frame_with_duration const):
        (mkvmuxer::SegmentInfo::set_duration):
        (mkvmuxer::SegmentInfo::duration const):
        (mkvmuxer::SegmentInfo::muxing_app const):
        (mkvmuxer::SegmentInfo::set_timecode_scale):
        (mkvmuxer::SegmentInfo::timecode_scale const):
        (mkvmuxer::SegmentInfo::writing_app const):
        (mkvmuxer::SegmentInfo::set_date_utc):
        (mkvmuxer::SegmentInfo::date_utc const):
        (mkvmuxer::Segment::GetCues):
        (mkvmuxer::Segment::GetSegmentInfo const):
        (mkvmuxer::Segment::GetSegmentInfo):
        (mkvmuxer::Segment::chunking const):
        (mkvmuxer::Segment::cues_track const):
        (mkvmuxer::Segment::set_max_cluster_duration):
        (mkvmuxer::Segment::max_cluster_duration const):
        (mkvmuxer::Segment::set_max_cluster_size):
        (mkvmuxer::Segment::max_cluster_size const):
        (mkvmuxer::Segment::set_mode):
        (mkvmuxer::Segment::mode const):
        (mkvmuxer::Segment::cues_position const):
        (mkvmuxer::Segment::output_cues const):
        (mkvmuxer::Segment::set_estimate_file_duration):
        (mkvmuxer::Segment::estimate_file_duration const):
        (mkvmuxer::Segment::segment_info const):
        (mkvmuxer::Segment::set_duration):
        (mkvmuxer::Segment::duration const):
        * Source/third_party/libwebm/mkvmuxer/mkvmuxertypes.h: Added.
        * Source/third_party/libwebm/mkvmuxer/mkvmuxerutil.cc: Added.
        * Source/third_party/libwebm/mkvmuxer/mkvmuxerutil.h: Added.
        * Source/third_party/libwebm/mkvmuxer/mkvwriter.cc: Added.
        * Source/third_party/libwebm/mkvmuxer/mkvwriter.h: Added.
        * Source/third_party/libwebm/mkvmuxer_sample.cc: Added.
        * Source/third_party/libwebm/mkvmuxertypes.hpp: Added.
        * Source/third_party/libwebm/mkvmuxerutil.hpp: Added.
        * Source/third_party/libwebm/mkvparser.hpp: Added.
        * Source/third_party/libwebm/mkvparser/mkvparser.cc: Added.
        * Source/third_party/libwebm/mkvparser/mkvparser.h: Added.
        (mkvparser::IMkvReader::~IMkvReader):
        (mkvparser::BlockEntry::EOS const):
        (mkvparser::ContentEncoding::ContentEncAESSettings::ContentEncAESSettings):
        (mkvparser::ContentEncoding::ContentEncAESSettings::~ContentEncAESSettings):
        (mkvparser::ContentEncoding::encoding_order const):
        (mkvparser::ContentEncoding::encoding_scope const):
        (mkvparser::ContentEncoding::encoding_type const):
        (mkvparser::PrimaryChromaticity::PrimaryChromaticity):
        (mkvparser::PrimaryChromaticity::~PrimaryChromaticity):
        (mkvparser::MasteringMetadata::MasteringMetadata):
        (mkvparser::MasteringMetadata::~MasteringMetadata):
        (mkvparser::Colour::Colour):
        (mkvparser::Colour::~Colour):
        (mkvparser::Projection::Projection):
        (mkvparser::Projection::~Projection):
        (mkvparser::VideoTrack::GetColourSpace const):
        (mkvparser::Segment::LoadCluster):
        * Source/third_party/libwebm/mkvparser/mkvreader.cc: Added.
        * Source/third_party/libwebm/mkvparser/mkvreader.h: Added.
        * Source/third_party/libwebm/mkvparser_sample.cc: Added.
        * Source/third_party/libwebm/mkvreader.hpp: Added.
        * Source/third_party/libwebm/mkvwriter.hpp: Added.
        * Source/third_party/libwebm/sample_muxer_metadata.cc: Added.
        * Source/third_party/libwebm/sample_muxer_metadata.h: Added.
        (SampleMuxerMetadata::SortableCue::operator> const):
        (SampleMuxerMetadata::SortableCue::operator< const):
        * Source/third_party/libwebm/testing/mkvmuxer_tests.cc: Added.
        * Source/third_party/libwebm/testing/mkvparser_tests.cc: Added.
        * Source/third_party/libwebm/testing/test_util.cc: Added.
        * Source/third_party/libwebm/testing/test_util.h: Added.
        * Source/third_party/libwebm/testing/testdata/accurate_cluster_duration.webm: Added.
        * Source/third_party/libwebm/testing/testdata/accurate_cluster_duration_last_frame.webm: Added.
        * Source/third_party/libwebm/testing/testdata/accurate_cluster_duration_two_tracks.webm: Added.
        * Source/third_party/libwebm/testing/testdata/bbb_480p_vp9_opus_1second.webm: Added.
        * Source/third_party/libwebm/testing/testdata/block_with_additional.webm: Added.
        * Source/third_party/libwebm/testing/testdata/chapters.webm: Added.
        * Source/third_party/libwebm/testing/testdata/colour.webm: Added.
        * Source/third_party/libwebm/testing/testdata/cues_before_clusters.webm: Added.
        * Source/third_party/libwebm/testing/testdata/discard_padding.webm: Added.
        * Source/third_party/libwebm/testing/testdata/estimate_duration.webm: Added.
        * Source/third_party/libwebm/testing/testdata/fixed_size_cluster_timecode.webm: Added.
        * Source/third_party/libwebm/testing/testdata/force_new_cluster.webm: Added.
        * Source/third_party/libwebm/testing/testdata/invalid/README.libwebm: Added.
        * Source/third_party/libwebm/testing/testdata/invalid/block_ends_beyond_cluster.mkv: Added.
        * Source/third_party/libwebm/testing/testdata/invalid/blockgroup_block_ends_beyond_blockgroup.mkv: Added.
        * Source/third_party/libwebm/testing/testdata/invalid/chapters_truncated_chapter_string.mkv: Added.
        * Source/third_party/libwebm/testing/testdata/invalid/chapters_truncated_chapter_string_2.mkv: Added.
        * Source/third_party/libwebm/testing/testdata/invalid/fixed_lacing_bad_lace_size.mkv: Added.
        * Source/third_party/libwebm/testing/testdata/invalid/invalid_vp9_bitstream-bug_1416.webm: Added.
        * Source/third_party/libwebm/testing/testdata/invalid/invalid_vp9_bitstream-bug_1417.webm: Added.
        * Source/third_party/libwebm/testing/testdata/invalid/primarychromaticity_fieldtoolarge.webm: Added.
        * Source/third_party/libwebm/testing/testdata/invalid/projection_float_overflow.webm: Added.
        * Source/third_party/libwebm/testing/testdata/long_tag_string.webm: Added.
        * Source/third_party/libwebm/testing/testdata/matroska_doctype.mkv: Added.
        * Source/third_party/libwebm/testing/testdata/max_cluster_duration.webm: Added.
        * Source/third_party/libwebm/testing/testdata/max_cluster_size.webm: Added.
        * Source/third_party/libwebm/testing/testdata/metadata_block.webm: Added.
        * Source/third_party/libwebm/testing/testdata/output_cues.webm: Added.
        * Source/third_party/libwebm/testing/testdata/projection.webm: Added.
        * Source/third_party/libwebm/testing/testdata/segment_duration.webm: Added.
        * Source/third_party/libwebm/testing/testdata/segment_info.webm: Added.
        * Source/third_party/libwebm/testing/testdata/set_cues_track_number.webm: Added.
        * Source/third_party/libwebm/testing/testdata/set_pixelwidth_pixelheight.webm: Added.
        * Source/third_party/libwebm/testing/testdata/set_segment_duration.webm: Added.
        * Source/third_party/libwebm/testing/testdata/simple_block.webm: Added.
        * Source/third_party/libwebm/testing/testdata/test_stereo_left_right.webm: Added.
        * Source/third_party/libwebm/testing/testdata/tracks.webm: Added.
        * Source/third_party/libwebm/testing/testdata/webm_doctype.webm: Added.
        * Source/third_party/libwebm/testing/video_frame_tests.cc: Added.
        * Source/third_party/libwebm/vttdemux.cc: Added.
        * Source/third_party/libwebm/vttreader.h: Added.
        * Source/third_party/libwebm/webm_info.cc: Added.
        * Source/third_party/libwebm/webm_parser/README.md: Added.
        * Source/third_party/libwebm/webm_parser/demo/demo.cc: Added.
        * Source/third_party/libwebm/webm_parser/doxygen.config: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/00805c2543756a5fd85652d03bfbbd2eb6192ca5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/00d120eb143bb02c48d7c863e5826d2ad1a6da4b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/018dee8285e9e20ca3996bb2dc0284b5c57ba75a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/020edb59637c1e6439f19aa3a5a9d50c3377dbe9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0247ce2b1a71752a3af11e1065ca90afa0df9d30: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/028b19f7d79f5da7a2af13a0c1e2d13f7eaf24cd: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/029ab55b16df41881f8de2351205201da334550a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/029be5e90913b19cf5890559cf3f98aa909f0a84: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/02fb96539b84bbd12de84ff05cbc9dc3faa96b7e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0349f5632d21faa36b85520ad0b524d561f5e13f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/036fc9daf7fb1b4274dd668cfd883248ebbad967: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/037a4edc18e475ec81081e47277cbf51f1316680: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0481dad9a7d0e6fab0c703bba9b3268db96c6793: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/04dc2407e7142f5618aa5105377925b0b0ed544b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/04fa2f34ff4a4406d136e5aaba5debe7d8129a06: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/054fd0041ad81cfad0a85e3c59195485492a4493: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/056b83ab2457979ea021e7118ab847eba265df15: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/058326151c1d4a490964d495d35adcf15178030f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/05847b5be0eb200d6a6b340c939c7a654b55003e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/05b600ae9a9072ac2865247e69ed0736a0c58316: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/05cf976698b55df1fcd03bc07446bb9283dad9d7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/05d4dfda5e264fffda243f2991a86e96141f579a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/061217fc0b6af0ec3851d9728e03ed9b30c702d5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/077b53a7163e51c48e8cdaf4209bb837823ffba9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/07c3ade9713892bb75db2d93b48ef40b262a54e6: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/07eaf3c7437032f60c905f6f8e3dfc193491b602: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/07f67b922b503354b2aebcdcc4ab7b6d3150b048: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/08af8d91bb21835c50330e997d973cac8ff67766: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0a18f05bb16402756202160225aec9c5a654f1ae: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0b60823983971ee17a2590678f0fc0762c21bb73: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0bae7f0976af0f75974047b5f2cf4c9645412066: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0c1862b4065eefab2535ecc6951295e38069a82e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0c2f51d5ffc69e69680bf3d6edb91d76c353ad14: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0c3af72d69f18103383c9cd41a7f2676a9d28a40: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0c43df7fc9d06187249187583c3c082520701289: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0cadf5ecf58a394560a1f6db72a2e21264445d13: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0cd91a4e7bec912beb3b47a685b89d5be24d0046: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0d0da60f91f9489af113d8484d9b6871622523d5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0d30a4f88e53de1ce4bf1ec724016f2f4c11bc9b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0d6b3b1d024e7aa73fbc58b157ab53df048a2f2c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0d94310cfd8a9acdbc7fb82ad9c73cdf3f64f926: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/0f5741483be8f4f6eddcb70ea418fb0c08da9443: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/109e125f729f84d69c3e3a614123547a094534ad: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/10d257a4a314e20644fbc469cdebafe16c7f46a8: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/10d951f88995a2176878501a2633b9bb4822ff96: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/111b8f8318a269bbe0f7d9f1cebfdc1cb43c982b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/11c122ce1f7d993f809a4eb5db17c738f279a707: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/11e288617056809208561f2a9112fd0664d378d2: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/124fde9cfe7157773d8febcbb0829914bf4d17d3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1386cc740c80ede6dfea5f3bb1d4fe1501ab5e91: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/13dd373ccb0c534402c6f7c4a0bdd723a26bc2c1: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/13fc3d2b32d789c84be6349bb585c308289b4c3e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/148357130d1e5ac4059ad2bb6c63d78e2523f7d2: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/15366a3aafe2590c2e3183c088dde4cc100cb956: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/15feeb939fa90b25f57622a0abd9155ca88ad08b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/16282b78a2018eb78544316554a92fe1003859e3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1717628a6d6ea868febec5fb196edcf4b9eb284d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/17921b1e28600e7e3faf67fc68b397ecab4e2a52: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/17b8276355dd2368647b7756431820f5275cc3e2: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/17d0aece97973ab23a467486b177ea9722e1b90b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/17e80cf8c247d17acad56c88750da34893fcb4fd: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/18040e106688eb1d54323927a403439ecfde6626: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1813261b3141faa01431c82e06292485516d3327: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/184ee2343d4b9f62c69383692829fd852ad8855d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/186035a2f5c09ccd6b7d15de46f8561c98d8897d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/186292900ad9d43881b71765158c32d78d80c8f3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/18fd762b91406d37b85a7b342a91434a15f17290: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/19334eee05eeb18c549498e7ca2e792a2a4e04f3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1a9a5df35779dd6e9e1de171b9bb0d316d2b64a5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1ab3d30f60743c2a1d3043773aae3a04f83c07c0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1ad84ed46f3fda305150bac93958a5a390e23a67: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1b40a997150aa03c23ecc6efe445a2d7c3dd8368: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1b6b3bab9032cd420f350b6bb252942484f6b527: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1b7765cb05c94581461ffcd38d38b7b272d8e9d6: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1b89e3fe0cbd4c2291a74bf21969a9d9d851cbf1: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1b95d4da08fe949a60f63cd59213d42d30dbd381: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1bac1200e05bb3269d019903241791c917a12bd0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1bb8f5f81b7f6c1d58e1f7bb13fa561fe1a146bc: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1c56068c6dd17e9a824db6da78d64f933267a8c0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1c8db8b9d88dd3483b6f81e4224c4f985046e6ac: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1d29a77924602a79c0f546535a885f59cbbbc405: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1d75a65733da627e5c401625bff522eadf098315: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1df9507cc2a54a369646d6d34d846d3fcc172479: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/1e7a571be5aa542c3dfec1223d2e089a3075ce1f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/20a6b040258fbfa09bb37c6fc07106b2e43bada7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/20e8ca854d3c0c375dc943142a04ee2260f0d1fd: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/212ee7d21a8cb25249644cab4f959db111f3a3c0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/224ce7b415f7950118880fce0594734aef489fec: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/226e70c1beddace83862791a6555c80475640bd0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/233d53e3eb21b6ea6feebd6e59e3ef888a840f49: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/237f7aee90f206d3a6b138cc908b8921b544e190: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/23e1ac0f77f1283cf6e9fa044df3ec51bff27fd4: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/23fcee6c71a8f5a22447df688724c0250fb77a70: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2459eb855d8c6ebac13cb74d996565d78130f4dd: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/259188e5fb0c09046df96f6d565c59e0d146f198: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/26f07f8e28e7521ed282fe5c3938c1ae225816b9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/276425d65d58453d03a3444c9f6662d08d449af7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/27d62874ec87a2552e7c842da65de113aa69f7aa: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/281b259280ada5d07b07a22cbe9a78c7b0fba94b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/299ed12b98673c6c4adbcf886cb70db8adde6aa1: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2a40feb7480d0b31c36d5626761e948d0ae52792: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2a6d7e2b829ed28307b551eda0d96f1834bff899: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2a8dda90aa286175b5c683b57fae1dc7e6ac1e7e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2a9588e6fab82016b545462cff2ed014c0345551: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2b1d57a8e8fa7164c9ba00957c9486010754560c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2b475d1a8f2fe4fbba92e1424f0ea96d95b12fb7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2bb80c6d0e2eadd73018eb2a8cae37d41602ee79: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2c1389f882e256e260e37e8a67af7e32d0f4e0fc: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2c1f94c76e4eec607cce5311323620f349912e73: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2c962c7fbceaacf8247ac9b70c8eeb1f814e435b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2c9aaabacf3a3b48dec4a85767cc5d38a1736aff: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2cf086299f983d0afc7f95c5e0c86b657448af33: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2d0d96b95e9a3316d1ff0ef019ada509bbde4c9d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2d414d5dfd20055393df3208009840da9cfabca9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2df967edcc00ac5c8e00037f1a43680600af5cba: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2e6b09f1eca05ce2bba920fb78f9bca2a883fda0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2e8bde3549723e13849b604f4deedd51c71dfef5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/2f6e92a71918d01c16762d5ca59b328f1341d326: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/306e2cf9aebe012cb0769b1b2a6ea68af2e8ed44: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/30f7348d35de0c47d2044736cb115972b800569d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/310798b8d94a3a2fe649a4c871458b4d74fdcf32: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/31ea606a9859bb29d7f98162d254348021e0d932: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3230fc31ab8d408c484aa28bbe36431f71101243: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/328b7c92996e480d1f11efe847c3be4b5dc0f8eb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/32e58bb3d00863115f33707e0c8af722036676fd: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/32fc8547b6145c502d98e5e0c296ebd05badfdb9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/334cddba889265a1263feb77a2afdc454ca54f5e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/33c9f9990890d2baf0c30d74b34b486082782413: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/341f3e8689e57eeab4234fcdd6d2b8f800b9ab34: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3457e356eac79bf1c30b59940532d360dba2c1a9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/351185a29bdbc7bf0d584479001fb47c32c61e5b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/35ae0d43c6bfc5f4b45f16877157832fddafce77: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/35b2f81c573b15304cb9b13f00008b460da78942: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/35d9256a4d7ef3ee54384616178af3a8092d0981: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/36352efd680a747f0f2c93d760559d69399a4102: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3685ffbcfe28b166ced0a783b012a446f9cfea46: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/36def8b2661197d594756f116a750822ae1d65d5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/371950308853fb3b1b3a940c0598bfdfeb1d0f9c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3765e9174971dbac9cfeb7e485ca61dc4941f7a9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/37cae036ce7ff5d0671f32d3757579f248609c9c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/38460ea06ee847ff3d5733415c299b44b0866e58: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3865de2fec3f353513d86b28e43bf936d4707f97: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3867b18060c307e0d04e0098f195d699e4b3294f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/391920720c3609b7c1f7b51162ce3ec99329a0b4: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/395027454c7d5babff9544414c04a39d712eed1c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3a258c9ed48e634ed8d495f07caf21dbc6978205: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3a397485197e6b99c77158132eaf211389615fe5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3a66b34706b686fe0fa8ca8f10c829758b2ebb07: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3ba666ad891fa8009dfc961aa3c215bbfd2d81d2: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3ba9769c7c23cc3c80542ad123a371cf4f69e858: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3beb4432302433e303a9ccaf34637dd3a910028e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3c6cdebc450d20a58150a9c71335b45a6a5ee0e5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3c867362eb6a20f573a890db87749fce3c719d14: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3cd69ddcd34bd874e3abade696f95c949c17198d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3de495ebac4b80064b79844f3a9453270caec251: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3e04542bcc462ded0025b53371f709d8fcd25c21: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3e94196e55a9214083bda470772d71aedc17eb5f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3ec4ac00bb967a335b5caae0ae51488f2fda6583: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3eec38c0ac3a96856d3210a0357857e70b07a9cb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3ef82ba46238fa46b89148a230d23e741ba5f1da: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3fbd43f81888ca60e5bfe49b47e23cb115d5cd7d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3fe56e5b06653e8a37c99da190ff8d44d14bfc06: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/3febffec3be8b1f4bcb76a01c1d713600d8e4adb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/43380e5a9dd29ca847e9b5bfba12a0a95d94d0da: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/435d3ff6ddc43ac582e740ead969397fd2bfc7f5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/448120a37132488f48ab6c46a146c995948958cc: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/46db501d3e9a8808118333740a22bf9c808af239: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/47a2ca2b47aa1993cb655b77a0273ff139dd2280: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/490576c8f6c235e1ed921c4932bac028070c806a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4930b86bf0dfb02836b0319d21aa4a63a8dd894d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/49667ff0b09901223117e74d2506bc37a5ae1580: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/49906adf7313330e29be20d51fb36e9bdf1939c3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/49c0e3eed81c1827e755c70c9c6d9606e7f54b22: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4a3e77f5bc061fc8121ef7ebd2b8e3ebb0bdd609: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4a454e01ef09b175f3864b654cfc1104a850e871: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4acd9df9a7ee34e48c6c80777159b089f417a69a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4af5564129d7b4c9c4736a3e511926c29348a4a4: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4b3957bcbe5975399e34485cf0e5229169ab67b9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4c9e40aa8a439a500f073cf5a1e060a16ad12a6f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4cb5ff0e26f5bd0bb1fca846b4843db69095f18b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4ce80549344cf5b0432e39e7b5382407f0763e8c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4d10ae0032f04fa01148a54fae6838c44e4bb5bd: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4db2ded939a16fb1907dc2bad7acf67a64e38c0c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4dc3a9a9477fb452ba7a4026bbc01d4cdd3d4990: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4e1fb006a2268fa5fc70ca6b241bbc71faa6d7ff: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4e871bbc5089f9550533641ddf6850f8722dfc36: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4eeb4507868732d3705d1ab10f6a31f70f579556: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/4f21f3584c99e97453ebe513ed44c86530fbebba: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5103160695cd56d281faa45d9267013488cc7bde: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/521103054e395afd0f9612b47c71cfa0e62151b9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/523511e33c8788ebb1b703d7c5ad12b5da03964e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/525aedb7462311393cd01939e4734d01db48535b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/53809012a8d5cfee839c3d0961b7fdc9468329a7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/53c01d820d125e57b28410ca5b3a9c72c18d4102: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/53c27071f53df6b8d2e5c419edf95b7792b278e7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/53d5307f2e7852b183839fe93c20647004d151ec: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5466c59c9c0eff34800e19cc92faf07469865ea9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/54bf8d6f1f846243b6f4de81605779b0acb78406: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/54fd1711209fb1c0781092374132c66e79e2241b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5506797514c0b214f5faa9764a9e149cd1df9d28: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5566c6d599866f5e523c54e6575d7b9e557a2539: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/55c3d55780427eb00bde252348db1c2ede22526c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5600abaefe804c50a353bbfdd0f9e10ffc102f81: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5611ddd40488973ee6c64c45ad57d6eefe6da100: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/56b0ddd4e44492b45ebb7e9438b0a5556c244bfb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5729395b452092152b06fbb8976e9bf1fda06439: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/57cce6fac7c0992eb338e0e538d3e0ee3fe7f1cd: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5822672f068da89546838004ae59552e12e132f7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/59ce13e9a22e88dac879841256ff66f02cd2f8cc: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5a020527fc80b0de64e279fc44635687e014a9cf: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5a645b30948850f8efb7bdd11944bdf3112c7bfe: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5b2f727461cde3c02ffdfb300adb0b4a09734911: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5b5531d859ab5bbb034345bbaa2852e9d8a1e1ef: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5b980cb94e35769ec92a140ca00d34977e7da5ec: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5bfec2fe795176646fa0babecf97c04045bd4814: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5c28d94242e9a5ba7e7324e59e5dd12f3e31e51c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5c67728ab04ba3dfe4b2636cf609f9617c4a5974: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5cd36053e269c97f5359b0a075d80bf1e23b5f47: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5d6f99c2afbf68a1b15a17e07945c11db8579e5f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5dd149b1b8509f456c16c4ac6dac3c7d6aa217ed: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5e84011c6b092e9f0d6ba60f12fc0fae95a622ca: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/5f56766993de2b8c2db87116090af546e1add3b0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/60571c8be9bee3b13428613df66ff36cf54309ec: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/60ac245f262ee1ff177d351a4fe246060fb4538b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6120aafb0db1715400e47d0a61fb9f6d8665a736: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/61953a8f7a9f0613020d297a6d350abeeaf6e58c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/61c0a7fef46c0c1b081b1c2b40835805e5989b54: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/620d85870206e88db0bc3ee978c24c0bbc1821ba: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/621131d8e28a67a6b4fb03c611f4375873d69678: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/624cbd42e3ebf35a3a0ba55b3b4969b99054f84d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6290103200631075988aa3566d8d8922599f8b6d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/62a329f65143f1571dc4a2fbb256800c8ce4d89f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/62f8a53cfb4dd625dcb31ee2ba258db3916a3bd0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6318dc574b3ad7291fee7e01bfeaa674eb0feb48: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6457a079debb9b532255e3e6ddf276b29808b49d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/646061a4526506a0b3c62629f4f77b6072c8f9c3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6538d0517865c8832ee9bec87609b7bd4facb025: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/653de28e2f085334e30ec1c964540b432a3cfbc6: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/657c9c42bf3e1c79a6dcb9071bf123367dc37734: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/65ebba0df08a5484686905e99631a4ead845c08b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/66dd27c22fe09842ac4c4f51fdef4bea500b6a70: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/66e25df2bd43c840337a49e0cb5b386e9d290d80: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6714df1ac1c54d4c30add212454e9513c6880767: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/68a6f9c2f62e9f57667de9563b5d612ec2f2c829: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/69089b76cc62fe00615702bdd1f339e259194d42: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/69d8622d24c7315f344c424297986170f7ef2243: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6a700d958cb3a7565d5a6b74540486874d52b4c7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6a852150c5c2a12d325e78056687a8ea97b25fe7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6ac8c9f754d5ff3c0cd3f3f585de99dd73944bbe: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6ace27a48f12990e2169cc099007aa5fa11962d2: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6b10397dc3bff2ccf57be4fe3ff9d8d1acb8c76e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6c3f1d96c06b853551f685dde821142928f55acf: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6c8de4d4bbb5294154c3b140d43836757b9f08ac: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6cf122ee328af5cf6f18d5f9546b0fe761951b8d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6cfbbc25caa217e22fd7ca3e92d2051c5f661bdb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6d703bc900e74d1a576bebcccb63e3b2701ae86d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6e1afa81dfcd6833705d84b45881f085c19b2211: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6e244ec3b81e0d2f8b5810854859e1b8140422d9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6e323b4c733df90d55c754e099fb5a13bd9701cb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6e36720f3f55dc0cd5d585c6770572964719b5b8: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6e8384ab115ac92bb7787121cfb03582e2d72585: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6ebf8b74dca1657f5f7ffadeccd629984473dcb4: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6ec18dcca0d820fff04c03c3a1bce37dd8ada41d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6eceebb8f46545393d217ab0111ff7dd29bc99f7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6ee071f654fd6b7b25725a8bdd880bb6836e8c81: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6f1088b3d1f4cdfbc37d9b8cfc1ff4c3bde2f205: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6f79e36e880664c9b3b610140d2485fb6a6e5039: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/6fbea59066b2b97fa45259aa87c40c4310070019: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7056b9c294f0cff7b4ace611a19363b2fc096bb3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7073dca40b911fb22f738c99aff43a10ae6c4db5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7164d8ca3f4c3d621cc5eed7b59e3495e7b017a0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/71e3e01b3cfcd4228402cbf19b5282c965f042df: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/720d36ea7f9616b1a1d47fa5b746e8657b5f973f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/72ccbcbc53c7fa54247a81bd1d0e62dd0779494b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/736c0460f94c089c9e270857a4222a21ffd9e13f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/745e32f46833c075c8e68552e0fbbcdd5ec52641: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/74aa7256477af2c0e2511df16376dee323f3ccb6: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7528086eea404dccc3ee5b214befbc2a95676feb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7528f9f08f80c8e85951aa1db2dc616e992c1a62: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/75af94f9695c375e5eb620849f0213ad41e8f205: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/75e1ff2e016b7b80ecb7a6a1f4c3238a2a2ed130: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/76129c3bdedafb3bda93f53266bd17bffdc30682: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7670db89e0c3fe492c91458de219c3be34a3dcb7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7673d7fdf630637c6ae2b96694a047044c1a9cb0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/76903905e654ddc59acf57380bf3dc1ea136bad9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/76d36e3cf3d31e0f76af08bd7ba5571f679057a1: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/775ce646f7dbf50199b8e8df85c9441b8a0a5447: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7770a6fd33ce821e60c78b0cb67a7e8c8bb74269: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/781b24e3433ba400df3ccddf56cb8fc7b1fd52ce: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/784db9d87b31ffb040ad212e4018b30c3535ad18: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7880e2ae55d255065ad415c4c625e1b63bfd2a93: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/78cb3d726e4f9e8bc89b399fa514c3b600bf8e5a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/79ba60931988a5974328a73fe091bdf6f5992891: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/79cdb8dec1ad07b389f544a511f89b347429837e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7ab8c6a65c39907f4afa4e2b294303aebb6b22d8: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7b12a398a1860ac2f3930d5020e422aec061f177: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7bf1682743405f3d5b3433830eadae4ea311807d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7c7ef0e305f37f833708b375271d59300d120d84: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7d06bd4a7de57953ef09c2e18ca67aa7ff367c76: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7d31bd53bb7eb7b1f354c5f85d376390760ab16f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7d67ef4d0c681655d4b4e93e848d56865630390b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7db9fe869081fdc855913dd000de0d493f5d5192: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7f20c1e73451c3321c30223db91b891753ef77dd: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/7fd4d999983c3fbf22763853e90ec10b03c70b17: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/80039ce7eff40359bee041d75e371b55117aad3a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8104a007bc88a0a8d81ce1fd26d8b2333061e920: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/81320c48ed6eea94712c5e8594c0799fbfe30d10: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/81425ca3d0afb88cc10d412dcc9795905eacd6d9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/819b4bd08ae7d758990aea8ab9739f3cb97fd42c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8206d92b710c04ce0bd706cec25fbb72014c79bf: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/822926c528d16c0a9ca4c48a25651f6a0730d797: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/82d80b6051f0750777bdc37319851741144b3671: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/830c73748baaa10c2016d04b408a7f481882cd89: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8315ca46618bd0771353336407396df293e8c182: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/831c152337e8b2993b8cddfde7553a8c9e64631f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/832fad0e723027e5bd74726b1722a838183dada7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/83b78d2ad8afd0729de45b4d9fdd765a949d8073: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/84a04bf3e15345f5c992bc6732a42b95857631a7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/84d3a72c434074ee0d810fb2357047efd23f58f6: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8659fe309298ca90f201ac7ced95b9d0de510eeb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/866cf21064b9e20eded44e2e096fd9ce6185ce86: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8864c6c9319ef120d3accb7b70c32c8f5c1ebccb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/88f01cffe9972bf447a21034c45f6b943ea3ec07: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/88f15d430469d209b72cd098405efd15a6d18b05: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8936b35f29084151fa3755d81030386940523c07: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/89a42d72ffe0b23309a9da4e15b8854c1cf939ea: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8a0cf07d2592231bd579e4399538d9f490e3e5b9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8a5d1c05f894414aa5aaa66cf901c52dfcb119a1: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8aa514b6e6fef8d045aa049fdb52fa8adcf722d4: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8b0dcd4400fe19cf6a268af780990f47dba08189: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8c4655e6528071edd445715ff1559f399dc9d47c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8c695cbcc43e37ce25194c4b61b3d87488b308a1: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8c9dc3c5a839f90f29256ef8c8f1369bc7383817: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8cdcf83eb89d7e5c87cfa1b8811c95f738747a6a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8d0c6e6b3d74233685c3a2c1793d1a7b0ae2e34d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8d444e8b311d158f854a03ca35d2c7865cd2c46b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8dc289730cc03ecbbed57d04cdca538a4fd08059: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8dc58cfcb396a60db921901f1b0807c4f4f37619: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8e05be75b7c14c463af277559dc8ea7841a733c8: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8e7eef00a7a6719e77544b57d1d98ff83a37e55a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8ed6ef9af5555ce4ff12b23139add9621e7ad930: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8f39f83b71d49805a451f81a5a451f5f3d74927d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8f403efbef079f1775b63bcf1061983e4c5d2162: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/8f8f956eaaf8f7f5e65002be888b946218f0f7ce: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/90a03241b5cc656b7c2a4ef55664b0320fa3bd43: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/925a91e7c25a43d9da8b63eba51ed66a52d833aa: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/92de5c217802ec24886240188dca293325eb17c9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/939da66e1fc8bb9854865066ee47b6ac4b933aa9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/93a91331e7c3c060f461ae1f22e2bbf4747ffe33: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/94f6dfc499cbf2e84ffe1d69cb751ada9f2f2e3a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/9539fef8ffb9f7c542061f1af1f3f98e9a714cc3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/953c9a616ea56067225c88fccc6423496f2501a6: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/95a60268c555a77c1010d75bb44142af47635486: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/95e410025b965cf6ab2e8e2d3559efbe71c1a972: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/9671f253d1eb7cd504a5617058ce4c01a80c897e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/9698d3424f1581a6bbb66c764f14c95a74b87675: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/96f7f38de1f8601311733984cf51cec35500dabe: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/970ab6333aa5ccf8c2dc14bb56814f7bb4303b94: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/98978113d2116dc4bdbb10265fa32bd95230bdb6: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/989e2872d2a34de543f23c5061db68212d8258f7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/98ca9a00ad571c4454fce709d5405e5aca2a363c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/9965361765a4151902ec04fb21d9247b3a5ed10d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/99d6fe94a50faa50db9d7eb38d74bc3cc8417dc1: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/9a6869cec3dc84f2051bfaf0ee0d3552aa221f89: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/9cc1f26de1e3a7df8c7c03b95ff73ce9709c85f1: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/9cc5b552abbd551485135fa87eab739a0a784057: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/9cca361865a4fbff75abdbb79c1e91706780576c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/9d8e99f07604d6cb05ef613d41cbfb93b2aff787: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/9ecd61eaf2681a882473247a603b9f30c2663d49: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/9f0a3b7c0814b4f80c0745161c8769f63098981b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/9f711c29ccf3f54d44000d7ef6299585674be288: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/9fae60819c28d4fcc88a6a1b93dcf69b4e458203: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a02431cf7c501a5b368c91e41283419d8fa9fb03: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a0ac6c3c83817637bbbcb11a5106c57aa6654afb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a15fdfa620d19a92d9eaa9f3f13010e53f902796: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a18e76ae792a054c2f6d0d01e0e78d58678b35e3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a19d04f18f574e561d793ac0dfcffe2b38183eb1: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a26fb85be3d2bb8a2360bb4d9533a1651bd12d99: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a2e860fae30005a9e75b61f54f3d019c44090fcc: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a3071bfcb7b2fd3c4286ea42e1f7940754b55697: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a4ac408fb9d6def070ad3a76312ca092863048e5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a4fafc117cbfde8c240deccc8997c7966d9109ba: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a59ffb5f6122e45136352585d3b53294a71346d0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a5b3a3c48727c26dfd625f247069d2cdbfa031f0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a5c829fbcd9fd760bc55bc8ab6901b8d401b65f6: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a5fbbce038cad4f5e0c0f97fa69ebc3601123e5c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a6e57b33e7a219168280e51bc98a44de40f0f9ca: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a78afe9e4e9f02a10ebadac64171ad49749a6965: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a823a019c0b19c97a1d35722cd843109ab016c17: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a8468104c65a6002fd3a9d4ac39f3ee34c21ce4a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a899424027f1d69a05384355858311a6fa3940a3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/a8a5de5a86a16952aacdf602120f27807294c3ec: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/aa65229e62d7cb8048d2f5911226b177e8e53cab: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/aaa96713f8ccb0bbd5c8e91715d4b86e7b338676: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/aae6354e5ba12ee3ad89fabfd72f5368a639d30f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ab6f3dc497f93f251ebacc153409b1eb8e05e2db: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/abf5b18d1c1155d3e455c8b781948498f364965e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/abfe5dbf594a2f22173fae7ca8de28b4e3a40099: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ac842f2cc55d7f193273a35f8af3521bfe2317d0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ac923c36dd85ff5cb2a0c5b29c701999c5f2eaa0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/acc6e100b519d6408a8c6d8aed19203d874a187a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/aceb250195867e7d9bbf6eb6e0055251e4bb5d67: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/acf1dd17e6a2848dfe17fb0d76cef2ce7d59ebdd: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ad94c2bda2ae4afa0f7264070fd642bf37aae596: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/adad2ca7ab313add6e955f704719e03d5229e4d0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/adb1f8cd3b68c076d81311071aee2a1c3785c7cb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ade30c327d9f51daf37cb3e39fdb15125b84a257: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ae783661f52d36f9d6b87c8394ee6f2d61dae640: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ae8da06c3c69076c06108219e19c8b36dba05a5c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/aec8a29238dba3c37f45f2e2e4e64b0e7fa60a74: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/affba8e4061bf260b1bdf8a815675cc3b4ebefa5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b01c4e2657a230e2b600a20da6f107b0dfe2467c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b0798ecae4d9e56eefb0c1d95b657865938e62d6: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b0ab4f92df810edf4371baad1d4bbd95d360c607: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b14e5f5f6d29b6b71e7fec03eaf7d8237c0c6b2e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b1708df7f6dee0f2feb11f8b6330be0fcffc1f58: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b1af4f4e86890fad6fac96a23956405c550778be: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b1efd9e687d79e3f5a75eba02bd80bedb72350ba: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b25b0fbf46cef1d888fe900445c9ab95330f44cd: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b2786e0b9d6e7b39165eb4e87e3110362e9e6660: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b332536a77d6efcd379cfc2f9828291516cc1ff4: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b33962eca397f59591dbb9668e622cf99f2d7cda: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b38b6e93da1b43441f88aa53370a9f00b35c3326: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b3e01674a1e4dd78e748782fcfc3add5523f51d8: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b53e7ef9aad70fcd80986696ebc586c03495b8ed: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b540412c01f960f95edd2a1bc03f1b4447f2b4f2: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b62c2c591db32b26e997aa4ece577742db84428a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b62d99583f30c15c3c2dbed2f69c5e45075d7640: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b62f98976c11d79674b019ea78a7ce4d6d78b479: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b6787dabeb5cd64ac85f1ec5a7cbeecfd48b2c5f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b82ebcf4d09ba28d835cb9667da603e46e3438eb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b85c6bc2473aa12e22f91db3546dfa9d85d8b3d1: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b86e98660980680890bcbf02cacdf568d530fa64: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/b8d9beea35762009941189674c2cfcd14f81254a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ba517141fc9a468142a8d03d4ee395b4d4f30edc: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/bb0a596017cfc2185505d28065ab3cd238d0e2ea: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/bb6232815b373e441e2acfcca015f75c680eafac: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/bbdf4fa36ba9d645399f72c74033fd9c2631aebb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/bc53c9f93974b4f13382c1d49b1e3ec374005ee2: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/bcacc9bcd3b9cc7dbda9c52c6e4a06a756a9de90: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/bcc55f432bcf39c6ffc6d7e950612b35e9ea2ec8: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/bdb1cc868d6ced390f5d35c5f43da9f464fac464: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/bf67bb08e0abde692748031c297bc1c7910542f4: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/bfc07c62ef2770d53d9188b260f531a8128a5c5e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/bfed121df31ff73b770ed7f27fc7f4da2fa73e0c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c01816206d93691165e6e3a1924cf9fbc9cf39bd: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c02be525edae59ad9d0d9dcbd790629dc9aaee9b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c094ce0c13ee9a4ca37817d9f7dddc11b2d60177: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c0aab5486ad2e80bcc12fca9fb6653984aa68274: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c13ca850db259c032cf24cdf6f2833c9d74529d0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c1a8da6cdc8988e6a69961413803acbd1ee935e0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c25abc82a0470129f2d098ac65fabf34c4e11188: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c2787d2cf1d95cbcd8b9bcd15d50f67f7e92ad9f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c2895ff545ebdc4140951c0ca956524d7a364b77: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c2cc55849ff4858bf80f1a4713187618d14a496d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c2d63b1d75cf53ee3b955bb143036ca93ef3a256: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c372a27f78a62ebc013958fa4953a8bc792db53c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c392963b395a7f92b3bef63fd34bc31ecd3029f3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c3b2749ab6c4d303bfd5da9ea9c8807e9f92d259: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c4dd3c8cdd8d7c95603dd67f1cd873d5f9148b29: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c52fa8d16e520980e470d76e3fb4f6a612f0f3cf: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c56fb214efcd707e6fa68b803d9e7686fc2f4336: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c5902afe54998ebc5d8d59043227d379a8c2eee0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c6a16abeea323833079e97b1830610aa6c6eba91: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c6fcfd2a1f91a7f6a8c124f2637e60645be01006: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c75b02a90370df1f54de2f63a4da8db22f2cf719: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c77cb763d73db279aebfb42d2b5dca3d705d3df7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c864ac8bce0353ecc7d5cb0ce5a1e77a5239201e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c877c08a79a7408aed779d4a430c5db1bce26314: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c8aff6e2e2dfb18be385483b871ac86ff6eac63f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c8c1c1f970bc809a75ad076bdb06275b6f72d078: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c995d52934ac188971f02d5dbdb3cdd70cb03267: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/c9e7fc3e0e1015a1c15992447f678a495c3ea5dc: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ca5b619ce1bbe23d519f5764d53458d2b85eb9fa: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/cb0556c65c7381192c94324a3b1b8afb7e33fecc: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/cb1a093e6810c7f6c002a2a54ea390cf769c9949: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/cc1487af64aeefd7080e7678a04870dc85a7928a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/cc71d2c9f5eae12acee133bd9e50d84881a1bd88: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ccb8f962426683663972534c15354f70c3b34a10: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/cd0771c4754dfcd9c89b9b8a02df96fed974850d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/cd8899c66cbd92ee57f94e000744b32662258ba3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/cdf83138f69f0f7c66c13b56028610ac39038b3c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ce0138cd7718397b365d4c15b0b14f666c307419: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/cec5c7e50ef1d865c879563d1a6d677adb86695c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ceff1dfaf2de4e33d2e3c20aeb7ba4b98f97784c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/cf04b5d28cea1971478806979b256a030a671541: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/cf1cf6ad5b3554c3ffc86a859319445158665ea7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/cf2338960588d4a5f02a47f3ee96a556224aad75: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/cfb09018afa0eb1a829e556d9f8bceff40cb36bc: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/cfbe3d66d7eb3199440e8e911a93044cc3165c6c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d0a91f7984904976de592cb68e8832853fbec9bc: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d22f52563c16725ce4a924dc05d6ac7d64798c43: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d2709a1c9d96e72cb844eedca8bfe8440cdb0ef8: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d2e385f61ad4b5d45a10a5a6cb85d72e84dea54b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d2facb213561b30a5bcd012e4e01d0d5b0b26957: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d300e5e46a825e5892fae1ba3c466c836f9e1da2: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d302c69c881e230e6433283007d318ba437025c3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d30c1b65bc141d1a15d4ed622ba182c96dacdf92: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d3adf09fe6fb1534157c1dc68eb61365b46b1c35: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d3c74d3a64dba86f98a31bb726587ec97a7e4531: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d3c9846ab319f12fc646c23a532c780daa9e993f: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d3f03301b52cf4a830c7dd200ed8ccbc09e6ec94: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d4800745440dace38766db3520ffe7baa0bd78f2: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d4d6271bba704ba08c2678eb8b1bc4e457144f50: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d54020f766061e80f445690c2b5694ed8af21e9d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d588515f125ebe968fe6a81cb6df7cfc41969e68: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d5ee5e4dc8fad9f1da43102d8322beb005a047c0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d62459bb217d3050bcd9e29a6327cf81f5ed68b9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d6acbf1cb46845618ed0d5a322c8bd4879d16422: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d6fc8cdbb0f1517159531098e900e2dcc91edba0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d7a9bbd9875a60edf9c528b298ea72a2fad7d3d7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d82e70046a544e95e81f6271dd2695f2599f0574: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d84bc8dca7c8fcd227254c06f5b88eaaf7cd5fde: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d8bcb7dd21205e7126e700323b1d58817e9d9a6d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d8e2628b4092b9bbab4f02041647f950503eeb48: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d8ee4c2b79863a237c432efe7d43d99c8d0afb9b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d8ee9724bf16ff336387723dcf27319c3be72e01: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d9379969bc956ad623e4bab8bbe47270a880a62d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/d9ccb79b0e070dcc2f5ed8e15d99bc5ef86ecff7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/db83586ca6266e03067e9a9772ea728ab770ad9a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/dcc63c06ed2790d1380bdb9281fe8677f439c76d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/dd509e9a4660ec34b8f9dc23441c6df4ff97c34d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/dd72f8ff3a067dc7871438b6023e1ed0a4c5787b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/dd75880c5ad488885260f4031a763c86a8084406: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/dd962d74d04aa4aed270fd8e6b0ae9c4ac35fd19: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/dd9aa9a49dd790b2ce99c5af1933232d46a7f80d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ddad7630818a1caa8054d2d7280a1d01bdb33ca3: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ddb2eaf33960ce69d579a551a7b05733adcd52aa: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/de0d98cb997c0a0f7be127a46d8a24d8a003931d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/de0ff884898c83fb880498f1b8328f78701e6534: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/de9e0ed8ae29220e5b65e5b97eb3b254ccbe7e0c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/dec5e8ffb35aa707d127a11a49e47cb59954e969: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/df1b205e339e7199b5094fcf0ec3b8a8ca7a692c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/df254daba2299f3ff2367e284efc53a3296d136b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/dfdcde31231b8b3d3fd4e0ef8ea88885f488c4db: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e01962d7dc1b94e5c4424ec7adae16a7c03b9773: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e058723f2964bf1405ae043ddb99efb17d821e15: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e09e306ef596dcd0e44bd3ef3c5f7019c7343f84: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e154eb76d096c1e545dcad591a58a02c37cd71ff: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e198d2e4f2f3528c2ff46d769a9281ebb3cfb44a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e2068af1e903f4a81cd6fa5f4022e62070c259ec: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e2890330b5655cb277a581b8dd2eeba0d9061ba5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e2e0767d055a7042c24a7acd5d5b6b7c093ad065: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e394a8e21e2c43c42135daa034ad5aabb06acffb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e3b200e97ec226a197e91f12103aaa53d5c37b0e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e45b077cda64c380ae1b0910bc81d010c27e1c93: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e45e71ca01ebe01b01b0ca99b8f20a756c36b967: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e4ff4bd938c3737a02862fc0656a1859d384d066: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e5a1acb7e6f71bc1a2fedaa6173764dfd04c844c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e6081eeff4ddb76e88e87ef9e4b5f199f5f11c28: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e73c42dd266c4d9671da0c7af09e98c02fc052fd: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e7b4559a77df21b73285243a8350b844775bb380: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e7dd34a80646a8c38ae1ec3a27c1358bab13b360: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e80b344f943ff0ad9219277c4578d3b4100b71dc: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e86e26200290d9d428c5e98e191ec874eb918fb6: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e873a3b8f5c3b716e6446df34279b837cf8d2c30: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e8fb71319db98d8e8cd131a4eb82879bfbec14d0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e93c3f14614595a2675993438b4c1bfaafdc02d0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e93faef2d77b7c467ae280ba433928d66d63ea63: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e95401b11d974ba63270668d3c32c29e95ae85da: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e9723cebe688912f684bcd19b48e5bc8efafaf2a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e9a4389895c006d4b912e8ac1169229e6b2a66da: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e9dc3d10b47ea580404c8e80b844a9978fcf4747: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/e9e2ac24e5674e7ee424e2b270e5abe84f1a15c9: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ea2b4df24b526aad253ab175334cb934b9d80b83: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ea681d11486feeab2f080b06ddd2533575b7ace4: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ebb747925360528a9f366f9a57730883c636b2c7: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ec39abab70a8e1ff072eb082caa6ca77b1ae8087: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ecdd96d6cab2dc714a0b0ada1c4fcb18c75298e4: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ed008faa6c9001951f50588a1597e03931501343: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ed12e272a27a2fbdbfe5a6e78e49ed722ebd3c69: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ed799ba0608690ac68dd85c588004197b86e02bf: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/edd982c5bd3030bde8c044760e9a678c2a9306f4: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ee82c97e35ec92ec3b0bbf911904a050b3aca633: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ef11f14feee00e3c198015e6bc76688e970e2d8c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/efa12e91e0d63c2353c120ca1ded7b36afbf57eb: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/efa14cba9bbaf749067b7bb8515a5d8a289fa389: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/eff9bf13cd33ea50a8eacc5f2839cc4b5d67b2de: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f0143756917f0b2e374bd03e731cd64168180054: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f0b9dcd4e1845f774bb0f42653b11040baee0765: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f1a41ceb420b6b3df50b10f27108c133d4d07508: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f39378fd978c6cdb4a8d08cdffc9034e2ca5b687: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f39707a104112d13d9d6bcfbef0efe8dfd98270c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f4341645a7d466113655d63c5aa00855904166c5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f5511a42d83f94619ff8ca6c940cacc32bdc4834: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f57a39fa918249e6941b4e770e15a8131ac16ea5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f5ac272a1dbf362e265210869aaf70ca410f1703: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f64c5ca1de57bcf323741f56754f53c642be8ab0: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f64dcdee393b4b0a3343f8e684c9db91a6eaeb6e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f69d2954da077043c6ae085e2771a702689314d5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f74e2203adb9c94ba80f7cc3214e3b3040e5675d: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f7906e7dc01323b9d3d6e298e8dc2386c8d152f6: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f825cac511f3dc38a5ecf3aab3691b4c49ca8f0e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f84c3f9e305172f2ae15dff0b4d955324b3a398e: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f87cfad97831c33610fbbe34a04369bd93862464: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f8ebd7703fd3ba1a135b243fd947dbd61907d0f4: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f926f6b2337650f8b518422c2f63a8869f47c742: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f939897b9fbe865c96020927dc81de9dc255d385: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/f985f995ca7d1b691e6ae3b3ef57e8b3c7aa7129: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/fa79e8ad34cabea4d3c434cc02ea1499069fcafc: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/fa7a8dfdd46845ab0fd9b5b7004e37d0232941bf: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/fcb3054fde86111e2c346aa71af2456a1705902c: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/fce30dcdf2f23b14c580c282a39e065d7aacbfe8: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/fd15b8dd6c27bc65f90e1c988e0245b1ad7d51c5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/fd608012362d161cc7f3d30e1700c51f4ccef4ac: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/fdce5b4f3a038ce7cfeee4deb9a4644edb78189a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/fe203731ada762e02bf843b82e33daee4c2efbf5: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/fe46e6ef4cd5788d89a101c77123387e3fc9d206: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/fe7ac2ef276b817af3487bab5fe089186ca0484b: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/fe7ef7c0e835873b7b1cd780f248114f18adf13a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ff5274cad94d590347d6cdba7637078f82e3d44a: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/corpus/ffff6a92363e0e55a9688d9bc025cd8dea3b50d4: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/webm.dict: Added.
        * Source/third_party/libwebm/webm_parser/fuzzing/webm_fuzzer.cc: Added.
        * Source/third_party/libwebm/webm_parser/include/webm/buffer_reader.h: Added.
        (webm::BufferReader::size const):
        * Source/third_party/libwebm/webm_parser/include/webm/callback.h: Added.
        * Source/third_party/libwebm/webm_parser/include/webm/dom_types.h: Added.
        (webm::FrameMetadata::operator== const):
        (webm::BlockMore::operator== const):
        (webm::BlockAdditions::operator== const):
        (webm::TimeSlice::operator== const):
        (webm::Slices::operator== const):
        (webm::VirtualBlock::operator== const):
        (webm::Block::operator== const):
        (webm::SimpleBlock::operator== const):
        (webm::BlockGroup::operator== const):
        (webm::Cluster::operator== const):
        (webm::Ebml::operator== const):
        (webm::Info::operator== const):
        (webm::Seek::operator== const):
        (webm::Audio::operator== const):
        (webm::MasteringMetadata::operator== const):
        (webm::Colour::operator== const):
        (webm::Projection::operator== const):
        (webm::Video::operator== const):
        (webm::ContentEncAesSettings::operator== const):
        (webm::ContentEncryption::operator== const):
        (webm::ContentEncoding::operator== const):
        (webm::ContentEncodings::operator== const):
        (webm::TrackEntry::operator== const):
        (webm::CueTrackPositions::operator== const):
        (webm::CuePoint::operator== const):
        (webm::ChapterDisplay::operator== const):
        (webm::ChapterAtom::operator== const):
        (webm::EditionEntry::operator== const):
        (webm::SimpleTag::operator== const):
        (webm::Targets::operator== const):
        (webm::Tag::operator== const):
        * Source/third_party/libwebm/webm_parser/include/webm/element.h: Added.
        (webm::Element::Element):
        (webm::Element::Set):
        (webm::Element::value const):
        (webm::Element::mutable_value):
        (webm::Element::is_present const):
        (webm::Element::operator== const):
        (webm::ElementMetadata::operator== const):
        * Source/third_party/libwebm/webm_parser/include/webm/file_reader.h: Added.
        (webm::FileReader::FileCloseFunctor::operator() const):
        * Source/third_party/libwebm/webm_parser/include/webm/id.h: Added.
        * Source/third_party/libwebm/webm_parser/include/webm/istream_reader.h: Added.
        (webm::IstreamReader::IstreamReader):
        (webm::IstreamReader::Emplace):
        * Source/third_party/libwebm/webm_parser/include/webm/reader.h: Added.
        * Source/third_party/libwebm/webm_parser/include/webm/status.h: Added.
        (webm::Status::Status):
        (webm::Status::ok const):
        (webm::Status::completed_ok const):
        (webm::Status::is_parsing_error const):
        * Source/third_party/libwebm/webm_parser/include/webm/webm_parser.h: Added.
        * Source/third_party/libwebm/webm_parser/src/ancestory.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/ancestory.h: Added.
        (webm::Ancestory::next const):
        (webm::Ancestory::id const):
        (webm::Ancestory::empty const):
        (webm::Ancestory::Ancestory):
        * Source/third_party/libwebm/webm_parser/src/audio_parser.h: Added.
        (webm::AudioParser::AudioParser):
        (webm::AudioParser::FixMissingOutputFrequency):
        * Source/third_party/libwebm/webm_parser/src/bit_utils.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/bit_utils.h: Added.
        * Source/third_party/libwebm/webm_parser/src/block_additions_parser.h: Added.
        (webm::BlockAdditionsParser::BlockAdditionsParser):
        * Source/third_party/libwebm/webm_parser/src/block_group_parser.h: Added.
        (webm::BlockGroupParser::BlockGroupParser):
        * Source/third_party/libwebm/webm_parser/src/block_header_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/block_header_parser.h: Added.
        (webm::BlockHeader::operator== const):
        (webm::BlockHeaderParser::value const):
        * Source/third_party/libwebm/webm_parser/src/block_more_parser.h: Added.
        (webm::BlockMoreParser::BlockMoreParser):
        * Source/third_party/libwebm/webm_parser/src/block_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/block_parser.h: Added.
        (webm::BasicBlockParser::value const):
        (webm::BasicBlockParser::mutable_value):
        * Source/third_party/libwebm/webm_parser/src/bool_parser.h: Added.
        (webm::BoolParser::BoolParser):
        (webm::BoolParser::value const):
        (webm::BoolParser::mutable_value):
        * Source/third_party/libwebm/webm_parser/src/buffer_reader.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/byte_parser.h: Added.
        (webm::ByteParser::ByteParser):
        (webm::ByteParser::value const):
        (webm::ByteParser::mutable_value):
        * Source/third_party/libwebm/webm_parser/src/callback.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/chapter_atom_parser.h: Added.
        (webm::ChapterAtomParser::ChapterAtomParser):
        * Source/third_party/libwebm/webm_parser/src/chapter_display_parser.h: Added.
        (webm::ChapterDisplayParser::ChapterDisplayParser):
        * Source/third_party/libwebm/webm_parser/src/chapters_parser.h: Added.
        (webm::ChaptersParser::ChaptersParser):
        * Source/third_party/libwebm/webm_parser/src/cluster_parser.h: Added.
        (webm::ClusterParser::ClusterParser):
        * Source/third_party/libwebm/webm_parser/src/colour_parser.h: Added.
        (webm::ColourParser::ColourParser):
        * Source/third_party/libwebm/webm_parser/src/content_enc_aes_settings_parser.h: Added.
        (webm::ContentEncAesSettingsParser::ContentEncAesSettingsParser):
        * Source/third_party/libwebm/webm_parser/src/content_encoding_parser.h: Added.
        (webm::ContentEncodingParser::ContentEncodingParser):
        * Source/third_party/libwebm/webm_parser/src/content_encodings_parser.h: Added.
        (webm::ContentEncodingsParser::ContentEncodingsParser):
        * Source/third_party/libwebm/webm_parser/src/content_encryption_parser.h: Added.
        (webm::ContentEncryptionParser::ContentEncryptionParser):
        * Source/third_party/libwebm/webm_parser/src/cue_point_parser.h: Added.
        (webm::CuePointParser::CuePointParser):
        * Source/third_party/libwebm/webm_parser/src/cue_track_positions_parser.h: Added.
        (webm::CueTrackPositionsParser::CueTrackPositionsParser):
        * Source/third_party/libwebm/webm_parser/src/cues_parser.h: Added.
        (webm::CuesParser::CuesParser):
        * Source/third_party/libwebm/webm_parser/src/date_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/date_parser.h: Added.
        (webm::DateParser::value const):
        (webm::DateParser::mutable_value):
        * Source/third_party/libwebm/webm_parser/src/ebml_parser.h: Added.
        (webm::EbmlParser::EbmlParser):
        * Source/third_party/libwebm/webm_parser/src/edition_entry_parser.h: Added.
        (webm::EditionEntryParser::EditionEntryParser):
        * Source/third_party/libwebm/webm_parser/src/element_parser.h: Added.
        (webm::ElementParser::InitAfterSeek):
        (webm::ElementParser::GetCachedMetadata):
        (webm::ElementParser::WasSkipped const):
        * Source/third_party/libwebm/webm_parser/src/file_reader.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/float_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/float_parser.h: Added.
        (webm::FloatParser::value const):
        (webm::FloatParser::mutable_value):
        * Source/third_party/libwebm/webm_parser/src/id_element_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/id_element_parser.h: Added.
        (webm::IdElementParser::value const):
        (webm::IdElementParser::mutable_value):
        * Source/third_party/libwebm/webm_parser/src/id_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/id_parser.h: Added.
        * Source/third_party/libwebm/webm_parser/src/info_parser.h: Added.
        (webm::InfoParser::InfoParser):
        * Source/third_party/libwebm/webm_parser/src/int_parser.h: Added.
        (webm::IntParser::IntParser):
        (webm::IntParser::value const):
        (webm::IntParser::mutable_value):
        * Source/third_party/libwebm/webm_parser/src/istream_reader.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/master_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/master_parser.h: Added.
        (webm::MasterParser::MasterParser):
        (webm::MasterParser::header_size const):
        (webm::MasterParser::size const):
        (webm::MasterParser::position const):
        (webm::MasterParser::child_metadata const):
        (webm::MasterParser::MakeChild):
        (webm::MasterParser::IdHash::operator() const):
        (webm::MasterParser::InsertParser):
        * Source/third_party/libwebm/webm_parser/src/master_value_parser.h: Added.
        (webm::MasterValueParser::value const):
        (webm::MasterValueParser::mutable_value):
        (webm::MasterValueParser::SingleChildFactory::SingleChildFactory):
        (webm::MasterValueParser::SingleChildFactory::BuildParser):
        (webm::MasterValueParser::SingleChildFactory:: const):
        (webm::MasterValueParser::RepeatedChildFactory::RepeatedChildFactory):
        (webm::MasterValueParser::RepeatedChildFactory::BuildParser):
        (webm::MasterValueParser::RepeatedChildFactory:: const):
        (webm::MasterValueParser::RecursiveChildFactory::RecursiveChildFactory):
        (webm::MasterValueParser::RecursiveChildFactory::BuildParser):
        (webm::MasterValueParser::RecursiveChildFactory:: const):
        (webm::MasterValueParser::MasterValueParser):
        (webm::MasterValueParser::MakeChild):
        (webm::MasterValueParser::metadata const):
        (webm::MasterValueParser::OnParseStarted):
        (webm::MasterValueParser::OnParseCompleted):
        (webm::MasterValueParser::parse_started_event_completed const):
        (webm::MasterValueParser::set_parse_started_event_completed_with_action):
        (webm::MasterValueParser::OnChildParsed):
        (webm::MasterValueParser::child_metadata const):
        (webm::MasterValueParser::ChildParser::ChildParser):
        (webm::MasterValueParser::ChildParser::Prepare):
        (webm::MasterValueParser::ChildParser::has_tag):
        (webm::MasterValueParser::MakeChildParser):
        (webm::MasterValueParser::PreInit):
        * Source/third_party/libwebm/webm_parser/src/mastering_metadata_parser.h: Added.
        (webm::MasteringMetadataParser::MasteringMetadataParser):
        * Source/third_party/libwebm/webm_parser/src/parser.h: Added.
        * Source/third_party/libwebm/webm_parser/src/parser_utils.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/parser_utils.h: Added.
        (webm::AccumulateIntegerBytes):
        * Source/third_party/libwebm/webm_parser/src/projection_parser.h: Added.
        (webm::ProjectionParser::ProjectionParser):
        * Source/third_party/libwebm/webm_parser/src/recursive_parser.h: Added.
        (webm::RecursiveParser::RecursiveParser):
        (webm::RecursiveParser::value const):
        (webm::RecursiveParser::mutable_value):
        * Source/third_party/libwebm/webm_parser/src/seek_head_parser.h: Added.
        (webm::SeekHeadParser::SeekHeadParser):
        * Source/third_party/libwebm/webm_parser/src/seek_parser.h: Added.
        (webm::SeekParser::SeekParser):
        * Source/third_party/libwebm/webm_parser/src/segment_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/segment_parser.h: Added.
        * Source/third_party/libwebm/webm_parser/src/simple_tag_parser.h: Added.
        (webm::SimpleTagParser::SimpleTagParser):
        * Source/third_party/libwebm/webm_parser/src/size_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/size_parser.h: Added.
        * Source/third_party/libwebm/webm_parser/src/skip_callback.h: Added.
        * Source/third_party/libwebm/webm_parser/src/skip_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/skip_parser.h: Added.
        * Source/third_party/libwebm/webm_parser/src/slices_parser.h: Added.
        (webm::SlicesParser::SlicesParser):
        * Source/third_party/libwebm/webm_parser/src/tag_parser.h: Added.
        (webm::TagParser::TagParser):
        * Source/third_party/libwebm/webm_parser/src/tags_parser.h: Added.
        (webm::TagsParser::TagsParser):
        * Source/third_party/libwebm/webm_parser/src/targets_parser.h: Added.
        (webm::TargetsParser::TargetsParser):
        * Source/third_party/libwebm/webm_parser/src/time_slice_parser.h: Added.
        (webm::TimeSliceParser::TimeSliceParser):
        * Source/third_party/libwebm/webm_parser/src/track_entry_parser.h: Added.
        (webm::TrackEntryParser::TrackEntryParser):
        * Source/third_party/libwebm/webm_parser/src/tracks_parser.h: Added.
        (webm::TracksParser::TracksParser):
        * Source/third_party/libwebm/webm_parser/src/unknown_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/unknown_parser.h: Added.
        * Source/third_party/libwebm/webm_parser/src/var_int_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/var_int_parser.h: Added.
        (webm::VarIntParser::value const):
        (webm::VarIntParser::encoded_length const):
        * Source/third_party/libwebm/webm_parser/src/video_parser.h: Added.
        (webm::VideoParser::VideoParser):
        (webm::VideoParser::FixMissingDisplaySize):
        * Source/third_party/libwebm/webm_parser/src/virtual_block_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/virtual_block_parser.h: Added.
        (webm::VirtualBlockParser::value const):
        (webm::VirtualBlockParser::mutable_value):
        * Source/third_party/libwebm/webm_parser/src/void_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/src/void_parser.h: Added.
        * Source/third_party/libwebm/webm_parser/src/webm_parser.cc: Added.
        * Source/third_party/libwebm/webm_parser/test_utils/element_parser_test.h: Added.
        (webm::static_cast<Id>):
        * Source/third_party/libwebm/webm_parser/test_utils/limited_reader.cc: Added.
        * Source/third_party/libwebm/webm_parser/test_utils/limited_reader.h: Added.
        * Source/third_party/libwebm/webm_parser/test_utils/mock_callback.h: Added.
        (webm::MockCallback::MockCallback):
        (webm::MockCallback::OnElementBeginConcrete):
        (webm::MockCallback::OnUnknownElementConcrete):
        (webm::MockCallback::OnEbmlConcrete):
        (webm::MockCallback::OnVoidConcrete):
        (webm::MockCallback::OnSegmentBeginConcrete):
        (webm::MockCallback::OnSeekConcrete):
        (webm::MockCallback::OnInfoConcrete):
        (webm::MockCallback::OnClusterBeginConcrete):
        (webm::MockCallback::OnSimpleBlockBeginConcrete):
        (webm::MockCallback::OnSimpleBlockEndConcrete):
        (webm::MockCallback::OnBlockGroupBeginConcrete):
        (webm::MockCallback::OnBlockBeginConcrete):
        (webm::MockCallback::OnBlockEndConcrete):
        (webm::MockCallback::OnBlockGroupEndConcrete):
        (webm::MockCallback::OnFrameConcrete):
        (webm::MockCallback::OnClusterEndConcrete):
        (webm::MockCallback::OnTrackEntryConcrete):
        (webm::MockCallback::OnCuePointConcrete):
        (webm::MockCallback::OnEditionEntryConcrete):
        (webm::MockCallback::OnTagConcrete):
        (webm::MockCallback::OnSegmentEndConcrete):
        * Source/third_party/libwebm/webm_parser/test_utils/parser_test.h: Added.
        (webm::ParserTest::SetReaderData):
        (webm::ParserTest::ResetParser):
        (webm::ParserTest::ParseAndVerify):
        (webm::ParserTest::IncrementalParseAndVerify):
        (webm::ParserTest::ParseAndExpectResult):
        * Source/third_party/libwebm/webm_parser/tests/audio_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/bit_utils_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/block_additions_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/block_group_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/block_header_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/block_more_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/block_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/bool_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/buffer_reader_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/byte_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/callback_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/chapter_atom_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/chapter_display_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/chapters_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/cluster_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/colour_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/content_enc_aes_settings_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/content_encoding_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/content_encodings_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/content_encryption_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/cue_point_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/cue_track_positions_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/cues_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/date_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/ebml_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/edition_entry_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/element_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/float_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/id_element_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/id_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/info_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/int_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/istream_reader_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/limited_reader_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/master_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/master_value_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/mastering_metadata_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/parser_utils_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/projection_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/recursive_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/seek_head_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/seek_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/segment_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/simple_tag_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/size_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/skip_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/slices_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/tag_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/tags_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/targets_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/time_slice_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/track_entry_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/tracks_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/unknown_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/var_int_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/video_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/virtual_block_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/void_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/webm_parser_test.cc: Added.
        * Source/third_party/libwebm/webm_parser/tests/webm_parser_tests.cc: Added.
        * Source/third_party/libwebm/webmids.hpp: Added.
        * Source/third_party/libwebm/webvtt/vttreader.cc: Added.
        * Source/third_party/libwebm/webvtt/vttreader.h: Added.
        * Source/third_party/libwebm/webvtt/webvttparser.cc: Added.
        * Source/third_party/libwebm/webvtt/webvttparser.h: Added.
        * Source/third_party/libwebm/webvttparser.h: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2020-07-04  Youenn Fablet  <youenn@apple.com>

        Enable VTB required low latency code path
        https://bugs.webkit.org/show_bug.cgi?id=210609
        <rdar://problem/61890332>

        Reviewed by Darin Adler.

        Enable low latency mode for latest MacOS and iOS versions.
        Add a boolean controlling whether to opt in that code path.
        Export the setter to that boolean so that it can be controlled by a WebCore runtime flag.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        * Source/webrtc/sdk/WebKit/WebKitEncoder.mm:
        (webrtc::setH264LowLatencyEncoderEnabled):
        (webrtc::isH264LowLatencyEncoderEnabled):
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

2020-07-03  Youenn Fablet  <youenn@apple.com>

        Allow registering VP9 as a VT decoder
        https://bugs.webkit.org/show_bug.cgi?id=213837
        <rdar://problem/64984881>

        Reviewed by Jer Noble.

        Implement a method that registers VP9 as a VT decoder.
        Implement the binding code between VP9DecoderImpl and VT pluggable codec API.
        Restrict this to internal SDK for now.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::createPixelBufferPool):
        * Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp: Added.
        (webrtc::registerWebKitVP9Decoder):
        (webrtc::createWebKitVP9Decoder):
        (webrtc::invalidateVP9Decoder):
        (webrtc::finalizeVP9Decoder):
        (webrtc::copyVP9DecoderDebugDescription):
        (webrtc::webKitVP9DecoderFromVTDecoder):
        (webrtc::startVP9DecoderSession):
        (webrtc::decodeVP9DecoderFrameFromContiguousBlock):
        (webrtc::decodeVP9DecoderFrame):
        (webrtc::WebKitVP9DecoderReceiver::WebKitVP9DecoderReceiver):
        (webrtc::WebKitVP9DecoderReceiver::~WebKitVP9DecoderReceiver):
        (webrtc::WebKitVP9DecoderReceiver::decoderFailed):
        (webrtc::WebKitVP9DecoderReceiver::Decoded):
        * Source/webrtc/sdk/WebKit/WebKitVP9Decoder.h: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2020-07-01  Tim Horton  <timothy_horton@apple.com>

        Fix the arm64 iOS simulator build
        https://bugs.webkit.org/show_bug.cgi?id=213868
        <rdar://problem/64901603>

        * Configurations/libvpx.xcconfig:
        * Configurations/libwebrtc.xcconfig:

2020-07-01  Youenn Fablet  <youenn@apple.com>

        Add a functional WebRTC VP9 codec
        https://bugs.webkit.org/show_bug.cgi?id=213778

        Reviewed by Eric Carlson.

        Update libvpx to synchronize VP9 support with the rest of libwebrtc.
        Disable vp9_noop in the build system and use function vp9 encoder/decoder instead.

        * Configurations/libvpx.xcconfig:
        * Source/third_party/libvpx/BUILD.gn:
        * Source/third_party/libvpx/OWNERS:
        * Source/third_party/libvpx/README.chromium:
        * Source/third_party/libvpx/generate_gni.sh:
        * Source/third_party/libvpx/libvpx_srcs.gni:
        * Source/third_party/libvpx/lint_config.sh:
        * Source/third_party/libvpx/run_perl.py:
        * Source/third_party/libvpx/source/config/ios/arm-neon/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/ios/arm-neon/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm:
        * Source/third_party/libvpx/source/config/ios/arm-neon/vpx_config.c:
        * Source/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h:
        * Source/third_party/libvpx/source/config/ios/arm-neon/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/ios/arm64/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/ios/arm64/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/ios/arm64/vpx_config.asm:
        * Source/third_party/libvpx/source/config/ios/arm64/vpx_config.c:
        * Source/third_party/libvpx/source/config/ios/arm64/vpx_config.h:
        * Source/third_party/libvpx/source/config/ios/arm64/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm:
        * Source/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.c:
        * Source/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h:
        * Source/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vp8_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h.
        * Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vp9_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/generic/vp9_rtcd.h.
        * Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.asm: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm.
        * Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.c: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/ios/arm-neon/vpx_config.c.
        (vpx_codec_build_config):
        * Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h.
        * Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_dsp_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/generic/vpx_dsp_rtcd.h.
        * Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_scale_rtcd.h: Added.
        * Source/third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/arm-neon/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm:
        * Source/third_party/libvpx/source/config/linux/arm-neon/vpx_config.c:
        * Source/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h:
        * Source/third_party/libvpx/source/config/linux/arm-neon/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/arm/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/arm/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/arm/vpx_config.asm:
        * Source/third_party/libvpx/source/config/linux/arm/vpx_config.c:
        * Source/third_party/libvpx/source/config/linux/arm/vpx_config.h:
        * Source/third_party/libvpx/source/config/linux/arm/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/arm64-highbd/vp8_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h.
        * Source/third_party/libvpx/source/config/linux/arm64-highbd/vp9_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/generic/vp9_rtcd.h.
        * Source/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.asm: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm64/vpx_config.asm.
        * Source/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.c: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/ios/arm64/vpx_config.c.
        (vpx_codec_build_config):
        * Source/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm64/vpx_config.h.
        * Source/third_party/libvpx/source/config/linux/arm64-highbd/vpx_dsp_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/generic/vpx_dsp_rtcd.h.
        * Source/third_party/libvpx/source/config/linux/arm64-highbd/vpx_scale_rtcd.h: Added.
        * Source/third_party/libvpx/source/config/linux/arm64/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/arm64/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/arm64/vpx_config.asm:
        * Source/third_party/libvpx/source/config/linux/arm64/vpx_config.c:
        * Source/third_party/libvpx/source/config/linux/arm64/vpx_config.h:
        * Source/third_party/libvpx/source/config/linux/arm64/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/generic/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/generic/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/generic/vpx_config.asm:
        * Source/third_party/libvpx/source/config/linux/generic/vpx_config.c:
        * Source/third_party/libvpx/source/config/linux/generic/vpx_config.h:
        * Source/third_party/libvpx/source/config/linux/generic/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/ia32/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/ia32/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/ia32/vpx_config.asm:
        * Source/third_party/libvpx/source/config/linux/ia32/vpx_config.c:
        * Source/third_party/libvpx/source/config/linux/ia32/vpx_config.h:
        * Source/third_party/libvpx/source/config/linux/ia32/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/mips64el/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/mips64el/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/mips64el/vpx_config.c:
        * Source/third_party/libvpx/source/config/linux/mips64el/vpx_config.h:
        * Source/third_party/libvpx/source/config/linux/mips64el/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/mipsel/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/mipsel/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/mipsel/vpx_config.c:
        * Source/third_party/libvpx/source/config/linux/mipsel/vpx_config.h:
        * Source/third_party/libvpx/source/config/linux/mipsel/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/x64/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/x64/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/linux/x64/vpx_config.asm:
        * Source/third_party/libvpx/source/config/linux/x64/vpx_config.c:
        * Source/third_party/libvpx/source/config/linux/x64/vpx_config.h:
        * Source/third_party/libvpx/source/config/linux/x64/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/mac/ia32/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/mac/ia32/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/mac/ia32/vpx_config.asm:
        * Source/third_party/libvpx/source/config/mac/ia32/vpx_config.c:
        * Source/third_party/libvpx/source/config/mac/ia32/vpx_config.h:
        * Source/third_party/libvpx/source/config/mac/ia32/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/mac/x64/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/mac/x64/vp8_rtcd_no_acceleration.h:
        * Source/third_party/libvpx/source/config/mac/x64/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/mac/x64/vpx_config.asm:
        * Source/third_party/libvpx/source/config/mac/x64/vpx_config.c:
        * Source/third_party/libvpx/source/config/mac/x64/vpx_config.h:
        * Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd_no_acceleration.h:
        * Source/third_party/libvpx/source/config/nacl/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/nacl/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/nacl/vpx_config.c:
        * Source/third_party/libvpx/source/config/nacl/vpx_config.h:
        * Source/third_party/libvpx/source/config/nacl/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/vpx_version.h:
        * Source/third_party/libvpx/source/config/win/arm64/vp8_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h.
        * Source/third_party/libvpx/source/config/win/arm64/vp9_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/generic/vp9_rtcd.h.
        * Source/third_party/libvpx/source/config/win/arm64/vpx_config.asm: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/ios/arm64/vpx_config.asm.
        * Source/third_party/libvpx/source/config/win/arm64/vpx_config.c: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/mips64el/vpx_config.c.
        (vpx_codec_build_config):
        * Source/third_party/libvpx/source/config/win/arm64/vpx_config.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm64/vpx_config.h.
        * Source/third_party/libvpx/source/config/win/arm64/vpx_dsp_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/generic/vpx_dsp_rtcd.h.
        * Source/third_party/libvpx/source/config/win/arm64/vpx_scale_rtcd.h: Added.
        * Source/third_party/libvpx/source/config/win/ia32/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/win/ia32/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/win/ia32/vpx_config.asm:
        * Source/third_party/libvpx/source/config/win/ia32/vpx_config.c:
        * Source/third_party/libvpx/source/config/win/ia32/vpx_config.h:
        * Source/third_party/libvpx/source/config/win/ia32/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/win/x64/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/win/x64/vp9_rtcd.h:
        * Source/third_party/libvpx/source/config/win/x64/vpx_config.asm:
        * Source/third_party/libvpx/source/config/win/x64/vpx_config.c:
        * Source/third_party/libvpx/source/config/win/x64/vpx_config.h:
        * Source/third_party/libvpx/source/config/win/x64/vpx_dsp_rtcd.h:
        * libwebrtc.xcodeproj/project.pbxproj:

2020-06-30  Youenn Fablet  <youenn@apple.com>

        Add VP9 WebRTC codec runtime flag
        https://bugs.webkit.org/show_bug.cgi?id=213724

        Reviewed by Eric Carlson.

        Update WebKit binding code to switch on/off VP9 encoder/decoder.
        We still use vp9_noop for now, so encoder/decoder is not functional.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtcpcrtc.xcconfig:
        * Source/webrtc/modules/video_coding/codecs/vp9/vp9_noop.cc:
        * Source/webrtc/sdk/WebKit/WebKitDecoder.mm:
        (webrtc::createWebKitDecoderFactory):
        * Source/webrtc/sdk/WebKit/WebKitEncoder.mm:
        (webrtc::createWebKitEncoderFactory):
        (webrtc::setH264HardwareEncoderAllowed):
        (webrtc::isH264HardwareEncoderAllowed):
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        * Source/webrtc/sdk/objc/api/video_codec/RTCVideoDecoderVP9.h:
        * Source/webrtc/sdk/objc/api/video_codec/RTCVideoEncoderVP9.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:
        (-[RTCDefaultVideoDecoderFactory initWithH265:vp9:]):
        (-[RTCDefaultVideoDecoderFactory supportedCodecs]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m:
        (-[RTCDefaultVideoEncoderFactory initWithH265:vp9:]):
        (-[RTCDefaultVideoEncoderFactory supportedCodecs]):
        * libwebrtc.xcodeproj/project.pbxproj:

2020-06-24  Youenn Fablet  <youenn@apple.com>

        Add logging to WebRTC video pipeline to check for frame rate stability
        https://bugs.webkit.org/show_bug.cgi?id=213369

        Reviewed by Eric Carlson.

        Add logging for encoded frames taking a long time to be received.
        We log the time take to receive the frame, the time since previous frame, the byte size of the frame.
        We compute that a frame takes too long by checking whether it is delayed by more than three expected frames.

        * Source/webrtc/video/rtp_video_stream_receiver.cc:
        * Source/webrtc/video/rtp_video_stream_receiver.h:

2020-06-22  Tim Horton  <timothy_horton@apple.com>

        libwebrtc fails to build on arm64
        https://bugs.webkit.org/show_bug.cgi?id=213476

        Reviewed by Maciej Stachowiak.

        * Configurations/libvpx.xcconfig:
        * Configurations/libwebrtc.xcconfig:
        * Configurations/opus.xcconfig:
        Use architecture conditionals instead of SDK conditionals for code that is
        architecture-dependent.

        Remove an macOS-version-dependent definition of EXCLUDED_SOURCE_FILE_NAMES
        which is no longer used after r232665.

2020-06-22  Tim Horton  <timothy_horton@apple.com>

        Update macOS version macros
        https://bugs.webkit.org/show_bug.cgi?id=213484

        Reviewed by Alexey Proskuryakov.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:
        * Configurations/WebKitTargetConditionals.xcconfig:

2020-06-17  Youenn Fablet  <youenn@apple.com>

        Improve SCTP cookie generation
        https://bugs.webkit.org/show_bug.cgi?id=213284
        <rdar://problem/64438133>

        Reviewed by Eric Carlson.

        * Source/webrtc/media/sctp/sctp_transport.cc:
        * Source/webrtc/media/sctp/sctp_transport.h:

2020-06-12  David Kilzer  <ddkilzer@apple.com>

        [IPC hardening] Check enum values in IPC::Decoder::decodeEnum() an IPC::Encoder::encodeEnum()
        <https://webkit.org/b/211988>
        <rdar://problem/63137695>

        Reviewed by Darin Adler.

        Replace decodeEnum() with decode() and encodeEnum() with
        operator<<().

        * Source/webrtc/sdk/WebKit/WebKitEncoder.h:
        (webrtc::WebKitEncodedFrameInfo::decode):
        (webrtc::WebKitEncodedFrameInfo::encode const):

2020-06-08  Youenn Fablet  <youenn@apple.com>

        Add missed WebRTC media-source and remote-inbound-rtp stats
        https://bugs.webkit.org/show_bug.cgi?id=206645
        <rdar://problem/58833958>

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2020-06-05  Youenn Fablet  <youenn@apple.com>

        Ad support for media-source stats
        https://bugs.webkit.org/show_bug.cgi?id=212702

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2020-06-04  Tim Horton  <timothy_horton@apple.com>

        Work around broken system version macro
        https://bugs.webkit.org/show_bug.cgi?id=212726

        Reviewed by Dan Bernstein.

        * Configurations/DebugRelease.xcconfig:

2020-06-02  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r262290.
        https://bugs.webkit.org/show_bug.cgi?id=212638

        it is not yet ready (Requested by youenn on #webkit).

        Reverted changeset:

        "Enable VTB required low latency code path"
        https://bugs.webkit.org/show_bug.cgi?id=210609
        https://trac.webkit.org/changeset/262290

2020-05-29  Keith Rollin  <krollin@apple.com>

        Revert switch to XCBuild
        https://bugs.webkit.org/show_bug.cgi?id=212530
        <rdar://problem/63764632>

        Unreviewed build fix.

        Bug 209890 enabled the use of XCBuild by default. Since then, some
        build issues have shown up. While addressing them, temporarily turn
        off the use of XCBuild by default.

        * libwebrtc.xcodeproj/project.pbxproj:

2020-05-29  Youenn Fablet  <youenn@apple.com>

        Enable VTB required low latency code path
        https://bugs.webkit.org/show_bug.cgi?id=210609
        <rdar://problem/61890332>

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        Declare the new key since it is now in a private header.

2020-05-26  Keith Rollin  <krollin@apple.com>

        Enable the use of XCBuild by default in Apple builds
        https://bugs.webkit.org/show_bug.cgi?id=209890
        <rdar://problem/44182078>

        Reviewed by Darin Adler.

        Switch from the "legacy" Xcode build system to the "new" build system
        (also known as "XCBuild"). Switching to the new system speeds up
        builds by a small percentage, better validates projects for
        build-related issues (such as dependency cycles), lets WebKit benefit
        from future improvements in XCBuild such as those coming from the
        underlying llbuild open source project, and prepares us for any other
        tools built for this new ecosystem.

        Specific changes:

        - Remove Xcode project and workspace settings that selected the Build
          system, allowing the default to take hold (which is currently the
          New build system).
        - Updated webkitdirs.pm with a terser check for Xcode version.
        - Update build-webkit and Makefile.shared to be explicit when using
          the old build system (no longer treat it as a default or fall-back
          configuration).
        - Update various xcconfig files similarly to treat the default as
          using the new build system.
        - Update various post-processing build steps to check for Xcode 11.4
          and to no longer treat the default as using the old build system.

        * libwebrtc.xcodeproj/project.pbxproj:

2020-05-13  Jer Noble  <jer.noble@apple.com>

        Replace isNullFunctionPointer with real weak-linking support
        https://bugs.webkit.org/show_bug.cgi?id=211751

        Reviewed by Sam Weinig.

        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:

2020-05-11  Saam Barati  <sbarati@apple.com>

        Remove OTHER_CFLAGS="" in libwebrtc pbxproj
        https://bugs.webkit.org/show_bug.cgi?id=211742

        Reviewed by Darin Adler.

        I believe this was done by accident in a larger patch. If we did indeed
        want to define OTHER_CFLAGS to be empty, the right place for that is inside
        the xcconfig files, not the pbxproj files.

        * libwebrtc.xcodeproj/project.pbxproj:

2020-04-30  Youenn Fablet  <youenn@apple.com>

        Disable low latency encoder on iOS
        https://bugs.webkit.org/show_bug.cgi?id=211229

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        This is not yet fully ready.

2020-04-15  Jer Noble  <jer.noble@apple.com>

        isNullFunctionPointer() can fail for symbols not explicitly marked as weakly linked.
        https://bugs.webkit.org/show_bug.cgi?id=210532

        Reviewed by Tim Horton.

        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:

2020-04-09  Keith Rollin  <krollin@apple.com>

        Set ENTITLEMENTS_REQUIRED=NO for some Xcode build targets
        https://bugs.webkit.org/show_bug.cgi?id=210250
        <rdar://problem/61502270>

        Reviewed by Jonathan Bedard.

        When building with the public version of Xcode 11.4, with XCBuild
        enabled, and targeting the iOS device, some build targets issue an
        error like:

            error: An empty identity is not valid when signing a binary for
                the product type 'Command-line Tool'. (in target 'yasm' from
                project 'libwebrtc')

        A comment in <rdar://problem/47092353> suggests setting
        ENTITLEMENTS_REQUIRED=NO to relax the requirement. To that end, when
        building with the public Xcode, establish that setting for the
        affected targets.

        * Configurations/Base.xcconfig:

2020-04-08  Truitt Savell  <tsavell@apple.com>

        Unreviewed, reverting r259708.

        Broke the iOS device Build

        Reverted changeset:

        "Enable the use of XCBuild by default in Apple builds"
        https://bugs.webkit.org/show_bug.cgi?id=209890
        https://trac.webkit.org/changeset/259708

2020-04-08  Keith Rollin  <krollin@apple.com>

        Enable the use of XCBuild by default in Apple builds
        https://bugs.webkit.org/show_bug.cgi?id=209890
        <rdar://problem/44182078>

        Reviewed by Darin Adler.

        Switch from the "legacy" Xcode build system to the "new" build system
        (also known as "XCBuild"). Switching to the new system speeds up
        builds by a small percentage, better validates projects for
        build-related issues (such as dependency cycles), lets WebKit benefit
        from future improvements in XCBuild such as those coming from the
        underlying llbuild open source project, and prepares us for any other
        tools built for this new ecosystem.

        Specific changes:

        - Remove Xcode project and workspace settings that selected the Build
          system, allowing the default to take hold (which is currently the
          New build system).
        - Updated webkitdirs.pm with a terser check for Xcode version.
        - Update build-webkit and Makefile.shared to be explicit when using
          the old build system (no longer treat it as a default or fall-back
          configuration).
        - Update various xcconfig files similarly to treat the default as
          using the new build system.
        - Update various post-processing build steps to check for Xcode 11.4
          and to no longer treat the default as using the old build system.

        * libwebrtc.xcodeproj/project.pbxproj:

2020-04-06  youenn fablet  <youenn@apple.com>

        Add HEVC support in GPU Process for WebRTC
        https://bugs.webkit.org/show_bug.cgi?id=209857

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitDecoder.h: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitUtilities.h.
        * Source/webrtc/sdk/WebKit/WebKitDecoder.mm: Added.
        (-[WK_RTCLocalVideoH264H265Decoder initH264DecoderWithCallback:]):
        (-[WK_RTCLocalVideoH264H265Decoder initH265DecoderWithCallback:]):
        (-[WK_RTCLocalVideoH264H265Decoder decodeData:size:timeStamp:]):
        (-[WK_RTCLocalVideoH264H265Decoder releaseDecoder]):
        (webrtc::videoDecoderCallbacks):
        (webrtc::setVideoDecoderCallbacks):
        (webrtc::RemoteVideoDecoder::RemoteVideoDecoder):
        (webrtc::RemoteVideoDecoder::decodeComplete):
        (webrtc::RemoteVideoDecoder::InitDecode):
        (webrtc::RemoteVideoDecoder::Decode):
        (webrtc::RemoteVideoDecoder::RegisterDecodeCompleteCallback):
        (webrtc::RemoteVideoDecoder::Release):
        (webrtc::RemoteVideoDecoderFactory::RemoteVideoDecoderFactory):
        (webrtc::RemoteVideoDecoderFactory::GetSupportedFormats const):
        (webrtc::RemoteVideoDecoderFactory::CreateVideoDecoder):
        (webrtc::createWebKitDecoderFactory):
        (webrtc::createLocalH264Decoder):
        (webrtc::createLocalH265Decoder):
        (webrtc::releaseLocalDecoder):
        (webrtc::decodeFrame):
        * Source/webrtc/sdk/WebKit/WebKitEncoder.mm:
        (-[WK_RTCLocalVideoH264H265Encoder initWithCodecInfo:]):
        (-[WK_RTCLocalVideoH264H265Encoder setCallback:]):
        (-[WK_RTCLocalVideoH264H265Encoder releaseEncoder]):
        (-[WK_RTCLocalVideoH264H265Encoder startEncodeWithSettings:numberOfCores:]):
        (-[WK_RTCLocalVideoH264H265Encoder encode:codecSpecificInfo:frameTypes:]):
        (-[WK_RTCLocalVideoH264H265Encoder setBitrate:framerate:]):
        (webrtc::createLocalEncoder):
        (webrtc::releaseLocalEncoder):
        (webrtc::initializeLocalEncoder):
        (webrtc::encodeLocalEncoderFrame):
        (webrtc::setLocalEncoderRates):
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        (): Deleted.
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::videoDecoderCallbacks): Deleted.
        (webrtc::setVideoDecoderCallbacks): Deleted.
        (webrtc::RemoteVideoDecoder::RemoteVideoDecoder): Deleted.
        (webrtc::RemoteVideoDecoder::decodeComplete): Deleted.
        (webrtc::RemoteVideoDecoder::InitDecode): Deleted.
        (webrtc::RemoteVideoDecoder::Decode): Deleted.
        (webrtc::RemoteVideoDecoder::RegisterDecodeCompleteCallback): Deleted.
        (webrtc::RemoteVideoDecoder::Release): Deleted.
        (webrtc::RemoteVideoDecoderFactory::RemoteVideoDecoderFactory): Deleted.
        (webrtc::RemoteVideoDecoderFactory::GetSupportedFormats const): Deleted.
        (webrtc::RemoteVideoDecoderFactory::CreateVideoDecoder): Deleted.
        (webrtc::createWebKitDecoderFactory): Deleted.
        (webrtc::createLocalDecoder): Deleted.
        (webrtc::releaseLocalDecoder): Deleted.
        (webrtc::decodeFrame): Deleted.
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm:
        (-[RTCVideoDecoderH265 decode:missingFrames:codecSpecificInfo:renderTimeMs:]):
        (-[RTCVideoDecoderH265 decodeData:size:timeStamp:]):
        * libwebrtc.xcodeproj/project.pbxproj:

2020-04-03  David Kilzer  <ddkilzer@apple.com>

        [Xcode] Replace ASAN_OTHER_CFLAGS and ASAN_OTHER_CPLUSPLUSFLAGS with $(inherited)
        <https://webkit.org/b/209963>
        <rdar://problem/61257504>

        Reviewed by Alexey Proskuryakov.

        * Configurations/Base.xcconfig:
        - Remove ASAN_OTHER_CFLAGS, ASAN_OTHER_CPLUSPLUSFLAGS and
          ASAN_OTHER_LDFLAGS.

2020-04-03  youenn fablet  <youenn@apple.com>

        Remove rtpplay.exe from the libwebrtc source folder
        https://bugs.webkit.org/show_bug.cgi?id=209957

        Reviewed by Eric Carlson.

        * .gitignore:
        * Source/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe: Removed.

2020-04-03  youenn fablet  <youenn@apple.com>

        Add initial support for WebRTC HEVC
        https://bugs.webkit.org/show_bug.cgi?id=204283

        Reviewed by Eric Carlson.

        Add H265 packetization/depacketization and ObjC H265 encoder/decoder.
        Support is switchable using a boolean given to the decoder/encoder factories.

        * Source/webrtc/api/video/video_codec_type.h:
        * Source/webrtc/api/video_codecs/video_codec.cc:
        * Source/webrtc/api/video_codecs/video_codec.h:
        (webrtc::VideoCodecH265::operator!= const):
        * Source/webrtc/api/video_codecs/video_encoder.cc:
        * Source/webrtc/api/video_codecs/video_encoder.h:
        * Source/webrtc/api/video_codecs/video_encoder_config.cc:
        * Source/webrtc/api/video_codecs/video_encoder_config.h:
        * Source/webrtc/build_overrides/build.gni:
        * Source/webrtc/call/rtp_payload_params.cc:
        * Source/webrtc/common_video/BUILD.gn:
        * Source/webrtc/common_video/h265/h265_common.cc: Added.
        * Source/webrtc/common_video/h265/h265_common.h: Added.
        * Source/webrtc/common_video/h265/h265_pps_parser.cc: Added.
        * Source/webrtc/common_video/h265/h265_pps_parser.h: Added.
        * Source/webrtc/common_video/h265/h265_sps_parser.cc: Added.
        * Source/webrtc/common_video/h265/h265_sps_parser.h: Added.
        * Source/webrtc/common_video/h265/h265_vps_parser.cc: Added.
        * Source/webrtc/common_video/h265/h265_vps_parser.h: Added.
        * Source/webrtc/media/base/media_constants.cc:
        * Source/webrtc/media/base/media_constants.h:
        * Source/webrtc/modules/rtp_rtcp/BUILD.gn:
        * Source/webrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc:
        * Source/webrtc/modules/rtp_rtcp/source/h265_sps_parser.cc: Added.
        * Source/webrtc/modules/rtp_rtcp/source/h265_sps_parser.h: Added.
        (webrtc::H265SpsParser::width):
        (webrtc::H265SpsParser::height):
        * Source/webrtc/modules/rtp_rtcp/source/rtp_format.cc:
        * Source/webrtc/modules/rtp_rtcp/source/rtp_format_h265.cc: Added.
        * Source/webrtc/modules/rtp_rtcp/source/rtp_format_h265.h: Added.
        (webrtc::RtpPacketizerH265::Packet::Packet):
        (webrtc::RtpPacketizerH265::PacketUnit::PacketUnit):
        (webrtc::VideoRtpDepacketizerH265::~VideoRtpDepacketizerH265):
        * Source/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc:
        * Source/webrtc/modules/rtp_rtcp/source/rtp_video_header.h:
        * Source/webrtc/modules/video_coding/BUILD.gn:
        * Source/webrtc/modules/video_coding/codecs/h265/include/h265_globals.h: Added.
        * Source/webrtc/modules/video_coding/encoded_frame.cc:
        * Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.cc: Added.
        * Source/webrtc/modules/video_coding/h265_vps_sps_pps_tracker.h: Added.
        * Source/webrtc/modules/video_coding/include/video_codec_interface.h:
        * Source/webrtc/modules/video_coding/jitter_buffer_common.h:
        * Source/webrtc/modules/video_coding/packet.cc:
        * Source/webrtc/modules/video_coding/packet_buffer.cc:
        * Source/webrtc/modules/video_coding/session_info.cc:
        * Source/webrtc/modules/video_coding/session_info.h:
        * Source/webrtc/rtc_base/experiments/min_video_bitrate_experiment.cc:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::createWebKitEncoderFactory):
        (webrtc::createWebKitDecoderFactory):
        * Source/webrtc/sdk/objc/components/video_codec/RTCCodecSpecificInfoH265+Private.h: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h.
        * Source/webrtc/sdk/objc/components/video_codec/RTCCodecSpecificInfoH265.h: Added.
        * Source/webrtc/sdk/objc/components/video_codec/RTCCodecSpecificInfoH265.mm: Added.
        (-[RTCCodecSpecificInfoH265 nativeCodecSpecificInfo]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:
        (-[RTCDefaultVideoDecoderFactory initWithH265:]):
        (-[RTCDefaultVideoDecoderFactory supportedCodecs]):
        (-[RTCDefaultVideoDecoderFactory createDecoder:]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m:
        (-[RTCDefaultVideoEncoderFactory initWithH265:]):
        (+[RTCDefaultVideoEncoderFactory supportedCodecs]):
        (-[RTCDefaultVideoEncoderFactory createEncoder:]):
        (-[RTCDefaultVideoEncoderFactory supportedCodecs]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCH265ProfileLevelId.h: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h.
        * Source/webrtc/sdk/objc/components/video_codec/RTCH265ProfileLevelId.mm: Added.
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.h: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h.
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm: Added.
        (RTCH265FrameDecodeParams::RTCH265FrameDecodeParams):
        (h265DecompressionOutputCallback):
        (-[RTCVideoDecoderH265 init]):
        (-[RTCVideoDecoderH265 dealloc]):
        (-[RTCVideoDecoderH265 startDecodeWithNumberOfCores:]):
        (-[RTCVideoDecoderH265 decode:missingFrames:codecSpecificInfo:renderTimeMs:]):
        (-[RTCVideoDecoderH265 setCallback:]):
        (-[RTCVideoDecoderH265 releaseDecoder]):
        (-[RTCVideoDecoderH265 resetDecompressionSession]):
        (-[RTCVideoDecoderH265 configureDecompressionSession]):
        (-[RTCVideoDecoderH265 destroyDecompressionSession]):
        (-[RTCVideoDecoderH265 setVideoFormat:]):
        (-[RTCVideoDecoderH265 implementationName]):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH265.h: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h.
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH265.mm: Added.
        (-[RTCVideoEncoderH265 initWithCodecInfo:]):
        (-[RTCVideoEncoderH265 dealloc]):
        (-[RTCVideoEncoderH265 startEncodeWithSettings:numberOfCores:]):
        (-[RTCVideoEncoderH265 encode:codecSpecificInfo:frameTypes:]):
        (-[RTCVideoEncoderH265 setCallback:]):
        (-[RTCVideoEncoderH265 setBitrate:framerate:]):
        (-[RTCVideoEncoderH265 releaseEncoder]):
        (-[RTCVideoEncoderH265 resetCompressionSession]):
        (-[RTCVideoEncoderH265 configureCompressionSession]):
        (-[RTCVideoEncoderH265 destroyCompressionSession]):
        (-[RTCVideoEncoderH265 implementationName]):
        (-[RTCVideoEncoderH265 setBitrateBps:]):
        (-[RTCVideoEncoderH265 setEncoderBitrateBps:]):
        (-[RTCVideoEncoderH265 frameWasEncoded:flags:sampleBuffer:width:height:renderTimeMs:timestamp:rotation:]):
        (-[RTCVideoEncoderH265 scalingSettings]):
        * Source/webrtc/sdk/objc/components/video_codec/nalu_rewriter.cc:
        * Source/webrtc/sdk/objc/components/video_codec/nalu_rewriter.h:
        * Source/webrtc/sdk/objc/native/src/objc_video_decoder_factory.mm:
        (webrtc::ObjCVideoDecoderFactory::CreateVideoDecoder):
        * Source/webrtc/sdk/objc/native/src/objc_video_encoder_factory.mm:
        (webrtc::ObjCVideoEncoderFactory::CreateVideoEncoder):
        * Source/webrtc/video/rtp_video_stream_receiver.cc:
        * Source/webrtc/video/rtp_video_stream_receiver.h:
        * Source/webrtc/video/send_statistics_proxy.cc:
        * Source/webrtc/video/video_receive_stream.cc:
        * Source/webrtc/video/video_stream_encoder.cc:
        * libwebrtc.xcodeproj/project.pbxproj:

2020-04-02  Keith Rollin  <krollin@apple.com>

        Sort libwebrtc Xcode project file

        * libwebrtc.xcodeproj/project.pbxproj:

2020-04-02  Simon Fraser  <simon.fraser@apple.com>

        Build fix after r259385.

        Reviewed by David Kilzer, Youenn Fablet.

        Convert isStandardFrameSize() into a lambda function since it only has one call site.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        (isStandardFrameSize): Deleted.

2020-04-02  Youenn Fablet  <youenn@apple.com>

        Temporarily restrict kVTVideoEncoderSpecification_RequiredLowLatency use to iOS
        https://bugs.webkit.org/show_bug.cgi?id=209902

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        Our setup with this key does not work yet on MacOS, disable it for now on MacOS.

2020-04-02  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed, fix libwebrtc build with GCC 9 after the M82 bump.

        GCC 9 fails to process the FrameGeneratorCapturerConfig::ImageSlides::Crop
        class, throwing an error due to the default member initializer for the
        `scroll_duration` member being required before the end of the
        encapsulating FrameGeneratorCapturerConfig::ImageSlides class.

        This can be avoided by default-initializing the
        FrameGeneratorCapturerConfig::ImageSlides::Crop member variable instead
        of specific members of that class.

        Similar fix will be pushed to the upstream repository.

        * Source/webrtc/test/frame_generator_capturer.h:

2020-04-01  youenn fablet  <youenn@apple.com> and Victor M. Jaquez <vjaquez@igalia.com>

        Bump libwebrtc to M82
        https://bugs.webkit.org/show_bug.cgi?id=209542

        Reviewed by Eric Carlson.

        * CMakeLists.txt:
        * Source/webrtc: Updated.
        * Source/webrtc/audio/utility/channel_mixer.cc: Added cstring.h include.
        * Source/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h: Added memoty.h include.
        * libwebrtc.xcodeproj/project.pbxproj:

2020-04-01  Youenn Fablet  <youenn@apple.com>

        Use kVTVideoEncoderSpecification_RequiredLowLatency instead of kVTVideoEncoderList_EncoderID
        https://bugs.webkit.org/show_bug.cgi?id=209800

        Reviewed by Eric Carlson.

        For recent OS versions, disable use of VCP.
        Instead, use VTB compression session with kVTVideoEncoderSpecification_RequiredLowLatency set to true.
        We keep MacOS code path checking frame size for public builds running on devices without hardware encoders.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        (isStandardFrameSize): Deleted.

2020-03-27  youenn fablet  <youenn@apple.com>

        Bump boringssl version to M82
        https://bugs.webkit.org/show_bug.cgi?id=209538

        Reviewed by Eric Carlson.

        * CMakeLists.txt:
        * Source/third_party/boringssl: Updated.
        * WebKit/0001-Tweaking-boringssl-include-of-internal.h.patch: Removed.
        * libwebrtc.xcodeproj/project.pbxproj:

2020-03-26  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION(r259042): It creates some test failures (Requested by youenn on #webkit).
        Roll back the patch.

2020-03-26  youenn fablet  <youenn@apple.com>

        Bump boringssl version to M82
        https://bugs.webkit.org/show_bug.cgi?id=209538

        Reviewed by Eric Carlson.

        * CMakeLists.txt:
        * Source/third_party/boringssl: Updated.
        * WebKit/0001-Tweaking-boringssl-include-of-internal.h.patch: Removed.
        * libwebrtc.xcodeproj/project.pbxproj:

2020-03-25  youenn fablet  <youenn@apple.com>

        Bump opus to M82
        https://bugs.webkit.org/show_bug.cgi?id=209540

        Reviewed by Eric Carlson.

        * Source/third_party/opus: Updated.

2020-03-25  youenn fablet  <youenn@apple.com>

        Bump libyuv to M82
        https://bugs.webkit.org/show_bug.cgi?id=209539

        Reviewed by Eric Carlson.

        * Source/third_party/libyuv: Updated.

2020-03-25  youenn fablet  <youenn@apple.com>

        Bump rnnoise to M82
        https://bugs.webkit.org/show_bug.cgi?id=209541

        Reviewed by Eric Carlson.

        * CMakeLists.txt:
        * Source/third_party/rnnoise: Updated.
        * libwebrtc.xcodeproj/project.pbxproj:

2020-03-19  Alex Christensen  <achristensen@webkit.org>

        Cherry pick usrsctp commit 790a7a2555aefb392a5a69923f1e9d17b4968467
        https://bugs.webkit.org/show_bug.cgi?id=209204
        <rdar://problem/59362671>

        Reviewed by Youenn Fablet.

        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_auth.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:

2020-03-17  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [CMake] libopus 1.1 its enough for building WebKitGTK with ENABLE_WEB_RTC
        https://bugs.webkit.org/show_bug.cgi?id=209209

        Reviewed by Konstantin Tokarev.

        Ubuntu 18.04 ships libopus 1.1.2 which its enough for building with -DENABLE_WEB_RTC=ON

        * CMakeLists.txt:

2020-03-13  Konstantin Tokarev  <annulen@yandex.ru>

        [CMake] Eleminate mismatches between Find* module names and variables they set
        https://bugs.webkit.org/show_bug.cgi?id=208948

        Reviewed by Michael Catanzaro.

        * CMakeLists.txt:
        * cmake/FindAlsaLib.cmake:
        * cmake/FindLibEvent.cmake:
        * cmake/FindLibOpus.cmake: Renamed from Source/ThirdParty/libwebrtc/cmake/FindOpus.cmake.
        * cmake/FindLibVpx.cmake: Renamed from Source/ThirdParty/libwebrtc/cmake/FindVpx.cmake.

2020-03-02  Alan Coon  <alancoon@apple.com>

        Add new Mac target numbers
        https://bugs.webkit.org/show_bug.cgi?id=208398

        Reviewed by Alexey Proskuryakov.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:
        * Configurations/WebKitTargetConditionals.xcconfig:

2020-02-09  Keith Rollin  <krollin@apple.com>

        Re-enable LTO for ARM builds
        https://bugs.webkit.org/show_bug.cgi?id=207402
        <rdar://problem/49190767>

        Reviewed by Sam Weinig.

        Bug 190758 re-enabled LTO for Production builds for x86-family CPUs.
        Enabling it for ARM was left out due to a compiler issue. That issue
        has been fixed, and so now we can re-enable LTO for ARM.

        * Configurations/Base.xcconfig:

2020-02-03  youenn fablet  <youenn@apple.com>

        Make sure RTCVideoEncoderH264 generate a keyframe even if the frame that was supposed to be a key frame was dropped
        https://bugs.webkit.org/show_bug.cgi?id=207108

        Reviewed by Eric Carlson.

        Add a parameter telling whether a frame to be encoded should be a key frame.
        In encoder callback, if the frame is expected to be a key frame, set a flag to force the next frame to be a key frame.
        This ensures that keyframe sending is not delayed in case encoding is dropping or failing to encode frames.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 initWithCodecInfo:]):
        (-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
        (-[RTCVideoEncoderH264 frameWasEncoded:flags:sampleBuffer:codecSpecificInfo:width:height:renderTimeMs:timestamp:rotation:isKeyFrameRequired:]):

2020-01-20  youenn fablet  <youenn@apple.com>

        Setting kVTCompressionPropertyKey_DataRateLimits on RTCVideoEncoderH264 fails
        https://bugs.webkit.org/show_bug.cgi?id=206402

        Reviewed by Eric Carlson.

        Add helper routine dedicated to setting VTB/VCP array value properties.
        Logging shows the bitrate is then set appropriately.

        * Source/webrtc/sdk/objc/components/video_codec/helpers.cc:
        * Source/webrtc/sdk/objc/components/video_codec/helpers.h:

2020-01-06  youenn fablet  <youenn@apple.com>

        Implement RTC VTB encoders in GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=205713

        Reviewed by Eric Carlson.

        Add support for remote video encoders created and used through simple routines.
        Add factory to create video encoders implemented elsewhere than in WebRTC backend.
        This is used for H264 encoders.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitEncoder.h: Added.
        (webrtc::WebKitRTPFragmentationHeader::value):
        (webrtc::WebKitEncodedFrameInfo::decode):
        (webrtc::WebKitEncodedFrameInfo::encode const):
        (webrtc::WebKitRTPFragmentationHeader::WebKitRTPFragmentationHeader):
        (webrtc::WebKitRTPFragmentationHeader::encode const):
        (webrtc::WebKitRTPFragmentationHeader::decode):
        * Source/webrtc/sdk/WebKit/WebKitEncoder.mm: Added.
        (webrtc::VideoEncoderFactoryWithSimulcast::CreateVideoEncoder):
        (webrtc::videoEncoderCallbacks):
        (webrtc::setVideoEncoderCallbacks):
        (webrtc::RemoteVideoEncoder::RemoteVideoEncoder):
        (webrtc::RemoteVideoEncoder::InitEncode):
        (webrtc::RemoteVideoEncoder::Release):
        (webrtc::RemoteVideoEncoder::Encode):
        (webrtc::RemoteVideoEncoder::SetRates):
        (webrtc::RemoteVideoEncoder::GetEncoderInfo const):
        (webrtc::RemoteVideoEncoder::RegisterEncodeCompleteCallback):
        (webrtc::RemoteVideoEncoder::encodeComplete):
        (webrtc::createLocalEncoder):
        (webrtc::releaseLocalEncoder):
        (webrtc::initializeLocalEncoder):
        (webrtc::encodeLocalEncoderFrame):
        (webrtc::setLocalEncoderRates):
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        * libwebrtc.xcodeproj/project.pbxproj:

2020-01-01  youenn fablet  <youenn@apple.com>

        Implement transceiver setCodecPreferences
        https://bugs.webkit.org/show_bug.cgi?id=190840
        <rdar://problem/45496326>

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2019-12-31  youenn fablet  <youenn@apple.com>

        Implement RTC VTB decoders in GPUProcess
        https://bugs.webkit.org/show_bug.cgi?id=205607

        Reviewed by Eric Carlson.

        Expose remote decoder abilities with C like functions.
        This allows WebProcess to implement IPC-based decoders.
        Expose VTB H264 decoder as C like functions.
        This allows GPU process to instantiate wasily H2664 decoders.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::videoDecoderCallbacks):
        (webrtc::setVideoDecoderCallbacks):
        (webrtc::RemoteVideoDecoder::RemoteVideoDecoder):
        (webrtc::RemoteVideoDecoder::decodeComplete):
        (webrtc::RemoteVideoDecoder::InitDecode):
        (webrtc::RemoteVideoDecoder::Decode):
        (webrtc::RemoteVideoDecoder::RegisterDecodeCompleteCallback):
        (webrtc::RemoteVideoDecoder::Release):
        (webrtc::RemoteVideoDecoderFactory::RemoteVideoDecoderFactory):
        (webrtc::RemoteVideoDecoderFactory::GetSupportedFormats const):
        (webrtc::RemoteVideoDecoderFactory::CreateVideoDecoder):
        (webrtc::createWebKitDecoderFactory):
        (webrtc::createLocalDecoder):
        (webrtc::releaseLocalDecoder):
        (webrtc::decodeFrame):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm:
        (-[RTCVideoDecoderH264 decode:missingFrames:codecSpecificInfo:renderTimeMs:]):
        (-[RTCVideoDecoderH264 decodeData:size:timeStamp:]):

2019-12-30  youenn fablet  <youenn@apple.com>

        Do not build yasm for iOS and iOS simulator
        https://bugs.webkit.org/show_bug.cgi?id=205556
        <rdar://problem/58159497>

        Reviewed by Eric Carlson.

        We want to stop compiling yasm for iOS/iOS simulator but we do not have a good way to do so right now.
        Instead, compile a dummy main_noop.c for iOS/iOS simulator and build the executable with it.
        This executable wil anyway not be used on these platforms.

        * Configurations/yasm.xcconfig:
        * Source/third_party/yasm/main_noop.c: Added.
        (main):
        * libwebrtc.xcodeproj/project.pbxproj:

2019-12-23  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r253884.
        https://bugs.webkit.org/show_bug.cgi?id=205565

        Broke production builds (Requested by ap on #webkit).

        Reverted changeset:

        "Do not build yasm for iOS and iOS simulator"
        https://bugs.webkit.org/show_bug.cgi?id=205556
        https://trac.webkit.org/changeset/253884

2019-12-23  youenn fablet  <youenn@apple.com>

        Do not build yasm for iOS and iOS simulator
        https://bugs.webkit.org/show_bug.cgi?id=205556
        <rdar://problem/58159497>

        Reviewed by Eric Carlson.

        Now that we no longer need yasm for iOS simulator, we can stop building it for iOS and iOS simulator.
        We can also remove the hack to run yasm.

        * Configurations/yasm.xcconfig:
        * libwebrtc.xcodeproj/project.pbxproj:

2019-12-22  youenn fablet  <youenn@apple.com>

        Compile libwebrtc without hardware acceleration for iOS simulator
        https://bugs.webkit.org/show_bug.cgi?id=205491

        Reviewed by Alex Christensen.

        Use c routines instead of optimized versions for iOS simulator.

        * Configurations/libvpx.xcconfig:
        * Source/third_party/libvpx/source/config/mac/x64/vp8_rtcd.h:
        * Source/third_party/libvpx/source/config/mac/x64/vp8_rtcd_no_acceleration.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/mac/x64/vp8_rtcd.h.
        * Source/third_party/libvpx/source/config/mac/x64/vpx_config.h:
        * Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
        * Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd_no_acceleration.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h.
        * Source/third_party/libvpx/source/libvpx/vpx_ports/system_state.h:
        * libwebrtc.xcodeproj/project.pbxproj:

2019-12-08  youenn fablet  <youenn@apple.com>

        Add more logging to physical socket server when a socket file descriptor is invalid
        https://bugs.webkit.org/show_bug.cgi?id=204948

        Reviewed by Darin Adler.

        * Source/webrtc/rtc_base/physical_socket_server.cc:

2019-11-15  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, GTK/WPE Debug build fix after r252472.

        * CMakeLists.txt:

2019-11-07  Youenn Fablet  <youenn@apple.com> and Thibault Saunier <tsaunier@igalia.com>

        Update libwebrtc to M78
        https://bugs.webkit.org/show_bug.cgi?id=203897

        Reviewed by Eric Carlson.

        * webrtc: Updated

2019-11-04  Youenn Fablet  <youenn@apple.com>

        Update libwebrtc third-party boringssl to M78
        https://bugs.webkit.org/show_bug.cgi?id=202731

        Reviewed by Alex Christensen.

        * CMakeLists.txt:
        * Source/third_party/boringssl: Updated.
        * libwebrtc.xcodeproj/project.pbxproj:

2019-11-04  youenn fablet  <youenn@apple.com>

        Unreviewed.
        Revert https://trac.webkit.org/changeset/251980 since commit queue actually succeeded to land it previously.

        * Source/third_party/yasm-1.3.0: removed.

2019-11-04  youenn fablet  <youenn@apple.com>

        Rename yasm-1.3.0 folder to yasm
        https://bugs.webkit.org/show_bug.cgi?id=202725

        Reviewed by Eric Carlson.

        To align with upstream repository.

        * Configurations/yasm.xcconfig:
        * Source/third_party/yasm: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/yasm-1.3.0.
        * libwebrtc.xcodeproj/project.pbxproj:

2019-10-18  youenn fablet  <youenn@apple.com>

        Update libwebrtc third-party abseilcpp to M78
        https://bugs.webkit.org/show_bug.cgi?id=202726
        <rdar://problem/56147823>

        Unreviewed.

        * Source/third_party/abseil-cpp/absl/strings/string_view.h:
        (absl::string_view::CheckLengthInternal):
        Build fix for debug bots.

2019-10-17  Youenn Fablet  <youenn@apple.com>

        Add libwebrtc third-party pfft
        https://bugs.webkit.org/show_bug.cgi?id=202733

        Reviewed by Eric Carlson.

        Initial check-in of pfft which is now used in libwebrtc.

        * Source/third_party/pffft: Added.

2019-10-10  Youenn Fablet  <youenn@apple.com>

        Update libwebrtc third-party jsoncpp to M78
        https://bugs.webkit.org/show_bug.cgi?id=202729

        Reviewed by Eric Carlson.

        * Source/third_party/jsoncpp: Updated.

2019-10-10  youenn fablet  <youenn@apple.com>

        Rename yasm-1.3.0 folder to yasm
        https://bugs.webkit.org/show_bug.cgi?id=202725

        Reviewed by Eric Carlson.

        To align with upstream repository.

        * Configurations/yasm.xcconfig:
        * Source/third_party/yasm: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/yasm-1.3.0.
        * libwebrtc.xcodeproj/project.pbxproj:

2019-10-10  Youenn Fablet  <youenn@apple.com>

        Update libwebrtc third-party abseilcpp to M78
        https://bugs.webkit.org/show_bug.cgi?id=202726

        Reviewed by Alex Christensen.

        * CMakeLists.txt: Remove optional.cc.
        * Source/third_party/abseil-cpp: Updated.
        * libwebrtc.xcodeproj/project.pbxproj: Remove optional.cc.

2019-10-10  Youenn Fablet  <youenn@apple.com>

        Update libwebrtc third-party opus to M78
        https://bugs.webkit.org/show_bug.cgi?id=202728

        Reviewed by Alex Christensen.

        * Source/third_party/opus: Updated.

2019-10-10  Youenn Fablet  <youenn@apple.com>

        Update libwebrtc third-arty libyuv to M78
        https://bugs.webkit.org/show_bug.cgi?id=202727

        Reviewed by Alex Christensen.

        libyuv

        * Source/third_party/libyuv: Updated.

2019-10-04  youenn fablet  <youenn@apple.com>

        Allow to suspend RTCPeerConnection when not connected
        https://bugs.webkit.org/show_bug.cgi?id=202403

        Reviewed by Chris Dumez.

        Export rtc::TimeMillis()

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2019-09-11  Youenn Fablet  <youenn@apple.com>

        Disable DTLS1.0
        https://bugs.webkit.org/show_bug.cgi?id=201679

        Reviewed by Alex Christensen.

        * Source/webrtc/rtc_base/opensslstreamadapter.cc:
        Set minimum version to DTLS1.2 when DTLS1.2 is supported.
        This makes sure any client will never downgrade to DTLS1.0.

2019-08-29  Keith Rollin  <krollin@apple.com>

        Update .xcconfig symbols to reflect the current set of past and future product versions.
        https://bugs.webkit.org/show_bug.cgi?id=200720
        <rdar://problem/54305032>

        Reviewed by Alex Christensen.

        Remove version symbols related to old OS's we no longer support,
        ensure that version symbols are defined for OS's we do support.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:

2019-08-29  Keith Rollin  <krollin@apple.com>

        Remove support for macOS < 10.13 (part 3)
        https://bugs.webkit.org/show_bug.cgi?id=201224
        <rdar://problem/54795934>

        Reviewed by Darin Adler.

        Remove symbols in WebKitTargetConditionals.xcconfig related to macOS
        10.13, including WK_MACOS_1013 and WK_MACOS_BEFORE_1013, and suffixes
        like _MACOS_SINCE_1013.

        * Configurations/WebKitTargetConditionals.xcconfig:

2019-08-15  Youenn Fablet  <youenn@apple.com>

        Make mock libwebrtc tests run with unified plan
        https://bugs.webkit.org/show_bug.cgi?id=200713

        Reviewed by Alex Christensen.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2019-08-14  Keith Rollin  <krollin@apple.com>

        Remove support for macOS < 10.13
        https://bugs.webkit.org/show_bug.cgi?id=200694
        <rdar://problem/54278851>

        Reviewed by Youenn Fablet.

        Update conditionals that reference __MAC_OS_X_VERSION_MIN_REQUIRED and
        __MAC_OS_X_VERSION_MAX_ALLOWED, assuming that they both have values >=
        101300. This means that expressions like
        "__MAC_OS_X_VERSION_MIN_REQUIRED < 101300" are always False and
        "__MAC_OS_X_VERSION_MIN_REQUIRED >= 101300" are always True.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        * WebKit/libwebrtc.diff:

2019-08-13  Youenn Fablet  <youenn@apple.com>

        User Agent and SessionID should be given to NetworkRTCProvider to set up the correct proxy information
        https://bugs.webkit.org/show_bug.cgi?id=200583

        Reviewed by Eric Carlson.

        Export of some symbols.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2019-08-02  Youenn Fablet  <youenn@apple.com>

        Add build check for libwebrtc ObjectiveC names
        https://bugs.webkit.org/show_bug.cgi?id=200365

        Reviewed by Eric Carlson.

        Only allow ObjectiveC names starting with WK_RTC.

        * libwebrtc.xcodeproj/project.pbxproj:

2019-08-02  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r248156.
        https://bugs.webkit.org/show_bug.cgi?id=200393

        It broke internal bots (Requested by youenn on #webkit).

        Reverted changeset:

        "Add build check for libwebrtc ObjectiveC names"
        https://bugs.webkit.org/show_bug.cgi?id=200365
        https://trac.webkit.org/changeset/248156

2019-08-02  Youenn Fablet  <youenn@apple.com>

        Add build check for libwebrtc ObjectiveC names
        https://bugs.webkit.org/show_bug.cgi?id=200365

        Reviewed by Eric Carlson.

        Only allow ObjectiveC names starting with WK_RTC.

        * libwebrtc.xcodeproj/project.pbxproj:

2019-08-01  Loïc Yhuel  <loic.yhuel@softathome.com>

        Fix libwebrtc build with Linux 5.2 headers
        https://bugs.webkit.org/show_bug.cgi?id=200342

        Reviewed by Eric Carlson.

        We need to include linux/sockios.h for SIOCGSTAMP.
        Take upstream fix from https://bugs.chromium.org/p/webrtc/issues/detail?id=10677.

        * Source/webrtc/rtc_base/physicalsocketserver.cc:

2019-07-31  Youenn Fablet  <youenn@apple.com>

        ObjC RTCCVPixelBuffer should be prefixed to not conflict with other apps
        https://bugs.webkit.org/show_bug.cgi?id=200289
        <rdar://problem/49554670>

        Reviewed by Darin Adler.

        * Source/webrtc/sdk/objc/components/video_frame_buffer/RTCCVPixelBuffer.h:

2019-07-17  Youenn Fablet  <youenn@apple.com>

        Use VCP SPI in case creation of a compression session with VTB for 'h264.rtvc' fails
        https://bugs.webkit.org/show_bug.cgi?id=199863
        <rdar://problem/52922217>

        Reviewed by Darin Adler.

        Calling VTCompressionSessionCreate with kVTVideoEncoderList_EncoderID "com.apple.videotoolbox.videoencoder.h264.rtvc"
        fails on some platforms. In such a case, use VCP SPI if available as a fallback.
        Covered by exisiting webrtc tests on these specific platforms.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

2019-07-15  Youenn Fablet  <youenn@apple.com>

        Enable a debug WebRTC mode without any encryption
        https://bugs.webkit.org/show_bug.cgi?id=199177
        <rdar://problem/52074986>

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2019-06-28  Dean Jackson  <dino@apple.com>

        unable to build WebRTC for iOS Simulator
        https://bugs.webkit.org/show_bug.cgi?id=199337
        <rdar://problem/52020841>

        Reviewed by Tim Horton.

        Run the compiled yasm with DYLD_ROOT_PATH=/
        in order to convince dyld that it can load
        the simulator binary on macOS.

        * libwebrtc.xcodeproj/project.pbxproj:

2019-06-27  Beth Dakin  <bdakin@apple.com>

        Upstream use of MACCATALYST
        https://bugs.webkit.org/show_bug.cgi?id=199245
        rdar://problem/51687723

        Reviewed by Tim Horton.

        * Configurations/SDKVariant.xcconfig:

2019-06-25  Youenn Fablet  <youenn@apple.com>

        Close sockets with too high file descriptor
        https://bugs.webkit.org/show_bug.cgi?id=199116

        Reviewed by Eric Carlson.

        * Source/webrtc/rtc_base/physicalsocketserver.cc:
        * WebKit/0001-Close-sockets-with-file-descriptors-above-FD_SETSIZE.patch: Added.

2019-06-21  Youenn Fablet  <youenn@apple.com>

        Make sure to check for file descriptor value before using FD_CLR
        https://bugs.webkit.org/show_bug.cgi?id=199097
        <rdar://problem/51479074>

        Reviewed by Eric Carlson.

        * Source/webrtc/rtc_base/physicalsocketserver.cc:
        * WebKit/0001-fix-fd-clr.patch: Added.

2019-06-12  Youenn Fablet  <youenn@apple.com>

        Make sure libwebrtc ObjC codec interfaces do not conflict
        https://bugs.webkit.org/show_bug.cgi?id=198782
        <rdar://problem/51503247>

        Reviewed by Eric Carlson.

        Rename some ObjC interfaces that we are now using in libwebrtc.

        * Source/webrtc/sdk/objc/api/video_codec/RTCVideoDecoderVP8.h:
        * Source/webrtc/sdk/objc/api/video_codec/RTCWrappedNativeVideoDecoder.h:
        * Source/webrtc/sdk/objc/api/video_codec/RTCWrappedNativeVideoEncoder.h:
        * libwebrtc.xcodeproj/project.pbxproj:

2019-06-10  Youenn Fablet  <youenn@apple.com>

        Call was negotiated with H264 Base Profile 42e01f but encoded in High Profile
        https://bugs.webkit.org/show_bug.cgi?id=195124
        <rdar://problem/48453085>

        Reviewed by Eric Carlson.

        Use VTB directly instead of VCP when baseline is requested.
        For platforms supporting the VCP-in-VTB API, use VCP for high profile, VTB for baseline.
        For platforms not supporting the VCP-in-VTB API, use regular VTB for both baseline and high profile.
        On MacOS, if VTB session creation fails, use VCP as a fallback.
        Keep VTB-only code path for non internal builds.

        * Source/webrtc/sdk/WebKit/EncoderUtilities.h: Removed.
        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCSingleVideoEncoderH264 initWithCodecInfo:simulcastIndex:]):
        (-[RTCSingleVideoEncoderH264 hasCompressionSession]):
        (-[RTCSingleVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
        (-[RTCSingleVideoEncoderH264 resetCompressionSessionIfNeededWithFrame:]):
        (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        (-[RTCSingleVideoEncoderH264 configureCompressionSession]):
        (-[RTCSingleVideoEncoderH264 destroyCompressionSession]):
        (-[RTCSingleVideoEncoderH264 setEncoderBitrateBps:]):
        * Source/webrtc/sdk/objc/components/video_codec/helpers.cc:
        * Source/webrtc/sdk/objc/components/video_codec/helpers.h:

2019-05-28  Youenn Fablet  <youenn@apple.com>

        createAnswer() SDP Rejected by setLocalDescription()
        https://bugs.webkit.org/show_bug.cgi?id=195930
        <rdar://problem/49030489>

        Reviewed by Eric Carlson.

        Make sure to check packetization mode parameter when matching H264 video codec.

        * Source/webrtc/media/base/codec.cc:
        * WebKit/0001-fix-195930.patch: Added.

2019-05-09  Andy Estes  <aestes@apple.com>

        Fix 32-bit watchOS engineering builds after r244726.

        Unreviewed.

        * Configurations/DebugRelease.xcconfig:

2019-05-03  Youenn Fablet  <youenn@apple.com>

        Do not require log_to_stderr for WebRTC logging through WebKit
        https://bugs.webkit.org/show_bug.cgi?id=197560

        Reviewed by Eric Carlson.

        * Source/webrtc/rtc_base/logging.cc:

2019-04-29  Alex Christensen  <achristensen@webkit.org>

        <rdar://problem/50299396> Fix internal High Sierra build
        https://bugs.webkit.org/show_bug.cgi?id=197388

        * Configurations/Base.xcconfig:

2019-04-28  Andy Estes  <aestes@apple.com>

        Fix the watchOS engineering build.

        * Makefile: Set OTHER_OPTIONS to build libwebrtc's boringssl target on watchOS, which is a
        dependency for TestWebKitAPI's TCPServer.

2019-04-26  Jessie Berlin  <jberlin@webkit.org>

        Add new mac target numbers
        https://bugs.webkit.org/show_bug.cgi?id=197313

        Reviewed by Alex Christensen.

        * Configurations/Version.xcconfig:
        * Configurations/WebKitTargetConditionals.xcconfig:

2019-04-25  Youenn Fablet  <youenn@apple.com>

        Make sure sockets file descriptors are in the correct range
        https://bugs.webkit.org/show_bug.cgi?id=197301
        <rdar://problem/48389381>

        Reviewed by Chris Dumez.

        * Source/webrtc/rtc_base/physicalsocketserver.cc:
        * WebKit/0001-fix-197301.patch: Added.

2019-04-25  Alex Christensen  <achristensen@webkit.org>

        Start using C++17
        https://bugs.webkit.org/show_bug.cgi?id=197131

        Reviewed by Darin Adler.

        * Configurations/Base.xcconfig:

2019-04-23  Alex Christensen  <achristensen@webkit.org>

        Add unit tests for WKWebView.serverTrust
        https://bugs.webkit.org/show_bug.cgi?id=197202

        Reviewed by Youenn Fablet.

        * libwebrtc.xcodeproj/project.pbxproj:
        Move boringssl files from libwebrtc target to boringssl target.
        Also, add pkcs7 files to boringssl static library.

2019-04-08  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Fix Web GPU experimental feature on iOS
        https://bugs.webkit.org/show_bug.cgi?id=196632

        Reviewed by Myles C. Maxfield.

        Add conditionals for iOS 11.

        * Configurations/WebKitTargetConditionals.xcconfig:

2019-04-04  Youenn Fablet  <youenn@apple.com>

        Log the error if VideoProcessing library cannot be dlopen
        https://bugs.webkit.org/show_bug.cgi?id=196609

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp:
        (webrtc::initVideoProcessingVPModuleInitialize):

2019-04-03  Youenn Fablet  <youenn@apple.com>

        Add logging and ASSERTs to investigate issue with VPModuleInitialize
        https://bugs.webkit.org/show_bug.cgi?id=196573

        Reviewed by Eric Carlson.

        Expand macros directly to add some logging.
        Removed the dispatch_once since VPModuleInitialize is already called in one.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp:
        (webrtc::initVideoProcessingVPModuleInitialize):

2019-04-03  Youenn Fablet  <youenn@apple.com>

        Remove unneeded libwebrtc files
        https://bugs.webkit.org/show_bug.cgi?id=196553

        Reviewed by Eric Carlson.

        * Source/third_party/boringssl/src/fuzz: Removed.
        * Source/third_party/protobuf/csharp/keys: Removed.

2019-04-03  Youenn Fablet  <youenn@apple.com>

        Adopt new VCP SPI
        https://bugs.webkit.org/show_bug.cgi?id=193357
        <rdar://problem/43656651>

        Reviewed by Eric Carlson.

       Enable VCP through VTB API with specific encoder id.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp:
        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::setApplicationStatus):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

2019-04-02  Thibault Saunier  <tsaunier@igalia.com>

        [GSteamer][WebRTC] Fix building libwebrtc on ARM
        https://bugs.webkit.org/show_bug.cgi?id=196157

        Reviewed by Philippe Normand.

        Making sure neon files are built as required

        * CMakeLists.txt:

2019-03-22  Keith Rollin  <krollin@apple.com>

        Enable ThinLTO support in Production builds
        https://bugs.webkit.org/show_bug.cgi?id=190758
        <rdar://problem/45413233>

        Reviewed by Daniel Bates.

        Enable building with Thin LTO in Production when using Xcode 10.2 or
        later. This change results in a 1.45% progression in PLT5. Full
        Production build times increase about 2-3%. Incremental build times
        are more severely affected, and so LTO is not enabled for local
        engineering builds.

        LTO is enabled only on macOS for now, until rdar://problem/49013399,
        which affects ARM builds, is fixed.

        To change the LTO setting when building locally:

        - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
          command line.
        - If building with `build-webkit`, specify --lto-mode={none,thin,full}
          on the command line.
        - If building with `build-root`, specify --lto={none,thin,full} on the
          command line.
        - If building with Xcode, create a LocalOverrides.xcconfig file at the
          top level of your repository directory (if needed) and define
          WK_LTO_MODE to full, thin, or none.

        * Configurations/Base.xcconfig:

2019-03-13  Keith Rollin  <krollin@apple.com>

        Add support for new StagedFrameworks layout
        https://bugs.webkit.org/show_bug.cgi?id=195543

        Reviewed by Alexey Proskuryakov.

        When creating the WebKit layout for out-of-band Safari/WebKit updates,
        use an optional path prefix when called for.

        * Configurations/Base.xcconfig:

2019-03-13  Youenn Fablet  <youenn@apple.com>

        Enable libwebrtc logging control through WebCore
        https://bugs.webkit.org/show_bug.cgi?id=195658

        Reviewed by Eric Carlson.

        Add a callback to get access to libwebrtc log messages.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/rtc_base/logging.cc:
        * Source/webrtc/rtc_base/logging.h:

2019-03-07  Youenn Fablet  <youenn@apple.com>

        Skip compilation of unused audio device files for Mac and iOS
        https://bugs.webkit.org/show_bug.cgi?id=195412

        Reviewed by Eric Carlson.

        Stop compiling audio_device_mac.cc, audio_mixer_manager_mac.cc and voice_processing_audio_unit.mm
        as unused in WebKit.
        * libwebrtc.xcodeproj/project.pbxproj:

2019-02-23  Keith Miller  <keith_miller@apple.com>

        Add new mac target numbers
        https://bugs.webkit.org/show_bug.cgi?id=194955

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:

2019-02-20  Andy Estes  <aestes@apple.com>

        [Xcode] Add SDKVariant.xcconfig to various Xcode projects
        https://bugs.webkit.org/show_bug.cgi?id=194869

        Rubber-stamped by Jer Noble.

        * libwebrtc.xcodeproj/project.pbxproj:

2019-02-04  David Kilzer  <ddkilzer@apple.com>

        vp8e_mr_alloc_mem() leaks LOWER_RES_FRAME_INFO if second memory allocation fails
        <https://webkit.org/b/194265>

        Reviewed by Youenn Fablet.

        * Source/third_party/libvpx/source/libvpx/vp8/vp8_cx_iface.c:
        (vp8e_mr_alloc_mem):
        - Initialize `res` to VPX_CODEC_OK instead of 0.
        - Return early if first calloc() fails instead of trying the
          second calloc().  The function would crash dereferencing
          nullptr in `shared_mem_loc->mb_info` otherwise.
        - Call free(shared_mem_loc) if the second call to calloc()
          fails.  This fixes the leak.
        * WebKit/0003-libwebrtc-fix-vp8e_mr_alloc_mem-leak.diff: Add.

2019-01-30  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r240665.
        https://bugs.webkit.org/show_bug.cgi?id=194039

        "Better to postpone SPI adoption" (Requested by youenn on
        #webkit).

        Reverted changeset:

        "Adopt new VCP SPI"
        https://bugs.webkit.org/show_bug.cgi?id=193357
        https://trac.webkit.org/changeset/240665

2019-01-29  Youenn Fablet  <youenn@apple.com>

        Adopt new VCP SPI
        https://bugs.webkit.org/show_bug.cgi?id=193357
        <rdar://problem/43656651>

        Reviewed by Eric Carlson.

        Enable VCP through VTB API with specific encoder id.
        If encoder id is not supported, fallback to VCP.
        A specific routine is added to check for encoder id presence.

        * Source/webrtc/sdk/WebKit/EncoderUtilities.h:
        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp:
        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::setApplicationStatus):
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

2019-01-25  Keith Rollin  <krollin@apple.com>

        Update WebKitAdditions.xcconfig with correct order of variable definitions
        https://bugs.webkit.org/show_bug.cgi?id=193793
        <rdar://problem/47532439>

        Reviewed by Alex Christensen.

        XCBuild changes the way xcconfig variables are evaluated. In short,
        all config file assignments are now considered in part of the
        evaluation. When using the new build system and an .xcconfig file
        contains multiple assignments of the same build setting:

        - Later assignments using $(inherited) will inherit from earlier
          assignments in the xcconfig file.
        - Later assignments not using $(inherited) will take precedence over
          earlier assignments. An assignment to a more general setting will
          mask an earlier assignment to a less general setting. For example,
          an assignment without a condition ('FOO = bar') will completely mask
          an earlier assignment with a condition ('FOO[sdk=macos*] = quux').

        This affects some of our .xcconfig files, in that sometimes platform-
        or sdk-specific definitions appear before the general definitions.
        Under the new evaluations rules, the general definitions alway take
        effect because they always overwrite the more-specific definitions. The
        solution is to swap the order, so that the general definitions are
        established first, and then conditionally overwritten by the
        more-specific definitions.

        * Configurations/Version.xcconfig:

2019-01-22  Youenn Fablet  <youenn@apple.com>

        Resync libwebrtc with latest M72 branch
        https://bugs.webkit.org/show_bug.cgi?id=193693

        Reviewed by Eric Carlson.

        Update libwebrtc up to latest M72 branch to fix some identified issues:
        - Bad bandwidth estimation in case of multiple transceivers
        - mid handling for legacy endpoints
        - msid handling for updating mediastreams accordingly.

        * Source/webrtc/modules/congestion_controller/goog_cc/delay_based_bwe.cc:
        * Source/webrtc/modules/congestion_controller/goog_cc/delay_based_bwe.h:
        * Source/webrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc:
        * Source/webrtc/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc:
        * Source/webrtc/modules/congestion_controller/send_side_congestion_controller_unittest.cc:
        * Source/webrtc/pc/jsepsessiondescription_unittest.cc:
        * Source/webrtc/pc/mediasession.cc:
        * Source/webrtc/pc/mediasession_unittest.cc:
        * Source/webrtc/pc/peerconnection.cc:
        * Source/webrtc/pc/peerconnection.h:
        * Source/webrtc/pc/peerconnection_jsep_unittest.cc:
        * Source/webrtc/pc/peerconnection_media_unittest.cc:
        * Source/webrtc/pc/peerconnection_rtp_unittest.cc:
        * Source/webrtc/pc/sessiondescription.cc:
        * Source/webrtc/pc/sessiondescription.h:
        * Source/webrtc/pc/webrtcsdp.cc:
        * Source/webrtc/pc/webrtcsdp_unittest.cc:
        * Source/webrtc/system_wrappers/include/metrics.h:
        * Source/webrtc/video/BUILD.gn:

2019-01-18  Jer Noble  <jer.noble@apple.com>

        SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
        https://bugs.webkit.org/show_bug.cgi?id=189553

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/SDKVariant.xcconfig: Added.

2019-01-17  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r240124.

        This commit broke an internal build.

        Reverted changeset:

        "SDK_VARIANT build destinations should be separate from non-
        SDK_VARIANT builds"
        https://bugs.webkit.org/show_bug.cgi?id=189553
        https://trac.webkit.org/changeset/240124

2019-01-17  Jer Noble  <jer.noble@apple.com>

        SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
        https://bugs.webkit.org/show_bug.cgi?id=189553

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/SDKVariant.xcconfig: Added.

2019-01-16  David Kilzer  <ddkilzer@apple.com>

        clang-tidy: Fix unnecessary copy/ref churn of for loop variables in libwebrtc
        <https://webkit.org/b/193498>

        Reviewed by Youenn Fablet.

        Fix unwanted copying/ref churn of loop variables by making them
        const references.

        * Source/webrtc/modules/bitrate_controller/loss_based_bandwidth_estimation.cc:
        * Source/webrtc/modules/rtp_rtcp/source/rtcp_receiver.cc:
        * Source/webrtc/p2p/base/mdns_message.cc:
        * Source/webrtc/p2p/base/port.cc:
        * Source/webrtc/p2p/base/stunrequest.cc:
        * Source/webrtc/pc/jseptransportcontroller.cc:
        * Source/webrtc/pc/peerconnection.cc:
        * Source/webrtc/pc/rtcstatscollector.cc:
        * Source/webrtc/pc/rtpreceiver.cc:
        * Source/webrtc/pc/rtptransceiver.cc:
        * Source/webrtc/pc/statscollector.cc:
        * Source/webrtc/pc/trackmediainfomap.cc:
        * Source/webrtc/rtc_base/filerotatingstream.cc:
        * Source/webrtc/rtc_base/opensslsessioncache.cc:
        * Source/webrtc/video/receive_statistics_proxy.cc:
        * WebKit/0002-libwebrtc-fix-unnecessary-copy-of-for-loop-variables.diff: Added.

2019-01-15  David Kilzer  <ddkilzer@apple.com>

        REGRESSION (r239510): Remove duplicate copy of srtpsession.cc from 'webrtcpcrtc' target in Xcode project

        Fixes the following Xcode warning:

            warning: Skipping duplicate build file in Compile Sources build phase: Source/ThirdParty/libwebrtc/Source/webrtc/pc/srtpsession.cc (in target 'webrtcpcrtc')

        * libwebrtc.xcodeproj/project.pbxproj: Remove duplicate copy of
        srtpsession.cc from 'webrtcpcrtc' target.

2019-01-10  Youenn Fablet  <youenn@apple.com>

        VPModuleInitialize should be called when VCP is enabled
        https://bugs.webkit.org/show_bug.cgi?id=193299

        Reviewed by Eric Carlson.

        Add the necessary include to make sure ENABLE_VCP_ENCODER is defined appropriately.

        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

2018-12-22  Dan Bernstein  <mitz@apple.com>

        Fixed Apple production builds.

        * Configurations/Base.xcconfig: Exclude the Source/third_party/boringssl/src/util
          subdirectory, which contains binaries, from installsrc. Its contents are not used for
          building any of the targets in the project.

2018-12-21  Youenn Fablet  <youenn@apple.com> and Alejandro G. Castro  <alex@igalia.com>

        Resync BoringSSL to M72
        https://bugs.webkit.org/show_bug.cgi?id=192860

        Reviewed by Eric Carlson.

        * Source/third_party/boringssl: Resynced to Chrome M72 branch.

2018-12-21  Youenn Fablet  <youenn@apple.com>

        Resync opus to M72
        https://bugs.webkit.org/show_bug.cgi?id=192867

        Reviewed by Alex Christensen.

        * Configurations/opus.xcconfig: Updated compilation flag.
        * Source/third_party/opus: Resynced to Chrome M72 branch.

2018-12-21  Youenn Fablet  <youenn@apple.com>

        Resync libsrtp to M72
        https://bugs.webkit.org/show_bug.cgi?id=192861

        Reviewed by Eric Carlson.

        * Source/third_party/libsrtp/: Resynced to Chrome M72 branch.

2018-12-21  Youenn Fablet  <youenn@apple.com>

        Use kVTCompressionPropertyKey_Usage instead of kVTVideoEncoderSpecification_Usage
        https://bugs.webkit.org/show_bug.cgi?id=192885

        Reviewed by Eric Carlson.

        When VCP is enabled, use kVTCompressionPropertyKey_Usage as this is
        kVTVideoEncoderSpecification_Usage no longer works to activate VCP on iOS.
        Tested manually.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        (-[RTCSingleVideoEncoderH264 configureCompressionSession]):

2018-12-19  Youenn Fablet  <youenn@apple.com>

        Refresh usrsctplib to M72
        https://bugs.webkit.org/show_bug.cgi?id=192863

        Reviewed by Alex Christensen.

        * Source/third_party/usrsctp/: Resynced to Chrome M72 branch.

2018-12-19  Youenn Fablet  <youenn@apple.com>

        Refresh libyuv to M72
        https://bugs.webkit.org/show_bug.cgi?id=192864

        Reviewed by Alex Christensen.

        * Source/third_party/libyuv: Resynced.

2018-12-19  Youenn Fablet  <youenn@apple.com>

        Resync libwebrtc with M72 branch
        https://bugs.webkit.org/show_bug.cgi?id=192858

        Reviewed by Eric Carlson.

        Merge changes made upstream.
        Some of these changes improve support of unified plan and backward compatiblity.

        * Source/webrtc/api/candidate.cc:
        * Source/webrtc/api/candidate.h:
        * Source/webrtc/api/rtpreceiverinterface.h:
        * Source/webrtc/api/umametrics.h:
        * Source/webrtc/media/engine/webrtcvideoengine.cc:
        * Source/webrtc/media/engine/webrtcvideoengine_unittest.cc:
        * Source/webrtc/modules/audio_processing/agc2/agc2_common.h:
        * Source/webrtc/modules/desktop_capture/desktop_and_cursor_composer.cc:
        * Source/webrtc/modules/video_coding/BUILD.gn:
        * Source/webrtc/modules/video_coding/codecs/vp9/svc_config.cc:
        * Source/webrtc/modules/video_coding/codecs/vp9/svc_rate_allocator.cc:
        * Source/webrtc/modules/video_coding/codecs/vp9/svc_rate_allocator.h:
        * Source/webrtc/modules/video_coding/codecs/vp9/svc_rate_allocator_unittest.cc:
        * Source/webrtc/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc:
        * Source/webrtc/modules/video_coding/codecs/vp9/vp9.cc:
        * Source/webrtc/modules/video_coding/video_codec_initializer.cc:
        * Source/webrtc/modules/video_coding/video_codec_initializer_unittest.cc:
        * Source/webrtc/p2p/base/p2ptransportchannel_unittest.cc:
        * Source/webrtc/p2p/base/port.cc:
        * Source/webrtc/p2p/base/port.h:
        * Source/webrtc/p2p/base/portallocator.cc:
        * Source/webrtc/p2p/client/basicportallocator.cc:
        * Source/webrtc/p2p/client/basicportallocator_unittest.cc:
        * Source/webrtc/pc/peerconnection.cc:
        * Source/webrtc/pc/peerconnection.h:
        * Source/webrtc/pc/peerconnection_integrationtest.cc:
        * Source/webrtc/pc/peerconnectioninternal.h:
        * Source/webrtc/pc/statscollector.cc:
        * Source/webrtc/pc/statscollector.h:
        * Source/webrtc/pc/test/fakepeerconnectionbase.h:
        * Source/webrtc/pc/test/fakepeerconnectionforstats.h:
        * Source/webrtc/pc/test/mockpeerconnectionobservers.h:
        (webrtc::MockStatsObserver::OnComplete):
        (webrtc::MockStatsObserver::TrackIds const):
        * Source/webrtc/pc/webrtcsdp_unittest.cc:
        * Source/webrtc/rtc_base/fake_mdns_responder.h:
        (webrtc::FakeMdnsResponder::GetMappedAddressForName const):
        * Source/webrtc/rtc_base/fakenetwork.h:
        (rtc::FakeNetworkManager::CreateMdnsResponder):
        (rtc::FakeNetworkManager::GetMdnsResponderForTesting const):
        * Source/webrtc/video/video_send_stream_impl.cc:
        * Source/webrtc/video/video_stream_encoder.cc:

2018-12-15  Youenn Fablet  <youenn@apple.com>

        Make RTCRtpSender.setParameters to activate specific encodings
        https://bugs.webkit.org/show_bug.cgi?id=192732

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2018-12-14  Youenn Fablet  <youenn@apple.com>

        kVTVideoEncoderSpecification_Usage should not be set if VCP is not enabled
        https://bugs.webkit.org/show_bug.cgi?id=192716

        Reviewed by Eric Carlson.

        https://trac.webkit.org/changeset/239220 sets the usage value for all platforms, but we should only enable it for VCP.
        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

2018-12-14  Youenn Fablet  <youenn@apple.com>

        Set kVTVideoEncoderSpecification_Usage both when creating the compression session and once created
        https://bugs.webkit.org/show_bug.cgi?id=192700

        Reviewed by Eric Carlson.

        Previously we were setting the usage value once the compression session is created.
        We now also set it at creation time.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

2018-12-12  Youenn Fablet  <youenn@apple.com>

        Recycling the m section should work if it was rejected remotely
        https://bugs.webkit.org/show_bug.cgi?id=192636

        Reviewed by Eric Carlson.

        Changes merged from https://webrtc.googlesource.com/src.git/+/5c72e71e14cfa76a2d1b0979d6b918abe187c208

        * Source/webrtc/pc/mediasession.cc:
        * Source/webrtc/pc/mediasession.h:
        * Source/webrtc/pc/mediasession_unittest.cc:
        * Source/webrtc/pc/peerconnection.cc:
        * Source/webrtc/pc/peerconnection_jsep_unittest.cc:

2018-12-07  Youenn Fablet  <youenn@apple.com>

        Update libwebrtc up to 2fb890f08c
        https://bugs.webkit.org/show_bug.cgi?id=192517

        Reviewed by Eric Carlson.

        Merge changes to track libwebrtc M72.

        * Source/webrtc/DEPS:
        * Source/webrtc/api/audio/echo_canceller3_config.h:
        * Source/webrtc/api/rtp_headers.h:
        * Source/webrtc/api/video/encoded_frame.h:
        * Source/webrtc/api/video/encoded_image.h:
        * Source/webrtc/call/rtp_transport_controller_send_interface.h:
        * Source/webrtc/call/video_receive_stream.h:
        * Source/webrtc/call/video_send_stream.h:
        * Source/webrtc/common_types.h:
        (webrtc::RtcpStatistics::RtcpStatistics):
        (webrtc::RtcpStatisticsCallback::~RtcpStatisticsCallback):
        * Source/webrtc/logging/rtc_event_log/rtc_event_log_impl.cc:
        * Source/webrtc/media/engine/webrtcvideoengine.cc:
        * Source/webrtc/modules/audio_coding/BUILD.gn:
        * Source/webrtc/modules/audio_coding/neteq/neteq_unittest.cc:
        * Source/webrtc/modules/audio_processing/aec3/BUILD.gn:
        * Source/webrtc/modules/audio_processing/aec3/aec_state.cc:
        * Source/webrtc/modules/audio_processing/aec3/api_call_jitter_metrics.cc: Removed.
        * Source/webrtc/modules/audio_processing/aec3/api_call_jitter_metrics.h: Removed.
        * Source/webrtc/modules/audio_processing/aec3/api_call_jitter_metrics_unittest.cc: Removed.
        * Source/webrtc/modules/audio_processing/aec3/echo_canceller3.cc:
        * Source/webrtc/modules/audio_processing/aec3/echo_canceller3.h:
        * Source/webrtc/modules/audio_processing/aec3/filter_analyzer.cc:
        * Source/webrtc/modules/audio_processing/aec3/filter_analyzer.h:
        * Source/webrtc/modules/audio_processing/aec3/suppression_gain.cc:
        * Source/webrtc/modules/rtp_rtcp/BUILD.gn:
        * Source/webrtc/modules/rtp_rtcp/include/receive_statistics.h:
        * Source/webrtc/modules/rtp_rtcp/include/rtcp_statistics.h: Removed.
        * Source/webrtc/modules/rtp_rtcp/include/rtp_rtcp.h:
        * Source/webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h:
        * Source/webrtc/modules/rtp_rtcp/source/rtcp_receiver.h:
        * Source/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map.cc:
        * Source/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc:
        * Source/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h:
        (webrtc::HdrMetadataExtension::ValueSize):
        * Source/webrtc/modules/rtp_rtcp/source/rtp_packet_received.cc:
        * Source/webrtc/modules/rtp_rtcp/source/rtp_packet_unittest.cc:
        * Source/webrtc/modules/rtp_rtcp/source/rtp_utility.cc:
        * Source/webrtc/modules/video_coding/codecs/test/videocodec_test_libvpx.cc:
        * Source/webrtc/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc:
        * Source/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc:
        * Source/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h:
        * Source/webrtc/modules/video_coding/encoded_frame.h:
        (webrtc::VCMEncodedFrame::video_timing_mutable):
        (webrtc::VCMEncodedFrame::SetCodecSpecific):
        * Source/webrtc/modules/video_coding/frame_buffer2.cc:
        * Source/webrtc/modules/video_coding/frame_buffer2.h:
        * Source/webrtc/modules/video_coding/frame_buffer2_unittest.cc:
        * Source/webrtc/modules/video_coding/frame_object.cc:
        * Source/webrtc/modules/video_coding/rtp_frame_reference_finder.cc:
        * Source/webrtc/p2p/base/p2ptransportchannel.cc:
        * Source/webrtc/p2p/base/p2ptransportchannel_unittest.cc:
        * Source/webrtc/p2p/base/port.cc:
        * Source/webrtc/p2p/base/port.h:
        * Source/webrtc/p2p/client/basicportallocator.cc:
        * Source/webrtc/p2p/client/basicportallocator.h:
        * Source/webrtc/p2p/client/basicportallocator_unittest.cc:
        * Source/webrtc/pc/peerconnection.cc:
        * Source/webrtc/pc/rtcstats_integrationtest.cc:
        * Source/webrtc/pc/test/peerconnectiontestwrapper.cc:
        * Source/webrtc/pc/test/peerconnectiontestwrapper.h:
        * Source/webrtc/rtc_base/stringize_macros.h:
        * Source/webrtc/sdk/objc/components/video_codec/nalu_rewriter_unittest.cc: Removed.
        * Source/webrtc/test/fuzzers/rtp_packet_fuzzer.cc:
        * Source/webrtc/tools_webrtc/ios/internal.client.webrtc/iOS64_Perf.json:
        * Source/webrtc/tools_webrtc/ios/internal.tryserver.webrtc/ios_arm64_perf.json:
        * Source/webrtc/tools_webrtc/whitespace.txt:
        * Source/webrtc/video/report_block_stats.h:
        * Source/webrtc/video/rtp_video_stream_receiver.cc:
        * Source/webrtc/video/video_receive_stream.cc:

2018-12-07  Youenn Fablet  <youenn@apple.com>

        Update libwebrtc up to 0d007d7c4f
        https://bugs.webkit.org/show_bug.cgi?id=192316
        <rdar://problem/46563726>

        Unreviewed.

        * Source/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe: Removed.
        Unneeded file.

2018-12-07  Youenn Fablet  <youenn@apple.com>

        Update libwebrtc up to 0d007d7c4f
        https://bugs.webkit.org/show_bug.cgi?id=192316

        Reviewed by Eric Carlson.

        Updating to latest libwebrtc will allows cherry-picking important bug fixes.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/third_party/abseil-cpp: refreshed.
        * Source/webrtc: refreshed.
        * WebKit/0001-libwebrtc-changes.patch: Removed.
        * libwebrtc.xcodeproj/project.pbxproj:

2018-12-01  Thibault Saunier  <tsaunier@igalia.com>

        [GStreamer][WebRTC] Build opus decoder support in libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=192226

        Reviewed by Philippe Normand.

        Somehow that was overlooked at some point (it used to work).

        * CMakeLists.txt:

2018-11-27  Thibault Saunier  <tsaunier@igalia.com>

        [GStreamer][WebRTC] Use LibWebRTC provided vp8 decoders and encoders
        https://bugs.webkit.org/show_bug.cgi?id=191861

        Reviewed by Philippe Normand.

        * CMakeLists.txt: Build LibVPX vp8 encoder and decoders.

2018-11-14  Youenn Fablet  <youenn@apple.com>

        Convert libwebrtc error types to DOM exceptions
        https://bugs.webkit.org/show_bug.cgi?id=191590

        Reviewed by Alex Christensen.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2018-11-14  Youenn Fablet  <youenn@apple.com>

        Add support for transport and peerConnection stats
        https://bugs.webkit.org/show_bug.cgi?id=191592

        Reviewed by Alex Christensen.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2018-11-07  Youenn Fablet  <youenn@apple.com>

        webrtc/datachannel/basic-tcp.html will crash with an invalid crash
        https://bugs.webkit.org/show_bug.cgi?id=178285
        <rdar://problem/34985374>

        Reviewed by Eric Carlson.

        Reintroduce change made to libwebrtc and erroneously removed when refreshing libwebrtc.

        * Source/webrtc/rtc_base/physicalsocketserver.cc:

2018-10-30  Alexey Proskuryakov  <ap@apple.com>

        Clean up some obsolete MAX_ALLOWED macros
        https://bugs.webkit.org/show_bug.cgi?id=190916

        Reviewed by Tim Horton.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:

2018-10-29  Youenn Fablet  <youenn@apple.com>

        Handle MDNS resolution of candidates through libwebrtc directly
        https://bugs.webkit.org/show_bug.cgi?id=190681

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2018-10-23  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r237261.

        The layout test for this change crashes under GuardMalloc.

        Reverted changeset:

        "Handle MDNS resolution of candidates through libwebrtc
        directly"
        https://bugs.webkit.org/show_bug.cgi?id=190681
        https://trac.webkit.org/changeset/237261

2018-10-18  Youenn Fablet  <youenn@apple.com>

        Handle MDNS resolution of candidates through libwebrtc directly
        https://bugs.webkit.org/show_bug.cgi?id=190681

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2018-10-17  Youenn Fablet  <youenn@apple.com>

        Remove unneeded .rej files from libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=190670

        Reviewed by Mark Lam.

        * Source/third_party/boringssl/src/.github/PULL_REQUEST_TEMPLATE.rej: Removed.
        * Source/third_party/boringssl/src/third_party/googletest/.gitignore.rej: Removed.

2018-10-17  Youenn Fablet  <youenn@apple.com>

        REGRESSION (r237075): webrtc/video-replace-muted-track.html is Crashing
        https://bugs.webkit.org/show_bug.cgi?id=190646

        Reviewed by Eric Carlson.

        Do not use VCP pixel buffer pool at all.
        RealtimeOutgoingVideoSource makes sure to send the frame in the right format.
        Tested by ensuring test no longer crashes.

        * Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
        (-[RTCSingleVideoEncoderH264 resetCompressionSessionIfNeededWithFrame:]):
        (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

2018-10-16  Youenn Fablet  <youenn@apple.com>

        Support RTCConfiguration.certificates
        https://bugs.webkit.org/show_bug.cgi?id=190603

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2018-10-16  Alejandro G. Castro  <alex@igalia.com>

        [GTK][WPE] Make libwebrtc compile using the system opus library
        https://bugs.webkit.org/show_bug.cgi?id=190573

        Reviewed by Philippe Normand.

        We found some situations where gstreamer gets confused when it
        tries to use opus because it finds opus symbols compiled for
        liwebrtc. We are going to try the option to use the system opus
        library also for libwebrtc.

        * CMakeLists.txt: Added opus dependency.
        * cmake/FindOpus.cmake: Added the hints to find the opus library
        in the compilation.

2018-10-15  Youenn Fablet  <youenn@apple.com>

        RTCPeerConnection.generateCertificate is not a function
        https://bugs.webkit.org/show_bug.cgi?id=173541
        <rdar://problem/32638029>

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2018-10-12  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed build fix, remove executable file imported with r237075.

        * Source/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe: Removed.

2018-10-12  Youenn Fablet  <youenn@apple.com> and Alejandro G. Castro  <alex@igalia.com>

        Refresh libwebrtc up to 343f4144be
        https://bugs.webkit.org/show_bug.cgi?id=190361

        Reviewed by Chris Dumez.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Configurations/libwebrtc.xcconfig:
        * Source/webrtc: Resynced.
        * WebKit/0001-Updating-webrtc.patch: Removed.
        * libwebrtc.xcodeproj/project.pbxproj:

2018-10-09  Youenn Fablet  <youenn@apple.com>

        Add support for IceCandidate stats
        https://bugs.webkit.org/show_bug.cgi?id=190329

        Reviewed by Eric Carlson.

        Export new stats kType values.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2018-10-06  Dan Bernstein  <mitz@apple.com>

        [Xcode] Never build yasm with ASAN
        https://bugs.webkit.org/show_bug.cgi?id=190327

        Reviewed by Youenn Fablet.

        * Configurations/yasm.xcconfig: Set WK_ASAN_DISALLOWED to YES.

2018-10-06  Dan Bernstein  <mitz@apple.com>

        Fixed iOS device production builds after r236896.

        * Configurations/yasm.xcconfig: Excluding all sources when building for an iOS device meant
          that nothing got built, which caused the install action to fail when it tried to copy
          the built product. Just put things back the way they were for now.

2018-10-06  Dan Bernstein  <mitz@apple.com>

        [Xcode] Don’t install yasm and don’t compile it in iOS device builds
        https://bugs.webkit.org/show_bug.cgi?id=190326

        Reviewed by Youenn Fablet.

        * Configurations/yasm.xcconfig: Set SKIP_INSTALL to YES, and excluded all source files when
          targeting iOS devices.

2018-10-04  Dan Bernstein  <mitz@apple.com>

        Fixed engineering builds using the Apple internal SDK as well as building with older
        versions of Xcode.

        * Configurations/yasm.xcconfig: Migrated some build settings that were defined at the target
          level in the project file. Some didn’t make sense to migrate, because they could be
          inherited, or because they were warnings that were then being negated by OTHER_CFLAGS.
        * libwebrtc.xcodeproj/project.pbxproj:

2018-10-03  Dan Bernstein  <mitz@apple.com>

        Addressed the warning “no rule to process file 'Source/ThirdParty/libwebrtc/Source/third_party/yasm-1.3.0/modules/objfmts/macho/Makefile.inc' of type sourcecode.pascal for architecture x86_64”

        * libwebrtc.xcodeproj/project.pbxproj: Removed Makefile.inc from the yasm target’s Compile
          Sources build phase.

2018-10-03  Youenn Fablet  <youenn@apple.com>

        Add VP8 support to WebRTC
        https://bugs.webkit.org/show_bug.cgi?id=189976

        Reviewed by Eric Carlson.

        Add support for conditional VP8 support for both encoding and decoding.
        This boolean is used by WebCore based on the new VP8 runtime flag.

        Enable yasm compilation as a dependency of libvpx.

        Compilation is done without using SSE4/AVX2 optimizations.

        * Configurations/libvpx.xcconfig: Added.
        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtcpcrtc.xcconfig:
        * Source/third_party/libvpx/run_yasm_webkit.py: Added.
        * Source/third_party/libvpx/source/config/mac/x64/vpx_config.asm:
        * Source/third_party/libvpx/source/config/mac/x64/vpx_config.h:
        * Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::createWebKitEncoderFactory):
        (webrtc::createWebKitDecoderFactory):
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h:
        * libwebrtc.xcodeproj/project.pbxproj:

2018-10-03  Dan Bernstein  <mitz@apple.com>

        libwebrtc part of [Xcode] Update some build settings as recommended by Xcode 10
        https://bugs.webkit.org/show_bug.cgi?id=190250

        Reviewed by Andy Estes.

        * Configurations/Base.xcconfig: Removed a duplicate reference to x_all.c and let Xcode
          update LastUpgradeCheck.

        * libwebrtc.xcodeproj/project.pbxproj: Enabled CLANG_WARN_INFINITE_RECURSION,
          CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED, and
          CLANG_WARN_SUSPICIOUS_MOVE. Other warnings that Xcode 10 recommended were incompatible
          with one or more source files in the project.

2018-10-03  Youenn Fablet  <youenn@apple.com>

        Enable H264 simulcast
        https://bugs.webkit.org/show_bug.cgi?id=190167

        Reviewed by Eric Carlson.

        Rename .m files to .mm to enable C++ compilation of included header files.
        Rename RTCH264VideoEncoder to RTCSingleH264Encoder.
        Implement a new RTCH264VideoEncoder that spawns as many RTCSingleH264Encoder as needed for simulcast.
        Update ObjC API to allow passing simulcast parameters to/from RTCH264VideoEncoder.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoDecoderFactory.mm: Renamed from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoDecoderFactory.m.
        * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoEncoderFactory.mm: Renamed from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDefaultVideoEncoderFactory.m.
        * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec+Private.h:
        * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodecH264.mm:
        (-[RTCCodecSpecificInfoH264 nativeCodecSpecificInfo]):
        * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoEncoderSettings.mm:
        (-[RTCVideoEncoderSettings initWithNativeVideoCodec:]):
        * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.mm:
        (-[RTCWrappedNativeVideoEncoder setBitrate:framerate:]):
        (-[RTCWrappedNativeVideoEncoder setRateAllocation:framerate:]):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
        (-[RTCSingleVideoEncoderH264 initWithCodecInfo:simulcastIndex:]):
        (-[RTCSingleVideoEncoderH264 startEncodeWithSettings:numberOfCores:]):
        (-[RTCSingleVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
        (-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        (-[RTCSingleVideoEncoderH264 scalingSettings]):
        (-[RTCSingleVideoEncoderH264 setRateAllocation:framerate:]):
        (-[RTCVideoEncoderH264 initWithCodecInfo:]):
        (-[RTCVideoEncoderH264 setCallback:]):
        (-[RTCVideoEncoderH264 startEncodeWithSettings:numberOfCores:]):
        (-[RTCVideoEncoderH264 releaseEncoder]):
        (-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
        (-[RTCVideoEncoderH264 setRateAllocation:framerate:]):
        (-[RTCVideoEncoderH264 implementationName]):
        (-[RTCVideoEncoderH264 scalingSettings]):
        (-[RTCVideoEncoderH264 setBitrate:framerate:]):
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecH264.h:
        * Source/webrtc/sdk/objc/Framework/Native/src/objc_video_encoder_factory.mm:
        * libwebrtc.xcodeproj/project.pbxproj:

2018-09-29  Youenn Fablet  <youenn@apple.com>

        Add yasm as third party tool for libwebrtc compilation
        https://bugs.webkit.org/show_bug.cgi?id=190025

        Reviewed by Eric Carlson.

        Add yasm source code and build the yasm executable as it is needed for libvpx compilation.

        * Source/third_party/yasm-1.3.0: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2018-09-28  David Fenton  <david_fenton@apple.com>

        Unreviewed, rolling out r236620.

        broke internal Mac and iOS builds

        Reverted changeset:

        "Add yasm as third party tool for libwebrtc compilation"
        https://bugs.webkit.org/show_bug.cgi?id=190025
        https://trac.webkit.org/changeset/236620

2018-09-28  Youenn Fablet  <youenn@apple.com>

        Add yasm as third party tool for libwebrtc compilation
        https://bugs.webkit.org/show_bug.cgi?id=190025

        Reviewed by Eric Carlson.

        Add yasm source code and build the yasm executable as it is needed for libvpx compilation.

        * Source/third_party/yasm-1.3.0: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2018-09-27  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r236557.

        Really roll out r236557 this time because it breaks internal
        builds.

        Reverted changeset:

        "Add VP8 support to WebRTC"
        https://bugs.webkit.org/show_bug.cgi?id=189976
        https://trac.webkit.org/changeset/236557

2018-09-27  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r236558.
        https://bugs.webkit.org/show_bug.cgi?id=190044

         236557  Broke internal builds (Requested by ryanhaddad on
        #webkit).

        Reverted changeset:

        "Unreviewed build fix, remove *.o files that were committed in
        r236557."
        https://trac.webkit.org/changeset/236558

2018-09-27  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed build fix, remove *.o files that were committed in r236557.

        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/copy_sse2.asm.o: Removed.
        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/copy_sse3.asm.o: Removed.
        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/dequantize_mmx.asm.o: Removed.
        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/idctllm_mmx.asm.o: Removed.
        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/idctllm_sse2.asm.o: Removed.
        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/iwalsh_sse2.asm.o: Removed.
        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/loopfilter_block_sse2_x86_64.asm.o: Removed.
        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/loopfilter_sse2.asm.o: Removed.
        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/mfqe_sse2.asm.o: Removed.
        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/recon_mmx.asm.o: Removed.
        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/recon_sse2.asm.o: Removed.
        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_mmx.asm.o: Removed.
        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_sse2.asm.o: Removed.
        * Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_ssse3.asm.o: Removed.

2018-09-27  Youenn Fablet  <youenn@apple.com>

        Add VP8 support to WebRTC
        https://bugs.webkit.org/show_bug.cgi?id=189976

        Reviewed by Eric Carlson.

        Add support for conditional VP8 support for both encoding and decoding.
        This boolean is used by WebCore based on the new VP8 runtime flag.

        Compilation is done without using SSE4/AVX2 optimizations.

        * Configurations/libvpx.xcconfig: Added.
        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtcpcrtc.xcconfig:
        * Source/third_party/libvpx/run_yasm_webkit.py: Added.
        * Source/third_party/libvpx/source/config/mac/x64/vpx_config.asm:
        * Source/third_party/libvpx/source/config/mac/x64/vpx_config.h:
        * Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::createWebKitEncoderFactory):
        (webrtc::createWebKitDecoderFactory):
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h:
        * libwebrtc.xcodeproj/project.pbxproj:

2018-09-26  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r236498.

        This wasn't intentionally committed

        Reverted changeset:

        "Import libvpx source code"
        https://bugs.webkit.org/show_bug.cgi?id=189954
        https://trac.webkit.org/changeset/236498

2018-09-25  Youenn Fablet  <youenn@apple.com>

        Import libvpx source code
        https://bugs.webkit.org/show_bug.cgi?id=189954

        Reviewed by Eric Carlson.

        * Source/third_party/libvpx: Added.
        * .gitignore: Added.

2018-09-25  Ryan Haddad  <ryanhaddad@apple.com>

        Import libvpx source code
        https://bugs.webkit.org/show_bug.cgi?id=189954

        Another unreviewed build fix attempt.

        * Source/third_party/libvpx/source/libvpx/VPX.framework: Remove unneeded folder.

2018-09-25  Youenn Fablet  <youenn@apple.com>

        Import libvpx source code
        https://bugs.webkit.org/show_bug.cgi?id=189954

        Unreviewed, internal build fix.

        * Source/third_party/libvpx/source/libvpx/_iosbuild: Removed.
        Folder is unneeded.

2018-09-25  Youenn Fablet  <youenn@apple.com>

        Import libvpx source code
        https://bugs.webkit.org/show_bug.cgi?id=189954

        Reviewed by Eric Carlson.

        * Source/third_party/libvpx: Added.
        * .gitignore: Added.

2018-09-24  Youenn Fablet  <youenn@apple.com>

        Enable conversion of libwebrtc internal frames as CVPixelBuffer
        https://bugs.webkit.org/show_bug.cgi?id=189892

        Reviewed by Eric Carlson.

        Renamed encoder/decoder factory creation routine.
        Make pixelBufferFromFrame take a function to create a CVPixelBuffer
        if the frame does not wrap one.
        Initialize the CVPixelBuffer with libwebrtc internal frame.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::createWebKitEncoderFactory):
        (webrtc::createWebKitDecoderFactory):
        (webrtc::CopyVideoFrameToPixelBuffer):
        (webrtc::pixelBufferFromFrame):
        (webrtc::createVideoToolboxEncoderFactory): Deleted.
        (webrtc::createVideoToolboxDecoderFactory): Deleted.

2018-09-21  Thibault Saunier  <tsaunier@igalia.com>

        [libwebrtc] Allow IP mismatch for local connections on localhost
        https://bugs.webkit.org/show_bug.cgi?id=189828

        Reviewed by Alejandro G. Castro.

        The rest of the code allows it, but there was an unecessary assert

        See Bug 187302

        * Source/webrtc/p2p/base/tcpport.cc:

2018-09-18  Youenn Fablet  <youenn@apple.com>

        Implement RTCRtpReceiver getContributingSources/getSynchronizationSources
        https://bugs.webkit.org/show_bug.cgi?id=189671

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2018-09-17  Youenn Fablet  <youenn@apple.com>

        Build fix after https://trac.webkit.org/changeset/236070
        https://bugs.webkit.org/show_bug.cgi?id=189635
        <rdar://problem/44361849>

        Unreviewed.
        Fix for iOS internal builds.

        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

2018-09-17  Youenn Fablet  <youenn@apple.com>

        Enable VCP for iOS and reenable it for MacOS
        https://bugs.webkit.org/show_bug.cgi?id=189635
        <rdar://problem/43621029>

        Unreviewed, build fix for iOS simulator.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:

2018-09-17  Youenn Fablet  <youenn@apple.com>

        Enable VCP for iOS and reenable it for MacOS
        https://bugs.webkit.org/show_bug.cgi?id=189635
        <rdar://problem/43621029>

        Reviewed by Eric Carlson.

        Make sure VCP API is used to set encoding session parameters.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/helpers.cc:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/helpers.h:

2018-09-07  Youenn Fablet  <youenn@apple.com>

        Add support for unified plan transceivers
        https://bugs.webkit.org/show_bug.cgi?id=189390

        Reviewed by Eric Carlson.

        Expose more symbols.
        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2018-09-05  Youenn Fablet  <youenn@apple.com>

        Expose RTCRtpSender.setParameters
        https://bugs.webkit.org/show_bug.cgi?id=189307

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2018-08-29  David Kilzer  <ddkilzer@apple.com>

        Remove empty directories from from svn.webkit.org repository
        <https://webkit.org/b/189081>

        * Source/webrtc/base: Removed.
        * Source/webrtc/media/devices: Removed.
        * Source/webrtc/modules/audio_conference_mixer: Removed.
        * Source/webrtc/modules/remote_bitrate_estimator/include/mock: Removed.
        * Source/webrtc/system_wrappers/test: Removed.
        * Source/webrtc/test/testsupport/mac: Removed.
        * Source/webrtc/voice_engine: Removed.

2018-08-28  David Kilzer  <ddkilzer@apple.com>

        [libwebrtc] Remove references to Source/webrtc/modules/audio_coding/codecs/isac/main/source/fft.h

        Found by tidy-Xcode-project-file script (see Bug 188754).

        * libwebrtc.xcodeproj/project.pbxproj:
        (Source/webrtc/modules/audio_coding/codecs/isac/main/source/fft.h):
        Remove references to this file since it doesn't exist.

2018-08-28  Youenn Fablet  <youenn@apple.com>

        Reenable -Wexit-time-destructors -and Wglobal-constructors in libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=189036

        Reviewed by Geoffrey Garen.

        Renable these compilation warnings and introduce rtc::NeverDestroyed as helper.

        * Configurations/Base.xcconfig:
        * Source/webrtc/modules/audio_processing/agc2/rnn_vad/spectral_features_internal.cc:
        * Source/webrtc/modules/congestion_controller/bbr/bbr_network_controller.cc:
        * Source/webrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc:
        * Source/webrtc/pc/peerconnection.cc:
        * Source/webrtc/rtc_base/flags.h:
        * Source/webrtc/rtc_base/logging.cc:
        * Source/webrtc/rtc_base/never_destroyed.h: Added.
        (rtc::NeverDestroyed::NeverDestroyed):
        (rtc::NeverDestroyed::operator T&):
        (rtc::NeverDestroyed::get):
        (rtc::NeverDestroyed::operator const T& const):
        (rtc::NeverDestroyed::get const):
        (rtc::NeverDestroyed::storagePointer const):
        (rtc::makeNeverDestroyed):
        * Source/webrtc/rtc_base/virtualsocketserver.cc:
        * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm:
        * Source/webrtc/system_wrappers/source/clock.cc:
        * Source/webrtc/system_wrappers/source/runtime_enabled_features_default.cc:
        * libwebrtc.xcodeproj/project.pbxproj:

2018-08-27  Keith Rollin  <krollin@apple.com>

        Unreviewed build fix -- disable LTO for production builds

        * Configurations/Base.xcconfig:

2018-08-27  Keith Rollin  <krollin@apple.com>

        Build system support for LTO
        https://bugs.webkit.org/show_bug.cgi?id=187785
        <rdar://problem/42353132>

        Reviewed by Dan Bernstein.

        Update Base.xcconfig and DebugRelease.xcconfig to optionally enable
        LTO.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:

2018-08-23  youenn fablet  <youennf@gmail.com>

        Remove libwebrtc unneeded .exe file.
        Unreviewed.

        * Source/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe: Removed.

2018-08-23  Youenn Fablet  <youenn@apple.com> and Alejandro G. Castro  <alex@igalia.com>

        Update libwebrtc up to 984f1a80c0
        https://bugs.webkit.org/show_bug.cgi?id=188745
        <rdar://problem/43539177>

        Reviewed by Eric Carlson.

        Update libwebrtc main code.
        Update exported symbols and related applied modifications.

        * CMakeLists.txt:
        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Configurations/libwebrtc.xcconfig:
        * Source/webrtc: refreshed
        * WebKit/0001-Updating-webrtc.patch: Added.
        * WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Removed.
        * WebKit/0001-Disable-SIGPIPE-for-WebRTC-sockets.patch: Removed.
        * WebKit/0001-Update-RTCVideoEncoderH264.mm-for-WebKit.patch: Removed.
        * WebKit/0001-Using-VCP.patch: Removed.
        * WebKit/0003-Fixing-VP8-files.patch: Removed.
        * WebKit/0004-Removing-parameter-names-from-files-included-from-We.patch: Removed.
        * WebKit/0005-Fix-RTC_FATAL.patch: Removed.
        * WebKit/0006-Disabling-VP8.patch: Removed.
        * WebKit/0007-Fix-RTC_STRINGIZE.patch: Removed.
        * WebKit/0008-Fix-sanitizer.patch: Removed.
        * WebKit/0009-Remove-dispatch_set_target_queue.patch: Removed.
        * WebKit/0010-Fix-RTCVideoEncoderH264-CVPixelBuffer-leak.patch: Removed.
        * WebKit/0011-Fix-AudioDeviceID-array-leak.patch: Removed.
        * WebKit/0012-Add-WK-prefix-to-Objective-C-classes-and-protocols.patch: Removed.
        * WebKit/0013-Fix-SafeSetError-use-after-move.patch: Removed.
        * libwebrtc.xcodeproj/project.pbxproj:

2018-08-21  Youenn Fablet  <youenn@apple.com>

        Update some libwebrtc third party libraries as per libwebrtc 984f1a80c0c
        https://bugs.webkit.org/show_bug.cgi?id=188751

        Reviewed by Eric Carlson.

        Added rnnoise and abseil which will be used by latest libwebrtc.
        Updated libyuv as it is also required by latest libwebrtc.

        * Source/third_party/abseil-cpp: Added.
        * Source/third_party/libyuv: Refreshed.
        * Source/third_party/rnnoise: Added.

2018-08-06  David Kilzer  <ddkilzer@apple.com>

        [libwebrtc] SafeSetError() in peerconnection.cc contains use-after-move of webrtc::RTCError variable
        <https://webkit.org/b/188337>
        <rdar://problem/42882908>

        Reviewed by Eric Carlson.

        * Source/webrtc/pc/peerconnection.cc:
        (webrtc::SafeSetError): Make static since it's not used outside
        this translation unit.
        (webrtc::SafeSetError): Ditto.  Change first argument to
        webrtc::RTCError&& to prevent unnecessary copying of std::move()
        argument.  Fix bug by saving value of `error.ok()` before moving
        to `*error_out`.
        * WebKit/0013-Fix-SafeSetError-use-after-move.patch: Add patch.

2018-08-03  Alex Christensen  <achristensen@webkit.org>

        Fix spelling of "overridden"
        https://bugs.webkit.org/show_bug.cgi?id=188315

        Reviewed by Darin Adler.

        * Source/webrtc/p2p/client/basicportallocator.h:

2018-07-24  Thibault Saunier  <tsaunier@igalia.com>

        [WPE][GTK] Implement PeerConnection API on top of libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=186932

        Reviewed by Philippe Normand.

        * CMakeLists.txt: Properly set our build as `WEBRTC_WEBKIT_BUILD`

2018-07-19  Youenn Fablet  <youenn@apple.com>

        PlatformThread::Run does not need to log the fact that it is running
        https://bugs.webkit.org/show_bug.cgi?id=187801i
        <rdar://problem/40331421>

        Reviewed by Chris Dumez.

        * Source/webrtc/rtc_base/platform_thread.cc:

2018-07-14  Kocsen Chung  <kocsen_chung@apple.com>

        Ensure WebKit stack is ad-hoc signed
        https://bugs.webkit.org/show_bug.cgi?id=187667

        Reviewed by Alexey Proskuryakov.

        * Configurations/Base.xcconfig:

2018-07-13  David Kilzer  <ddkilzer@apple.com>

        libwebrtc.dylib Objective-C classes conflict with third-party frameworks
        <https://webkit.org/b/187653>

        Reviewed by Alex Christensen.

        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        - Manually add an attribute to change the class name.

        * Source/webrtc/sdk/objc/Framework/Classes/Common/RTCUIApplicationStatusObserver.h:
        * Source/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLI420Renderer.h:
        * Source/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLNV12Renderer.h:
        * Source/webrtc/sdk/objc/Framework/Classes/Metal/RTCMTLRenderer.h:
        * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCDtmfSender+Private.h:
        * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoRendererAdapter.h:
        * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoDecoder.h:
        * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCWrappedNativeVideoEncoder.h:
        * Source/webrtc/sdk/objc/Framework/Classes/UI/RTCEAGLVideoView.m:
        * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCAVFoundationVideoCapturerInternal.h:
        * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCDefaultShader.h:
        * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCI420TextureCache.h:
        * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCNV12TextureCache.h:
        * Source/webrtc/sdk/objc/Framework/Classes/Video/objc_frame_buffer.h:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_decoder_factory.h:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/objc_video_encoder_factory.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSession.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSessionConfiguration.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSource.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioTrack.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCCameraVideoCapturer.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCDataChannel.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCDispatcher.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCDtmfSender.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCFileLogger.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCFileVideoCapturer.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCIceCandidate.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCIceServer.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCIntervalRange.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMTLNSVideoView.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMTLVideoView.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaConstraints.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaSource.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaStream.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCNSGLVideoView.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnection.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnectionFactoryOptions.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpParameters.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpReceiver.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpSender.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCSessionDescription.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCapturer.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodec.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecH264.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoDecoderVP8.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoDecoderVP9.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoEncoderVP8.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoEncoderVP9.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoFrame.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoFrameBuffer.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoRenderer.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoSource.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoTrack.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoViewShading.h:
        - Apply two shell scripts (see bug) to add an attribute to
          change the name of all classes and protocols.

        * WebKit/0012-Add-WK-prefix-to-Objective-C-classes-and-protocols.patch: Add.

2018-07-13  David Kilzer  <ddkilzer@apple.com>

        REGRESSION (r233155): Remove last references to click_annotate.cc and rtpcat.cc

        * libwebrtc.xcodeproj/project.pbxproj: Let Xcode have its way
        with the project file by removing orphaned entries.

2018-07-13  David Kilzer  <ddkilzer@apple.com>

        REGRESSION (r222476): Add missing semi-colons to EXPORTED_SYMBOLS_FILE variables

        * Configurations/libwebrtc.xcconfig:
        (EXPORTED_SYMBOLS_FILE): Add missing semi-colons.

2018-07-06  Youenn Fablet  <youenn@apple.com>

        libWebRTC GetThreadCpuTimeNanos() leaks mach_ports
        https://bugs.webkit.org/show_bug.cgi?id=187403
        <rdar://problem/41741599>

        Reviewed by Simon Fraser.

        * Source/webrtc/rtc_base/cpu_time.cc: Call mach_port_deallocate to
        to ensure mach_port is deleted.
        * libwebrtc.xcodeproj/project.pbxproj: Stop compiling this file since
        this is not used except by libwebrtc tests.

2018-07-04  Thibault Saunier  <tsaunier@igalia.com>

        [libwebrtc] Allow IP mismatch for local connections on localhost
        https://bugs.webkit.org/show_bug.cgi?id=187302

        Reviewed by Youenn Fablet.

        The rest of the code allows it, but there was an unecessary assert

        * Source/webrtc/p2p/base/tcpport.cc:

2018-06-26  Yusuke Suzuki  <utatane.tea@gmail.com>

        [GTK][WPE] Remove gflags from libwebrtc build
        https://bugs.webkit.org/show_bug.cgi?id=187078

        Reviewed by Alejandro G. Castro.

        gflags is used only in libyuv unit tests. So the Apple ports do not build & link it.
        GTK and WPE can do the same thing: not building gflags. By doing so, we can achieve
        the following results.

        1. Remove static initializers defined for gflags.
        2. Reduce binary size.

        * CMakeLists.txt:

2018-06-25  Keith Rollin  <krollin@apple.com>

        Adjust webrtc library for LTO
        https://bugs.webkit.org/show_bug.cgi?id=186952
        <rdar://problem/41387815>

        Reviewed by Youenn Fablet.

        There are a number of files in webrtc that have main() functions (in
        particular, rtpcat.cc and click_annotate.cc). When compiling with LTO,
        these symbols are exposed to each other, leading to the following
        build failure:

            Ld libwebrtc.dylib
            duplicate symbol _main in:
            ld: 1 duplicate symbol for architecture x86_64
            clang: error: linker command failed with exit code 1 (use -v to see invocation)
            ** BUILD FAILED **

        Address this by removing the indicated files from the build.

        * libwebrtc.xcodeproj/project.pbxproj:

2018-06-14  Youenn Fablet  <youenn@apple.com>

        Activate -Wexit-time-destructors -and Wglobal-constructors in libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=186615

        Reviewed by Darin Adler.

        Update xcconfig files to activate these compile flags.
        Also enable -Wthread-safety since libwebrtc code is using some related attributes.
        Update libwebrtc code base to accomodate these flags.

        * Configurations/libwebrtc.xcconfig:
        * Configurations/opus.xcconfig:
        * Configurations/usrsctp.xcconfig:
        * Source/webrtc/modules/audio_processing/beamformer/array_util.h:
        (webrtc::DegreesToRadians): Make function constexpr.
        * Source/webrtc/modules/rtp_rtcp/source/rtp_utility.cc:
        Make sure the destructor is never called.
        * Source/webrtc/rtc_base/logging.cc:
        Update code to move streams_ from a static class member to a regular static function variable.
        * Source/webrtc/rtc_base/logging.h:
        * Source/webrtc/system_wrappers/source/clock.cc:
        Make sure the destructor is never called.

2018-06-14  Youenn Fablet  <youenn@apple.com>

        Eliminate static initializers in libwebrtc.dylib
        https://bugs.webkit.org/show_bug.cgi?id=186570
        <rdar://problem/41054874>

        Reviewed by Darin Adler.

        * Source/webrtc/rtc_base/flags.h:
        Fix memory corruption error by having the actual flag value be static.

2018-06-13  Youenn Fablet  <youenn@apple.com>

        Eliminate static initializers in libwebrtc.dylib
        https://bugs.webkit.org/show_bug.cgi?id=186570

        Reviewed by Darin Adler.

        * Source/webrtc/rtc_base/flags.h: Changed macro to create the static into a function.
        * Source/webrtc/rtc_base/logging.cc: Ditto.
        Made sure that the scope is created on instantiation of the first Log instance that might use it.
        * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm:
        * Source/webrtc/system_wrappers/source/runtime_enabled_features_default.cc:

2018-06-09  Dan Bernstein  <mitz@apple.com>

        [Xcode] Clean up and modernize some build setting definitions
        https://bugs.webkit.org/show_bug.cgi?id=186463

        Reviewed by Sam Weinig.

        * Configurations/Base.xcconfig: Removed definition for macOS 10.11.
        * Configurations/DebugRelease.xcconfig: Ditto.
        * Configurations/Version.xcconfig: Removed definitions for macOS 10.10 and 10.11, and added
          definitions for later versions.
        * Configurations/WebKitTargetConditionals.xcconfig: Removed definitions for macOS 10.11.
        * Configurations/opus.xcconfig: Simplified the definition of SSE4_FLAG now that macOS 10.12
          is the earliest supported version.

2018-06-09  Dan Bernstein  <mitz@apple.com>

        Added missing file references to the Configuration group.

        * libwebrtc.xcodeproj/project.pbxproj:

2018-06-07  Darin Adler  <darin@apple.com>

        [Cocoa] Minor ARC tidying of libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=186396

        Reviewed by Dan Bernstein.

        * Configurations/Base.xcconfig: Set CLANG_ENABLE_OBJC_ARC here as we will eventually be
        doing in all the various Base.xcconfig files as we make progress on conversion.

        * Configurations/libwebrtc.xcconfig: Removed override of CLANG_ENABLE_OBJC_ARC here and
        also removed five other redundant settings that match Base.xcconfig.

        * libwebrtc.xcodeproj/project.pbxproj: Removed explicit -fobjc-arc that was set on
        one particular source file, since that's already the default for the project.

2018-06-04  Youenn Fablet  <youenn@apple.com>

        [WK1] Add an option to restrict communication to localhost sockets
        https://bugs.webkit.org/show_bug.cgi?id=186249

        Reviewed by Eric Carlson.

        Export new symbols used for WK1.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:

2018-05-31  David Kilzer  <ddkilzer@apple.com>

        Fix leak of AudioDeviceID array due to an early return in AudioDeviceMac::GetNumberDevices()
        <https://webkit.org/b/186152>
        <rdar://problem/40692824>

        Reviewed by Alex Christensen.

        * Source/webrtc/modules/audio_device/mac/audio_device_mac.cc:
        Use std::make_unique<> so that memory is allocated and
        deallocated automatically.  Remove manual calls to free().
        * WebKit/0011-Fix-AudioDeviceID-array-leak.patch: Add.

2018-05-30  David Kilzer  <ddkilzer@apple.com>

        Fix leak of a CVPixelBufferRef due to early rerturn in -[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]
        <https://webkit.org/b/186114>
        <rdar://problem/40668097>

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
        Call CVBufferRelease(pixelBuffer) before early return to free
        it.
        * WebKit/0010-Fix-RTCVideoEncoderH264-CVPixelBuffer-leak.patch: Add.

2018-05-27  David Kilzer  <ddkilzer@apple.com>

        [iOS] Fix warnings about leaks found by clang static analyzer
        <https://webkit.org/b/186009>
        <rdar://problem/40574267>

        Reviewed by Daniel Bates.

        * Source/third_party/opus/src/src/opus_compare.c:
        * Source/third_party/opus/src/src/opus_demo.c:
        (main):
        - Free allocated memory on early returns.
        * Source/third_party/usrsctp/usrsctplib/user_mbuf.c:
        (clust_constructor_dup):
        (mb_ctor_clust):
        - Free allocated memory if `m` is NULL.
        * Source/third_party/usrsctp/usrsctplib/user_socket.c:
        (usrsctp_connect): Free `sa` memory if getsockaddr() returns an
        error, but still allocates memory for `sa`.
        * WebKit/patch-opus.diff: Add patch for opus changes.
        * WebKit/patch-usrsctp: Rename empty file to patch-usrsctp.diff.
        * WebKit/patch-usrsctp.diff: Add patch for usrsctp changes.
        * libwebrtc.xcodeproj/project.pbxproj: Remove opus_compare.c,
        opus_demo.c, and repacketizer_demo.c from opus target.  This
        code is for stand-alone tools, and although it may be removed
        during dead code linking, we don't need to spend time compiling
        it.

2018-05-07  Youenn Fablet  <youenn@apple.com>

        Activate ARC for libwebrtc Objective C files
        https://bugs.webkit.org/show_bug.cgi?id=185324

        Reviewed by David Kilzer.

        Revert changes made to libwebrtc to accomodate from not using ARC.
        Use ARC for all libwebrtc objective C files.

        Remove no longer needed export symbols and stop compiling the related files.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Configurations/libwebrtc.xcconfig:
        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm:
        (-[RTCCVPixelBuffer dealloc]):
        * Source/webrtc/sdk/objc/Framework/Classes/Video/objc_frame_buffer.mm:
        (webrtc::ObjCFrameBuffer::~ObjCFrameBuffer):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm:
        (-[RTCVideoDecoderH264 dealloc]):
        (-[RTCVideoDecoderH264 setCallback:]):
        (-[RTCVideoDecoderH264 releaseDecoder]):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 dealloc]):
        (-[RTCVideoEncoderH264 setCallback:]):
        (-[RTCVideoEncoderH264 releaseEncoder]):
        * libwebrtc.xcodeproj/project.pbxproj:

2018-05-02  Youenn Fablet  <youenn@apple.com>

        Disable VCP for iOS until it is fully working
        https://bugs.webkit.org/show_bug.cgi?id=185201
        <rdar://problem/39773857>

        Reviewed by Eric Carlson.

        Disable VCP for iOS unconditionally.
        Add check to getkVTVideoEncoderSpecification_Usage to not set this property if not defined as it is optional soft linked.
        Replace use of VTSessionSetProperty by CompressionSessionSetProperty as the latter is a macro
        that works for both VT and VCP.

        * Source/webrtc/sdk/WebKit/EncoderUtilities.h:
        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        (-[RTCVideoEncoderH264 configureCompressionSession]):
        (-[RTCVideoEncoderH264 setEncoderBitrateBps:]):
        (-[RTCVideoEncoderH264 frameWasEncoded:flags:sampleBuffer:codecSpecificInfo:width:height:renderTimeMs:timestamp:rotation:]):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/helpers.cc:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/helpers.h:

2018-04-30  Youenn Fablet  <youenn@apple.com>

        Mandate H264 hardware encoder for Mac in libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=184835

        Reviewed by Eric Carlson.

        Tested manually through console traces that hardware VCP encoder code path is actually used instead of software VCP encoder code path.

        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        * WebKit/0001-Update-RTCVideoEncoderH264.mm-for-WebKit.patch: Added to cover this change and changes made in bug 184668 and 183961.

2018-04-20  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r230862.
        https://bugs.webkit.org/show_bug.cgi?id=184855

        it is making some tests to time out on bots (Requested by
        youenn on #webkit).

        Reverted changeset:

        "Mandate H264 hardware encoder for Mac in libwebrtc"
        https://bugs.webkit.org/show_bug.cgi?id=184835
        https://trac.webkit.org/changeset/230862

2018-04-20  Youenn Fablet  <youenn@apple.com>

        Mandate H264 hardware encoder for Mac in libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=184835

        Reviewed by Eric Carlson.

        Tested manually through console traces that hardware VCP encoder code path is actually used instead of software VCP encoder code path.

        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        * WebKit/0001-Update-RTCVideoEncoderH264.mm-for-WebKit.patch: Added to cover this change and changes made in bug 184668 and 183961.

2018-04-19  David Kilzer  <ddkilzer@apple.com>

        Enable Objective-C weak references
        <https://webkit.org/b/184789>
        <rdar://problem/39571716>

        Reviewed by Dan Bernstein.

        * Configurations/Base.xcconfig:
        (CLANG_ENABLE_OBJC_WEAK): Enable.

2018-04-16  Youenn Fablet  <youenn@apple.com>

        Set H264 VT encoder usage to 1
        https://bugs.webkit.org/show_bug.cgi?id=184668

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 configureCompressionSession]):

2018-04-10  Youenn Fablet  <youenn@apple.com>

        webrtc/datachannel/basic-tcp.html will crash with an invalid crash
        https://bugs.webkit.org/show_bug.cgi?id=178285
        <rdar://problem/34985374>

        Reviewed by Eric Carlson.

        Disable SIGPIPE for WebRTC sockets on Mac as well.

        * Source/webrtc/rtc_base/physicalsocketserver.cc:
        * WebKit/0001-Disable-SIGPIPE-for-WebRTC-sockets.patch: Added.

2018-04-09  Youenn Fablet  <youenn@apple.com>

        Use special software encoder mode in case there is no VCP not hardware encoder
        https://bugs.webkit.org/show_bug.cgi?id=183961

        Reviewed by Eric Carlson.

        In case a compression session is not using a hardware encoder and VCP is not active
        use a specific mode if the resolution is standard.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:

2018-04-05  Alejandro G. Castro  <alex@igalia.com>

        [GTK] Add CMake package search for vpx and libevent libraries
        https://bugs.webkit.org/show_bug.cgi?id=184257

        Reviewed by Michael Catanzaro.

        Add new cmake search files for libevent, vpx and alsa-lib, this
        makes a cleaner detection of the libraries.

        * CMakeLists.txt: Use the new cmake find files to detect the
        package and add a better error message when the library is not
        there.
        * Source/cmake/FindAlsaLib.cmake: Added.
        * Source/cmake/FindLibEvent.cmake: Added.
        * Source/cmake/FindVpx.cmake: Added.

2018-04-03  Youenn Fablet  <youenn@apple.com>

        RealtimeOutgoingVideoSourceMac should pass a ObjCFrameBuffer buffer
        https://bugs.webkit.org/show_bug.cgi?id=184281
        rdar://problem/39153262

        Reviewed by Jer Noble.

        Introduce a routine to create the wrapper around native pixel buffers as expected by the new libwebrtc H264 encoder.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::pixelBufferToFrame):

2018-04-02  Alejandro G. Castro  <alex@igalia.com>

        Unreviewed fixing GTK port X86 32bits compilation after r230152.

        * CMakeLists.txt:

2018-04-02  Alejandro G. Castro  <alex@igalia.com>

        Unreviewed fixing GTK port ARM compilation after r230152.

        * CMakeLists.txt: Properly avoid SSE implementations for ARM.

2018-04-02  Alejandro G. Castro  <alex@igalia.com>

        [GTK] Make libwebrtc backend buildable for GTK  port
        https://bugs.webkit.org/show_bug.cgi?id=178860

        Reviewed by Youenn Fablet.

        Modified the cmake file and added some assembly code to the
        boringssl compilation required for the linux compilation generated
        by libwebrtc.

        * CMakeLists.txt: This cmake file was unused so we have modified
        it completely to make it work for our port. It was originally
        generated from the libwebrtc json file but not anymore. We could
        change its structure at some point but current one seems a good
        option for the moment.
        * Source/webrtc/base/task_queue_libevent.cc: We use system
        libevent for the moment so we needed to adapt the includes in this file.
        * Source/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc:
        Readded lines removed by mistake in a previous commit.

2018-03-26  Youenn Fablet  <youennf@gmail.com>

        Make VCP encoder usage conditional on using internal SDK
        https://bugs.webkit.org/show_bug.cgi?id=184009

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:

2018-03-23  Youenn Fablet  <youenn@apple.com>

        Add support for VCP encoder on MacOS and iOS
        Build fix.

        Unreviewed.

        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp:

2018-03-23  Youenn Fablet  <youenn@apple.com>

        Add support for VCP encoder on MacOS and iOS
        https://bugs.webkit.org/show_bug.cgi?id=183924

        Reviewed by Eric Carlson.

        Soft-Link VideoProcessing functions and use them in H264 encoder.
        This is conditional on recent MacOS and iOS platforms.

        * Source/webrtc/sdk/WebKit/EncoderUtilities.h: Added.
        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp: Added.
        * Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h: Added.
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
        (webrtc::createVideoToolboxEncoderFactory):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        (-[RTCVideoEncoderH264 destroyCompressionSession]):
        * WebKit/0001-Using-VCP.patch: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2018-03-23  David Kilzer  <ddkilzer@apple.com>

        Stop using dispatch_set_target_queue()
        <https://webkit.org/b/183908>
        <rdar://problem/33553533>

        Reviewed by Daniel Bates.

        * Source/webrtc/rtc_base/task_queue_gcd.cc: Remove use of
        dispatch_set_target_queue() by changing dispatch_queue_create()
        to dispatch_queue_create_with_target().
        * WebKit/0009-Remove-dispatch_set_target_queue.patch: Add patch.
        Filed this to track upstreaming the change:
        <https://bugs.chromium.org/p/webrtc/issues/detail?id=9055>
        * WebKit/patch-libwebrtc: Delete empty patch file.

2018-03-23  Youenn Fablet  <youenn@apple.com>

        Use libwebrtc ObjectiveC H264 encoder and decoder
        https://bugs.webkit.org/show_bug.cgi?id=183912

        Reviewed by Eric Carlson.

        Add utilities inside libwebrtc to be used by WebKit:
        - Create ObjectiveC encoder/decoder factories
        - Notify of application status to invalidate encoders/decoders when in background
        Implement RTCUIApplicationStatusObserver as a simple boolean that is set by WebCore.
        This allows limiting the changes made to libwebrtc codec implementations.

        Minor modifications done to libwebrtc to fix compilation.
        Add Block_copy/Block_release to codec callbacks.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h: Added.
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm: Added.
        (+[RTCUIApplicationStatusObserver sharedInstance]):
        (+[RTCUIApplicationStatusObserver prepareForUse]):
        (-[RTCUIApplicationStatusObserver setActive]):
        (-[RTCUIApplicationStatusObserver setInactive]):
        (-[RTCUIApplicationStatusObserver isApplicationActive]):
        (webrtc::setApplicationStatus):
        (webrtc::createVideoToolboxEncoderFactory):
        (webrtc::createVideoToolboxDecoderFactory):
        (webrtc::setH264HardwareEncoderAllowed):
        (webrtc::isH264HardwareEncoderAllowed):
        (webrtc::pixelBufferFromFrame):
        * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm:
        (-[RTCCVPixelBuffer dealloc]):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm:
        (-[RTCVideoDecoderH264 dealloc]):
        (-[RTCVideoDecoderH264 setCallback:]):
        (-[RTCVideoDecoderH264 releaseDecoder]):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 dealloc]):
        (-[RTCVideoEncoderH264 setCallback:]):
        (-[RTCVideoEncoderH264 releaseEncoder]):
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        * WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2018-03-22  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r229876.
        https://bugs.webkit.org/show_bug.cgi?id=183929

        Some webrtc tests are timing out on iOS simulator (Requested
        by youenn on #webkit).

        Reverted changeset:

        "Use libwebrtc ObjectiveC H264 encoder and decoder"
        https://bugs.webkit.org/show_bug.cgi?id=183912
        https://trac.webkit.org/changeset/229876

2018-03-22  Youenn Fablet  <youenn@apple.com>

        Use libwebrtc ObjectiveC H264 encoder and decoder
        https://bugs.webkit.org/show_bug.cgi?id=183912

        Reviewed by Eric Carlson.

        Add utilities inside libwebrtc to be used by WebKit:
        - Create ObjectiveC encoder/decoder factories
        - Notify of application status to invalidate encoders/decoders when in background
        Implement RTCUIApplicationStatusObserver as a simple boolean that is set by WebCore.
        This allows limiting the changes made to libwebrtc codec implementations.

        Minor modifications done to libwebrtc to fix compilation.
        Add Block_copy/Block_release to codec callbacks.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/WebKit/WebKitUtilities.h: Added.
        * Source/webrtc/sdk/WebKit/WebKitUtilities.mm: Added.
        (+[RTCUIApplicationStatusObserver sharedInstance]):
        (+[RTCUIApplicationStatusObserver prepareForUse]):
        (-[RTCUIApplicationStatusObserver setActive]):
        (-[RTCUIApplicationStatusObserver setInactive]):
        (-[RTCUIApplicationStatusObserver isApplicationActive]):
        (webrtc::setApplicationStatus):
        (webrtc::createVideoToolboxEncoderFactory):
        (webrtc::createVideoToolboxDecoderFactory):
        (webrtc::setH264HardwareEncoderAllowed):
        (webrtc::isH264HardwareEncoderAllowed):
        (webrtc::pixelBufferFromFrame):
        * Source/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm:
        (-[RTCCVPixelBuffer dealloc]):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm:
        (-[RTCVideoDecoderH264 dealloc]):
        (-[RTCVideoDecoderH264 setCallback:]):
        (-[RTCVideoDecoderH264 releaseDecoder]):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:
        (-[RTCVideoEncoderH264 dealloc]):
        (-[RTCVideoEncoderH264 setCallback:]):
        (-[RTCVideoEncoderH264 releaseEncoder]):
        (-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
        * WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2018-03-14  Youenn Fablet  <youenn@apple.com>

        Update libwebrtc up to 36af4e9614f707f733eb2340fae66d6325aaac5b
        https://bugs.webkit.org/show_bug.cgi?id=183481

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/: refreshed
        * libwebrtc.xcodeproj/project.pbxproj:

2018-03-12  Tim Horton  <timothy_horton@apple.com>

        Stop using SDK conditionals to control feature definitions
        https://bugs.webkit.org/show_bug.cgi?id=183430
        <rdar://problem/38251619>

        Reviewed by Dan Bernstein.

        * Configurations/WebKitTargetConditionals.xcconfig: Renamed.
        * Configurations/opus.xcconfig:

2018-03-12  Youenn Fablet  <youenn@apple.com>

        Remove empty cpp files in Source/ThirdParty/libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=183529

        Unreviewed.
        Removing further empty files.

        * Source/webrtc/modules/audio_conference_mixer/BUILD.gn: Removed.
        * Source/webrtc/modules/audio_conference_mixer/DEPS: Removed.
        * Source/webrtc/modules/audio_conference_mixer/OWNERS: Removed.
        * Source/webrtc/modules/video_coding/codecs/OWNERS: Removed.
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/decoder.mm: Removed.
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm: Removed.
        * Source/webrtc/sdk/objc/Framework/UnitTests/RTCMTLVideoViewTests.mm: Removed.

2018-03-12  youenn fablet  <youenn@apple.com>

        Remove empty cpp files in Source/ThirdParty/libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=183529

        Unreviewed.

        * libwebrtc.xcodeproj/project.pbxproj: fix the build.

2018-03-09  Youenn Fablet  <youenn@apple.com>

        Remove empty cpp files in Source/ThirdParty/libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=183529

        Reviewed by Eric Carlson.

        * Source/third_party/boringssl/boringssl_unittest.cc: Removed.
        * Source/third_party/boringssl/src/ssl/ssl_privkey_cc.cc: Removed.
        * Source/webrtc/common_audio/fir_filter.cc: Removed.
        * Source/webrtc/config.cc: Removed.
        * Source/webrtc/logging/rtc_event_log/rtc_event_log_helper_thread.cc: Removed.
        * Source/webrtc/modules/audio_coding/audio_network_adaptor/audio_network_adaptor.cc: Removed.
        * Source/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.cc: Removed.
        * Source/webrtc/modules/audio_coding/codecs/builtin_audio_encoder_factory_internal.cc: Removed.
        * Source/webrtc/modules/audio_coding/codecs/ilbc/test/empty.cc: Removed.
        * Source/webrtc/modules/audio_coding/codecs/isac/empty.cc: Removed.
        * Source/webrtc/modules/audio_coding/neteq/audio_decoder_impl.cc: Removed.
        * Source/webrtc/modules/audio_coding/neteq/test/NETEQTEST_DummyRTPpacket.cc: Removed.
        * Source/webrtc/modules/audio_coding/neteq/test/NETEQTEST_RTPpacket.cc: Removed.
        * Source/webrtc/modules/audio_coding/neteq/test/RTPchange.cc: Removed.
        * Source/webrtc/modules/audio_coding/neteq/test/RTPencode.cc: Removed.
        * Source/webrtc/modules/audio_coding/neteq/test/RTPjitter.cc: Removed.
        * Source/webrtc/modules/audio_coding/neteq/test/RTPtimeshift.cc: Removed.
        * Source/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.cc: Removed.
        * Source/webrtc/modules/audio_conference_mixer/source/audio_frame_manipulator.cc: Removed.
        * Source/webrtc/modules/audio_conference_mixer/source/time_scheduler.cc: Removed.
        * Source/webrtc/modules/audio_conference_mixer/test/audio_conference_mixer_unittest.cc: Removed.
        * Source/webrtc/modules/audio_device/test/audio_device_test_api.cc: Removed.
        * Source/webrtc/modules/audio_processing/aec3/decimator_by_4.cc: Removed.
        * Source/webrtc/modules/audio_processing/aec3/decimator_by_4_unittest.cc: Removed.
        * Source/webrtc/modules/audio_processing/agc2/digital_gain_applier.cc: Removed.
        * Source/webrtc/modules/audio_processing/residual_echo_detector_complexity_unittest.cc: Removed.
        * Source/webrtc/modules/congestion_controller/acknowledge_bitrate_estimator.cc: Removed.
        * Source/webrtc/modules/congestion_controller/congestion_controller.cc: Removed.
        * Source/webrtc/modules/congestion_controller/congestion_controller_unittest.cc: Removed.
        * Source/webrtc/modules/desktop_capture/resolution_change_detector.cc: Removed.
        * Source/webrtc/modules/video_coding/codecs/test/plot_videoprocessor_integrationtest.cc: Removed.
        * Source/webrtc/modules/video_coding/codecs/test/predictive_packet_manipulator.cc: Removed.
        * Source/webrtc/modules/video_coding/codecs/tools/video_quality_measurement.cc: Removed.
        * Source/webrtc/modules/video_coding/sequence_number_util_unittest.cc: Removed.
        * Source/webrtc/p2p/base/dtlstransportchannel.cc: Removed.
        * Source/webrtc/p2p/base/dtlstransportchannel_unittest.cc: Removed.
        * Source/webrtc/p2p/base/transportcontroller.cc: Removed.
        * Source/webrtc/p2p/base/transportcontroller_unittest.cc: Removed.
        * Source/webrtc/p2p/quic/quicconnectionhelper.cc: Removed.
        * Source/webrtc/p2p/quic/quicconnectionhelper_unittest.cc: Removed.
        * Source/webrtc/p2p/quic/quicsession.cc: Removed.
        * Source/webrtc/p2p/quic/quicsession_unittest.cc: Removed.
        * Source/webrtc/p2p/quic/quictransport.cc: Removed.
        * Source/webrtc/p2p/quic/quictransport_unittest.cc: Removed.
        * Source/webrtc/p2p/quic/quictransportchannel.cc: Removed.
        * Source/webrtc/p2p/quic/quictransportchannel_unittest.cc: Removed.
        * Source/webrtc/p2p/quic/reliablequicstream.cc: Removed.
        * Source/webrtc/p2p/quic/reliablequicstream_unittest.cc: Removed.
        * Source/webrtc/pc/quicdatachannel.cc: Removed.
        * Source/webrtc/pc/quicdatachannel_unittest.cc: Removed.
        * Source/webrtc/pc/quicdatatransport.cc: Removed.
        * Source/webrtc/pc/quicdatatransport_unittest.cc: Removed.
        * Source/webrtc/pc/webrtcsession.cc: Removed.
        * Source/webrtc/pc/webrtcsession_unittest.cc: Removed.
        * Source/webrtc/sdk/android/src/jni/androidnetworkmonitor_jni.cc: Removed.
        * Source/webrtc/sdk/android/src/jni/audio_jni.cc: Removed.
        * Source/webrtc/sdk/android/src/jni/filevideocapturer_jni.cc: Removed.
        * Source/webrtc/sdk/android/src/jni/media_jni.cc: Removed.
        * Source/webrtc/sdk/android/src/jni/native_handle_impl.cc: Removed.
        * Source/webrtc/sdk/android/src/jni/null_audio_jni.cc: Removed.
        * Source/webrtc/sdk/android/src/jni/null_media_jni.cc: Removed.
        * Source/webrtc/sdk/android/src/jni/null_video_jni.cc: Removed.
        * Source/webrtc/sdk/android/src/jni/ownedfactoryandthreads.cc: Removed.
        * Source/webrtc/sdk/android/src/jni/peerconnection_jni.cc: Removed.
        * Source/webrtc/sdk/android/src/jni/rtcstatscollectorcallbackwrapper.cc: Removed.
        * Source/webrtc/sdk/android/src/jni/video_jni.cc: Removed.
        * Source/webrtc/system_wrappers/source/atomic32_darwin.cc: Removed.
        * Source/webrtc/system_wrappers/source/atomic32_non_darwin_unix.cc: Removed.
        * Source/webrtc/system_wrappers/source/atomic32_win.cc: Removed.
        * Source/webrtc/system_wrappers/source/logcat_trace_context.cc: Removed.
        * Source/webrtc/system_wrappers/source/trace_impl.cc: Removed.
        * Source/webrtc/system_wrappers/source/trace_posix.cc: Removed.
        * Source/webrtc/system_wrappers/source/trace_win.cc: Removed.
        * Source/webrtc/test/testsupport/isolated_output.cc: Removed.
        * Source/webrtc/test/testsupport/isolated_output_unittest.cc: Removed.
        * Source/webrtc/test/testsupport/trace_to_stderr.cc: Removed.
        * Source/webrtc/tools/agc/activity_metric.cc: Removed.
        * Source/webrtc/tools/converter/converter.cc: Removed.
        * Source/webrtc/tools/converter/rgba_to_i420_converter.cc: Removed.
        * Source/webrtc/tools/event_log_visualizer/analyzer.cc: Removed.
        * Source/webrtc/tools/event_log_visualizer/main.cc: Removed.
        * Source/webrtc/tools/event_log_visualizer/plot_base.cc: Removed.
        * Source/webrtc/tools/event_log_visualizer/plot_protobuf.cc: Removed.
        * Source/webrtc/tools/event_log_visualizer/plot_python.cc: Removed.
        * Source/webrtc/tools/force_mic_volume_max/force_mic_volume_max.cc: Removed.
        * Source/webrtc/tools/frame_analyzer/frame_analyzer.cc: Removed.
        * Source/webrtc/tools/frame_analyzer/reference_less_video_analysis.cc: Removed.
        * Source/webrtc/tools/frame_analyzer/reference_less_video_analysis_lib.cc: Removed.
        * Source/webrtc/tools/frame_analyzer/reference_less_video_analysis_unittest.cc: Removed.
        * Source/webrtc/tools/frame_analyzer/video_quality_analysis.cc: Removed.
        * Source/webrtc/tools/frame_analyzer/video_quality_analysis_unittest.cc: Removed.
        * Source/webrtc/tools/frame_editing/frame_editing.cc: Removed.
        * Source/webrtc/tools/frame_editing/frame_editing_lib.cc: Removed.
        * Source/webrtc/tools/frame_editing/frame_editing_unittest.cc: Removed.
        * Source/webrtc/tools/network_tester/config_reader.cc: Removed.
        * Source/webrtc/tools/network_tester/network_tester_unittest.cc: Removed.
        * Source/webrtc/tools/network_tester/packet_logger.cc: Removed.
        * Source/webrtc/tools/network_tester/packet_sender.cc: Removed.
        * Source/webrtc/tools/network_tester/server.cc: Removed.
        * Source/webrtc/tools/network_tester/test_controller.cc: Removed.
        * Source/webrtc/tools/psnr_ssim_analyzer/psnr_ssim_analyzer.cc: Removed.
        * Source/webrtc/tools/simple_command_line_parser.cc: Removed.
        * Source/webrtc/tools/simple_command_line_parser_unittest.cc: Removed.
        * Source/webrtc/video/vie_encoder.cc: Removed.
        * Source/webrtc/video/vie_encoder_unittest.cc: Removed.
        * Source/webrtc/voice_engine/coder.cc: Removed.
        * Source/webrtc/voice_engine/file_player.cc: Removed.
        * Source/webrtc/voice_engine/file_player_unittests.cc: Removed.
        * Source/webrtc/voice_engine/file_recorder.cc: Removed.
        * Source/webrtc/voice_engine/output_mixer.cc: Removed.
        * Source/webrtc/voice_engine/statistics.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/automated_mode.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/fakes/conference_transport.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/fakes/loudest_filter.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/fixtures/after_initialization_fixture.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/fixtures/after_streaming_fixture.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/fixtures/before_initialization_fixture.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/fixtures/before_streaming_fixture.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/standard/codec_before_streaming_test.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/standard/codec_test.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/standard/dtmf_test.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/standard/rtp_rtcp_before_streaming_test.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/standard/rtp_rtcp_extensions.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/standard/rtp_rtcp_test.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/voe_conference_test.cc: Removed.
        * Source/webrtc/voice_engine/test/auto_test/voe_standard_test.cc: Removed.
        * Source/webrtc/voice_engine/voe_codec_impl.cc: Removed.
        * Source/webrtc/voice_engine/voe_codec_unittest.cc: Removed.
        * Source/webrtc/voice_engine/voe_file_impl.cc: Removed.
        * Source/webrtc/voice_engine/voe_network_impl.cc: Removed.
        * Source/webrtc/voice_engine/voe_network_unittest.cc: Removed.
        * Source/webrtc/voice_engine/voe_rtp_rtcp_impl.cc: Removed.
        * Source/webrtc/voice_engine/voice_engine_fixture.cc: Removed.

2018-03-07  Youenn Fablet  <youenn@apple.com>

        Update to libwebrtc revision 4e70a72571dd26b85c2385e9c618e343428df5d3
        https://bugs.webkit.org/show_bug.cgi?id=180843

        Unreviewed.
        Removed empty unused files.

        * Source/webrtc/audio/test/low_bandwidth_audio_test.h: Removed.
        * Source/webrtc/config.h: Removed.
        * Source/webrtc/logging/rtc_event_log/rtc_event_log_helper_thread.h: Removed.
        * Source/webrtc/media/engine/webrtccommon.h: Removed.
        * Source/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.h: Removed.
        * Source/webrtc/modules/audio_coding/codecs/builtin_audio_encoder_factory_internal.h: Removed.
        * Source/webrtc/modules/audio_coding/neteq/audio_decoder_impl.h: Removed.
        * Source/webrtc/modules/audio_coding/neteq/test/NETEQTEST_DummyRTPpacket.h: Removed.
        * Source/webrtc/modules/audio_coding/neteq/test/NETEQTEST_RTPpacket.h: Removed.
        * Source/webrtc/modules/audio_coding/neteq/test/PayloadTypes.h: Removed.
        * Source/webrtc/modules/audio_conference_mixer/include/audio_conference_mixer.h: Removed.
        * Source/webrtc/modules/audio_conference_mixer/include/audio_conference_mixer_defines.h: Removed.
        * Source/webrtc/modules/audio_conference_mixer/source/audio_conference_mixer_impl.h: Removed.
        * Source/webrtc/modules/audio_conference_mixer/source/audio_frame_manipulator.h: Removed.
        * Source/webrtc/modules/audio_conference_mixer/source/memory_pool.h: Removed.
        * Source/webrtc/modules/audio_conference_mixer/source/memory_pool_posix.h: Removed.
        * Source/webrtc/modules/audio_conference_mixer/source/memory_pool_win.h: Removed.
        * Source/webrtc/modules/audio_conference_mixer/source/time_scheduler.h: Removed.
        * Source/webrtc/modules/audio_device/test/audio_device_test_defines.h: Removed.
        * Source/webrtc/modules/audio_processing/aec3/decimator_by_4.h: Removed.
        * Source/webrtc/modules/audio_processing/agc2/digital_gain_applier.h: Removed.
        * Source/webrtc/modules/congestion_controller/acknowledge_bitrate_estimator.h: Removed.
        * Source/webrtc/modules/congestion_controller/include/congestion_controller.h: Removed.
        * Source/webrtc/modules/desktop_capture/resolution_change_detector.h: Removed.
        * Source/webrtc/modules/remote_bitrate_estimator/include/mock/mock_remote_bitrate_observer.h: Removed.
        * Source/webrtc/modules/video_coding/codecs/test/predictive_packet_manipulator.h: Removed.
        * Source/webrtc/modules/video_coding/sequence_number_util.h: Removed.
        * Source/webrtc/p2p/base/candidate.h: Removed.
        * Source/webrtc/p2p/base/dtlstransportchannel.h: Removed.
        * Source/webrtc/p2p/base/faketransportcontroller.h: Removed.
        * Source/webrtc/p2p/base/transportcontroller.h: Removed.
        * Source/webrtc/p2p/quic/quicconnectionhelper.h: Removed.
        * Source/webrtc/p2p/quic/quicsession.h: Removed.
        * Source/webrtc/p2p/quic/quictransport.h: Removed.
        * Source/webrtc/p2p/quic/quictransportchannel.h: Removed.
        * Source/webrtc/p2p/quic/reliablequicstream.h: Removed.
        * Source/webrtc/pc/quicdatachannel.h: Removed.
        * Source/webrtc/pc/quicdatatransport.h: Removed.
        * Source/webrtc/pc/test/mock_webrtcsession.h: Removed.
        * Source/webrtc/pc/webrtcsession.h: Removed.
        * Source/webrtc/sdk/android/src/jni/audio_jni.h: Removed.
        * Source/webrtc/sdk/android/src/jni/media_jni.h: Removed.
        * Source/webrtc/sdk/android/src/jni/native_handle_impl.h: Removed.
        * Source/webrtc/sdk/android/src/jni/ownedfactoryandthreads.h: Removed.
        * Source/webrtc/sdk/android/src/jni/rtcstatscollectorcallbackwrapper.h: Removed.
        * Source/webrtc/sdk/android/src/jni/video_jni.h: Removed.
        * Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCFileVideoCapturer.h: Removed.
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/decoder.h: Removed.
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.h: Removed.
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.h: Removed.
        * Source/webrtc/system_wrappers/include/fix_interlocked_exchange_pointer_win.h: Removed.
        * Source/webrtc/system_wrappers/include/logcat_trace_context.h: Removed.
        * Source/webrtc/system_wrappers/include/static_instance.h: Removed.
        * Source/webrtc/system_wrappers/include/trace.h: Removed.
        * Source/webrtc/system_wrappers/source/trace_impl.h: Removed.
        * Source/webrtc/system_wrappers/source/trace_posix.h: Removed.
        * Source/webrtc/system_wrappers/source/trace_win.h: Removed.
        * Source/webrtc/test/testsupport/isolated_output.h: Removed.
        * Source/webrtc/test/testsupport/mock/mock_frame_writer.h: Removed.
        * Source/webrtc/test/testsupport/trace_to_stderr.h: Removed.
        * Source/webrtc/tools/converter/converter.h: Removed.
        * Source/webrtc/tools/event_log_visualizer/analyzer.h: Removed.
        * Source/webrtc/tools/event_log_visualizer/plot_base.h: Removed.
        * Source/webrtc/tools/event_log_visualizer/plot_protobuf.h: Removed.
        * Source/webrtc/tools/event_log_visualizer/plot_python.h: Removed.
        * Source/webrtc/tools/frame_analyzer/reference_less_video_analysis_lib.h: Removed.
        * Source/webrtc/tools/frame_analyzer/video_quality_analysis.h: Removed.
        * Source/webrtc/tools/frame_editing/frame_editing_lib.h: Removed.
        * Source/webrtc/tools/network_tester/config_reader.h: Removed.
        * Source/webrtc/tools/network_tester/packet_logger.h: Removed.
        * Source/webrtc/tools/network_tester/packet_sender.h: Removed.
        * Source/webrtc/tools/network_tester/test_controller.h: Removed.
        * Source/webrtc/tools/simple_command_line_parser.h: Removed.
        * Source/webrtc/video/vie_encoder.h: Removed.
        * Source/webrtc/video_receive_stream.h: Removed.
        * Source/webrtc/video_send_stream.h: Removed.
        * Source/webrtc/voice_engine/coder.h: Removed.
        * Source/webrtc/voice_engine/file_player.h: Removed.
        * Source/webrtc/voice_engine/file_recorder.h: Removed.
        * Source/webrtc/voice_engine/include/voe_codec.h: Removed.
        * Source/webrtc/voice_engine/include/voe_file.h: Removed.
        * Source/webrtc/voice_engine/include/voe_network.h: Removed.
        * Source/webrtc/voice_engine/include/voe_rtp_rtcp.h: Removed.
        * Source/webrtc/voice_engine/mock/mock_voe_observer.h: Removed.
        * Source/webrtc/voice_engine/monitor_module.h: Removed.
        * Source/webrtc/voice_engine/output_mixer.h: Removed.
        * Source/webrtc/voice_engine/statistics.h: Removed.
        * Source/webrtc/voice_engine/test/auto_test/automated_mode.h: Removed.
        * Source/webrtc/voice_engine/test/auto_test/fakes/conference_transport.h: Removed.
        * Source/webrtc/voice_engine/test/auto_test/fakes/loudest_filter.h: Removed.
        * Source/webrtc/voice_engine/test/auto_test/fixtures/after_initialization_fixture.h: Removed.
        * Source/webrtc/voice_engine/test/auto_test/fixtures/after_streaming_fixture.h: Removed.
        * Source/webrtc/voice_engine/test/auto_test/fixtures/before_initialization_fixture.h: Removed.
        * Source/webrtc/voice_engine/test/auto_test/fixtures/before_streaming_fixture.h: Removed.
        * Source/webrtc/voice_engine/test/auto_test/voe_standard_test.h: Removed.
        * Source/webrtc/voice_engine/test/auto_test/voe_test_common.h: Removed.
        * Source/webrtc/voice_engine/test/auto_test/voe_test_defines.h: Removed.
        * Source/webrtc/voice_engine/voe_codec_impl.h: Removed.
        * Source/webrtc/voice_engine/voe_file_impl.h: Removed.
        * Source/webrtc/voice_engine/voe_network_impl.h: Removed.
        * Source/webrtc/voice_engine/voe_rtp_rtcp_impl.h: Removed.
        * Source/webrtc/voice_engine/voice_engine_fixture.h: Removed.

2018-03-07  Youenn Fablet  <youenn@apple.com>

        Update to libwebrtc revision 4e70a72571dd26b85c2385e9c618e343428df5d3
        https://bugs.webkit.org/show_bug.cgi?id=180843

        Unreviewed.
        Removed folder as it is now unused.

        * Source/webrtc/base: Removed.

2017-12-18  Youenn Fablet  <youenn@apple.com>

        Update to libwebrtc revision 4e70a72571dd26b85c2385e9c618e343428df5d3
        https://bugs.webkit.org/show_bug.cgi?id=180843

        Reviewed by Eric Carlson.

        Updated libwebrtc as follows:
        - Boringssl
            - https://boringssl.googlesource.com/boringssl/
            - fc9c67599d9bdeb2e0467085133b81a8e28f77a4
        - Libwebrtc
            - https://webrtc.googlesource.com/src
            - 4e70a72571dd26b85c2385e9c618e343428df5d3
            - Libsrtp
                - 1d45b8e599dc2db6ea3ae22dbc94a8c504652423
                - https://chromium.googlesource.com/chromium/deps/libsrtp.git
            - Libyuv
                - 12c904a97c81c3ef4cab0fc8fb1f0485b4ec4e8c
                - https://chromium.googlesource.com/libyuv/libyuv.git
            - Usrsctp
                - f4819e1b177f7bfdd761c147f5a649b9f1a78c06
                - https://github.com/sctplab/usrsctp.git

        Below files have been modified to adapt for WebKit.
        Patches for various parts are kept in WebKit folder.
        In addition to these changes, VTB codecs and factories used by WebKit
        are now added inside libwebrtc in webrtc/sdk/WebKit.
        Future refactoring should consolidate these files.

        Not updated the following folders that are not used right now:
        - Source/third_party/boringssl/linux-x86_64
        - Source/third_party/boringssl/mac-x86
        - Source/webrtc/data
        - Source/third_party/boringssl/src/fuzz

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtcpcrtc.xcconfig:
        * Source/third_party/boringssl/src/crypto/fipsmodule/aes/aes.c:
        * Source/third_party/usrsctp/usrsctplib/netinet/sctp_input.c:
        (sctp_process_cookie_existing):
        * Source/third_party/usrsctp/usrsctplib/netinet/sctp_output.c:
        * Source/third_party/usrsctp/usrsctplib/netinet/sctp_pcb.c:
        * Source/third_party/usrsctp/usrsctplib/user_atomic.h:
        * Source/webrtc/api/array_view.h:
        (rtc::impl::ArrayViewBase::ArrayViewBase):
        * Source/webrtc/api/audio_codecs/ilbc/audio_encoder_ilbc.cc:
        * Source/webrtc/api/datachannelinterface.h:
        (webrtc::DataChannelObserver::OnBufferedAmountChange):
        * Source/webrtc/api/jsep.h:
        (webrtc::SessionDescriptionInterface::RemoveCandidates):
        * Source/webrtc/api/mediastreaminterface.h:
        (webrtc::VideoTrackInterface::set_content_hint):
        (webrtc::AudioSourceInterface::SetVolume):
        (webrtc::AudioSourceInterface::RegisterAudioObserver):
        (webrtc::AudioSourceInterface::UnregisterAudioObserver):
        (webrtc::AudioSourceInterface::AddSink):
        (webrtc::AudioSourceInterface::RemoveSink):
        (webrtc::AudioTrackInterface::GetSignalLevel):
        * Source/webrtc/api/mediatypes.cc:
        * Source/webrtc/api/peerconnectioninterface.h:
        (webrtc::PeerConnectionInterface::AddTransceiver):
        (webrtc::PeerConnectionInterface::CreateSender):
        (webrtc::PeerConnectionInterface::GetStats):
        (webrtc::PeerConnectionInterface::CreateOffer):
        (webrtc::PeerConnectionInterface::CreateAnswer):
        (webrtc::PeerConnectionInterface::SetRemoteDescription):
        (webrtc::PeerConnectionInterface::UpdateIce):
        (webrtc::PeerConnectionInterface::SetConfiguration):
        (webrtc::PeerConnectionInterface::RemoveIceCandidates):
        (webrtc::PeerConnectionInterface::SetBitrateAllocationStrategy):
        (webrtc::PeerConnectionInterface::SetAudioPlayout):
        (webrtc::PeerConnectionInterface::SetAudioRecording):
        (webrtc::PeerConnectionInterface::StartRtcEventLog):
        (webrtc::PeerConnectionObserver::OnIceCandidatesRemoved):
        (webrtc::PeerConnectionObserver::OnIceConnectionReceivingChange):
        (webrtc::PeerConnectionObserver::OnAddTrack):
        (webrtc::PeerConnectionObserver::OnRemoveTrack):
        (webrtc::PeerConnectionFactoryInterface::CreateVideoSource):
        * Source/webrtc/api/umametrics.h:
        (webrtc::MetricsObserverInterface::IncrementEnumCounter):
        * Source/webrtc/api/video_codecs/video_decoder.h:
        (webrtc::DecodedImageCallback::Decoded):
        (webrtc::DecodedImageCallback::ReceivedDecodedReferenceFrame):
        (webrtc::DecodedImageCallback::ReceivedDecodedFrame):
        * Source/webrtc/api/video_codecs/video_encoder.h:
        (webrtc::EncodedImageCallback::OnDroppedFrame):
        * Source/webrtc/common_video/include/frame_callback.h:
        (webrtc::EncodedFrameObserver::OnEncodeTiming):
        * Source/webrtc/common_video/video_frame_buffer.cc:
        * Source/webrtc/logging/rtc_event_log/rtc_event_log.h:
        (webrtc::RtcEventLog::Create):
        * Source/webrtc/media/base/mediachannel.h:
        (cricket::DataMediaChannel::GetStats):
        (cricket::DataMediaChannel::OnNetworkRouteChanged):
        * Source/webrtc/media/engine/internaldecoderfactory.cc:
        * Source/webrtc/media/engine/internalencoderfactory.cc:
        * Source/webrtc/modules/audio_coding/acm2/audio_coding_module.cc:
        * Source/webrtc/modules/audio_coding/acm2/rent_a_codec.cc:
        * Source/webrtc/modules/audio_coding/codecs/cng/audio_encoder_cng.cc:
        * Source/webrtc/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.cc:
        * Source/webrtc/modules/audio_coding/neteq/tools/neteq_rtpplay.cc:
        * Source/webrtc/modules/audio_coding/neteq/tools/neteq_test.cc:
        * Source/webrtc/modules/audio_coding/neteq/tools/rtp_file_source.cc:
        * Source/webrtc/modules/audio_device/android/audio_device_template.h:
        * Source/webrtc/modules/audio_device/android/audio_record_jni.cc:
        * Source/webrtc/modules/audio_device/include/audio_device.h:
        (webrtc::AudioDeviceModule::SetRecordingChannel):
        (webrtc::AudioDeviceModule::RecordingChannel const):
        (webrtc::AudioDeviceModule::SetRecordingSampleRate):
        (webrtc::AudioDeviceModule::RecordingSampleRate const):
        (webrtc::AudioDeviceModule::SetPlayoutSampleRate):
        (webrtc::AudioDeviceModule::PlayoutSampleRate const):
        (webrtc::AudioDeviceModule::SetLoudspeakerStatus):
        (webrtc::AudioDeviceModule::GetLoudspeakerStatus const):
        * Source/webrtc/modules/audio_processing/test/py_quality_assessment/quality_assessment/fake_polqa.cc:
        * Source/webrtc/modules/audio_processing/test/wav_based_simulator.cc:
        * Source/webrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc:
        * Source/webrtc/modules/video_coding/codecs/vp8/default_temporal_layers.h:
        (webrtc::DefaultTemporalLayersChecker::BufferState::BufferState):
        * Source/webrtc/modules/video_coding/codecs/vp8/default_temporal_layers_unittest.cc:
        * Source/webrtc/modules/video_coding/codecs/vp8/include/vp8.h:
        * Source/webrtc/modules/video_coding/codecs/vp8/include/vp8_common_types.h:
        * Source/webrtc/modules/video_coding/codecs/vp8/include/vp8_globals.h:
        * Source/webrtc/modules/video_coding/codecs/vp8/screenshare_layers.cc:
        * Source/webrtc/modules/video_coding/codecs/vp8/screenshare_layers.h:
        * Source/webrtc/modules/video_coding/codecs/vp8/screenshare_layers_unittest.cc:
        * Source/webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.cc:
        * Source/webrtc/modules/video_coding/codecs/vp8/simulcast_rate_allocator.h:
        * Source/webrtc/modules/video_coding/codecs/vp8/simulcast_unittest.cc:
        * Source/webrtc/modules/video_coding/codecs/vp8/temporal_layers.h:
        (webrtc::TemporalLayers::FrameConfig::operator== const):
        (webrtc::TemporalLayers::FrameConfig::operator!= const):
        (webrtc::TemporalLayersChecker::~TemporalLayersChecker):
        (webrtc::TemporalLayersChecker::BufferState::BufferState):
        * Source/webrtc/modules/video_coding/codecs/vp8/test/vp8_impl_unittest.cc:
        * Source/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc:
        * Source/webrtc/modules/video_coding/codecs/vp8/vp8_impl.h:
        * Source/webrtc/modules/video_coding/codecs/vp8/vp8_noop.cc:
        * Source/webrtc/modules/video_coding/qp_parser.cc:
        * Source/webrtc/modules/video_coding/video_codec_initializer.cc:
        * Source/webrtc/ortc/ortcfactory.cc:
        * Source/webrtc/ortc/rtpparametersconversion.cc:
        * Source/webrtc/p2p/base/icetransportinternal.h:
        (cricket::IceTransportInternal::SetIceProtocolType):
        * Source/webrtc/p2p/base/port.h:
        (cricket::Port::HandleConnectionDestroyed):
        * Source/webrtc/p2p/base/stun.h:
        (cricket::StunAttribute::SetOwner):
        * Source/webrtc/p2p/base/stunrequest.h:
        (cricket::StunRequest::Prepare):
        (cricket::StunRequest::OnResponse):
        (cricket::StunRequest::OnErrorResponse):
        * Source/webrtc/rtc_base/checks.h:
        * Source/webrtc/rtc_base/flags.cc:
        * Source/webrtc/rtc_base/location.h:
        * Source/webrtc/rtc_base/messagehandler.h:
        (rtc::FunctorMessageHandler::OnMessage):
        * Source/webrtc/rtc_base/network.h:
        (rtc::NetworkManager::GetAnyAddressNetworks):
        * Source/webrtc/rtc_base/numerics/safe_conversions.h:
        (rtc::saturated_cast):
        * Source/webrtc/rtc_base/numerics/safe_conversions_impl.h:
        * Source/webrtc/rtc_base/opensslidentity.cc:
        * Source/webrtc/rtc_base/sanitizer.h:
        (rtc_AsanPoison):
        (rtc_AsanUnpoison):
        (rtc_MsanMarkUninitialized):
        (rtc_MsanCheckInitialized):
        * Source/webrtc/rtc_base/socketserver.h:
        (rtc::SocketServer::SetMessageQueue):
        * Source/webrtc/rtc_base/stream.h:
        (rtc::StreamInterface::ConsumeReadData):
        (rtc::StreamInterface::ConsumeWriteBuffer):
        * Source/webrtc/rtc_base/stringize_macros.h:
        * Source/webrtc/sdk/WebKit/VideoToolBoxDecoderFactory.cpp: Added.
        (webrtc::VideoToolboxVideoDecoderFactory::~VideoToolboxVideoDecoderFactory):
        (webrtc::VideoToolboxVideoDecoderFactory::Add):
        (webrtc::VideoToolboxVideoDecoderFactory::Remove):
        (webrtc::VideoToolboxVideoDecoderFactory::SetActive):
        (webrtc::VideoToolboxVideoDecoderFactory::CreateVideoDecoder):
        (webrtc::CreateH264Format):
        (webrtc::VideoToolboxVideoDecoderFactory::GetSupportedFormats const):
        * Source/webrtc/sdk/WebKit/VideoToolBoxDecoderFactory.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/VideoToolBoxDecoderFactory.h.
        * Source/webrtc/sdk/WebKit/VideoToolBoxEncoderFactory.cpp: Added.
        (webrtc::VideoToolboxVideoEncoderFactory::~VideoToolboxVideoEncoderFactory):
        (webrtc::VideoToolboxVideoEncoderFactory::Add):
        (webrtc::VideoToolboxVideoEncoderFactory::Remove):
        (webrtc::VideoToolboxVideoEncoderFactory::SetActive):
        (webrtc::CreateH264Format):
        (webrtc::VideoToolboxVideoEncoderFactory::GetSupportedFormats const):
        (webrtc::VideoToolboxVideoEncoderFactory::QueryVideoEncoder const):
        (webrtc::VideoToolboxVideoEncoderFactory::CreateVideoEncoder):
        * Source/webrtc/sdk/WebKit/VideoToolBoxEncoderFactory.h: Renamed from Source/WebCore/platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h.
        * Source/webrtc/sdk/WebKit/decoder.h: Added.
        (webrtc::H264VideoToolboxDecoder::SetActive):
        * Source/webrtc/sdk/WebKit/decoder.mm: Added.
        (webrtc::H264VideoToolboxDecoder::H264VideoToolboxDecoder):
        (webrtc::H264VideoToolboxDecoder::~H264VideoToolboxDecoder):
        (webrtc::H264VideoToolboxDecoder::ClearFactory):
        (webrtc::H264VideoToolboxDecoder::InitDecode):
        (webrtc::H264VideoToolboxDecoder::Decode):
        * Source/webrtc/sdk/WebKit/encoder.h: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h.
        (webrtc::H264VideoToolboxEncoder::ClearFactory):
        (webrtc::H264VideoToolboxEncoder::SetActive):
        * Source/webrtc/sdk/WebKit/encoder.mm: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.mm.
        (internal::CreateCFDictionary):
        (internal::CFStringToString):
        (internal::SetVTSessionProperty):
        (internal::FrameEncodeParams::FrameEncodeParams):
        (internal::CopyVideoFrameToPixelBuffer):
        (internal::CreatePixelBuffer):
        (internal::VTCompressionOutputCallback):
        (internal::ExtractProfile):
        (webrtc::H264VideoToolboxEncoder::H264VideoToolboxEncoder):
        (webrtc::H264VideoToolboxEncoder::~H264VideoToolboxEncoder):
        (webrtc::H264VideoToolboxEncoder::InitEncode):
        (webrtc::H264VideoToolboxEncoder::Encode):
        * Source/webrtc/sdk/WebKit/encoder_vcp.h: Renamed from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h.
        (webrtc::H264VideoToolboxEncoderVCP::ClearFactory):
        * Source/webrtc/sdk/WebKit/encoder_vcp.mm: Renamed from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.mm.
        (internal::SetVTSessionProperty):
        (internal::CopyVideoFrameToPixelBuffer):
        (internal::CreatePixelBuffer):
        (internal::ExtractProfile):
        (webrtc::H264VideoToolboxEncoderVCP::H264VideoToolboxEncoderVCP):
        (webrtc::H264VideoToolboxEncoderVCP::Encode):
        * Source/webrtc/test/rtp_file_reader.cc:
        * Source/webrtc/voice_engine/utility.cc:
        * WebKit/0001-Tweaking-boringssl-include-of-internal.h.patch: Renamed from Source/ThirdParty/libwebrtc/WebKit/patch-boringssl.
        * WebKit/0002-Fixing-usrctp-library-compilation-errors.patch: Added.
        * WebKit/0003-Fixing-VP8-files.patch: Added.
        * WebKit/0004-Removing-parameter-names-from-files-included-from-We.patch: Added.
        * WebKit/0005-Fix-RTC_FATAL.patch: Added.
        * WebKit/0006-Disabling-VP8.patch: Added.
        * WebKit/0007-Fix-RTC_STRINGIZE.patch: Added.
        * WebKit/0008-Fix-sanitizer.patch: Added.
        * WebKit/patch-libwebrtc: Removed.
        * WebKit/patch-usrsctp: Removed.
        * libwebrtc.xcodeproj/project.pbxproj:

2018-01-27  Dan Bernstein  <mitz@apple.com>

        HaveInternalSDK includes should be "#include?"
        https://bugs.webkit.org/show_bug.cgi?id=179670

        * Configurations/Base.xcconfig:

2018-01-26  Youenn Fablet  <youenn@apple.com>

        Disable VCP for MacOS
        https://bugs.webkit.org/show_bug.cgi?id=182183
        <rdar://problem/36919791>

        Reviewed by Eric Carlson.

        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/VideoProcessingSoftLink.h:

2018-01-19  Joseph Pecoraro  <pecoraro@apple.com>

        Follow-up build fix for r227206.

        Unreviewed.

        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/VideoProcessingSoftLink.h:
        Avoid duplicate and different definitions of ALWAYS_INLINE.

2018-01-19  Youenn Fablet  <youenn@apple.com>

        Softlink VideoProcessing in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=181853
        <rdar://problem/36590005>

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.xcconfig:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/VideoProcessingSoftLink.cpp: Added.
        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/VideoProcessingSoftLink.h: Added.
        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.mm:
        (internal::SetVTSessionProperty):
        (webrtc::H264VideoToolboxEncoderVCP::Encode):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.mm:
        (webrtc::VideoToolboxVideoEncoderFactory::VideoToolboxVideoEncoderFactory):
        * libwebrtc.xcodeproj/project.pbxproj:

2018-01-18  Dan Bernstein  <mitz@apple.com>

        [Xcode] Streamline and future-proof target-macOS-version-dependent build setting definitions
        https://bugs.webkit.org/show_bug.cgi?id=181803

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig: Updated.
        * Configurations/DebugRelease.xcconfig: Ditto.
        * Configurations/macOSTargetConditionals.xcconfig: Added. Defines helper build settings
          useful for defining settings that depend on the target macOS version.
        * Configurations/opus.xcconfig: Adopted macOSTargetConditionals helper.

2018-01-08  David Kilzer  <ddkilzer@apple.com>

        libwebrtc: Fix 'ld: warning: cannot export hidden symbol' messages
        <https://webkit.org/b/181378>

        Reviewed by Youenn Fablet.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        - Remove 117 symbols that are not currently exported.  These
          warnings only appear in Release and Production builds.

2018-01-05  Youenn Fablet  <youenn@apple.com>

        Close WebRTC sockets when marked as defunct
        https://bugs.webkit.org/show_bug.cgi?id=177324
        rdar://problem/35244931

        Reviewed by Eric Carlson.

        In case selected sockets return an error when trying to accept an incoming socket,
        check whether the socket is defunct or not.
        If so, close it properly.

        * Source/webrtc/base/asynctcpsocket.cc:
        * Source/webrtc/base/physicalsocketserver.cc:
        * Source/webrtc/base/socket.h:

2017-12-15  Dan Bernstein  <mitz@apple.com>

        libwebrtc installs an extra copy of encoder_vcp.h under /usr/local/include
        https://bugs.webkit.org/show_bug.cgi?id=180858

        Reviewed by Anders Carlsson.

        * libwebrtc.xcodeproj/project.pbxproj: Demoted the header from Private to Project. A script build phase
          copies it to the correct location under /usr/local/include/webrtc.

2017-12-14  David Kilzer  <ddkilzer@apple.com>

        Enable -Wstrict-prototypes for WebKit
        <https://webkit.org/b/180757>
        <rdar://problem/36024132>

        Rubber-stamped by Joseph Pecoraro.

        * Configurations/Base.xcconfig:
        (CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c:
        (wakeup_one): Modernize function argument declarations.
        (getsockaddr): Ditto.
        * Source/webrtc/common_audio/signal_processing/include/signal_processing_library.h:
        (WebRtcSpl_Init): Add 'void' to C function declaration.
        * Source/webrtc/common_audio/vad/include/webrtc_vad.h:
        (WebRtcVad_Create): Ditto.
        * Source/webrtc/modules/audio_coding/codecs/isac/fix/source/codec.h:
        (WebRtcIsacfix_InitTransform): Ditto.
        * Source/webrtc/modules/audio_processing/agc/legacy/gain_control.h:
        (WebRtcAgc_Create): Ditto.
        * Source/webrtc/modules/audio_processing/ns/noise_suppression.h:
        (WebRtcNs_Create): Ditto.
        (WebRtcNs_num_freq): Ditto.
        * Source/webrtc/modules/audio_processing/ns/noise_suppression_x.h:
        (WebRtcNsx_Create): Ditto.
        (WebRtcNsx_num_freq): Ditto.

2017-12-11  Youenn Fablet  <youenn@apple.com>

        Use VCP H264 encoder for platforms supporting it
        https://bugs.webkit.org/show_bug.cgi?id=179076
        rdar://problem/35180773

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h: Added.
        (webrtc::H264VideoToolboxEncoderVCP::SetActive):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.mm: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm.
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm:
        (internal::CFStringToString):
        (internal::SetVTSessionProperty):
        (internal::CopyVideoFrameToPixelBuffer):
        (internal::CreatePixelBuffer):
        (internal::VTCompressionOutputCallback):
        (internal::ExtractProfile):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.h:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.mm:
        (webrtc::VideoToolboxVideoEncoderFactory::VideoToolboxVideoEncoderFactory):
        (webrtc::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder):
        * libwebrtc.xcodeproj/project.pbxproj:

2017-12-11  Tim Horton  <timothy_horton@apple.com>

        Stop using deprecated target conditional for simulator builds
        https://bugs.webkit.org/show_bug.cgi?id=180662
        <rdar://problem/35136156>

        Reviewed by Simon Fraser.

        * Source/third_party/libyuv/source/mjpeg_decoder.cc:
        * Source/webrtc/examples/objc/AppRTCMobile/ARDAppClient.m:
        (-[ARDAppClient createLocalVideoTrack]):
        * Source/webrtc/examples/objc/AppRTCMobile/tests/ARDAppClient_xctest.mm:
        * Source/webrtc/modules/audio_device/ios/audio_device_ios.mm:
        (webrtc::LogDeviceInfo):

2017-11-06  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r224497.
        https://bugs.webkit.org/show_bug.cgi?id=179335

        It is breaking internal builds (Requested by youenn on
        #webkit).

        Reverted changeset:

        "Use VCP H264 encoder for platforms supporting it"
        https://bugs.webkit.org/show_bug.cgi?id=179076
        https://trac.webkit.org/changeset/224497

2017-11-06  Youenn Fablet  <youenn@apple.com>

        Use VCP H264 encoder for platforms supporting it
        https://bugs.webkit.org/show_bug.cgi?id=179076
        rdar://problem/35180773

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h: Added.
        (webrtc::H264VideoToolboxEncoderVCP::SetActive):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.mm: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm.
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm:
        (internal::CFStringToString):
        (internal::SetVTSessionProperty):
        (internal::CopyVideoFrameToPixelBuffer):
        (internal::CreatePixelBuffer):
        (internal::VTCompressionOutputCallback):
        (internal::ExtractProfile):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.h:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.mm:
        (webrtc::VideoToolboxVideoEncoderFactory::VideoToolboxVideoEncoderFactory):
        (webrtc::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder):
        * libwebrtc.xcodeproj/project.pbxproj:

2017-11-03  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r224428, r224435, and r224440.
        https://bugs.webkit.org/show_bug.cgi?id=179274

        Broke iOS and internal builds (Requested by ryanhaddad on
        #webkit).

        Reverted changesets:

        "Use VCP H264 encoder for platforms supporting it"
        https://bugs.webkit.org/show_bug.cgi?id=179076
        https://trac.webkit.org/changeset/224428

        "Use VCP H264 encoder for platforms supporting it"
        https://bugs.webkit.org/show_bug.cgi?id=179076
        https://trac.webkit.org/changeset/224435

        "Use VCP H264 encoder for platforms supporting it"
        https://bugs.webkit.org/show_bug.cgi?id=179076
        https://trac.webkit.org/changeset/224440

2017-11-03  Youenn Fablet  <youenn@apple.com>

        Use VCP H264 encoder for platforms supporting it
        https://bugs.webkit.org/show_bug.cgi?id=179076
        rdar://problem/35180773

        Unreviewed.

        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h: build fix for iOS.

2017-11-03  Youenn Fablet  <youenn@apple.com>

        Use VCP H264 encoder for platforms supporting it
        https://bugs.webkit.org/show_bug.cgi?id=179076
        rdar://problem/35180773

        Unreviewed.

        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h: build fix.

2017-11-03  Youenn Fablet  <youenn@apple.com>

        Use VCP H264 encoder for platforms supporting it
        https://bugs.webkit.org/show_bug.cgi?id=179076
        rdar://problem/35180773

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.iOS.exp:
        * Configurations/libwebrtc.iOSsim.exp:
        * Configurations/libwebrtc.mac.exp:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h: Added.
        (webrtc::H264VideoToolboxEncoderVCP::SetActive):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.mm: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm.
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm:
        (internal::CFStringToString):
        (internal::SetVTSessionProperty):
        (internal::CopyVideoFrameToPixelBuffer):
        (internal::CreatePixelBuffer):
        (internal::VTCompressionOutputCallback):
        (internal::ExtractProfile):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.h:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.mm:
        (webrtc::VideoToolboxVideoEncoderFactory::VideoToolboxVideoEncoderFactory):
        (webrtc::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder):
        * libwebrtc.xcodeproj/project.pbxproj:

2017-10-04  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r222775.
        https://bugs.webkit.org/show_bug.cgi?id=177890

        Significantly increased the WebKit build time (Requested by
        rniwa on #webkit).

        Reverted changeset:

        "Build libwebrtc unit tests executables"
        https://bugs.webkit.org/show_bug.cgi?id=177211
        http://trac.webkit.org/changeset/222775

2017-10-03  Youenn Fablet  <youenn@apple.com>

        Remove no longer needed WebRTC build infrastructure
        https://bugs.webkit.org/show_bug.cgi?id=177756

        Reviewed by Alejandro G. Castro.

        * WebKit/project.json: Removed.
        * WebKit/rtc_sdk_framework_objc_info_plist.plist: Removed.

2017-10-03  Youenn Fablet  <youenn@apple.com>

        Build libwebrtc unit tests executables
        https://bugs.webkit.org/show_bug.cgi?id=177211

        Reviewed by Alex Christensen.

        Adding support for a new target called unittests that will be several executables.
        Each executable run unit tests dedicated to a part of libwebrtc.

        Adding one target/executable per unit test suite.
        Adding one composite target to build all unit test targets.
        Adding a target to build a static libwebrtctest library.
        The static libwebrtctest library is then linked to each unit test executable which is also linked to libwebrtc dylib.

        Some unit tests require a default codec (VP8) that is disabled in libwebrtc.
        This ends up making some tests crashing.
        An additional work should follow to execute only the meaningful subset of tests.

        * Configurations/libwebrtc-base.xcconfig: Added.
        * Configurations/libwebrtc-test-static.xcconfig: Added.
        * Configurations/rtc_pc_unittests.xcconfig: Added.
        * Source/third_party/gflags/gen/posix/include/private/config.h:
        * Source/webrtc/modules/audio_coding/neteq/tools/neteq_test.cc: Replacing FATAL by RTC_FATAL.
        * Source/webrtc/sdk/objc/Framework/Classes/Common/helpers.mm: Removing UIKit dependency.
        * Source/webrtc/test/gmock.h: Using googletest version instead of checking in testing folder.
        * Source/webrtc/test/gtest.h: Ditto.
        * Source/webrtc/test/rtp_file_reader.cc: Replacing FATAL by RTC_FATAL.
        * libwebrtc.xcodeproj/project.pbxproj:

2017-09-29  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r222652.

        This broke an internal build.

        Reverted changeset:

        "Build libwebrtc unit tests executables"
        https://bugs.webkit.org/show_bug.cgi?id=177211
        http://trac.webkit.org/changeset/222652

2017-09-29  Youenn Fablet  <youenn@apple.com>

        Build libwebrtc unit tests executables
        https://bugs.webkit.org/show_bug.cgi?id=177211

        Reviewed by Alex Christensen.

        Adding support for a new target called unittests that will be several executables.
        Each executable run unit tests dedicated to a part of libwebrtc.

        Adding one target/executable per unit test suite.
        Adding one composite target to build all unit test targets.
        Adding a target to build a static libwebrtctest library.
        The static libwebrtctest library is then linked to each unit test executable which is also linked to libwebrtc dylib.

        Some unit tests require a default codec (VP8) that is disabled in libwebrtc.
        This ends up making some tests crashing.
        An additional work should follow to execute only the meaningful subset of tests.

        * Configurations/libwebrtc-base.xcconfig: Added.
        * Configurations/libwebrtc-test-static.xcconfig: Added.
        * Configurations/rtc_pc_unittests.xcconfig: Added.
        * Source/third_party/gflags/gen/posix/include/private/config.h:
        * Source/webrtc/modules/audio_coding/neteq/tools/neteq_test.cc: Replacing FATAL by RTC_FATAL.
        * Source/webrtc/sdk/objc/Framework/Classes/Common/helpers.mm: Removing UIKit dependency.
        * Source/webrtc/test/gmock.h: Using googletest version instead of checking in testing folder.
        * Source/webrtc/test/gtest.h: Ditto.
        * Source/webrtc/test/rtp_file_reader.cc: Replacing FATAL by RTC_FATAL.
        * libwebrtc.xcodeproj/project.pbxproj:

2017-09-27  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r222537.

        This change broke internal builds.

        Reverted changeset:

        "Build libwebrtc unit tests executables"
        https://bugs.webkit.org/show_bug.cgi?id=177211
        http://trac.webkit.org/changeset/222537

2017-09-26  Youenn Fablet  <youenn@apple.com>

        Build libwebrtc unit tests executables
        https://bugs.webkit.org/show_bug.cgi?id=177211

        Reviewed by Alex Christensen.

        Adding support for a new target called unittests that will be several executables.
        Each executable run unit tests dedicated to a part of libwebrtc.

        Adding one target/executable per unit test suite.
        Adding one composite target to build all unit test targets.
        Adding a target to build a static libwebrtctest library.
        The static libwebrtctest library is then linked to each unit test executable which is also linked to libwebrtc dylib.

        Some unit tests require a default codec (VP8) that is disabled in libwebrtc.
        This ends up making some tests crashing.
        An additional work should follow to execute only the meaningful subset of tests.

        * Configurations/libwebrtc-base.xcconfig: Added.
        * Configurations/libwebrtc-test-static.xcconfig: Added.
        * Configurations/rtc_pc_unittests.xcconfig: Added.
        * Source/third_party/gflags/gen/posix/include/private/config.h:
        * Source/webrtc/modules/audio_coding/neteq/tools/neteq_test.cc: Replacing FATAL by RTC_FATAL.
        * Source/webrtc/sdk/objc/Framework/Classes/Common/helpers.mm: Removing UIKit dependency.
        * Source/webrtc/test/gmock.h: Using googletest version instead of checking in testing folder.
        * Source/webrtc/test/gtest.h: Ditto.
        * Source/webrtc/test/rtp_file_reader.cc: Replacing FATAL by RTC_FATAL.
        * libwebrtc.xcodeproj/project.pbxproj:

2017-09-26  Youenn Fablet  <youenn@apple.com>

        Remove unnecessary libwebrtc dependencies
        https://bugs.webkit.org/show_bug.cgi?id=177494

        Reviewed by Alex Christensen.

        * libwebrtc.xcodeproj/project.pbxproj:

2017-09-25  Youenn Fablet  <youenn@apple.com>

        WebRTC video does not resume receiving when switching back to Safari 11 on iOS
        https://bugs.webkit.org/show_bug.cgi?id=175472
        <rdar://problem/33860863>

        Reviewed by Darin Adler.

        Adding a method to disable any decoding/encoding task.
        When reenabling the decoder, the decoder will request an I frame after failing the first initial decoding task.

        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/decoder.h:
        (webrtc::H264VideoToolboxDecoder::SetActive):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/decoder.mm:
        (webrtc::H264VideoToolboxDecoder::Decode):
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.h:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm:
        (webrtc::H264VideoToolboxEncoder::Encode):

2017-09-25  Youenn Fablet  <youenn@apple.com>

        Adding per-platform libwebrtc export files
        https://bugs.webkit.org/show_bug.cgi?id=177465

        Reviewed by Alex Christensen.

        Using per platform export symbol files for libwebrtc.dylib.
        This allows exporting platform-specific symbols that are used by libwebrtc unit tests.

        * Configurations/libwebrtc.iOS.exp: Added.
        * Configurations/libwebrtc.iOSsim.exp: Added.
        * Configurations/libwebrtc.mac.exp: Added.
        * Configurations/libwebrtc.exp: Removed.
        * Configurations/libwebrtc.xcconfig:
        * libwebrtc.xcodeproj/project.pbxproj: Adding ISAC/fix codec files used for
        by audio codec unit tests to libwebrtc.dylib. This files will allow us to add support to the ISAC/fix codec.

2017-09-23  Youenn Fablet  <youenn@apple.com>

        Export libwebrtc symbols through an export file
        https://bugs.webkit.org/show_bug.cgi?id=177344

        Reviewed by Darin Adler.

        Removing export changes made to libwebrtc.
        Exporting based on libwebrtc.exp file.

        * Configurations/Base.xcconfig:
        * Configurations/libwebrtc.exp: Added.
        * Configurations/libwebrtc.xcconfig:
        * Source/webrtc/api/jsep.h:
        (): Deleted.
        * Source/webrtc/api/mediatypes.h:
        * Source/webrtc/api/peerconnectioninterface.h:
        * Source/webrtc/api/rtcerror.h:
        * Source/webrtc/api/stats/rtcstats.h:
        * Source/webrtc/api/stats/rtcstatsreport.h:
        (): Deleted.
        * Source/webrtc/api/video/i420_buffer.h:
        * Source/webrtc/api/video/video_frame.h:
        (): Deleted.
        * Source/webrtc/api/video/video_frame_buffer.h:
        * Source/webrtc/base/asyncpacketsocket.h:
        * Source/webrtc/base/asyncresolverinterface.h:
        (): Deleted.
        * Source/webrtc/base/checks.h:
        (): Deleted.
        * Source/webrtc/base/copyonwritebuffer.h:
        (): Deleted.
        * Source/webrtc/base/event.h:
        (): Deleted.
        * Source/webrtc/base/export.h: Removed.
        * Source/webrtc/base/helpers.h:
        * Source/webrtc/base/ipaddress.h:
        * Source/webrtc/base/location.h:
        (): Deleted.
        * Source/webrtc/base/logging.h:
        * Source/webrtc/base/messagehandler.h:
        * Source/webrtc/base/network.h:
        * Source/webrtc/base/proxyinfo.h:
        * Source/webrtc/base/socketaddress.h:
        (): Deleted.
        * Source/webrtc/base/thread.h:
        * Source/webrtc/common_video/include/i420_buffer_pool.h:
        (): Deleted.
        * Source/webrtc/common_video/include/video_frame_buffer.h:
        (): Deleted.
        * Source/webrtc/common_video/libyuv/include/webrtc_libyuv.h:
        * Source/webrtc/media/engine/webrtcvideoencoderfactory.h:
        (): Deleted.
        * Source/webrtc/p2p/base/basicpacketsocketfactory.h:
        (): Deleted.
        * Source/webrtc/p2p/client/basicportallocator.h:
        * Source/webrtc/pc/mediastream.h:
        * Source/webrtc/sdk/objc/Framework/Classes/Video/corevideo_frame_buffer.h:
        (): Deleted.
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.h:
        (): Deleted.
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.h:
        (): Deleted.
        * libwebrtc.xcodeproj/project.pbxproj:

2017-09-20  Youenn Fablet  <youenn@apple.com>

        Upstream googletest framework
        https://bugs.webkit.org/show_bug.cgi?id=177252

        Reviewed by Alex Christensen.

        This is used by libwebrtc.

        * Source/third_party/googletest: Added.
 
2017-09-15  Alicia Boya García  <aboya@igalia.com>

        Normalize line terminators in jsoncpp Visual Studio files
        https://bugs.webkit.org/show_bug.cgi?id=176991

        Reviewed by Konstantin Tokarev.

        * Source/third_party/jsoncpp/source/makefiles/vs71/jsoncpp.sln:
        * Source/third_party/jsoncpp/source/makefiles/vs71/jsontest.vcproj:
        * Source/third_party/jsoncpp/source/makefiles/vs71/lib_json.vcproj:
        * Source/third_party/jsoncpp/source/makefiles/vs71/test_lib_json.vcproj:

2017-07-18  Andy Estes  <aestes@apple.com>

        [Xcode] Enable CLANG_WARN_OBJC_LITERAL_CONVERSION
        https://bugs.webkit.org/show_bug.cgi?id=174631

        Reviewed by Sam Weinig.

        * Configurations/Base.xcconfig:

2017-07-18  Andy Estes  <aestes@apple.com>

        [Xcode] Enable CLANG_WARN_NON_LITERAL_NULL_CONVERSION
        https://bugs.webkit.org/show_bug.cgi?id=174631

        Reviewed by Dan Bernstein.

        * Configurations/Base.xcconfig:

2017-07-18  Andy Estes  <aestes@apple.com>

        [Xcode] Enable CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING
        https://bugs.webkit.org/show_bug.cgi?id=174631

        Reviewed by Darin Adler.

        * Configurations/Base.xcconfig:

2017-07-03  Andy Estes  <aestes@apple.com>

        [Xcode] Add an experimental setting to build with ccache
        https://bugs.webkit.org/show_bug.cgi?id=173875

        Reviewed by Tim Horton.

        * Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

2017-07-01  Dan Bernstein  <mitz@apple.com>

        [macOS] Remove code only needed when building for OS X Yosemite
        https://bugs.webkit.org/show_bug.cgi?id=174067

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:

2017-06-27  Youenn Fablet  <youenn@apple.com>

        Update boringssl to c8ff30cbe716c72279a6f6a9d7d7d0d4091220fa
        https://bugs.webkit.org/show_bug.cgi?id=173676

        Reviewed by Alex Christensen.

        * Configurations/boringssl.xcconfig: Enabling ASM.
        * Source/third_party/boringssl/BUILD.generated.gni:
        * Source/third_party/boringssl: Updated folder according new revision.
        * WebKit/patch-boringssl: Added, needed to fix some files to disable warnings.
        * libwebrtc.xcodeproj/project.pbxproj:

2017-06-27  Youenn Fablet  <youenn@apple.com>

        Refresh usrsctp to Source/ThirdParty/libwebrtc/WebKit/patch-usrsctp and libsrtp to ccf84786f8ef803cb9c75e919e5a3976b9f5a67
        https://bugs.webkit.org/show_bug.cgi?id=173673

        Reviewed by Sam Weinig.

        * Source/third_party/libsrtp/README.chromium:
        * Source/third_party/libsrtp/srtp/srtp.c:
        (srtp_stream_init_keys):
        (srtp_calc_aead_iv_srtcp):
        (srtp_protect_rtcp_aead):
        (srtp_unprotect_rtcp_aead):
        * Source/third_party/libsrtp/test/srtp_driver.c:
        (srtp_validate_encrypted_extensions_headers_gcm):
        * Source/third_party/usrsctp/usrsctplib/.gitignore: Added.
        * Source/third_party/usrsctp/usrsctplib/CMakeLists.txt:
        * Source/third_party/usrsctp/usrsctplib/Makefile.am:
        * Source/third_party/usrsctp/usrsctplib/README.md:
        * Source/third_party/usrsctp/usrsctplib/configure.ac:
        * Source/third_party/usrsctp/usrsctplib/programs/CMakeLists.txt:
        * Source/third_party/usrsctp/usrsctplib/programs/Makefile.am:
        * Source/third_party/usrsctp/usrsctplib/programs/client.c:
        (main):
        * Source/third_party/usrsctp/usrsctplib/programs/datachan_serv.c:
        (main):
        * Source/third_party/usrsctp/usrsctplib/programs/ekr_loop_offload.c: Added.
        (handle_packets):
        * Source/third_party/usrsctp/usrsctplib/programs/test_timer.c: Added.
        (main):
        * Source/third_party/usrsctp/usrsctplib/usrsctp.pc.in: Added.
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/CMakeLists.txt:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_asconf.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_auth.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_auth.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_bsd_addr.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_bsd_addr.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_cc_functions.c:
        (sctp_cwnd_update_after_fr):
        (sctp_hs_cwnd_update_after_fr):
        (sctp_htcp_cwnd_update_after_fr):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_constants.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_crc32.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_crc32.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_header.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.c:
        (sctp_build_readq_entry):
        (sctp_place_control_in_stream):
        (sctp_abort_in_reasm):
        (sctp_queue_data_to_stream):
        (sctp_build_readq_entry_from_ctl):
        (sctp_handle_old_unordered_data):
        (sctp_inject_old_unordered_data):
        (sctp_deliver_reasm_check):
        (sctp_add_chk_to_control):
        (sctp_queue_data_for_reasm):
        (sctp_find_reasm_entry):
        (sctp_process_a_data_chunk):
        (sctp_sack_check):
        (sctp_process_segment_range):
        (sctp_check_for_revoked):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_indata.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:
        (sctp_process_init):
        (sctp_process_cookie_existing):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_peeloff.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_ss_functions.c:
        (sctp_ss_rr_add):
        (sctp_ss_fcfs_select):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_structs.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_sysctl.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_timer.c:
        (sctp_recover_sent_list):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_uio.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_usrreq.c:
        (sctp_init):
        (sctp_pathmtu_adjustment):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_var.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.c:
        (sctp_log_strm_del):
        (sctp_init_asoc):
        (sctp_notify_send_failed):
        (sctp_notify_send_failed2):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctputil.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet6/sctp6_var.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_mbuf.c:
        (m_get):
        (mbuf_initialize):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_mbuf.h:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_socket.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/usrsctp.h:
        * WebKit/patch-usrsctp: Added.

2017-06-22  Youenn Fablet  <youenn@apple.com>

        [WebRTC] Prevent capturing at unconventional resolutions when using the SW encoder on Mac
        https://bugs.webkit.org/show_bug.cgi?id=172602
        <rdar://problem/32407693>

        Reviewed by Eric Carlson.

        Adding a parameter to disable hardware encoder.

        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.h:
        * Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm:
        (webrtc::H264VideoToolboxEncoder::CreateCompressionSession):

2017-06-21  Youenn Fablet  <youenn@apple.com>

        Update libyuv to 8cab2e31d76246263206318f3568d452e7f3ff3e
        https://bugs.webkit.org/show_bug.cgi?id=173675

        Reviewed by Sam Weinig.

        * Source/third_party/libyuv/.clang-format: Added.
        * Source/third_party/libyuv/.gitignore: Added.
        * Source/third_party/libyuv/Android.mk:
        * Source/third_party/libyuv/BUILD.gn:
        * Source/third_party/libyuv/CM_linux_packages.cmake: Added.
        * Source/third_party/libyuv/CMakeLists.txt:
        * Source/third_party/libyuv/DEPS:
        * Source/third_party/libyuv/PRESUBMIT.py:
        (_RunPythonTests):
        (_RunPythonTests.join):
        (_CommonChecks):
        (CheckChangeOnUpload):
        (CheckChangeOnCommit):
        * Source/third_party/libyuv/README.chromium:
        * Source/third_party/libyuv/build_overrides/build.gni:
        * Source/third_party/libyuv/chromium/.gclient: Removed.
        * Source/third_party/libyuv/chromium/README: Removed.
        * Source/third_party/libyuv/cleanup_links.py: Added.
        (WebRTCLinkSetup):
        (WebRTCLinkSetup.__init__):
        (WebRTCLinkSetup.CleanupLinks):
        (_initialize_database):
        (main):
        * Source/third_party/libyuv/codereview.settings:
        * Source/third_party/libyuv/docs/deprecated_builds.md:
        * Source/third_party/libyuv/docs/getting_started.md:
        * Source/third_party/libyuv/gyp_libyuv.py:
        * Source/third_party/libyuv/include/libyuv/basic_types.h:
        * Source/third_party/libyuv/include/libyuv/compare.h:
        * Source/third_party/libyuv/include/libyuv/compare_row.h:
        * Source/third_party/libyuv/include/libyuv/convert.h:
        * Source/third_party/libyuv/include/libyuv/convert_argb.h:
        * Source/third_party/libyuv/include/libyuv/convert_from.h:
        * Source/third_party/libyuv/include/libyuv/convert_from_argb.h:
        * Source/third_party/libyuv/include/libyuv/cpu_id.h:
        * Source/third_party/libyuv/include/libyuv/macros_msa.h:
        * Source/third_party/libyuv/include/libyuv/mjpeg_decoder.h:
        * Source/third_party/libyuv/include/libyuv/planar_functions.h:
        * Source/third_party/libyuv/include/libyuv/rotate.h:
        * Source/third_party/libyuv/include/libyuv/rotate_argb.h:
        * Source/third_party/libyuv/include/libyuv/rotate_row.h:
        * Source/third_party/libyuv/include/libyuv/row.h:
        * Source/third_party/libyuv/include/libyuv/scale.h:
        * Source/third_party/libyuv/include/libyuv/scale_argb.h:
        * Source/third_party/libyuv/include/libyuv/scale_row.h:
        * Source/third_party/libyuv/include/libyuv/version.h:
        * Source/third_party/libyuv/include/libyuv/video_common.h:
        * Source/third_party/libyuv/infra/config/OWNERS: Added.
        * Source/third_party/libyuv/infra/config/README.md: Added.
        * Source/third_party/libyuv/infra/config/cq.cfg: Added.
        * Source/third_party/libyuv/libyuv.gyp:
        * Source/third_party/libyuv/libyuv.gypi:
        * Source/third_party/libyuv/libyuv_test.gyp:
        * Source/third_party/libyuv/linux.mk:
        * Source/third_party/libyuv/pylintrc: Added.
        * Source/third_party/libyuv/setup_links.py: Removed.
        * Source/third_party/libyuv/source/compare.cc:
        * Source/third_party/libyuv/source/compare_common.cc:
        * Source/third_party/libyuv/source/compare_gcc.cc:
        * Source/third_party/libyuv/source/compare_neon.cc:
        * Source/third_party/libyuv/source/compare_neon64.cc:
        * Source/third_party/libyuv/source/compare_win.cc:
        * Source/third_party/libyuv/source/convert.cc:
        * Source/third_party/libyuv/source/convert_argb.cc:
        * Source/third_party/libyuv/source/convert_from.cc:
        * Source/third_party/libyuv/source/convert_from_argb.cc:
        * Source/third_party/libyuv/source/convert_jpeg.cc:
        * Source/third_party/libyuv/source/convert_to_argb.cc:
        * Source/third_party/libyuv/source/convert_to_i420.cc:
        * Source/third_party/libyuv/source/cpu_id.cc:
        * Source/third_party/libyuv/source/mjpeg_decoder.cc:
        * Source/third_party/libyuv/source/mjpeg_validate.cc:
        * Source/third_party/libyuv/source/planar_functions.cc:
        * Source/third_party/libyuv/source/rotate.cc:
        * Source/third_party/libyuv/source/rotate_any.cc:
        * Source/third_party/libyuv/source/rotate_argb.cc:
        * Source/third_party/libyuv/source/rotate_common.cc:
        * Source/third_party/libyuv/source/rotate_dspr2.cc: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/source/rotate_mips.cc.
        * Source/third_party/libyuv/source/rotate_gcc.cc:
        * Source/third_party/libyuv/source/rotate_msa.cc: Added.
        * Source/third_party/libyuv/source/rotate_neon.cc:
        * Source/third_party/libyuv/source/rotate_neon64.cc:
        * Source/third_party/libyuv/source/rotate_win.cc:
        * Source/third_party/libyuv/source/row_any.cc:
        * Source/third_party/libyuv/source/row_common.cc:
        * Source/third_party/libyuv/source/row_dspr2.cc: Added.
        * Source/third_party/libyuv/source/row_gcc.cc:
        * Source/third_party/libyuv/source/row_mips.cc: Removed.
        * Source/third_party/libyuv/source/row_msa.cc:
        * Source/third_party/libyuv/source/row_neon.cc:
        * Source/third_party/libyuv/source/row_neon64.cc:
        * Source/third_party/libyuv/source/row_win.cc:
        * Source/third_party/libyuv/source/scale.cc:
        * Source/third_party/libyuv/source/scale_any.cc:
        * Source/third_party/libyuv/source/scale_argb.cc:
        * Source/third_party/libyuv/source/scale_common.cc:
        * Source/third_party/libyuv/source/scale_dspr2.cc: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/source/scale_mips.cc.
        * Source/third_party/libyuv/source/scale_gcc.cc:
        * Source/third_party/libyuv/source/scale_msa.cc: Added.
        * Source/third_party/libyuv/source/scale_neon.cc:
        * Source/third_party/libyuv/source/scale_neon64.cc:
        * Source/third_party/libyuv/source/scale_win.cc:
        * Source/third_party/libyuv/source/video_common.cc:
        * Source/third_party/libyuv/sync_chromium.py: Removed.
        * Source/third_party/libyuv/third_party/gflags/BUILD.gn: Removed.
        * Source/third_party/libyuv/third_party/gflags/LICENSE: Removed.
        * Source/third_party/libyuv/third_party/gflags/README.libyuv: Removed.
        * Source/third_party/libyuv/third_party/gflags/gen/posix/include/gflags/gflags.h: Removed.
        * Source/third_party/libyuv/third_party/gflags/gen/posix/include/gflags/gflags_completions.h: Removed.
        * Source/third_party/libyuv/third_party/gflags/gen/posix/include/gflags/gflags_declare.h: Removed.
        * Source/third_party/libyuv/third_party/gflags/gen/posix/include/gflags/gflags_gflags.h: Removed.
        * Source/third_party/libyuv/third_party/gflags/gen/posix/include/private/config.h: Removed.
        * Source/third_party/libyuv/third_party/gflags/gen/win/include/gflags/gflags.h: Removed.
        * Source/third_party/libyuv/third_party/gflags/gen/win/include/gflags/gflags_completions.h: Removed.
        * Source/third_party/libyuv/third_party/gflags/gen/win/include/gflags/gflags_declare.h: Removed.
        * Source/third_party/libyuv/third_party/gflags/gen/win/include/gflags/gflags_gflags.h: Removed.
        * Source/third_party/libyuv/third_party/gflags/gen/win/include/private/config.h: Removed.
        * Source/third_party/libyuv/third_party/gflags/gflags.gyp: Removed.
        * Source/third_party/libyuv/tools/gritsettings/README: Removed.
        * Source/third_party/libyuv/tools/gritsettings/resource_ids: Removed.
        * Source/third_party/libyuv/tools/valgrind-libyuv/tsan/OWNERS: Removed.
        * Source/third_party/libyuv/tools/valgrind-libyuv/tsan/PRESUBMIT.py: Removed.
        * Source/third_party/libyuv/tools/valgrind-libyuv/tsan/suppressions.txt: Removed.
        * Source/third_party/libyuv/tools/valgrind-libyuv/tsan/suppressions_mac.txt: Removed.
        * Source/third_party/libyuv/tools/valgrind-libyuv/tsan/suppressions_win32.txt: Removed.
        * Source/third_party/libyuv/tools_libyuv/OWNERS: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/OWNERS.
        * Source/third_party/libyuv/tools_libyuv/autoroller/roll_deps.py: Added.
        (RollError):
        (ParseDepsDict):
        (ParseLocalDepsFile):
        (ParseRemoteCrDepsFile):
        (ParseCommitPosition):
        (_RunCommand):
        (_GetBranches):
        (_ReadGitilesContent):
        (ReadRemoteCrFile):
        (ReadRemoteCrCommit):
        (ReadUrlContent):
        (GetMatchingDepsEntries):
        (BuildDepsentryDict):
        (BuildDepsentryDict.AddDepsEntries):
        (CalculateChangedDeps):
        (CalculateChangedClang):
        (CalculateChangedClang.GetClangRev):
        (GenerateCommitMessage):
        (UpdateDepsFile):
        (_IsTreeClean):
        (_EnsureUpdatedMasterBranch):
        (_CreateRollBranch):
        (_RemovePreviousRollBranch):
        (_LocalCommit):
        (_UploadCL):
        (_SendToCQ):
        (main):
        * Source/third_party/libyuv/tools_libyuv/autoroller/unittests/roll_deps_test.py: Added.
        (TestError):
        (FakeCmd):
        (FakeCmd.__init__):
        (FakeCmd.add_expectation):
        (FakeCmd.__call__):
        (TestRollChromiumRevision):
        (TestRollChromiumRevision.setUp):
        (TestRollChromiumRevision.tearDown):
        (TestRollChromiumRevision.testUpdateDepsFile):
        (TestRollChromiumRevision.testParseDepsDict):
        (TestRollChromiumRevision.testParseDepsDict.assertVar):
        (TestRollChromiumRevision.testGetMatchingDepsEntriesReturnsPathInSimpleCase):
        (TestRollChromiumRevision.testGetMatchingDepsEntriesHandlesSimilarStartingPaths):
        (TestRollChromiumRevision.testGetMatchingDepsEntriesHandlesTwoPathsWithIdenticalFirstParts):
        (TestRollChromiumRevision.testCalculateChangedDeps):
        (_SetupGitLsRemoteCall):
        * Source/third_party/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS: Added.
        * Source/third_party/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.new: Added.
        * Source/third_party/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.old: Added.
        * Source/third_party/libyuv/tools_libyuv/get_landmines.py: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/get_landmines.py.
        * Source/third_party/libyuv/tools_libyuv/msan/OWNERS: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/msan/OWNERS.
        * Source/third_party/libyuv/tools_libyuv/msan/blacklist.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/msan/blacklist.txt.
        * Source/third_party/libyuv/tools_libyuv/ubsan/OWNERS: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/ubsan/OWNERS.
        * Source/third_party/libyuv/tools_libyuv/ubsan/blacklist.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/ubsan/blacklist.txt.
        * Source/third_party/libyuv/tools_libyuv/ubsan/vptr_blacklist.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/ubsan/vptr_blacklist.txt.
        * Source/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.bat: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/libyuv_tests.bat.
        * Source/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.py: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/libyuv_tests.py.
        (LibyuvTest._DefaultCommand):
        * Source/third_party/libyuv/tools_libyuv/valgrind/libyuv_tests.sh: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/libyuv_tests.sh.
        * Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/OWNERS: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/OWNERS.
        * Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/PRESUBMIT.py: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/PRESUBMIT.py.
        (CheckChange):
        * Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/suppressions.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/suppressions.txt.
        * Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/suppressions_mac.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/suppressions_mac.txt.
        * Source/third_party/libyuv/tools_libyuv/valgrind/memcheck/suppressions_win32.txt: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/tools/valgrind-libyuv/memcheck/suppressions_win32.txt.
        * Source/third_party/libyuv/unit_test/color_test.cc:
        * Source/third_party/libyuv/unit_test/compare_test.cc:
        * Source/third_party/libyuv/unit_test/convert_test.cc:
        * Source/third_party/libyuv/unit_test/cpu_test.cc:
        * Source/third_party/libyuv/unit_test/cpu_thread_test.cc: Added.
        * Source/third_party/libyuv/unit_test/math_test.cc:
        * Source/third_party/libyuv/unit_test/planar_test.cc:
        * Source/third_party/libyuv/unit_test/rotate_argb_test.cc:
        * Source/third_party/libyuv/unit_test/rotate_test.cc:
        * Source/third_party/libyuv/unit_test/scale_argb_test.cc:
        * Source/third_party/libyuv/unit_test/scale_test.cc:
        * Source/third_party/libyuv/unit_test/unit_test.cc:
        * Source/third_party/libyuv/unit_test/unit_test.h:
        (SizeValid):
        * Source/third_party/libyuv/unit_test/video_common_test.cc:
        * Source/third_party/libyuv/util/compare.cc:
        * Source/third_party/libyuv/util/cpuid.c:
        (main):
        * Source/third_party/libyuv/util/psnr.cc:
        * Source/third_party/libyuv/util/psnr_main.cc:
        * Source/third_party/libyuv/util/ssim.cc:
        * Source/third_party/libyuv/util/ssim.h:
        * Source/third_party/libyuv/util/yuvconvert.cc: Renamed from Source/ThirdParty/libwebrtc/Source/third_party/libyuv/util/convert.cc.

2017-06-21  Youenn Fablet  <youenn@apple.com>

        Fix build after r218645
        https://bugs.webkit.org/show_bug.cgi?id=173668

        Unreviewed.

        * Source/webrtc/base/sigslottester.h: Removing executable right.
        * Source/webrtc/modules/video_coding/codecs/vp8/temporal_layers.h:
        (webrtc::TemporalLayersFactory::Create): Inline a default implementation.
        * Source/webrtc/modules/video_processing/util/skin_detection.h: Removing executable right.

2017-06-21  Youenn Fablet  <youenn@apple.com>

        Remove expat source code from Source/ThirdParty/libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=173656

        Reviewed by Brent Fulgham.

        * Source/third_party/expat/BUILD.gn: Removed.
        * Source/third_party/expat/OWNERS: Removed.
        * Source/third_party/expat/README.chromium: Removed.
        * Source/third_party/expat/files/COPYING: Removed.
        * Source/third_party/expat/files/Changes: Removed.
        * Source/third_party/expat/files/MANIFEST: Removed.
        * Source/third_party/expat/files/README: Removed.
        * Source/third_party/expat/files/lib/amigaconfig.h: Removed.
        * Source/third_party/expat/files/lib/ascii.h: Removed.
        * Source/third_party/expat/files/lib/asciitab.h: Removed.
        * Source/third_party/expat/files/lib/expat.h: Removed.
        * Source/third_party/expat/files/lib/expat_config.h: Removed.
        * Source/third_party/expat/files/lib/expat_external.h: Removed.
        * Source/third_party/expat/files/lib/iasciitab.h: Removed.
        * Source/third_party/expat/files/lib/internal.h: Removed.
        * Source/third_party/expat/files/lib/latin1tab.h: Removed.
        * Source/third_party/expat/files/lib/libexpat.def: Removed.
        * Source/third_party/expat/files/lib/libexpatw.def: Removed.
        * Source/third_party/expat/files/lib/macconfig.h: Removed.
        * Source/third_party/expat/files/lib/nametab.h: Removed.
        * Source/third_party/expat/files/lib/utf8tab.h: Removed.
        * Source/third_party/expat/files/lib/winconfig.h: Removed.
        * Source/third_party/expat/files/lib/winconfig.h.original: Removed.
        * Source/third_party/expat/files/lib/xmlparse.c: Removed.
        * Source/third_party/expat/files/lib/xmlparse.c.original: Removed.
        * Source/third_party/expat/files/lib/xmlrole.c: Removed.
        * Source/third_party/expat/files/lib/xmlrole.h: Removed.
        * Source/third_party/expat/files/lib/xmltok.c: Removed.
        * Source/third_party/expat/files/lib/xmltok.h: Removed.
        * Source/third_party/expat/files/lib/xmltok_impl.c: Removed.
        * Source/third_party/expat/files/lib/xmltok_impl.c.original: Removed.
        * Source/third_party/expat/files/lib/xmltok_impl.h: Removed.
        * Source/third_party/expat/files/lib/xmltok_ns.c: Removed.
        * Source/third_party/expat/fuzz/OWNERS: Removed.
        * Source/third_party/expat/fuzz/expat_xml_parse_fuzzer.cc: Removed.

2017-06-21  Youenn Fablet  <youenn@apple.com>

        Refresh libwebrtc code up to a87675d4a160e2c49c3e754cd9ca291d6c8f36ae
        https://bugs.webkit.org/show_bug.cgi?id=173602

        Reviewed by Eric Carlson.

        * Configurations/libwebrtc.xcconfig:
        * Source: Updated to a87675d4a160e2c49c3e754cd9ca291d6c8f36ae and reapplied WebKit specific changes.
        * WebKit/patch-libwebrtc:
        * libwebrtc.xcodeproj/project.pbxproj:

2017-06-19  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r218505.
        https://bugs.webkit.org/show_bug.cgi?id=173563

        "It would break internal builds" (Requested by youenn on
        #webkit).

        Reverted changeset:

        "[WebRTC] Prevent capturing at unconventional resolutions when
        using the SW encoder on Mac"
        https://bugs.webkit.org/show_bug.cgi?id=172602
        http://trac.webkit.org/changeset/218505

2017-06-19  Youenn Fablet  <youenn@apple.com>

        [WebRTC] Prevent capturing at unconventional resolutions when using the SW encoder on Mac
        https://bugs.webkit.org/show_bug.cgi?id=172602
        <rdar://problem/32407693>

        Reviewed by Eric Carlson.

        Adding a parameter to disable hardware encoder.

        * Source/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.h:
        * Source/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.mm:
        (webrtc::H264VideoToolboxEncoder::CreateCompressionSession):

2017-06-10  Dan Bernstein  <mitz@apple.com>

        Reverted r218056 because it made the IDE reindex constantly.

        * Configurations/DebugRelease.xcconfig:

2017-06-10  Dan Bernstein  <mitz@apple.com>

        [Xcode] With Xcode 9 developer beta, everything rebuilds when switching between command-line and IDE
        https://bugs.webkit.org/show_bug.cgi?id=173223

        Reviewed by Sam Weinig.

        The rebuilds were happening due to a difference in the compiler options that the IDE and
        xcodebuild were specifying. Only the IDE was passing the -index-store-path option. To make
        xcodebuild pass that option, too, set CLANG_INDEX_STORE_ENABLE to YES if it is unset, and
        specify an appropriate path in CLANG_INDEX_STORE_PATH.

        * Configurations/DebugRelease.xcconfig:

2017-06-07  Youenn Fablet  <youenn@apple.com>

        Add WebRTC stats logging
        https://bugs.webkit.org/show_bug.cgi?id=173045

        Reviewed by Eric Carlson.

        * Source/webrtc/api/stats/rtcstats.h: Exporting RTCStats ToString.

2017-05-28  Dan Bernstein  <mitz@apple.com>

        [Xcode] ALWAYS_SEARCH_USER_PATHS is set to YES
        https://bugs.webkit.org/show_bug.cgi?id=172691

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig: Set ALWAYS_SEARCH_USER_PATHS to NO.

2017-05-16  Youenn Fablet  <youenn@apple.com>

        RealtimeOutgoingVideoSource should support sinkWants for rotation
        https://bugs.webkit.org/show_bug.cgi?id=172123
        <rdar://problem/32200017>

        Reviewed by Eric Carlson.

        * Source/webrtc/api/video/i420_buffer.h: Exporting rotate routine.

2017-05-08  Youenn Fablet  <youenn@apple.com>

        TURNS gathering is not working properly
        https://bugs.webkit.org/show_bug.cgi?id=171747

        Reviewed by Eric Carlson.

        * Source/webrtc/base/openssladapter.cc: Adding support for SNI in case of TLS ice candidate gathering.

2017-04-29  Dan Bernstein  <mitz@apple.com>

        [Xcode] libwebrtc SRCROOT includes examples
        https://bugs.webkit.org/show_bug.cgi?id=171478

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig: Exclude the Source/webrtc/examples subdirectory from
          installsrc. Its contents are not used for building any of the targets in the project.

2017-04-19  Youenn Fablet  <youenn@apple.com>

        [Mac] Allow customizing H264 encoder
        https://bugs.webkit.org/show_bug.cgi?id=170829

        Reviewed by Alex Christensen.

        * Configurations/libwebrtc.xcconfig:
        * Source/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.h:
        * Source/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.mm:
        (webrtc::H264VideoToolboxEncoder::ResetCompressionSession):
        (webrtc::H264VideoToolboxEncoder::CreateCompressionSession): Default implementation, fixing memory leak for dictionary.
        * Source/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc:

2017-04-18  Youenn Fablet  <youenn@apple.com>

        Add NDEBUG and CodeStripping to libwebrtc build system
        https://bugs.webkit.org/show_bug.cgi?id=170954

        Reviewed by Alex Christensen.

        This optimizes libwebrtc library size and efficiency.
        This allows allocating libwebrtc objects in WebCore without issues.

        * Configurations/Base.xcconfig:
        * Configurations/boringssl.xcconfig:
        * Configurations/libsrtp.xcconfig:
        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtcpcrtc.xcconfig:
        * Configurations/opus.xcconfig:
        * Configurations/usrsctp.xcconfig:

2017-04-17  Youenn Fablet  <youenn@apple.com>

        Add an external libwebrtc encoder factory in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=170883

        Reviewed by Alex Christensen.

        Exporting some symbols.
        Allowing to customize the creation of the H264 encoder.

        * Source/webrtc/media/base/codec.h:
        * Source/webrtc/media/engine/webrtcvideoencoderfactory.h
        * Source/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc:
        * Source/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.h:
        * Source/webrtc/video_decoder.h
        * Source/webrtc/video_encoder.h

2017-04-14  Mark Lam  <mark.lam@apple.com>

        Update architectures in xcconfig files.
        https://bugs.webkit.org/show_bug.cgi?id=170867
        <rdar://problem/31628104>

        Reviewed by Joseph Pecoraro.

        * Configurations/opus.xcconfig:

2017-04-12  Dan Bernstein  <mitz@apple.com>

        [Mac] Future-proof .xcconfig files
        https://bugs.webkit.org/show_bug.cgi?id=170802

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/opus.xcconfig:

2017-04-07  Alex Christensen  <achristensen@webkit.org>

        Enable SSE4 and NEON optimizations of libopus where available
        https://bugs.webkit.org/show_bug.cgi?id=170592

        Reviewed by Youenn Fablet.

        * Configurations/opus.xcconfig:
        * libwebrtc.xcodeproj/project.pbxproj:

2017-04-06  Youenn Fablet  <youenn@apple.com>

        WebRTC aborts when trying to sleep on a wrong thread
        https://bugs.webkit.org/show_bug.cgi?id=170492
        <rdar://problem/31446377>

        Reviewed by Eric Carlson.

        Libwebrtc network thread is set up so that it does not accept blocking calls to other threads.
        as per ChannelManager::Init() in channelmanager.cc.
        But rtc::Thread::SleepMs expects to block it.
        Marking thread as blockable before calling SleepMs and resetting the value if needed afterwards.
        * Source/webrtc/media/sctp/sctptransport.cc:

2017-03-27  Alejandro G. Castro  <alex@igalia.com>

        Fixes for libwebrtc logging after r214288
        https://bugs.webkit.org/show_bug.cgi?id=170116

        Reviewed by Youenn Fablet.

        * Source/webrtc/base/logging.cc: Added the critical section
        requirement and the call to the new getter for g_log_crit.

2017-03-27  Alex Christensen  <achristensen@webkit.org>

        Build libwebrtc with even more warnings
        https://bugs.webkit.org/show_bug.cgi?id=169997

        Reviewed by Tim Horton.

        There are still OSAtomic* functions I don't want to worry about right now,
        so I'm keeping a few -Wno-deprecated-declarations, but everything else can go.

        * Configurations/libsrtp.xcconfig:
        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtcpcrtc.xcconfig:

2017-03-27  Youenn Fablet  <youenn@apple.com>

        Add support for RTCRtpReceiver/RTCRtpSender getParameters
        https://bugs.webkit.org/show_bug.cgi?id=170057

        Reviewed by Alex Christensen.

        * Source/webrtc/api/mediatypes.h:

2017-03-22  Alex Christensen  <achristensen@webkit.org>

        Fix warnings in libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=169973

        Reviewed by Geoffrey Garen.

        * Configurations/boringssl.xcconfig:
        * Configurations/libsrtp.xcconfig:
        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtcpcrtc.xcconfig:
        * Configurations/libyuv.xcconfig:
        * Configurations/opus.xcconfig:
        * Configurations/usrsctp.xcconfig:
        Build with more warnings.
        opus still needs some incompatible pointer warnings disabled because it converts 
        const opus_int16 * to const opus_val16 * and opus_int32 * to opus_val32 *
        and that's ok because its a codec and that's what codecs do.
        * Source/webrtc/base/logging.cc:
        * Source/webrtc/base/logging.h:
        * Source/webrtc/base/neverdestroyed.h: Added.
        (webrtc::NeverDestroyed::NeverDestroyed):
        (webrtc::NeverDestroyed::operator T&):
        (webrtc::NeverDestroyed::get):
        (webrtc::NeverDestroyed::operator&):
        (webrtc::NeverDestroyed::asPtr):
        Added webrtc::NeverDestroyed which may or may not be based on WTF::NeverDestroyed.
        This allows us to avoid exit time destructors, which would slow down program termination for no reason.
        * Source/webrtc/base/virtualsocketserver.cc:
        * Source/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.cc:
        Adopt NeverDestroyed in function scope so we don't have global constructors or destructors.
        * Source/webrtc/modules/audio_processing/beamformer/array_util.h:
        (webrtc::DegreesToRadians):
        (webrtc::RadiansToDegrees):
        Add constexpr so we can calculate values at compile time instead of launch time.
        * Source/webrtc/modules/rtp_rtcp/source/rtp_utility.cc:
        * Source/webrtc/system_wrappers/source/clock.cc:
        * libwebrtc.xcodeproj/project.pbxproj:
        Don't compile ssl_test.cc.  We don't need it.

2017-03-10  Youenn Fablet  <youenn@apple.com>

        Move libwebrtc backend to using tracks
        https://bugs.webkit.org/show_bug.cgi?id=169472

        Reviewed by Alex Christensen.

        * Source/webrtc/pc/rtcstatscollector.cc: Moving from using media stream to tracks.

2017-03-08  Youenn Fablet  <youenn@apple.com>

        Use H264 hardware encoder for Mac libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=169383

        Reviewed by Alex Christensen.

        Switching to H264 hardware encoder if available for Mac.
        Adding logs in case hardware encoder cannot be used.

        * Configurations/libwebrtc.xcconfig:
        * Source/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.mm:
        (webrtc::H264VideoToolboxEncoder::ResetCompressionSession):
        (webrtc::H264VideoToolboxEncoder::ConfigureCompressionSession):

2017-03-07  Youenn Fablet  <youenn@apple.com>

        TurnPort::OnSocketConnect is crashing
        https://bugs.webkit.org/show_bug.cgi?id=169284

        Reviewed by Eric Carlson.

        * Source/webrtc/p2p/base/turnport.cc: Fixing the assertion.

2017-03-06  Youenn Fablet  <youenn@apple.com>

        Bring back WebKit specific changes to disable temporarily libwebrtc video adaptation
        https://bugs.webkit.org/show_bug.cgi?id=169229

        Reviewed by Alex Christensen.

        * Source/webrtc/modules/video_coding/video_sender.cc: disabling frame dropping.
        * Source/webrtc/video/vie_encoder.cc: disabling resolution decrease based on CPU overuse.

2017-03-06  Alex Christensen  <achristensen@webkit.org>

        Fix Production libwebrtc build after r213418
        https://bugs.webkit.org/show_bug.cgi?id=169217
        <rdar://problem/30876775>

        Reviewed by Tim Horton.

        * Source/webrtc/base/checks.h:
        * libwebrtc.xcodeproj/project.pbxproj:
        MakeCheckOpString was a weak export, and it wasn't needed.
        There is an internal build that checks for weak exports and fails if there is one.
        Run the check-for-weak-vtables-and-externals script for libwebrtc.dylib like we do for the other frameworks.

2017-03-04  Dan Bernstein  <mitz@apple.com>

        [Cocoa] libwebrtc.dylib’s current version is fixed at 1.0.0
        https://bugs.webkit.org/show_bug.cgi?id=169170

        Reviewed by Alex Christensen.

        * Configurations/Version.xcconfig: Copied from Source/JavaScriptCore/Configurations/Version.xcconfig.
          This defines DYLIB_CURRENT_VERSION.
        * Configurations/libwebrtc.xcconfig: Include Version.xcconfig.

2017-03-04  Alex Christensen  <achristensen@webkit.org>

        Cleanup after r213418
        https://bugs.webkit.org/show_bug.cgi?id=169165

        Reviewed by Youenn Fablet.

        * WebKit/patch-libwebrtc:
        I made another change after the last patch I uploaded to stop crashing.
        This should be reflected in our patch.

2017-03-03  Youenn Fablet  <youenn@apple.com>

        [WebRTC] Update libwebrtc source code
        https://bugs.webkit.org/show_bug.cgi?id=168599

        Reviewed by Alex Christensen.

        Very long list of file changes omitted.

        We updated to git commit 716e726ef0b322e8317b749613691da043bfc61c
        of https://chromium.googlesource.com/external/webrtc and applied
        the changes that are now in WebKit/patch-libwebrtc

2017-03-03  Alex Christensen  <achristensen@webkit.org>

        Remove empty build directories.

        * build: Removed.
        * build/Debug: Removed.

2017-03-01  Joseph Pecoraro  <pecoraro@apple.com>

        [WebRTC] Install libwebrtc.dylib inside of WebCore.framework
        https://bugs.webkit.org/show_bug.cgi?id=168859

        Reviewed by Dan Bernstein.

        * Configurations/Base.xcconfig:
        Define some general configuration variables.

        * Configurations/DebugRelease.xcconfig:
        Define WK_RELOCATABLE_FRAMEWORKS for Debug/Release builds.

        * Configurations/libwebrtc.xcconfig:
        Set INSTALL_PATH to be inside WebCore.framework's sub-Frameworks directory
        unless WK_USE_OVERRIDE_FRAMEWORKS_DIR. Set the install name of the dylib to
        be relative to WebCore / WebKit when frameworks are relocatable, such as
        WK_USE_OVERRIDE_FRAMEWORKS_DIR or WK_RELOCATABLE_FRAMEWORKS.

2017-02-28  Youenn Fablet  <youenn@apple.com>

        [WebRTC] CPU Overuse libwebrtc detector is decreasing the quality of the video
        https://bugs.webkit.org/show_bug.cgi?id=168990

        Reviewed by Eric Carlson.

        * Source/webrtc/video/vie_encoder.cc: Disabling temporarily overuse detector.

2017-02-28  Alex Christensen  <achristensen@webkit.org>

        [WebRTC] Fix an internal production build
        https://bugs.webkit.org/show_bug.cgi?id=168992

        Reviewed by Youenn Fablet.

        * libwebrtc.xcodeproj/project.pbxproj:
        Link with Foundation and CoreFoundation frameworks.

2017-02-28  Youenn Fablet  <youenn@apple.com>

        [WebRTC] LibWebRTC frame dropper is not working consistently
        https://bugs.webkit.org/show_bug.cgi?id=168973

        Reviewed by Eric Carlson.

        * Source/webrtc/modules/video_coding/video_sender.cc: Disable temporarily the frame dropper as it is sometimes
        dropping too many frames.

2017-02-27  Youenn Fablet  <youenn@apple.com>

        [WebRTC] RealtimOutgoingVideoSource should not need to do image conversion
        https://bugs.webkit.org/show_bug.cgi?id=168802

        Reviewed by Jon Lee.

        Exporting new symbols.
        Including headers in the project file.

        * Source/webrtc/common_video/include/corevideo_frame_buffer.h:
        * Source/webrtc/common_video/include/i420_buffer_pool.h:
        * Source/webrtc/common_video/include/video_frame_buffer.h:
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-24  Alex Christensen  <achristensen@webkit.org>

        Remove unneeded protobuf tests directory.
        
        Rubber-stamped by Joe Pecoraro.
        
        This directory contained a swift file that was causing problems in an internal verification step.

        * Source/third_party/protobuf/objectivec/Tests: Removed.
        (And everything in this subdirectory)

2017-02-22  Youenn Fablet  <youenn@apple.com>

        [WebRTC] Disable libwebrtc stderr logging in release mode
        https://bugs.webkit.org/show_bug.cgi?id=168734

        Reviewed by Tim Horton.

        * Source/webrtc/base/logging.h:

2017-02-21  Youenn Fablet  <youenn@apple.com>

        [WebRTC][Mac] Activate libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=167293
        <rdar://problem/30401864>

        Reviewed by Alex Christensen.

        Doing some clean-up.

        * Configurations/libwebrtc.xcconfig:
        * Source/webrtc/base/checks.h:
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-21  Alex Christensen  <achristensen@webkit.org>

        Don't build libwebrtc on 32-bit architectures
        https://bugs.webkit.org/show_bug.cgi?id=168692

        Reviewed by Dan Bernstein.

        * Configurations/Base.xcconfig:

2017-02-21  Youenn Fablet  <youenn@apple.com>

        [Xcode] libwebrtc installhdrs doesn’t install any of the headers
        https://bugs.webkit.org/show_bug.cgi?id=168634

        Reviewed by Alex Christensen.

        * Configurations/libwebrtc.xcconfig:
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-21  Alex Christensen  <achristensen@webkit.org>

        Unreviewed, rolling out r212699.

        Internal build not ready

        Reverted changeset:

        "[WebRTC][Mac] Activate libwebrtc"
        https://bugs.webkit.org/show_bug.cgi?id=167293
        http://trac.webkit.org/changeset/212699

2017-02-20  Youenn Fablet  <youenn@apple.com>

        [WebRTC][Mac] Activate libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=167293
        <rdar://problem/30401864>

        Reviewed by Alex Christensen.

        Doing some clean-up.

        * Configurations/libwebrtc.xcconfig:
        * Source/webrtc/base/checks.h:
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-17  Alex Christensen  <achristensen@webkit.org>

        Fix iOS ASAN build after r212401
        https://bugs.webkit.org/show_bug.cgi?id=168398

        * libwebrtc.xcodeproj/project.pbxproj:
        libwebrtc.dylib needs some symbols from CFNetwork,
        like CFNetworkCopySystemProxySettings

2017-02-16  Youenn Fablet  <youenn@apple.com>

        [WebRTC] Fix some missing exports after r212401
        https://bugs.webkit.org/show_bug.cgi?id=168449

        Reviewed by Alex Christensen.

        * Source/webrtc/api/jsep.h:
        * Source/webrtc/base/checks.h:

2017-02-15  Alex Christensen  <achristensen@webkit.org>

        Fix ASAN build after r212401
        https://bugs.webkit.org/show_bug.cgi?id=168398

        * Source/webrtc/media/engine/webrtcvideocapturer.cc:
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-15  Alex Christensen  <achristensen@webkit.org>

        Make libwebrtc.dylib
        https://bugs.webkit.org/show_bug.cgi?id=168335

        Reviewed by Dan Bernstein.

        We were building libwebrtc as a static library, which would prevent us from weak linking with it.
        We need to explicitly export what we use from WebCore or WebKit2, and RTCLogging.mm now needs to
        be built on Mac, so we make it not automatically reference counted to make it work on 32-bit El Capitan.

        * Configurations/libwebrtc.xcconfig:
        * Source/webrtc/api/jsep.h:
        * Source/webrtc/api/mediastream.h:
        * Source/webrtc/api/notifier.h:
        (webrtc::Notifier::Notifier): Deleted.
        (webrtc::Notifier::RegisterObserver): Deleted.
        (webrtc::Notifier::UnregisterObserver): Deleted.
        (webrtc::Notifier::FireOnChanged): Deleted.
        * Source/webrtc/api/peerconnectioninterface.h:
        * Source/webrtc/base/asyncpacketsocket.h:
        * Source/webrtc/base/asyncresolverinterface.h:
        (rtc::AsyncResolverInterface::address): Deleted.
        * Source/webrtc/base/copyonwritebuffer.h:
        (rtc::CopyOnWriteBuffer::CopyOnWriteBuffer): Deleted.
        (rtc::CopyOnWriteBuffer::data): Deleted.
        (rtc::CopyOnWriteBuffer::cdata): Deleted.
        (rtc::CopyOnWriteBuffer::size): Deleted.
        (rtc::CopyOnWriteBuffer::capacity): Deleted.
        (rtc::CopyOnWriteBuffer::operator=): Deleted.
        (rtc::CopyOnWriteBuffer::operator!=): Deleted.
        (rtc::CopyOnWriteBuffer::operator[]): Deleted.
        (rtc::CopyOnWriteBuffer::SetData): Deleted.
        (rtc::CopyOnWriteBuffer::AppendData): Deleted.
        (rtc::CopyOnWriteBuffer::swap): Deleted.
        (rtc::CopyOnWriteBuffer::IsConsistent): Deleted.
        * Source/webrtc/base/event.h:
        * Source/webrtc/base/export.h: Added.
        * Source/webrtc/base/helpers.h:
        * Source/webrtc/base/ipaddress.h:
        (rtc::IPAddress::IPAddress): Deleted.
        (rtc::IPAddress::~IPAddress): Deleted.
        (rtc::IPAddress::operator=): Deleted.
        (rtc::IPAddress::family): Deleted.
        * Source/webrtc/base/location.h:
        (rtc::Location::function_name): Deleted.
        (rtc::Location::file_and_line): Deleted.
        * Source/webrtc/base/messagehandler.h:
        (rtc::MessageHandler::MessageHandler): Deleted.
        * Source/webrtc/base/network.h:
        (rtc::NetworkManagerBase::ipv6_enabled): Deleted.
        (rtc::NetworkManagerBase::set_ipv6_enabled): Deleted.
        (rtc::NetworkManagerBase::set_max_ipv6_networks): Deleted.
        (rtc::NetworkManagerBase::max_ipv6_networks): Deleted.
        (rtc::NetworkManagerBase::set_enumeration_permission): Deleted.
        (rtc::BasicNetworkManager::started): Deleted.
        (rtc::BasicNetworkManager::set_network_ignore_list): Deleted.
        (rtc::BasicNetworkManager::set_ignore_non_default_routes): Deleted.
        (rtc::Network::default_local_address_provider): Deleted.
        (rtc::Network::set_default_local_address_provider): Deleted.
        (rtc::Network::name): Deleted.
        (rtc::Network::description): Deleted.
        (rtc::Network::prefix): Deleted.
        (rtc::Network::prefix_length): Deleted.
        (rtc::Network::key): Deleted.
        (rtc::Network::ip): Deleted.
        (rtc::Network::AddIP): Deleted.
        (rtc::Network::GetIPs): Deleted.
        (rtc::Network::ClearIPs): Deleted.
        (rtc::Network::scope_id): Deleted.
        (rtc::Network::set_scope_id): Deleted.
        (rtc::Network::ignored): Deleted.
        (rtc::Network::set_ignored): Deleted.
        (rtc::Network::type): Deleted.
        (rtc::Network::set_type): Deleted.
        (rtc::Network::GetCost): Deleted.
        (rtc::Network::id): Deleted.
        (rtc::Network::set_id): Deleted.
        (rtc::Network::preference): Deleted.
        (rtc::Network::set_preference): Deleted.
        (rtc::Network::active): Deleted.
        (rtc::Network::set_active): Deleted.
        * Source/webrtc/base/proxyinfo.h:
        * Source/webrtc/base/refcountedobject.h:
        (rtc::RefCountedObject::RefCountedObject): Deleted.
        (rtc::RefCountedObject::AddRef): Deleted.
        (rtc::RefCountedObject::Release): Deleted.
        (rtc::RefCountedObject::HasOneRef): Deleted.
        (rtc::RefCountedObject::~RefCountedObject): Deleted.
        * Source/webrtc/base/socketaddress.h:
        (rtc::SocketAddress::hostname): Deleted.
        (rtc::SocketAddress::family): Deleted.
        (rtc::SocketAddress::scope_id): Deleted.
        (rtc::SocketAddress::SetScopeID): Deleted.
        (rtc::SocketAddress::operator !=): Deleted.
        * Source/webrtc/base/thread.h:
        * Source/webrtc/common_types.h:
        * Source/webrtc/common_video/include/video_frame_buffer.h:
        (webrtc::I420Buffer::Copy): Deleted.
        (webrtc::I420Buffer::CropAndScaleFrom): Deleted.
        (webrtc::I420Buffer::ScaleFrom): Deleted.
        * Source/webrtc/common_video/libyuv/include/webrtc_libyuv.h:
        * Source/webrtc/p2p/base/basicpacketsocketfactory.h:
        * Source/webrtc/p2p/client/basicportallocator.h:
        (cricket::BasicPortAllocator::network_ignore_mask): Deleted.
        (cricket::BasicPortAllocator::network_manager): Deleted.
        (cricket::BasicPortAllocator::socket_factory): Deleted.
        * Source/webrtc/sdk/objc/Framework/Classes/RTCLogging.mm:
        (RTCFileName):
        * Source/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.h:
        * Source/webrtc/video_frame.h:
        (webrtc::VideoFrame::timestamp_us): Deleted.
        (webrtc::VideoFrame::set_timestamp_us): Deleted.
        (webrtc::VideoFrame::set_timestamp): Deleted.
        (webrtc::VideoFrame::timestamp): Deleted.
        (webrtc::VideoFrame::transport_frame_id): Deleted.
        (webrtc::VideoFrame::set_ntp_time_ms): Deleted.
        (webrtc::VideoFrame::ntp_time_ms): Deleted.
        (webrtc::VideoFrame::rotation): Deleted.
        (webrtc::VideoFrame::set_rotation): Deleted.
        (webrtc::VideoFrame::set_render_time_ms): Deleted.
        (webrtc::VideoFrame::render_time_ms): Deleted.
        (webrtc::VideoFrame::is_texture): Deleted.
        * build: Added.
        * build/Debug: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-15  Youenn Fablet  <youenn@apple.com>

        [WebRTC] Remove libwebrtc ObjectiveC files that use UIKit
        https://bugs.webkit.org/show_bug.cgi?id=168392

        Reviewed by Alex Christensen.

        Removing default AudioDeviceModule as WebKit is providing its own.
        Removing checks for active application in H264 codec as WebKit should be made responsible for that.
        Removing no longer needed ObjectiveC files.

        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtcpcrtc.xcconfig:
        * Source/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_decoder.cc:
        * Source/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.mm:
        (webrtc::H264VideoToolboxEncoder::Encode):
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-14  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r212326.

        This change broke certain build configurations.

        Reverted changeset:

        "Make libwebrtc.dylib"
        https://bugs.webkit.org/show_bug.cgi?id=168335
        http://trac.webkit.org/changeset/212326

2017-02-14  Alex Christensen  <achristensen@webkit.org>

        Make libwebrtc.dylib
        https://bugs.webkit.org/show_bug.cgi?id=168335

        Reviewed by Dan Bernstein.

        We were building libwebrtc as a static library, which would prevent us from weak linking with it.
        We need to explicitly export what we use from WebCore or WebKit2, and RTCLogging.mm now needs to
        be built on Mac, so we make it not automatically reference counted to make it work on 32-bit El Capitan.

        * Configurations/libwebrtc.xcconfig:
        * Source/webrtc/api/jsep.h:
        * Source/webrtc/api/mediastream.h:
        * Source/webrtc/api/notifier.h:
        (webrtc::Notifier::Notifier): Deleted.
        (webrtc::Notifier::RegisterObserver): Deleted.
        (webrtc::Notifier::UnregisterObserver): Deleted.
        (webrtc::Notifier::FireOnChanged): Deleted.
        * Source/webrtc/api/peerconnectioninterface.h:
        * Source/webrtc/base/asyncpacketsocket.h:
        * Source/webrtc/base/asyncresolverinterface.h:
        (rtc::AsyncResolverInterface::address): Deleted.
        * Source/webrtc/base/copyonwritebuffer.h:
        (rtc::CopyOnWriteBuffer::CopyOnWriteBuffer): Deleted.
        (rtc::CopyOnWriteBuffer::data): Deleted.
        (rtc::CopyOnWriteBuffer::cdata): Deleted.
        (rtc::CopyOnWriteBuffer::size): Deleted.
        (rtc::CopyOnWriteBuffer::capacity): Deleted.
        (rtc::CopyOnWriteBuffer::operator=): Deleted.
        (rtc::CopyOnWriteBuffer::operator!=): Deleted.
        (rtc::CopyOnWriteBuffer::operator[]): Deleted.
        (rtc::CopyOnWriteBuffer::SetData): Deleted.
        (rtc::CopyOnWriteBuffer::AppendData): Deleted.
        (rtc::CopyOnWriteBuffer::swap): Deleted.
        (rtc::CopyOnWriteBuffer::IsConsistent): Deleted.
        * Source/webrtc/base/event.h:
        * Source/webrtc/base/export.h: Added.
        * Source/webrtc/base/helpers.h:
        * Source/webrtc/base/ipaddress.h:
        (rtc::IPAddress::IPAddress): Deleted.
        (rtc::IPAddress::~IPAddress): Deleted.
        (rtc::IPAddress::operator=): Deleted.
        (rtc::IPAddress::family): Deleted.
        * Source/webrtc/base/location.h:
        (rtc::Location::function_name): Deleted.
        (rtc::Location::file_and_line): Deleted.
        * Source/webrtc/base/messagehandler.h:
        (rtc::MessageHandler::MessageHandler): Deleted.
        * Source/webrtc/base/network.h:
        (rtc::NetworkManagerBase::ipv6_enabled): Deleted.
        (rtc::NetworkManagerBase::set_ipv6_enabled): Deleted.
        (rtc::NetworkManagerBase::set_max_ipv6_networks): Deleted.
        (rtc::NetworkManagerBase::max_ipv6_networks): Deleted.
        (rtc::NetworkManagerBase::set_enumeration_permission): Deleted.
        (rtc::BasicNetworkManager::started): Deleted.
        (rtc::BasicNetworkManager::set_network_ignore_list): Deleted.
        (rtc::BasicNetworkManager::set_ignore_non_default_routes): Deleted.
        (rtc::Network::default_local_address_provider): Deleted.
        (rtc::Network::set_default_local_address_provider): Deleted.
        (rtc::Network::name): Deleted.
        (rtc::Network::description): Deleted.
        (rtc::Network::prefix): Deleted.
        (rtc::Network::prefix_length): Deleted.
        (rtc::Network::key): Deleted.
        (rtc::Network::ip): Deleted.
        (rtc::Network::AddIP): Deleted.
        (rtc::Network::GetIPs): Deleted.
        (rtc::Network::ClearIPs): Deleted.
        (rtc::Network::scope_id): Deleted.
        (rtc::Network::set_scope_id): Deleted.
        (rtc::Network::ignored): Deleted.
        (rtc::Network::set_ignored): Deleted.
        (rtc::Network::type): Deleted.
        (rtc::Network::set_type): Deleted.
        (rtc::Network::GetCost): Deleted.
        (rtc::Network::id): Deleted.
        (rtc::Network::set_id): Deleted.
        (rtc::Network::preference): Deleted.
        (rtc::Network::set_preference): Deleted.
        (rtc::Network::active): Deleted.
        (rtc::Network::set_active): Deleted.
        * Source/webrtc/base/proxyinfo.h:
        * Source/webrtc/base/refcountedobject.h:
        (rtc::RefCountedObject::RefCountedObject): Deleted.
        (rtc::RefCountedObject::AddRef): Deleted.
        (rtc::RefCountedObject::Release): Deleted.
        (rtc::RefCountedObject::HasOneRef): Deleted.
        (rtc::RefCountedObject::~RefCountedObject): Deleted.
        * Source/webrtc/base/socketaddress.h:
        (rtc::SocketAddress::hostname): Deleted.
        (rtc::SocketAddress::family): Deleted.
        (rtc::SocketAddress::scope_id): Deleted.
        (rtc::SocketAddress::SetScopeID): Deleted.
        (rtc::SocketAddress::operator !=): Deleted.
        * Source/webrtc/base/thread.h:
        * Source/webrtc/common_types.h:
        * Source/webrtc/common_video/include/video_frame_buffer.h:
        (webrtc::I420Buffer::Copy): Deleted.
        (webrtc::I420Buffer::CropAndScaleFrom): Deleted.
        (webrtc::I420Buffer::ScaleFrom): Deleted.
        * Source/webrtc/common_video/libyuv/include/webrtc_libyuv.h:
        * Source/webrtc/p2p/base/basicpacketsocketfactory.h:
        * Source/webrtc/p2p/client/basicportallocator.h:
        (cricket::BasicPortAllocator::network_ignore_mask): Deleted.
        (cricket::BasicPortAllocator::network_manager): Deleted.
        (cricket::BasicPortAllocator::socket_factory): Deleted.
        * Source/webrtc/sdk/objc/Framework/Classes/RTCLogging.mm:
        (RTCFileName):
        * Source/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.h:
        * Source/webrtc/video_frame.h:
        (webrtc::VideoFrame::timestamp_us): Deleted.
        (webrtc::VideoFrame::set_timestamp_us): Deleted.
        (webrtc::VideoFrame::set_timestamp): Deleted.
        (webrtc::VideoFrame::timestamp): Deleted.
        (webrtc::VideoFrame::transport_frame_id): Deleted.
        (webrtc::VideoFrame::set_ntp_time_ms): Deleted.
        (webrtc::VideoFrame::ntp_time_ms): Deleted.
        (webrtc::VideoFrame::rotation): Deleted.
        (webrtc::VideoFrame::set_rotation): Deleted.
        (webrtc::VideoFrame::set_render_time_ms): Deleted.
        (webrtc::VideoFrame::render_time_ms): Deleted.
        (webrtc::VideoFrame::is_texture): Deleted.
        * build: Added.
        * build/Debug: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-14  Alex Christensen  <achristensen@webkit.org>

        Remove android-specific files from ThirdParty/libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=168272

        Reviewed by Brady Eidson.

        * Source/third_party/boringssl/src/third_party/android-cmake: Removed.
        * Source/third_party/boringssl/src/third_party/android-cmake/AndroidNdkGdb.cmake: Removed.
        * Source/third_party/boringssl/src/third_party/android-cmake/AndroidNdkModules.cmake: Removed.
        * Source/third_party/boringssl/src/third_party/android-cmake/LICENSE: Removed.
        * Source/third_party/boringssl/src/third_party/android-cmake/METADATA: Removed.
        * Source/third_party/boringssl/src/third_party/android-cmake/README.md: Removed.
        * Source/third_party/boringssl/src/third_party/android-cmake/android.toolchain.cmake: Removed.
        * Source/third_party/boringssl/src/third_party/android-cmake/ndk_links.md: Removed.
        * Source/third_party/boringssl/src/util/run_android_tests.go: Removed.
        * Source/third_party/libyuv/util/android: Removed.
        * Source/third_party/libyuv/util/android/test_runner.py: Removed.
        * Source/webrtc/androidjunit: Removed.
        * Source/webrtc/androidjunit/OWNERS: Removed.
        * Source/webrtc/androidjunit/src: Removed.
        * Source/webrtc/androidjunit/src/org: Removed.
        * Source/webrtc/androidjunit/src/org/webrtc: Removed.
        * Source/webrtc/androidjunit/src/org/webrtc/CameraEnumerationTest.java: Removed.
        * Source/webrtc/api/android: Removed.
        * Source/webrtc/api/android/PRESUBMIT.py: Removed.
        * Source/webrtc/api/android/README: Removed.
        * Source/webrtc/api/android/java: Removed.
        * Source/webrtc/api/android/java/src: Removed.
        * Source/webrtc/api/android/java/src/org: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/AudioSource.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/AudioTrack.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/CallSessionFileRotatingLogSink.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/Camera1Capturer.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/Camera1Enumerator.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/Camera1Session.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/Camera2Capturer.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/Camera2Enumerator.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/Camera2Session.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/CameraCapturer.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/CameraEnumerationAndroid.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/CameraEnumerator.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/CameraSession.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/CameraVideoCapturer.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/DataChannel.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/EglBase.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/EglBase10.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/EglBase14.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/EglRenderer.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/FileVideoCapturer.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/GlRectDrawer.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/GlShader.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/GlTextureFrameBuffer.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/GlUtil.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/IceCandidate.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/MediaCodecVideoDecoder.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/MediaCodecVideoEncoder.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/MediaConstraints.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/MediaSource.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/MediaStream.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/MediaStreamTrack.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/Metrics.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/NetworkMonitor.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/NetworkMonitorAutoDetect.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/OWNERS: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/PeerConnection.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/PeerConnectionFactory.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/RendererCommon.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/RtpParameters.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/RtpReceiver.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/RtpSender.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/ScreenCapturerAndroid.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/SdpObserver.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/SessionDescription.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/StatsObserver.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/StatsReport.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/SurfaceTextureHelper.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/SurfaceViewRenderer.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/VideoCapturer.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/VideoCapturerAndroid.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/VideoFileRenderer.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/VideoRenderer.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/VideoRendererGui.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/VideoSource.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/VideoTrack.java: Removed.
        * Source/webrtc/api/android/java/src/org/webrtc/YuvConverter.java: Removed.
        * Source/webrtc/api/android/jni: Removed.
        * Source/webrtc/api/android/jni/OWNERS: Removed.
        * Source/webrtc/api/android/jni/androidmediacodeccommon.h: Removed.
        * Source/webrtc/api/android/jni/androidmediadecoder_jni.cc: Removed.
        * Source/webrtc/api/android/jni/androidmediadecoder_jni.h: Removed.
        * Source/webrtc/api/android/jni/androidmediaencoder_jni.cc: Removed.
        * Source/webrtc/api/android/jni/androidmediaencoder_jni.h: Removed.
        * Source/webrtc/api/android/jni/androidmetrics_jni.cc: Removed.
        * Source/webrtc/api/android/jni/androidnetworkmonitor_jni.cc: Removed.
        * Source/webrtc/api/android/jni/androidnetworkmonitor_jni.h: Removed.
        * Source/webrtc/api/android/jni/androidvideotracksource_jni.cc: Removed.
        * Source/webrtc/api/android/jni/classreferenceholder.cc: Removed.
        * Source/webrtc/api/android/jni/classreferenceholder.h: Removed.
        * Source/webrtc/api/android/jni/jni_helpers.cc: Removed.
        * Source/webrtc/api/android/jni/jni_helpers.h: Removed.
        * Source/webrtc/api/android/jni/jni_onload.cc: Removed.
        * Source/webrtc/api/android/jni/native_handle_impl.cc: Removed.
        * Source/webrtc/api/android/jni/native_handle_impl.h: Removed.
        * Source/webrtc/api/android/jni/peerconnection_jni.cc: Removed.
        * Source/webrtc/api/android/jni/surfacetexturehelper_jni.cc: Removed.
        * Source/webrtc/api/android/jni/surfacetexturehelper_jni.h: Removed.
        * Source/webrtc/api/androidtests: Removed.
        * Source/webrtc/api/androidtests/AndroidManifest.xml: Removed.
        * Source/webrtc/api/androidtests/OWNERS: Removed.
        * Source/webrtc/api/androidtests/ant.properties: Removed.
        * Source/webrtc/api/androidtests/build.xml: Removed.
        * Source/webrtc/api/androidtests/project.properties: Removed.
        * Source/webrtc/api/androidtests/res: Removed.
        * Source/webrtc/api/androidtests/res/drawable-hdpi: Removed.
        * Source/webrtc/api/androidtests/res/drawable-hdpi/ic_launcher.png: Removed.
        * Source/webrtc/api/androidtests/res/drawable-ldpi: Removed.
        * Source/webrtc/api/androidtests/res/drawable-ldpi/ic_launcher.png: Removed.
        * Source/webrtc/api/androidtests/res/drawable-mdpi: Removed.
        * Source/webrtc/api/androidtests/res/drawable-mdpi/ic_launcher.png: Removed.
        * Source/webrtc/api/androidtests/res/drawable-xhdpi: Removed.
        * Source/webrtc/api/androidtests/res/drawable-xhdpi/ic_launcher.png: Removed.
        * Source/webrtc/api/androidtests/res/values: Removed.
        * Source/webrtc/api/androidtests/res/values/strings.xml: Removed.
        * Source/webrtc/api/androidtests/src: Removed.
        * Source/webrtc/api/androidtests/src/org: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc/Camera1CapturerUsingByteBufferTest.java: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc/Camera1CapturerUsingTextureTest.java: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc/Camera2CapturerTest.java: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc/EglRendererTest.java: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc/GlRectDrawerTest.java: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc/MediaCodecVideoEncoderTest.java: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc/NetworkMonitorTest.java: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc/PeerConnectionTest.java: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc/RendererCommonTest.java: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc/SurfaceTextureHelperTest.java: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc/SurfaceViewRendererOnMeasureTest.java: Removed.
        * Source/webrtc/api/androidtests/src/org/webrtc/WebRtcJniBootTest.java: Removed.
        * Source/webrtc/api/androidvideotracksource.cc: Removed.
        * Source/webrtc/api/androidvideotracksource.h: Removed.
        * Source/webrtc/api/test/androidtestinitializer.cc: Removed.
        * Source/webrtc/api/test/androidtestinitializer.h: Removed.
        * Source/webrtc/base/ifaddrs-android.cc: Removed.
        * Source/webrtc/base/ifaddrs-android.h: Removed.
        * Source/webrtc/build/android: Removed.
        * Source/webrtc/build/android/AndroidManifest.xml: Removed.
        * Source/webrtc/build/android/suppressions.xml: Removed.
        * Source/webrtc/build/android/test_runner.py: Removed.
        * Source/webrtc/examples/androidapp: Removed.
        * Source/webrtc/examples/androidapp/AndroidManifest.xml: Removed.
        * Source/webrtc/examples/androidapp/OWNERS: Removed.
        * Source/webrtc/examples/androidapp/README: Removed.
        * Source/webrtc/examples/androidapp/ant.properties: Removed.
        * Source/webrtc/examples/androidapp/build.xml: Removed.
        * Source/webrtc/examples/androidapp/project.properties: Removed.
        * Source/webrtc/examples/androidapp/res: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-hdpi: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-hdpi/disconnect.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-hdpi/ic_action_full_screen.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-hdpi/ic_action_return_from_full_screen.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-hdpi/ic_launcher.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-hdpi/ic_loopback_call.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-ldpi: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-ldpi/disconnect.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-ldpi/ic_action_full_screen.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-ldpi/ic_action_return_from_full_screen.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-ldpi/ic_launcher.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-ldpi/ic_loopback_call.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-mdpi: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-mdpi/disconnect.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-mdpi/ic_action_full_screen.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-mdpi/ic_action_return_from_full_screen.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-mdpi/ic_launcher.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-mdpi/ic_loopback_call.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-xhdpi: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-xhdpi/disconnect.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-xhdpi/ic_action_full_screen.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-xhdpi/ic_action_return_from_full_screen.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-xhdpi/ic_launcher.png: Removed.
        * Source/webrtc/examples/androidapp/res/drawable-xhdpi/ic_loopback_call.png: Removed.
        * Source/webrtc/examples/androidapp/res/layout: Removed.
        * Source/webrtc/examples/androidapp/res/layout/activity_call.xml: Removed.
        * Source/webrtc/examples/androidapp/res/layout/activity_connect.xml: Removed.
        * Source/webrtc/examples/androidapp/res/layout/fragment_call.xml: Removed.
        * Source/webrtc/examples/androidapp/res/layout/fragment_hud.xml: Removed.
        * Source/webrtc/examples/androidapp/res/menu: Removed.
        * Source/webrtc/examples/androidapp/res/menu/connect_menu.xml: Removed.
        * Source/webrtc/examples/androidapp/res/values: Removed.
        * Source/webrtc/examples/androidapp/res/values-v17: Removed.
        * Source/webrtc/examples/androidapp/res/values-v17/styles.xml: Removed.
        * Source/webrtc/examples/androidapp/res/values-v21: Removed.
        * Source/webrtc/examples/androidapp/res/values-v21/styles.xml: Removed.
        * Source/webrtc/examples/androidapp/res/values/arrays.xml: Removed.
        * Source/webrtc/examples/androidapp/res/values/strings.xml: Removed.
        * Source/webrtc/examples/androidapp/res/xml: Removed.
        * Source/webrtc/examples/androidapp/res/xml/preferences.xml: Removed.
        * Source/webrtc/examples/androidapp/src: Removed.
        * Source/webrtc/examples/androidapp/src/org: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/AppRTCAudioManager.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/AppRTCClient.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/AppRTCProximitySensor.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/CallActivity.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/CallFragment.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/CaptureQualityController.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/CpuMonitor.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/DirectRTCClient.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/HudFragment.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/PeerConnectionClient.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/PercentFrameLayout.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/RoomParametersFetcher.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/SettingsActivity.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/SettingsFragment.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/TCPChannelClient.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/UnhandledExceptionHandler.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/WebSocketChannelClient.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/WebSocketRTCClient.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/util: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/util/AppRTCUtils.java: Removed.
        * Source/webrtc/examples/androidapp/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java: Removed.
        * Source/webrtc/examples/androidapp/start_loopback_stubbed_camera_saved_video_out.py: Removed.
        * Source/webrtc/examples/androidapp/third_party: Removed.
        * Source/webrtc/examples/androidapp/third_party/autobanh: Removed.
        * Source/webrtc/examples/androidapp/third_party/autobanh/BUILD.gn: Removed.
        * Source/webrtc/examples/androidapp/third_party/autobanh/LICENSE: Removed.
        * Source/webrtc/examples/androidapp/third_party/autobanh/LICENSE.md: Removed.
        * Source/webrtc/examples/androidapp/third_party/autobanh/NOTICE: Removed.
        * Source/webrtc/examples/androidapp/third_party/autobanh/lib: Removed.
        * Source/webrtc/examples/androidapp/third_party/autobanh/lib/autobanh.jar: Removed.
        * Source/webrtc/examples/androidjunit: Removed.
        * Source/webrtc/examples/androidjunit/README: Removed.
        * Source/webrtc/examples/androidjunit/src: Removed.
        * Source/webrtc/examples/androidjunit/src/org: Removed.
        * Source/webrtc/examples/androidjunit/src/org/appspot: Removed.
        * Source/webrtc/examples/androidjunit/src/org/appspot/apprtc: Removed.
        * Source/webrtc/examples/androidjunit/src/org/appspot/apprtc/DirectRTCClientTest.java: Removed.
        * Source/webrtc/examples/androidjunit/src/org/appspot/apprtc/TCPChannelClientTest.java: Removed.
        * Source/webrtc/examples/androidtests: Removed.
        * Source/webrtc/examples/androidtests/AndroidManifest.xml: Removed.
        * Source/webrtc/examples/androidtests/README: Removed.
        * Source/webrtc/examples/androidtests/ant.properties: Removed.
        * Source/webrtc/examples/androidtests/build.xml: Removed.
        * Source/webrtc/examples/androidtests/project.properties: Removed.
        * Source/webrtc/examples/androidtests/src: Removed.
        * Source/webrtc/examples/androidtests/src/org: Removed.
        * Source/webrtc/examples/androidtests/src/org/appspot: Removed.
        * Source/webrtc/examples/androidtests/src/org/appspot/apprtc: Removed.
        * Source/webrtc/examples/androidtests/src/org/appspot/apprtc/test: Removed.
        * Source/webrtc/examples/androidtests/src/org/appspot/apprtc/test/FileVideoCapturerTest.java: Removed.
        * Source/webrtc/examples/androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java: Removed.
        * Source/webrtc/examples/androidtests/src/org/appspot/apprtc/test/VideoFileRendererTest.java: Removed.
        * Source/webrtc/examples/androidtests/src/org/appspot/apprtc/test/capturetestvideo.y4m: Removed.
        * Source/webrtc/modules/audio_device/android: Removed.
        * Source/webrtc/modules/audio_device/android/audio_common.h: Removed.
        * Source/webrtc/modules/audio_device/android/audio_device_template.h: Removed.
        * Source/webrtc/modules/audio_device/android/audio_device_unittest.cc: Removed.
        * Source/webrtc/modules/audio_device/android/audio_manager.cc: Removed.
        * Source/webrtc/modules/audio_device/android/audio_manager.h: Removed.
        * Source/webrtc/modules/audio_device/android/audio_manager_unittest.cc: Removed.
        * Source/webrtc/modules/audio_device/android/audio_record_jni.cc: Removed.
        * Source/webrtc/modules/audio_device/android/audio_record_jni.h: Removed.
        * Source/webrtc/modules/audio_device/android/audio_track_jni.cc: Removed.
        * Source/webrtc/modules/audio_device/android/audio_track_jni.h: Removed.
        * Source/webrtc/modules/audio_device/android/build_info.cc: Removed.
        * Source/webrtc/modules/audio_device/android/build_info.h: Removed.
        * Source/webrtc/modules/audio_device/android/ensure_initialized.cc: Removed.
        * Source/webrtc/modules/audio_device/android/ensure_initialized.h: Removed.
        * Source/webrtc/modules/audio_device/android/java: Removed.
        * Source/webrtc/modules/audio_device/android/java/src: Removed.
        * Source/webrtc/modules/audio_device/android/java/src/org: Removed.
        * Source/webrtc/modules/audio_device/android/java/src/org/webrtc: Removed.
        * Source/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine: Removed.
        * Source/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/BuildInfo.java: Removed.
        * Source/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioEffects.java: Removed.
        * Source/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java: Removed.
        * Source/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioRecord.java: Removed.
        * Source/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java: Removed.
        * Source/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioUtils.java: Removed.
        * Source/webrtc/modules/audio_device/android/opensles_common.cc: Removed.
        * Source/webrtc/modules/audio_device/android/opensles_common.h: Removed.
        * Source/webrtc/modules/audio_device/android/opensles_player.cc: Removed.
        * Source/webrtc/modules/audio_device/android/opensles_player.h: Removed.
        * Source/webrtc/modules/audio_device/android/opensles_recorder.cc: Removed.
        * Source/webrtc/modules/audio_device/android/opensles_recorder.h: Removed.
        * Source/webrtc/modules/audio_processing/test/android: Removed.
        * Source/webrtc/modules/audio_processing/test/android/apmtest: Removed.
        * Source/webrtc/modules/audio_processing/test/android/apmtest/AndroidManifest.xml: Removed.
        * Source/webrtc/modules/audio_processing/test/android/apmtest/default.properties: Removed.
        * Source/webrtc/modules/audio_processing/test/android/apmtest/jni: Removed.
        * Source/webrtc/modules/audio_processing/test/android/apmtest/jni/main.c: Removed.
        * Source/webrtc/modules/audio_processing/test/android/apmtest/res: Removed.
        * Source/webrtc/modules/audio_processing/test/android/apmtest/res/values: Removed.
        * Source/webrtc/modules/audio_processing/test/android/apmtest/res/values/strings.xml: Removed.
        * Source/webrtc/modules/utility/include/helpers_android.h: Removed.
        * Source/webrtc/modules/utility/include/jvm_android.h: Removed.
        * Source/webrtc/modules/utility/source/helpers_android.cc: Removed.
        * Source/webrtc/modules/utility/source/jvm_android.cc: Removed.
        * Source/webrtc/system_wrappers/source/cpu_features_android.c: Removed.
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-10  Alex Christensen  <achristensen@webkit.org>

        Fix iOS libwebrtc build after r212127
        https://bugs.webkit.org/show_bug.cgi?id=168134

        * Configurations/libwebrtc.xcconfig:
        * libwebrtc.xcodeproj/project.pbxproj:
        I got a little carried away removing ObjC sources.
        We still need RTCLogging.mm and RTCUIApplication.mm on iOS.
        Also sorted the project file.

2017-02-10  Alex Christensen  <achristensen@webkit.org>

        Fix iOS libwebrtc build after r212127
        https://bugs.webkit.org/show_bug.cgi?id=168134

        * libwebrtc.xcodeproj/project.pbxproj:
        I got a little carried away removing -fobjc-arc.  These files need it.
        It was originally added in r211902 and these files are in the 
        EXCLUDED_SOURCE_FILE_NAMES[sdk=macosx*] list in libwebrtc.xcconfig
        so adding this flag won't break the 32-bit El Capitan build.

2017-02-10  Alex Christensen  <achristensen@webkit.org>

        Remove unnecessary automatic reference counting in libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=168134

        Reviewed by Youenn Fablet.

        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-10  Youenn Fablet  <youennf@gmail.com>

        [WebRTC] Activate libwebrtc G711/G722 audio codecs
        https://bugs.webkit.org/show_bug.cgi?id=168123

        Reviewed by Alex Christensen.

        Adding G711/G722 missing codec files.
        Activating use of these in the build system.

        * Configurations/libwebrtc.xcconfig:
        * Source/webrtc/modules/audio_coding/codecs/g711/g711.c: Added.
        (ulaw_to_alaw):
        * Source/webrtc/modules/audio_coding/codecs/g711/g711.h: Added.
        * Source/webrtc/modules/audio_coding/codecs/g722/audio_decoder_g722.cc: Added.
        * Source/webrtc/modules/audio_coding/codecs/g722/audio_decoder_g722.h: Added.
        * Source/webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.cc: Added.
        * Source/webrtc/modules/audio_coding/codecs/g722/audio_encoder_g722.h: Added.
        * Source/webrtc/modules/audio_coding/codecs/g722/g722_decode.c: Added.
        * Source/webrtc/modules/audio_coding/codecs/g722/g722_enc_dec.h: Added.
        * Source/webrtc/modules/audio_coding/codecs/g722/g722_encode.c: Added.
        * Source/webrtc/modules/audio_coding/codecs/g722/g722_interface.c: Added.
        * Source/webrtc/modules/audio_coding/codecs/g722/g722_interface.h: Added.
        * Source/webrtc/modules/audio_coding/codecs/g722/test/testG722.cc: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-10  Alex Christensen  <achristensen@webkit.org>

        Fix ASAN build.

        * Source/webrtc/base/sanitizer.h:
        SANITIZER_UNUSED3 wasn't defined if we are using address_sanitizer but not memory_sanitizer.

2017-02-09  Alex Christensen  <achristensen@webkit.org>

        Fix El Capitan build.

        * libwebrtc.xcodeproj/project.pbxproj:
        Remove more SSE4 code.

2017-02-09  Alex Christensen  <achristensen@webkit.org>

        Fix El Capitan build.

        * libwebrtc.xcodeproj/project.pbxproj:
        Remove more SSE4 code.

2017-02-09  Alex Christensen  <achristensen@webkit.org>

        Fix iOS and El Capitan builds of libwebrtc.

        * Configurations/libwebrtc.xcconfig:
        Skip building audio_mixer_manager_mac.cc on iOS.
        * libwebrtc.xcodeproj/project.pbxproj:
        El Capitan doesn't like the SSE4 optimizations in opus.
        Just don't include them for now.

2017-02-09  Alex Christensen  <achristensen@webkit.org>

        Fix warnings in libwebrtc build
        https://bugs.webkit.org/show_bug.cgi?id=168088

        Reviewed by Youenn Fablet.

        * Source/third_party/opus/src/src/opus_decoder.c:
        Silence a warning.  Debug builds of opus can be slow.  No big deal.
        * libwebrtc.xcodeproj/project.pbxproj:
        More sdk files need ARC.

2017-02-09  Alex Christensen  <achristensen@webkit.org>

        Fix iOS libwebrtc build after r211960
        https://bugs.webkit.org/show_bug.cgi?id=168038

        * Source/webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.h:
        GlContextType declaration needs to be platform specific here like it is in RTCOpenGLDefines.h

2017-02-09  Alex Christensen  <achristensen@webkit.org>

        Fix i386 libwebrtc build
        https://bugs.webkit.org/show_bug.cgi?id=168038

        Reviewed by Geoffrey Garen.

        Unfortunately, 32-bit ObjC can't use all the coolest new features of ObjC.
        Fortunately, we can move things around a bit to become valid old ObjC.

        * Source/webrtc/sdk/objc/Framework/Classes/RTCAVFoundationVideoSource.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCAudioSource.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCFileLogger.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCI420Shader.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCMediaConstraints.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCMediaSource+Private.h:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCMediaSource.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCMediaStream.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCMediaStreamTrack+Private.h:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCMediaStreamTrack.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.h:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCOpenGLVideoRenderer.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCPeerConnectionFactory.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCRtpReceiver.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCRtpSender.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCShader.h:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCVideoFrame.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCVideoRendererAdapter.h:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCVideoRendererAdapter.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCVideoSource.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/RTCVideoTrack.mm:
        * Source/webrtc/sdk/objc/Framework/Classes/avfoundationvideocapturer.mm:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioSource.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCAudioTrack.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCConfiguration.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCFileLogger.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCIceCandidate.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCIceServer.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCLegacyStatsReport.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaConstraints.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaSource.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaStream.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpParameters.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpReceiver.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCRtpSender.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCSessionDescription.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoFrame.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoSource.h:
        * Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoTrack.h:
        Make code compile for i386.
        * libwebrtc.xcodeproj/project.pbxproj:
        Added missing headers so Xcode can search them.

2017-02-09  Alex Christensen  <achristensen@webkit.org>

        Remove svn:executable property from headers.

        * Source/webrtc/base/sigslottester.h: Removed property svn:executable.
        * Source/webrtc/modules/video_processing/util/skin_detection.h: Removed property svn:executable.

2017-02-08  Alex Christensen  <achristensen@webkit.org>

        Fix libwebrtc build.
        https://bugs.webkit.org/show_bug.cgi?id=168017

        * Configurations/libwebrtc.xcconfig:
        Trying to compile audio_device_not_implemented_ios.mm on Mac doesn't work.
        * libwebrtc.xcodeproj/project.pbxproj:
        Add some neon files.  They are nicely protected by macros at the top, so their contents are only compiled if necessary.

2017-02-08  Alex Christensen  <achristensen@webkit.org>

        Fix libwebrtc build on iOS simulator
        https://bugs.webkit.org/show_bug.cgi?id=168017

        Reviewed by Tim Horton.

        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtcpcrtc.xcconfig:
        Use $(inherited)
        * Source/webrtc/modules/audio_device/ios/audio_device_ios.h:
        * Source/webrtc/modules/audio_device/ios/audio_device_ios.mm:
        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Configuration.mm:
        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession+Private.h:
        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.h:
        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSession.mm:
        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.h:
        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionConfiguration.m:
        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.h:
        * Source/webrtc/modules/audio_device/ios/objc/RTCAudioSessionDelegateAdapter.mm:
        Renamed RTCAudioSession* to WebRTCAudioSession* so that all ObjC classes in WebCore start with Web prefix.
        * libwebrtc.xcodeproj/project.pbxproj:
        Add necessary files.  Some iOS-specific files need ARC, 
        and this matches the Build.gn in Source/webrtc/modules/audio_device

2017-02-08  Alex Christensen  <achristensen@webkit.org>

        Fix iOS libwebrtc build
        https://bugs.webkit.org/show_bug.cgi?id=168004

        Reviewed by Youenn Fablet.

        We might still need to add some neon files.

        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtcpcrtc.xcconfig:
        * Configurations/opus.xcconfig:
        Don't build sse-specific files for iOS.
        * libwebrtc.xcodeproj/project.pbxproj:
        Don't include the sse4 optimization for now.
        We can add the optimization for CPUs that support it later.

2017-02-08  Youenn Fablet  <youennf@gmail.com>

        [WebRTC] Fix libwebrtc build system
        https://bugs.webkit.org/show_bug.cgi?id=167978

        Reviewed by Alex Christensen.

        * Configurations/libwebrtc.xcconfig:
        * Configurations/libwebrtcpcrtc.xcconfig:
        * Configurations/usrsctp.xcconfig:
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-07  Youenn Fablet  <youenn@apple.com>

        Fix libwebrtcpcrtc target include path
        https://bugs.webkit.org/show_bug.cgi?id=167971

        Reviewed by Alex Christensen.

        * Configurations/libwebrtcpcrtc.xcconfig:

2017-02-07  Youenn Fablet  <youenn@apple.com>

        [WebRTC] usrsctp (libwebrtc third party library) is not compiling
        https://bugs.webkit.org/show_bug.cgi?id=167969

        Reviewed by Alex Christensen.

        Also removing .gitignore files in libwebrtc directory.

        * Source/.gitignore: Removed.
        * Source/third_party/boringssl/src/.gitignore: Removed.
        * Source/third_party/gflags/src/.gitignore: Removed.
        * Source/third_party/jsoncpp/source/.gitignore: Removed.
        * Source/third_party/libyuv/.gitignore: Removed.
        * Source/third_party/protobuf/.gitignore: Removed.
        * Source/third_party/protobuf/csharp/.gitignore: Removed.
        * Source/third_party/protobuf/ruby/.gitignore: Removed.
        * Source/third_party/usrsctp/usrsctplib/.gitignore: Removed.
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:
        (sctp_process_cookie_existing):
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_output.c:
        * Source/tools/.gitignore: Removed.
        * Source/webrtc/.gitignore: Removed.

2017-02-07  Alex Christensen  <achristensen@webkit.org>

        Move webrtc/pc to own Xcode target
        https://bugs.webkit.org/show_bug.cgi?id=167970

        Reviewed by Youenn Fablet.

        It needs to include different directories than the rest of libwebrtc.
        Also moved some target names so liblibsrtp.a is changed to libsrtp.a, etc.

        * Configurations/libwebrtcpcrtc.xcconfig: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-07  Alex Christensen  <achristensen@webkit.org>

        [libwebrtc] Move libsrtp and libyuv to own Xcode targets
        https://bugs.webkit.org/show_bug.cgi?id=167966

        Reviewed by Youenn Fablet.

        * Configurations/libsrtp.xcconfig: Added.
        * Configurations/libyuv.xcconfig: Added.
        * Configurations/usrsctp.xcconfig:
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-07  Alex Christensen  <achristensen@webkit.org>

        Fix libwebrtc build after r211817
        https://bugs.webkit.org/show_bug.cgi?id=167944

        * Configurations/usrsctp.xcconfig:
        Disable more warnings.

2017-02-07  Alex Christensen  <achristensen@webkit.org>

        build usrsctp with Xcode
        https://bugs.webkit.org/show_bug.cgi?id=167944

        Reviewed by Youenn Fablet.

        * Configurations/usrsctp.xcconfig:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_pcb.c:
        * Source/third_party/usrsctp/usrsctplib/usrsctplib/user_atomic.h:
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-06  Alex Christensen  <achristensen@webkit.org>

        [WebRTC] Remove unneeded build directory accidentally checked in with libwebrtc source.

        Reviewed by Youenn Fablet.

        * third_party/usrsctp/build: Removed.

2017-02-03  Alex Christensen  <achristensen@webkit.org>

        [WebRTC] Add more files to libwebrtc build
        https://bugs.webkit.org/show_bug.cgi?id=167824

        Reviewed by Youenn Fablet.

        * Configurations/libwebrtc.xcconfig:
        * Configurations/usrsctp.xcconfig: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2017-02-02  Alex Christensen  <achristensen@webkit.org>

        Build libwebrtc and dependencies with Xcode
        https://bugs.webkit.org/show_bug.cgi?id=167758

        Reviewed by Dean Jackson.

        * Configurations: Added.
        * Configurations/Base.xcconfig: Added.
        * Configurations/DebugRelease.xcconfig: Added.
        * Configurations/boringssl.xcconfig: Added.
        * Configurations/libwebrtc.xcconfig: Added.
        * Configurations/opus.xcconfig: Added.
        * libwebrtc.xcodeproj/project.pbxproj:

2017-01-30  Youenn Fablet  <youennf@gmail.com>

        [WebRTC] Upload a diff of WebKit libwebrtc code and original libwebrtc code
        https://bugs.webkit.org/show_bug.cgi?id=167573

        Reviewed by Alex Christensen.

        * WebKit/patch-libwebrtc: Added.

2017-01-27  Dan Bernstein  <mitz@apple.com>

        Ignore Xcode’s project.xcworkspace and userdata directories in this new project like we do
        in other projects.

        * libwebrtc.xcodeproj: Added property svn:ignore.

2017-01-24  Youenn Fablet  <youenn@apple.com>

        [WebRTC] Use HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE for libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=167353

        Reviewed by Alex Christensen.

        * CMakeLists.txt:

2017-01-23  Youenn Fablet  <youenn@apple.com>

        [WebRTC] Filter libwebrtc link flags
        https://bugs.webkit.org/show_bug.cgi?id=167287

        Reviewed by Alex Christensen.

        * CMakeLists.txt:

2017-01-23  Youenn Fablet  <youennf@gmail.com>

        [WebRTC] Make VP8 optional in libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=167257

        Reviewed by Darin Adler.

        Reusing strategy used to have VP9 optional for VP8 codec.

        * CMakeLists.txt: Updated tocompile and link vp8_noop.cc
        * Source/webrtc/media/engine/webrtcvideoengine2.cc:
        * Source/webrtc/modules/video_coding/codecs/vp8/include/vp8.h:
        * Source/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc:
        * Source/webrtc/modules/video_coding/codecs/vp8/vp8_noop.cc: Added.
        * Source/webrtc/video/video_encoder.cc:

2017-01-20  Youenn Fablet  <youennf@gmail.com>

        [WebRTC] Update build system to make G711 optional in libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=167256

        Reviewed by Alex Christensen.

        * CMakeLists.txt: Updating to add compilation of generic pcm encoder functions.

2017-01-20  Youenn Fablet  <youennf@gmail.com>

        [WebRTC] Update libwertc AudioRtpSender::SetAudioSend
        https://bugs.webkit.org/show_bug.cgi?id=167243

        Reviewed by Alex Christensen.

        Introducing  WEBRTC_WEBKIT_BUILD macro to match existing WEBRTC_CHROMIUM_BUILD.
        WEBRTC_WEBKIT_BUILD is defined by current WebKit libwebrtc build system.

        * Source/webrtc/api/rtpsender.cc:

2017-01-20  Youenn Fablet  <youennf@gmail.com>

        [WebRTC] libwebrtc NO_RETURN is conflicting with WebKit one
        https://bugs.webkit.org/show_bug.cgi?id=167244

        Reviewed by Alex Christensen.

        * Source/webrtc/typedefs.h: Defining NO_RETURN only if not already defined.

2017-01-20  Youenn Fablet  <youenn@apple.com>

        [WebRTC] libwebrtc headers are incompatible with WebKit compilation flags
        https://bugs.webkit.org/show_bug.cgi?id=167242

        Reviewed by Alex Christensen.

        WebKit is enforcing -Wunused-parameter and -Wunused-variable which conflict with some included libwertc headers.
        Removed unused parameter names for inlined functions.

        * Source/webrtc/api/jsep.h:
        (webrtc::SessionDescriptionInterface::RemoveCandidates):
        * Source/webrtc/api/mediastreaminterface.h:
        (webrtc::AudioSourceInterface::SetVolume):
        (webrtc::AudioSourceInterface::RegisterAudioObserver):
        (webrtc::AudioSourceInterface::UnregisterAudioObserver):
        (webrtc::AudioSourceInterface::AddSink):
        (webrtc::AudioSourceInterface::RemoveSink):
        (webrtc::AudioTrackInterface::GetSignalLevel):
        * Source/webrtc/api/peerconnectionfactory.h:
        * Source/webrtc/api/peerconnectioninterface.h:
        (webrtc::MetricsObserverInterface::IncrementEnumCounter):
        (webrtc::PeerConnectionInterface::AddTrack):
        (webrtc::PeerConnectionInterface::RemoveTrack):
        (webrtc::PeerConnectionInterface::CreateSender):
        (webrtc::PeerConnectionInterface::GetStats):
        (webrtc::PeerConnectionInterface::CreateOffer):
        (webrtc::PeerConnectionInterface::CreateAnswer):
        (webrtc::PeerConnectionInterface::UpdateIce):
        (webrtc::PeerConnectionInterface::SetConfiguration):
        (webrtc::PeerConnectionInterface::RemoveIceCandidates):
        (webrtc::PeerConnectionInterface::StartRtcEventLog):
        (webrtc::PeerConnectionObserver::OnAddStream):
        (webrtc::PeerConnectionObserver::OnRemoveStream):
        (webrtc::PeerConnectionObserver::OnDataChannel):
        (webrtc::PeerConnectionObserver::OnIceCandidatesRemoved):
        (webrtc::PeerConnectionObserver::OnIceConnectionReceivingChange):
        * Source/webrtc/api/rtpsender.cc:
        * Source/webrtc/base/messagehandler.h:
        (rtc::FunctorMessageHandler::OnMessage):
        * Source/webrtc/base/sanitizer.h:
        (rtc_AsanPoison):
        (rtc_AsanUnpoison):
        (rtc_MsanMarkUninitialized):
        (rtc_MsanCheckInitialized):
        * Source/webrtc/base/stream.h:
        (rtc::StreamInterface::ConsumeReadData):
        (rtc::StreamInterface::ConsumeWriteBuffer):
        * Source/webrtc/media/base/mediachannel.h:
        (cricket::DataMediaChannel::GetStats):
        (cricket::DataMediaChannel::OnNetworkRouteChanged):
        * Source/webrtc/media/engine/webrtcvideodecoderfactory.h:
        (cricket::WebRtcVideoDecoderFactory::CreateVideoDecoderWithParams):
        * Source/webrtc/media/engine/webrtcvideoencoderfactory.h:
        (cricket::WebRtcVideoEncoderFactory::VideoCodec::VideoCodec):
        (cricket::WebRtcVideoEncoderFactory::EncoderTypeHasInternalSource):
        * Source/webrtc/media/engine/webrtcvideoengine2.cc:
        * Source/webrtc/modules/include/module.h:
        (webrtc::Module::ProcessThreadAttached):
        * Source/webrtc/modules/video_coding/codecs/vp9/vp9_noop.cc:
        * Source/webrtc/p2p/base/port.h:
        (cricket::Port::HandleIncomingPacket):
        (cricket::Port::HandleConnectionDestroyed):
        (cricket::Connection::set_receiving_timeout):
        * Source/webrtc/p2p/base/stun.h:
        (cricket::StunAttribute::SetOwner):
        * Source/webrtc/p2p/base/stunrequest.h:
        (cricket::StunRequest::Prepare):
        (cricket::StunRequest::OnResponse):
        (cricket::StunRequest::OnErrorResponse):
        * Source/webrtc/p2p/base/transport.h:
        (cricket::Transport::SetLocalCertificate):
        (cricket::Transport::GetLocalCertificate):
        (cricket::Transport::GetSslRole):
        (cricket::Transport::SetSslMaxProtocolVersion):
        * Source/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc:
        * Source/webrtc/typedefs.h:

2017-01-20  Youenn Fablet  <youennf@gmail.com>

        [WebRTC] Update libwertc AudioRtpSender::SetAudioSend
        https://bugs.webkit.org/show_bug.cgi?id=167243

        Reviewed by Alex Christensen.

        Introducing  WEBRTC_WEBKIT_BUILD macro to match existing WEBRTC_CHROMIUM_BUILD.
        WEBRTC_WEBKIT_BUILD is defined by current WebKit libwebrtc build system.

        * Source/webrtc/api/rtpsender.cc:

2017-01-20  Youenn Fablet  <youennf@gmail.com>

        [WebRTC] libwebrtc H.264 codec is using VTB only for IOS
        https://bugs.webkit.org/show_bug.cgi?id=167245

        Reviewed by Alex Christensen.

        * Source/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc: Removing WEBRTC_IOS flag.

2017-01-19  Youenn Fablet  <youenn@apple.com>

        [WebRTC] Upload libwebrtc code base
        https://bugs.webkit.org/show_bug.cgi?id=167205

        Reviewed by Alex Christensen and Jon Lee.

        Add initial libwebrtc source from branch 56. Here's how to get what we committed:
        git clone https://chromium.googlesource.com/external/webrtc.git && cd webrtc && git checkout 7bf536976366443ea59153ff3d22da0ec32badc1
