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
