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
