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
