<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[224428] trunk/Source</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/224428">224428</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2017-11-03 14:13:35 -0700 (Fri, 03 Nov 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Use VCP H264 encoder for platforms supporting it
https://bugs.webkit.org/show_bug.cgi?id=179076
rdar://problem/35180773

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-03
Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

* 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:

Source/WebCore:

Covered by existing test coverage.

* platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp:
(WebCore::VideoToolboxVideoEncoderFactory::setActive):
(WebCore::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder):
(WebCore::VideoToolboxVideoEncoderFactory::DestroyVideoEncoder):
* platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceThirdPartylibwebrtcChangeLog">trunk/Source/ThirdParty/libwebrtc/ChangeLog</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcConfigurationslibwebrtciOSexp">trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcConfigurationslibwebrtciOSsimexp">trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcConfigurationslibwebrtcmacexp">trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcConfigurationslibwebrtcxcconfig">trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcSourcewebrtcsdkobjcFrameworkClassesVideoToolboxencodermm">trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcSourcewebrtcsdkobjcFrameworkClassesVideoToolboxvideocodecfactoryh">trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.h</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcSourcewebrtcsdkobjcFrameworkClassesVideoToolboxvideocodecfactorymm">trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.mm</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtclibwebrtcxcodeprojprojectpbxproj">trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamlibwebrtcVideoToolBoxEncoderFactorycpp">trunk/Source/WebCore/platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamlibwebrtcVideoToolBoxEncoderFactoryh">trunk/Source/WebCore/platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/</li>
<li><a href="#trunkSourceThirdPartylibwebrtcSourcewebrtcsdkobjcFrameworkClassesVideoProcessingencoder_vcph">trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcSourcewebrtcsdkobjcFrameworkClassesVideoProcessingencoder_vcpmm">trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceThirdPartylibwebrtcChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/ChangeLog (224427 => 224428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/ChangeLog      2017-11-03 21:04:49 UTC (rev 224427)
+++ trunk/Source/ThirdParty/libwebrtc/ChangeLog 2017-11-03 21:13:35 UTC (rev 224428)
</span><span class="lines">@@ -1,3 +1,30 @@
</span><ins>+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:
+
</ins><span class="cx"> 2017-10-04  Commit Queue  <commit-queue@webkit.org>
</span><span class="cx"> 
</span><span class="cx">         Unreviewed, rolling out r222775.
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcConfigurationslibwebrtciOSexp"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp (224427 => 224428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp       2017-11-03 21:04:49 UTC (rev 224427)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp  2017-11-03 21:13:35 UTC (rev 224428)
</span><span class="lines">@@ -2029,6 +2029,8 @@
</span><span class="cx"> __ZN6webrtc29RTCStatsIceCandidatePairState11kInProgressE
</span><span class="cx"> __ZN6webrtc30ParseDataChannelOpenAckMessageERKN3rtc17CopyOnWriteBufferE
</span><span class="cx"> __ZN6webrtc30WriteDataChannelOpenAckMessageEPN3rtc17CopyOnWriteBufferE
</span><ins>+__ZN6webrtc32createH264VideoToolboxEncoderVCPERKN7cricket10VideoCodecE
+__ZN6webrtc32deleteH264VideoToolboxEncoderVCPEPNS_26H264VideoToolboxEncoderVCPE
</ins><span class="cx"> __ZN6webrtc31VideoToolboxVideoDecoderFactory18CreateVideoDecoderENS_14VideoCodecTypeE
</span><span class="cx"> __ZN6webrtc31VideoToolboxVideoDecoderFactory19DestroyVideoDecoderEPNS_12VideoDecoderE
</span><span class="cx"> __ZN6webrtc31VideoToolboxVideoDecoderFactoryC1Ev
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcConfigurationslibwebrtciOSsimexp"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp (224427 => 224428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp    2017-11-03 21:04:49 UTC (rev 224427)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp       2017-11-03 21:13:35 UTC (rev 224428)
</span><span class="lines">@@ -1805,6 +1805,8 @@
</span><span class="cx"> __ZN6webrtc23AudioNetworkAdaptorImpl6ConfigD1Ev
</span><span class="cx"> __ZN6webrtc23AudioNetworkAdaptorImpl6SetRttEi
</span><span class="cx"> __ZN6webrtc23AudioNetworkAdaptorImplC1ERKNS0_6ConfigENSt3__110unique_ptrINS_17ControllerManagerENS4_14default_deleteIS6_EEEENS5_INS_15DebugDumpWriterENS7_ISA_EEEE
</span><ins>+__ZN6webrtc32createH264VideoToolboxEncoderVCPERKN7cricket10VideoCodecE
+__ZN6webrtc32deleteH264VideoToolboxEncoderVCPEPNS_26H264VideoToolboxEncoderVCPE
</ins><span class="cx"> __ZN6webrtc23H264VideoToolboxEncoder10InitEncodeEPKNS_10VideoCodecEim
</span><span class="cx"> __ZN6webrtc23H264VideoToolboxEncoder13SetBitrateBpsEj
</span><span class="cx"> __ZN6webrtc23H264VideoToolboxEncoder14OnEncodedFrameEijP20opaqueCMSampleBufferNS_17CodecSpecificInfoEiixjNS_13VideoRotationE
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcConfigurationslibwebrtcmacexp"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp (224427 => 224428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp       2017-11-03 21:04:49 UTC (rev 224427)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp  2017-11-03 21:13:35 UTC (rev 224428)
</span><span class="lines">@@ -1803,6 +1803,8 @@
</span><span class="cx"> __ZN6webrtc23AudioNetworkAdaptorImpl6ConfigD1Ev
</span><span class="cx"> __ZN6webrtc23AudioNetworkAdaptorImpl6SetRttEi
</span><span class="cx"> __ZN6webrtc23AudioNetworkAdaptorImplC1ERKNS0_6ConfigENSt3__110unique_ptrINS_17ControllerManagerENS4_14default_deleteIS6_EEEENS5_INS_15DebugDumpWriterENS7_ISA_EEEE
</span><ins>+__ZN6webrtc32createH264VideoToolboxEncoderVCPERKN7cricket10VideoCodecE
+__ZN6webrtc32deleteH264VideoToolboxEncoderVCPEPNS_26H264VideoToolboxEncoderVCPE
</ins><span class="cx"> __ZN6webrtc23H264VideoToolboxEncoder10InitEncodeEPKNS_10VideoCodecEim
</span><span class="cx"> __ZN6webrtc23H264VideoToolboxEncoder13SetBitrateBpsEj
</span><span class="cx"> __ZN6webrtc23H264VideoToolboxEncoder14OnEncodedFrameEijP20opaqueCMSampleBufferNS_17CodecSpecificInfoEiixjNS_13VideoRotationE
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcConfigurationslibwebrtcxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig (224427 => 224428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig      2017-11-03 21:04:49 UTC (rev 224427)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig 2017-11-03 21:13:35 UTC (rev 224428)
</span><span class="lines">@@ -39,3 +39,5 @@
</span><span class="cx"> EXCLUDED_SOURCE_FILE_NAMES[sdk=iphoneos*] = *_sse.cc *_sse2.cc macutils.cc macwindowpicker.cc audio_device_mac.cc audio_mixer_manager_mac.cc;
</span><span class="cx"> EXCLUDED_SOURCE_FILE_NAMES[sdk=iphonesimulator*] = macutils.cc macwindowpicker.cc audio_device_mac.cc audio_mixer_manager_mac.cc;
</span><span class="cx"> EXCLUDED_SOURCE_FILE_NAMES[sdk=macosx*] = voice_processing_audio_unit.mm;
</span><ins>+
+OTHER_LDFLAGS[sdk=macosx10.13*] = $(inherited) -framework VideoProcessing;
</ins></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcSourcewebrtcsdkobjcFrameworkClassesVideoProcessingencoder_vcph"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h (0 => 224428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h                         (rev 0)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h    2017-11-03 21:13:35 UTC (rev 224428)
</span><span class="lines">@@ -0,0 +1,134 @@
</span><ins>+/*
+ *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
+ *  Copyright (c) 2017 Apple Inc. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ *
+ */
+
+#pragma once
+
+#ifdef __APPLE__
+#include <Availability.h>
+#include <AvailabilityMacros.h>
+#include <TargetConditionals.h>
+
+#define VCP_FOR_IOS (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE && defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 110300)
+#define VCP_FOR_IOS_SIMULATOR (defined(TARGET_IPHONE_SIMULATOR) && TARGET_IPHONE_SIMULATOR && defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 110300)
+#define VCP_FOR_MAC_OS (defined(TARGET_OS_MAC)  && TARGET_OS_MAC && defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 101304)
+
+// FIXME: Activate VCP for iOS/iOS simulator
+#if VCP_FOR_MAC_OS
+#define ENABLE_VCP_ENCODER 1
+#else
+#define ENABLE_VCP_ENCODER 0
+#endif
+
+#if ENABLE_VCP_ENCODER
+
+#include "webrtc/api/video/video_rotation.h"
+#include "webrtc/base/criticalsection.h"
+#include "webrtc/common_video/h264/h264_bitstream_parser.h"
+#include "webrtc/common_video/include/bitrate_adjuster.h"
+#include "webrtc/media/base/codec.h"
+#include "webrtc/modules/video_coding/codecs/h264/include/h264.h"
+#include "webrtc/modules/video_coding/utility/quality_scaler.h"
+
+#include <VideoProcessing/VideoProcessing.h>
+#include <vector>
+
+// This file provides a H264 encoder implementation using the VideoProcessing APIs.
+
+namespace webrtc {
+
+class H264VideoToolboxEncoderVCP : public H264Encoder {
+ public:
+  explicit H264VideoToolboxEncoderVCP(const cricket::VideoCodec& codec);
+
+  ~H264VideoToolboxEncoderVCP() override;
+
+  int InitEncode(const VideoCodec* codec_settings,
+                 int number_of_cores,
+                 size_t max_payload_size) override;
+
+  int Encode(const VideoFrame& input_image,
+             const CodecSpecificInfo* codec_specific_info,
+             const std::vector<FrameType>* frame_types) override;
+
+  int RegisterEncodeCompleteCallback(EncodedImageCallback* callback) override;
+
+  int SetChannelParameters(uint32_t packet_loss, int64_t rtt) override;
+
+  int SetRates(uint32_t new_bitrate_kbit, uint32_t frame_rate) override;
+
+  int Release() override;
+
+  const char* ImplementationName() const override;
+
+  bool SupportsNativeHandle() const override;
+
+  void OnEncodedFrame(OSStatus status,
+                      VTEncodeInfoFlags info_flags,
+                      CMSampleBufferRef sample_buffer,
+                      CodecSpecificInfo codec_specific_info,
+                      int32_t width,
+                      int32_t height,
+                      int64_t render_time_ms,
+                      uint32_t timestamp,
+                      VideoRotation rotation);
+
+  ScalingSettings GetScalingSettings() const override;
+
+  void SetActive(bool is_active) { is_active_ = is_active; }
+
+ protected:
+  virtual int CreateCompressionSession(VCPCompressionSessionRef&, VTCompressionOutputCallback, int32_t width, int32_t height, bool useHardwareEncoder = true);
+  void DestroyCompressionSession();
+
+ private:
+  int ResetCompressionSession();
+  void ConfigureCompressionSession();
+  rtc::scoped_refptr<VideoFrameBuffer> GetScaledBufferOnEncode(
+      const rtc::scoped_refptr<VideoFrameBuffer>& frame);
+  void SetBitrateBps(uint32_t bitrate_bps);
+  void SetEncoderBitrateBps(uint32_t bitrate_bps);
+
+  EncodedImageCallback* callback_;
+  VCPCompressionSessionRef compression_session_;
+  BitrateAdjuster bitrate_adjuster_;
+  H264PacketizationMode packetization_mode_;
+  uint32_t target_bitrate_bps_;
+  uint32_t encoder_bitrate_bps_;
+  int32_t width_;
+  int32_t height_;
+  VideoCodecMode mode_;
+  const CFStringRef profile_;
+
+  H264BitstreamParser h264_bitstream_parser_;
+  std::vector<uint8_t> nv12_scale_buffer_;
+  bool is_active_ { true };
+};  // H264VideoToolboxEncoder
+
+H264VideoToolboxEncoderVCP* createH264VideoToolboxEncoderVCP(const cricket::VideoCodec&);
+void deleteH264VideoToolboxEncoderVCP(H264VideoToolboxEncoderVCP*);
+
+}  // namespace webrtc
+#else
+
+namespace cricket {
+struct VideoCodec;
+}
+
+namespace webrtc {
+class H264VideoToolboxEncoderVCP;
+H264VideoToolboxEncoderVCP* createH264VideoToolboxEncoderVCP(const cricket::VideoCodec&);
+void deleteH264VideoToolboxEncoderVCP(H264VideoToolboxEncoderVCP*);
+}
+
+#endif // ENABLE_VCP_ENCODER
+
+#endif // __APPLE__
</ins></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcSourcewebrtcsdkobjcFrameworkClassesVideoProcessingencoder_vcpmmfromrev224427trunkSourceThirdPartylibwebrtcSourcewebrtcsdkobjcFrameworkClassesVideoToolboxencodermm"></a>
<div class="copfile"><h4>Copied: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.mm (from rev 224427, trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm) (0 => 224428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.mm                                (rev 0)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.mm   2017-11-03 21:13:35 UTC (rev 224428)
</span><span class="lines">@@ -0,0 +1,800 @@
</span><ins>+/*
+ *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
+ *  Copyright (c) 2017 Apple Inc. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ *
+ */
+
+#include "webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h"
+
+#if ENABLE_VCP_ENCODER
+
+#include <memory>
+#include <string>
+#include <vector>
+
+#if defined(WEBRTC_IOS)  && !defined(WEBRTC_WEBKIT_BUILD)
+#import "Common/RTCUIApplicationStatusObserver.h"
+#import "WebRTC/UIDevice+RTCDevice.h"
+#endif
+#include "libyuv/convert_from.h"
+#include "webrtc/base/checks.h"
+#include "webrtc/base/logging.h"
+#include "webrtc/common_video/h264/profile_level_id.h"
+#include "webrtc/sdk/objc/Framework/Classes/Video/corevideo_frame_buffer.h"
+#include "webrtc/sdk/objc/Framework/Classes/VideoToolbox/nalu_rewriter.h"
+#include "webrtc/system_wrappers/include/clock.h"
+
+namespace internal {
+
+// The ratio between kVTCompressionPropertyKey_DataRateLimits and
+// kVTCompressionPropertyKey_AverageBitRate. The data rate limit is set higher
+// than the average bit rate to avoid undershooting the target.
+const float kLimitToAverageBitRateFactor = 1.5f;
+// These thresholds deviate from the default h264 QP thresholds, as they
+// have been found to work better on devices that support VideoToolbox
+const int kLowH264QpThreshold = 28;
+const int kHighH264QpThreshold = 39;
+
+// Convenience function for creating a dictionary.
+inline CFDictionaryRef CreateCFDictionary(CFTypeRef* keys,
+                                          CFTypeRef* values,
+                                          size_t size) {
+  return CFDictionaryCreate(kCFAllocatorDefault, keys, values, size,
+                            &kCFTypeDictionaryKeyCallBacks,
+                            &kCFTypeDictionaryValueCallBacks);
+}
+
+// Copies characters from a CFStringRef into a std::string.
+std::string CFStringToString(const CFStringRef cf_string) {
+  RTC_DCHECK(cf_string);
+  std::string std_string;
+  // Get the size needed for UTF8 plus terminating character.
+  size_t buffer_size =
+      CFStringGetMaximumSizeForEncoding(CFStringGetLength(cf_string),
+                                        kCFStringEncodingUTF8) +
+      1;
+  std::unique_ptr<char[]> buffer(new char[buffer_size]);
+  if (CFStringGetCString(cf_string, buffer.get(), buffer_size,
+                         kCFStringEncodingUTF8)) {
+    // Copy over the characters.
+    std_string.assign(buffer.get());
+  }
+  return std_string;
+}
+
+// Convenience function for setting a VT property.
+void SetVTSessionProperty(VCPCompressionSessionRef session,
+                          CFStringRef key,
+                          int32_t value) {
+  CFNumberRef cfNum =
+      CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &value);
+  OSStatus status = VCPCompressionSessionSetProperty(session, key, cfNum);
+  CFRelease(cfNum);
+  if (status != noErr) {
+    std::string key_string = CFStringToString(key);
+    LOG(LS_ERROR) << "VTSessionSetProperty failed to set: " << key_string
+                  << " to " << value << ": " << status;
+  }
+}
+
+// Convenience function for setting a VT property.
+void SetVTSessionProperty(VCPCompressionSessionRef session,
+                          CFStringRef key,
+                          uint32_t value) {
+  int64_t value_64 = value;
+  CFNumberRef cfNum =
+      CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt64Type, &value_64);
+  OSStatus status = VCPCompressionSessionSetProperty(session, key, cfNum);
+  CFRelease(cfNum);
+  if (status != noErr) {
+    std::string key_string = CFStringToString(key);
+    LOG(LS_ERROR) << "VTSessionSetProperty failed to set: " << key_string
+                  << " to " << value << ": " << status;
+  }
+}
+
+// Convenience function for setting a VT property.
+void SetVTSessionProperty(VCPCompressionSessionRef session, CFStringRef key, bool value) {
+  CFBooleanRef cf_bool = (value) ? kCFBooleanTrue : kCFBooleanFalse;
+  OSStatus status = VCPCompressionSessionSetProperty(session, key, cf_bool);
+  if (status != noErr) {
+    std::string key_string = CFStringToString(key);
+    LOG(LS_ERROR) << "VTSessionSetProperty failed to set: " << key_string
+                  << " to " << value << ": " << status;
+  }
+}
+
+// Convenience function for setting a VT property.
+void SetVTSessionProperty(VCPCompressionSessionRef session,
+                          CFStringRef key,
+                          CFStringRef value) {
+  OSStatus status = VCPCompressionSessionSetProperty(session, key, value);
+  if (status != noErr) {
+    std::string key_string = CFStringToString(key);
+    std::string val_string = CFStringToString(value);
+    LOG(LS_ERROR) << "VTSessionSetProperty failed to set: " << key_string
+                  << " to " << val_string << ": " << status;
+  }
+}
+
+// Struct that we pass to the encoder per frame to encode. We receive it again
+// in the encoder callback.
+struct FrameEncodeParams {
+  FrameEncodeParams(webrtc::H264VideoToolboxEncoderVCP* e,
+                    const webrtc::CodecSpecificInfo* csi,
+                    int32_t w,
+                    int32_t h,
+                    int64_t rtms,
+                    uint32_t ts,
+                    webrtc::VideoRotation r)
+      : encoder(e),
+        width(w),
+        height(h),
+        render_time_ms(rtms),
+        timestamp(ts),
+        rotation(r) {
+    if (csi) {
+      codec_specific_info = *csi;
+    } else {
+      codec_specific_info.codecType = webrtc::kVideoCodecH264;
+    }
+  }
+
+  webrtc::H264VideoToolboxEncoderVCP* encoder;
+  webrtc::CodecSpecificInfo codec_specific_info;
+  int32_t width;
+  int32_t height;
+  int64_t render_time_ms;
+  uint32_t timestamp;
+  webrtc::VideoRotation rotation;
+};
+
+// We receive I420Frames as input, but we need to feed CVPixelBuffers into the
+// encoder. This performs the copy and format conversion.
+// TODO(tkchin): See if encoder will accept i420 frames and compare performance.
+bool CopyVideoFrameToPixelBuffer(const rtc::scoped_refptr<webrtc::I420BufferInterface>& frame,
+                                 CVPixelBufferRef pixel_buffer) {
+  RTC_DCHECK(pixel_buffer);
+  RTC_DCHECK_EQ(CVPixelBufferGetPixelFormatType(pixel_buffer),
+                kCVPixelFormatType_420YpCbCr8BiPlanarFullRange);
+  RTC_DCHECK_EQ(CVPixelBufferGetHeightOfPlane(pixel_buffer, 0),
+                static_cast<size_t>(frame->height()));
+  RTC_DCHECK_EQ(CVPixelBufferGetWidthOfPlane(pixel_buffer, 0),
+                static_cast<size_t>(frame->width()));
+
+  CVReturn cvRet = CVPixelBufferLockBaseAddress(pixel_buffer, 0);
+  if (cvRet != kCVReturnSuccess) {
+    LOG(LS_ERROR) << "Failed to lock base address: " << cvRet;
+    return false;
+  }
+  uint8_t* dst_y = reinterpret_cast<uint8_t*>(
+      CVPixelBufferGetBaseAddressOfPlane(pixel_buffer, 0));
+  int dst_stride_y = CVPixelBufferGetBytesPerRowOfPlane(pixel_buffer, 0);
+  uint8_t* dst_uv = reinterpret_cast<uint8_t*>(
+      CVPixelBufferGetBaseAddressOfPlane(pixel_buffer, 1));
+  int dst_stride_uv = CVPixelBufferGetBytesPerRowOfPlane(pixel_buffer, 1);
+  // Convert I420 to NV12.
+  int ret = libyuv::I420ToNV12(
+      frame->DataY(), frame->StrideY(),
+      frame->DataU(), frame->StrideU(),
+      frame->DataV(), frame->StrideV(),
+      dst_y, dst_stride_y, dst_uv, dst_stride_uv,
+      frame->width(), frame->height());
+  CVPixelBufferUnlockBaseAddress(pixel_buffer, 0);
+  if (ret) {
+    LOG(LS_ERROR) << "Error converting I420 VideoFrame to NV12 :" << ret;
+    return false;
+  }
+  return true;
+}
+
+CVPixelBufferRef CreatePixelBuffer(CVPixelBufferPoolRef pixel_buffer_pool) {
+  if (!pixel_buffer_pool) {
+    LOG(LS_ERROR) << "Failed to get pixel buffer pool.";
+    return nullptr;
+  }
+  CVPixelBufferRef pixel_buffer;
+  CVReturn ret = CVPixelBufferPoolCreatePixelBuffer(nullptr, pixel_buffer_pool,
+                                                    &pixel_buffer);
+  if (ret != kCVReturnSuccess) {
+    LOG(LS_ERROR) << "Failed to create pixel buffer: " << ret;
+    // We probably want to drop frames here, since failure probably means
+    // that the pool is empty.
+    return nullptr;
+  }
+  return pixel_buffer;
+}
+
+// This is the callback function that VideoToolbox calls when encode is
+// complete. From inspection this happens on its own queue.
+void VTCompressionOutputCallback(void* encoder,
+                                 void* params,
+                                 OSStatus status,
+                                 VTEncodeInfoFlags info_flags,
+                                 CMSampleBufferRef sample_buffer) {
+  std::unique_ptr<FrameEncodeParams> encode_params(
+      reinterpret_cast<FrameEncodeParams*>(params));
+  encode_params->encoder->OnEncodedFrame(
+      status, info_flags, sample_buffer, encode_params->codec_specific_info,
+      encode_params->width, encode_params->height,
+      encode_params->render_time_ms, encode_params->timestamp,
+      encode_params->rotation);
+}
+
+// Extract VideoToolbox profile out of the cricket::VideoCodec. If there is no
+// specific VideoToolbox profile for the specified level, AutoLevel will be
+// returned. The user must initialize the encoder with a resolution and
+// framerate conforming to the selected H264 level regardless.
+CFStringRef ExtractProfile(const cricket::VideoCodec& codec) {
+  const rtc::Optional<webrtc::H264::ProfileLevelId> profile_level_id =
+      webrtc::H264::ParseSdpProfileLevelId(codec.params);
+  RTC_DCHECK(profile_level_id);
+  switch (profile_level_id->profile) {
+    case webrtc::H264::kProfileConstrainedBaseline:
+    case webrtc::H264::kProfileBaseline:
+      switch (profile_level_id->level) {
+        case webrtc::H264::kLevel3:
+          return kVTProfileLevel_H264_Baseline_3_0;
+        case webrtc::H264::kLevel3_1:
+          return kVTProfileLevel_H264_Baseline_3_1;
+        case webrtc::H264::kLevel3_2:
+          return kVTProfileLevel_H264_Baseline_3_2;
+        case webrtc::H264::kLevel4:
+          return kVTProfileLevel_H264_Baseline_4_0;
+        case webrtc::H264::kLevel4_1:
+          return kVTProfileLevel_H264_Baseline_4_1;
+        case webrtc::H264::kLevel4_2:
+          return kVTProfileLevel_H264_Baseline_4_2;
+        case webrtc::H264::kLevel5:
+          return kVTProfileLevel_H264_Baseline_5_0;
+        case webrtc::H264::kLevel5_1:
+          return kVTProfileLevel_H264_Baseline_5_1;
+        case webrtc::H264::kLevel5_2:
+          return kVTProfileLevel_H264_Baseline_5_2;
+        case webrtc::H264::kLevel1:
+        case webrtc::H264::kLevel1_b:
+        case webrtc::H264::kLevel1_1:
+        case webrtc::H264::kLevel1_2:
+        case webrtc::H264::kLevel1_3:
+        case webrtc::H264::kLevel2:
+        case webrtc::H264::kLevel2_1:
+        case webrtc::H264::kLevel2_2:
+          return kVTProfileLevel_H264_Baseline_AutoLevel;
+      }
+
+    case webrtc::H264::kProfileMain:
+      switch (profile_level_id->level) {
+        case webrtc::H264::kLevel3:
+          return kVTProfileLevel_H264_Main_3_0;
+        case webrtc::H264::kLevel3_1:
+          return kVTProfileLevel_H264_Main_3_1;
+        case webrtc::H264::kLevel3_2:
+          return kVTProfileLevel_H264_Main_3_2;
+        case webrtc::H264::kLevel4:
+          return kVTProfileLevel_H264_Main_4_0;
+        case webrtc::H264::kLevel4_1:
+          return kVTProfileLevel_H264_Main_4_1;
+        case webrtc::H264::kLevel4_2:
+          return kVTProfileLevel_H264_Main_4_2;
+        case webrtc::H264::kLevel5:
+          return kVTProfileLevel_H264_Main_5_0;
+        case webrtc::H264::kLevel5_1:
+          return kVTProfileLevel_H264_Main_5_1;
+        case webrtc::H264::kLevel5_2:
+          return kVTProfileLevel_H264_Main_5_2;
+        case webrtc::H264::kLevel1:
+        case webrtc::H264::kLevel1_b:
+        case webrtc::H264::kLevel1_1:
+        case webrtc::H264::kLevel1_2:
+        case webrtc::H264::kLevel1_3:
+        case webrtc::H264::kLevel2:
+        case webrtc::H264::kLevel2_1:
+        case webrtc::H264::kLevel2_2:
+          return kVTProfileLevel_H264_Main_AutoLevel;
+      }
+
+    case webrtc::H264::kProfileConstrainedHigh:
+    case webrtc::H264::kProfileHigh:
+      switch (profile_level_id->level) {
+        case webrtc::H264::kLevel3:
+          return kVTProfileLevel_H264_High_3_0;
+        case webrtc::H264::kLevel3_1:
+          return kVTProfileLevel_H264_High_3_1;
+        case webrtc::H264::kLevel3_2:
+          return kVTProfileLevel_H264_High_3_2;
+        case webrtc::H264::kLevel4:
+          return kVTProfileLevel_H264_High_4_0;
+        case webrtc::H264::kLevel4_1:
+          return kVTProfileLevel_H264_High_4_1;
+        case webrtc::H264::kLevel4_2:
+          return kVTProfileLevel_H264_High_4_2;
+        case webrtc::H264::kLevel5:
+          return kVTProfileLevel_H264_High_5_0;
+        case webrtc::H264::kLevel5_1:
+          return kVTProfileLevel_H264_High_5_1;
+        case webrtc::H264::kLevel5_2:
+          return kVTProfileLevel_H264_High_5_2;
+        case webrtc::H264::kLevel1:
+        case webrtc::H264::kLevel1_b:
+        case webrtc::H264::kLevel1_1:
+        case webrtc::H264::kLevel1_2:
+        case webrtc::H264::kLevel1_3:
+        case webrtc::H264::kLevel2:
+        case webrtc::H264::kLevel2_1:
+        case webrtc::H264::kLevel2_2:
+          return kVTProfileLevel_H264_High_AutoLevel;
+      }
+  }
+}
+
+}  // namespace internal
+
+namespace webrtc {
+
+H264VideoToolboxEncoderVCP* createH264VideoToolboxEncoderVCP(const cricket::VideoCodec& codec)
+{
+    return new H264VideoToolboxEncoderVCP(codec);
+}
+
+void deleteH264VideoToolboxEncoderVCP(H264VideoToolboxEncoderVCP* codec)
+{
+    delete codec;
+}
+
+// .5 is set as a mininum to prevent overcompensating for large temporary
+// overshoots. We don't want to degrade video quality too badly.
+// .95 is set to prevent oscillations. When a lower bitrate is set on the
+// encoder than previously set, its output seems to have a brief period of
+// drastically reduced bitrate, so we want to avoid that. In steady state
+// conditions, 0.95 seems to give us better overall bitrate over long periods
+// of time.
+H264VideoToolboxEncoderVCP::H264VideoToolboxEncoderVCP(const cricket::VideoCodec& codec)
+    : callback_(nullptr),
+      compression_session_(nullptr),
+      bitrate_adjuster_(Clock::GetRealTimeClock(), .5, .95),
+      packetization_mode_(H264PacketizationMode::NonInterleaved),
+      profile_(internal::ExtractProfile(codec)) {
+  LOG(LS_INFO) << "Using profile " << internal::CFStringToString(profile_);
+  RTC_CHECK(cricket::CodecNamesEq(codec.name, cricket::kH264CodecName));
+}
+
+H264VideoToolboxEncoderVCP::~H264VideoToolboxEncoderVCP() {
+  DestroyCompressionSession();
+}
+
+int H264VideoToolboxEncoderVCP::InitEncode(const VideoCodec* codec_settings,
+                                        int number_of_cores,
+                                        size_t max_payload_size) {
+  RTC_DCHECK(codec_settings);
+  RTC_DCHECK_EQ(codec_settings->codecType, kVideoCodecH264);
+
+  width_ = codec_settings->width;
+  height_ = codec_settings->height;
+  mode_ = codec_settings->mode;
+  // We can only set average bitrate on the HW encoder.
+  target_bitrate_bps_ = codec_settings->startBitrate;
+  bitrate_adjuster_.SetTargetBitrateBps(target_bitrate_bps_);
+
+  // TODO(tkchin): Try setting payload size via
+  // kVTCompressionPropertyKey_MaxH264SliceBytes.
+
+  return ResetCompressionSession();
+}
+
+int H264VideoToolboxEncoderVCP::Encode(
+    const VideoFrame& frame,
+    const CodecSpecificInfo* codec_specific_info,
+    const std::vector<FrameType>* frame_types) {
+  // |input_frame| size should always match codec settings.
+  RTC_DCHECK_EQ(frame.width(), width_);
+  RTC_DCHECK_EQ(frame.height(), height_);
+  if (!callback_ || !compression_session_) {
+    return WEBRTC_VIDEO_CODEC_UNINITIALIZED;
+  }
+
+#if defined(WEBRTC_IOS)
+#if !defined(WEBRTC_WEBKIT_BUILD)
+    if (![[RTCUIApplicationStatusObserver sharedInstance] isApplicationActive]) {
+#else
+    if (!is_active_) {
+#endif
+    // Ignore all encode requests when app isn't active. In this state, the
+    // hardware encoder has been invalidated by the OS.
+    return WEBRTC_VIDEO_CODEC_OK;
+  }
+#endif
+  bool is_keyframe_required = false;
+
+  // Get a pixel buffer from the pool and copy frame data over.
+  CVPixelBufferPoolRef pixel_buffer_pool =
+      VCPCompressionSessionGetPixelBufferPool(compression_session_);
+#if defined(WEBRTC_IOS)
+  if (!pixel_buffer_pool) {
+    // Kind of a hack. On backgrounding, the compression session seems to get
+    // invalidated, which causes this pool call to fail when the application
+    // is foregrounded and frames are being sent for encoding again.
+    // Resetting the session when this happens fixes the issue.
+    // In addition we request a keyframe so video can recover quickly.
+    ResetCompressionSession();
+    pixel_buffer_pool =
+        VCPCompressionSessionGetPixelBufferPool(compression_session_);
+    is_keyframe_required = true;
+    LOG(LS_INFO) << "Resetting compression session due to invalid pool.";
+  }
+#endif
+
+  CVPixelBufferRef pixel_buffer;
+  if (frame.video_frame_buffer()->type() == VideoFrameBuffer::Type::kNative) {
+    rtc::scoped_refptr<CoreVideoFrameBuffer> core_video_frame_buffer(
+        static_cast<CoreVideoFrameBuffer*>(frame.video_frame_buffer().get()));
+    if (!core_video_frame_buffer->RequiresCropping()) {
+      pixel_buffer = core_video_frame_buffer->pixel_buffer();
+      // This pixel buffer might have a higher resolution than what the
+      // compression session is configured to. The compression session can
+      // handle that and will output encoded frames in the configured
+      // resolution regardless of the input pixel buffer resolution.
+      CVBufferRetain(pixel_buffer);
+    } else {
+      // Cropping required, we need to crop and scale to a new pixel buffer.
+      pixel_buffer = internal::CreatePixelBuffer(pixel_buffer_pool);
+      if (!pixel_buffer) {
+        return WEBRTC_VIDEO_CODEC_ERROR;
+      }
+      if (!core_video_frame_buffer->CropAndScaleTo(&nv12_scale_buffer_,
+                                                   pixel_buffer)) {
+        return WEBRTC_VIDEO_CODEC_ERROR;
+      }
+    }
+  } else {
+    pixel_buffer = internal::CreatePixelBuffer(pixel_buffer_pool);
+    if (!pixel_buffer) {
+      return WEBRTC_VIDEO_CODEC_ERROR;
+    }
+    RTC_DCHECK(pixel_buffer);
+    if (!internal::CopyVideoFrameToPixelBuffer(frame.video_frame_buffer()->ToI420(),
+                                               pixel_buffer)) {
+      LOG(LS_ERROR) << "Failed to copy frame data.";
+      CVBufferRelease(pixel_buffer);
+      return WEBRTC_VIDEO_CODEC_ERROR;
+    }
+  }
+
+  // Check if we need a keyframe.
+  if (!is_keyframe_required && frame_types) {
+    for (auto frame_type : *frame_types) {
+      if (frame_type == kVideoFrameKey) {
+        is_keyframe_required = true;
+        break;
+      }
+    }
+  }
+
+  CMTime presentation_time_stamp =
+      CMTimeMake(frame.render_time_ms(), 1000);
+  CFDictionaryRef frame_properties = nullptr;
+  if (is_keyframe_required) {
+    CFTypeRef keys[] = {kVTEncodeFrameOptionKey_ForceKeyFrame};
+    CFTypeRef values[] = {kCFBooleanTrue};
+    frame_properties = internal::CreateCFDictionary(keys, values, 1);
+  } else {
+    frame_properties = internal::CreateCFDictionary(0, 0, 0);
+  }
+  std::unique_ptr<internal::FrameEncodeParams> encode_params;
+  encode_params.reset(new internal::FrameEncodeParams(
+      this, codec_specific_info, width_, height_, frame.render_time_ms(),
+      frame.timestamp(), frame.rotation()));
+
+  encode_params->codec_specific_info.codecSpecific.H264.packetization_mode =
+      packetization_mode_;
+
+  // Update the bitrate if needed.
+  SetBitrateBps(bitrate_adjuster_.GetAdjustedBitrateBps());
+
+  OSStatus status = VCPCompressionSessionEncodeFrame(
+      compression_session_, pixel_buffer, presentation_time_stamp,
+      kCMTimeInvalid, frame_properties, encode_params.release(), nullptr);
+  if (frame_properties) {
+    CFRelease(frame_properties);
+  }
+  if (pixel_buffer) {
+    CVBufferRelease(pixel_buffer);
+  }
+  if (status != noErr) {
+    LOG(LS_ERROR) << "Failed to encode frame with code: " << status;
+    return WEBRTC_VIDEO_CODEC_ERROR;
+  }
+  return WEBRTC_VIDEO_CODEC_OK;
+}
+
+int H264VideoToolboxEncoderVCP::RegisterEncodeCompleteCallback(
+    EncodedImageCallback* callback) {
+  callback_ = callback;
+  return WEBRTC_VIDEO_CODEC_OK;
+}
+
+int H264VideoToolboxEncoderVCP::SetChannelParameters(uint32_t packet_loss,
+                                                  int64_t rtt) {
+  // Encoder doesn't know anything about packet loss or rtt so just return.
+  return WEBRTC_VIDEO_CODEC_OK;
+}
+
+int H264VideoToolboxEncoderVCP::SetRates(uint32_t new_bitrate_kbit,
+                                      uint32_t frame_rate) {
+  target_bitrate_bps_ = 1000 * new_bitrate_kbit;
+  bitrate_adjuster_.SetTargetBitrateBps(target_bitrate_bps_);
+  SetBitrateBps(bitrate_adjuster_.GetAdjustedBitrateBps());
+  return WEBRTC_VIDEO_CODEC_OK;
+}
+
+int H264VideoToolboxEncoderVCP::Release() {
+  // Need to reset so that the session is invalidated and won't use the
+  // callback anymore. Do not remove callback until the session is invalidated
+  // since async encoder callbacks can occur until invalidation.
+  int ret = ResetCompressionSession();
+  callback_ = nullptr;
+  return ret;
+}
+
+int H264VideoToolboxEncoderVCP::ResetCompressionSession() {
+  DestroyCompressionSession();
+
+  int status = CreateCompressionSession(compression_session_, internal::VTCompressionOutputCallback, width_, height_);
+  if (status != noErr) {
+    LOG(LS_ERROR) << "Failed to create compression session: " << status;
+    return WEBRTC_VIDEO_CODEC_ERROR;
+  }
+  ConfigureCompressionSession();
+  return WEBRTC_VIDEO_CODEC_OK;
+}
+
+int H264VideoToolboxEncoderVCP::CreateCompressionSession(VCPCompressionSessionRef& compressionSession, VTCompressionOutputCallback outputCallback, int32_t width, int32_t height, bool useHardwareEncoder) {
+
+  // Set source image buffer attributes. These attributes will be present on
+  // buffers retrieved from the encoder's pixel buffer pool.
+  const size_t attributes_size = 3;
+  CFTypeRef keys[attributes_size] = {
+#if defined(WEBRTC_IOS)
+    kCVPixelBufferOpenGLESCompatibilityKey,
+#elif defined(WEBRTC_MAC)
+    kCVPixelBufferOpenGLCompatibilityKey,
+#endif
+    kCVPixelBufferIOSurfacePropertiesKey,
+    kCVPixelBufferPixelFormatTypeKey
+  };
+  CFDictionaryRef io_surface_value =
+      internal::CreateCFDictionary(nullptr, nullptr, 0);
+  int64_t nv12type = kCVPixelFormatType_420YpCbCr8BiPlanarFullRange;
+  CFNumberRef pixel_format =
+      CFNumberCreate(nullptr, kCFNumberLongType, &nv12type);
+  CFTypeRef values[attributes_size] = {kCFBooleanTrue, io_surface_value,
+                                       pixel_format};
+  CFDictionaryRef source_attributes =
+      internal::CreateCFDictionary(keys, values, attributes_size);
+  if (io_surface_value) {
+    CFRelease(io_surface_value);
+    io_surface_value = nullptr;
+  }
+  if (pixel_format) {
+    CFRelease(pixel_format);
+    pixel_format = nullptr;
+  }
+
+#if defined(WEBRTC_USE_VTB_HARDWARE_ENCODER)
+  CFTypeRef sessionKeys[] = {kVTVideoEncoderSpecification_EnableHardwareAcceleratedVideoEncoder, kVTVideoEncoderSpecification_RequireHardwareAcceleratedVideoEncoder, kVTCompressionPropertyKey_RealTime };
+  CFTypeRef sessionValues[] = { useHardwareEncoder ? kCFBooleanTrue : kCFBooleanFalse, kCFBooleanTrue, kCFBooleanTrue };
+  CFDictionaryRef encoderSpecification = internal::CreateCFDictionary(sessionKeys, sessionValues, 3);
+#else
+  CFDictionaryRef encoderSpecification = nullptr;
+#endif
+
+  OSStatus status = VCPCompressionSessionCreate(
+      nullptr,  // use default allocator
+      width, height, kVCPCodecType4CC_H264,
+      encoderSpecification,  // use default encoder
+      source_attributes,
+      nullptr,  // use default compressed data allocator
+      outputCallback, this, &compression_session_);
+  if (source_attributes) {
+    CFRelease(source_attributes);
+    source_attributes = nullptr;
+  }
+
+#if defined(WEBRTC_USE_VTB_HARDWARE_ENCODER)
+  if (encoderSpecification) {
+    CFRelease(encoderSpecification);
+    encoderSpecification = nullptr;
+  }
+#endif
+  return status;
+}
+
+void H264VideoToolboxEncoderVCP::ConfigureCompressionSession() {
+  RTC_DCHECK(compression_session_);
+  internal::SetVTSessionProperty(compression_session_,
+                                 kVTCompressionPropertyKey_RealTime, true);
+  internal::SetVTSessionProperty(compression_session_,
+                                 kVTCompressionPropertyKey_ProfileLevel,
+                                 profile_);
+  internal::SetVTSessionProperty(compression_session_,
+                                 kVTCompressionPropertyKey_AllowFrameReordering,
+                                 false);
+  SetEncoderBitrateBps(target_bitrate_bps_);
+  // TODO(tkchin): Look at entropy mode and colorspace matrices.
+  // TODO(tkchin): Investigate to see if there's any way to make this work.
+  // May need it to interop with Android. Currently this call just fails.
+  // On inspecting encoder output on iOS8, this value is set to 6.
+  // internal::SetVTSessionProperty(compression_session_,
+  //     kVTCompressionPropertyKey_MaxFrameDelayCount,
+  //     1);
+
+  // Set a relatively large value for keyframe emission (7200 frames or
+  // 4 minutes).
+  internal::SetVTSessionProperty(
+      compression_session_,
+      kVTCompressionPropertyKey_MaxKeyFrameInterval, 7200);
+  internal::SetVTSessionProperty(
+      compression_session_,
+      kVTCompressionPropertyKey_MaxKeyFrameIntervalDuration, 240);
+}
+
+void H264VideoToolboxEncoderVCP::DestroyCompressionSession() {
+  if (compression_session_) {
+    VCPCompressionSessionInvalidate(compression_session_);
+    CFRelease(compression_session_);
+    compression_session_ = nullptr;
+  }
+}
+
+const char* H264VideoToolboxEncoderVCP::ImplementationName() const {
+  return "VideoToolbox";
+}
+
+bool H264VideoToolboxEncoderVCP::SupportsNativeHandle() const {
+  return true;
+}
+
+void H264VideoToolboxEncoderVCP::SetBitrateBps(uint32_t bitrate_bps) {
+  if (encoder_bitrate_bps_ != bitrate_bps) {
+    SetEncoderBitrateBps(bitrate_bps);
+  }
+}
+
+void H264VideoToolboxEncoderVCP::SetEncoderBitrateBps(uint32_t bitrate_bps) {
+  if (compression_session_) {
+    internal::SetVTSessionProperty(compression_session_,
+                                   kVTCompressionPropertyKey_AverageBitRate,
+                                   bitrate_bps);
+
+    // TODO(tkchin): Add a helper method to set array value.
+    int64_t data_limit_bytes_per_second_value = static_cast<int64_t>(
+        bitrate_bps * internal::kLimitToAverageBitRateFactor / 8);
+    CFNumberRef bytes_per_second =
+        CFNumberCreate(kCFAllocatorDefault,
+                       kCFNumberSInt64Type,
+                       &data_limit_bytes_per_second_value);
+    int64_t one_second_value = 1;
+    CFNumberRef one_second =
+        CFNumberCreate(kCFAllocatorDefault,
+                       kCFNumberSInt64Type,
+                       &one_second_value);
+    const void* nums[2] = { bytes_per_second, one_second };
+    CFArrayRef data_rate_limits =
+        CFArrayCreate(nullptr, nums, 2, &kCFTypeArrayCallBacks);
+    OSStatus status =
+        VTSessionSetProperty(compression_session_,
+                             kVTCompressionPropertyKey_DataRateLimits,
+                             data_rate_limits);
+    if (bytes_per_second) {
+      CFRelease(bytes_per_second);
+    }
+    if (one_second) {
+      CFRelease(one_second);
+    }
+    if (data_rate_limits) {
+      CFRelease(data_rate_limits);
+    }
+    if (status != noErr) {
+      LOG(LS_ERROR) << "Failed to set data rate limit";
+    }
+
+    encoder_bitrate_bps_ = bitrate_bps;
+  }
+}
+
+void H264VideoToolboxEncoderVCP::OnEncodedFrame(
+    OSStatus status,
+    VTEncodeInfoFlags info_flags,
+    CMSampleBufferRef sample_buffer,
+    CodecSpecificInfo codec_specific_info,
+    int32_t width,
+    int32_t height,
+    int64_t render_time_ms,
+    uint32_t timestamp,
+    VideoRotation rotation) {
+  if (status != noErr) {
+    LOG(LS_ERROR) << "H264 encode failed.";
+    return;
+  }
+  if (info_flags & kVTEncodeInfo_FrameDropped) {
+    LOG(LS_INFO) << "H264 encode dropped frame.";
+    return;
+  }
+
+  bool is_keyframe = false;
+  CFArrayRef attachments =
+      CMSampleBufferGetSampleAttachmentsArray(sample_buffer, 0);
+  if (attachments != nullptr && CFArrayGetCount(attachments)) {
+    CFDictionaryRef attachment =
+        static_cast<CFDictionaryRef>(CFArrayGetValueAtIndex(attachments, 0));
+    is_keyframe =
+        !CFDictionaryContainsKey(attachment, kCMSampleAttachmentKey_NotSync);
+  }
+
+  if (is_keyframe) {
+    LOG(LS_INFO) << "Generated keyframe";
+  }
+
+  // Convert the sample buffer into a buffer suitable for RTP packetization.
+  // TODO(tkchin): Allocate buffers through a pool.
+  std::unique_ptr<rtc::Buffer> buffer(new rtc::Buffer());
+  std::unique_ptr<webrtc::RTPFragmentationHeader> header;
+  {
+    webrtc::RTPFragmentationHeader* header_raw;
+    bool result = H264CMSampleBufferToAnnexBBuffer(sample_buffer, is_keyframe,
+                                                   buffer.get(), &header_raw);
+    header.reset(header_raw);
+    if (!result) {
+      return;
+    }
+  }
+  webrtc::EncodedImage frame(buffer->data(), buffer->size(), buffer->size());
+  frame._encodedWidth = width;
+  frame._encodedHeight = height;
+  frame._completeFrame = true;
+  frame._frameType =
+      is_keyframe ? webrtc::kVideoFrameKey : webrtc::kVideoFrameDelta;
+  frame.capture_time_ms_ = render_time_ms;
+  frame._timeStamp = timestamp;
+  frame.rotation_ = rotation;
+  frame.content_type_ =
+      (mode_ == kScreensharing) ? VideoContentType::SCREENSHARE : VideoContentType::UNSPECIFIED;
+  frame.timing_.is_timing_frame = false;
+
+  h264_bitstream_parser_.ParseBitstream(buffer->data(), buffer->size());
+  h264_bitstream_parser_.GetLastSliceQp(&frame.qp_);
+
+  EncodedImageCallback::Result res =
+      callback_->OnEncodedImage(frame, &codec_specific_info, header.get());
+  if (res.error != EncodedImageCallback::Result::OK) {
+    LOG(LS_ERROR) << "Encode callback failed: " << res.error;
+    return;
+  }
+  bitrate_adjuster_.Update(frame._length);
+}
+
+VideoEncoder::ScalingSettings H264VideoToolboxEncoderVCP::GetScalingSettings()
+    const {
+  return VideoEncoder::ScalingSettings(true, internal::kLowH264QpThreshold,
+                                       internal::kHighH264QpThreshold);
+}
+}  // namespace webrtc
+#else
+namespace webrtc {
+
+H264VideoToolboxEncoderVCP* createH264VideoToolboxEncoderVCP(const cricket::VideoCodec&)
+{
+    return nullptr;
+}
+
+void deleteH264VideoToolboxEncoderVCP(H264VideoToolboxEncoderVCP*)
+{
+}
+
+}
+#endif // ENABLE_VCP_ENCODER
</ins></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcSourcewebrtcsdkobjcFrameworkClassesVideoToolboxencodermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm (224427 => 224428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm       2017-11-03 21:04:49 UTC (rev 224427)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm  2017-11-03 21:13:35 UTC (rev 224428)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Copies characters from a CFStringRef into a std::string.
</span><del>-std::string CFStringToString(const CFStringRef cf_string) {
</del><ins>+static std::string CFStringToString(const CFStringRef cf_string) {
</ins><span class="cx">   RTC_DCHECK(cf_string);
</span><span class="cx">   std::string std_string;
</span><span class="cx">   // Get the size needed for UTF8 plus terminating character.
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Convenience function for setting a VT property.
</span><del>-void SetVTSessionProperty(VTSessionRef session,
</del><ins>+static void SetVTSessionProperty(VTSessionRef session,
</ins><span class="cx">                           CFStringRef key,
</span><span class="cx">                           int32_t value) {
</span><span class="cx">   CFNumberRef cfNum =
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Convenience function for setting a VT property.
</span><del>-void SetVTSessionProperty(VTSessionRef session,
</del><ins>+static void SetVTSessionProperty(VTSessionRef session,
</ins><span class="cx">                           CFStringRef key,
</span><span class="cx">                           uint32_t value) {
</span><span class="cx">   int64_t value_64 = value;
</span><span class="lines">@@ -97,7 +97,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Convenience function for setting a VT property.
</span><del>-void SetVTSessionProperty(VTSessionRef session, CFStringRef key, bool value) {
</del><ins>+static void SetVTSessionProperty(VTSessionRef session, CFStringRef key, bool value) {
</ins><span class="cx">   CFBooleanRef cf_bool = (value) ? kCFBooleanTrue : kCFBooleanFalse;
</span><span class="cx">   OSStatus status = VTSessionSetProperty(session, key, cf_bool);
</span><span class="cx">   if (status != noErr) {
</span><span class="lines">@@ -108,7 +108,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Convenience function for setting a VT property.
</span><del>-void SetVTSessionProperty(VTSessionRef session,
</del><ins>+static void SetVTSessionProperty(VTSessionRef session,
</ins><span class="cx">                           CFStringRef key,
</span><span class="cx">                           CFStringRef value) {
</span><span class="cx">   OSStatus status = VTSessionSetProperty(session, key, value);
</span><span class="lines">@@ -155,7 +155,7 @@
</span><span class="cx"> // We receive I420Frames as input, but we need to feed CVPixelBuffers into the
</span><span class="cx"> // encoder. This performs the copy and format conversion.
</span><span class="cx"> // TODO(tkchin): See if encoder will accept i420 frames and compare performance.
</span><del>-bool CopyVideoFrameToPixelBuffer(const rtc::scoped_refptr<webrtc::I420BufferInterface>& frame,
</del><ins>+static bool CopyVideoFrameToPixelBuffer(const rtc::scoped_refptr<webrtc::I420BufferInterface>& frame,
</ins><span class="cx">                                  CVPixelBufferRef pixel_buffer) {
</span><span class="cx">   RTC_DCHECK(pixel_buffer);
</span><span class="cx">   RTC_DCHECK_EQ(CVPixelBufferGetPixelFormatType(pixel_buffer),
</span><span class="lines">@@ -191,7 +191,7 @@
</span><span class="cx">   return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-CVPixelBufferRef CreatePixelBuffer(CVPixelBufferPoolRef pixel_buffer_pool) {
</del><ins>+static CVPixelBufferRef CreatePixelBuffer(CVPixelBufferPoolRef pixel_buffer_pool) {
</ins><span class="cx">   if (!pixel_buffer_pool) {
</span><span class="cx">     LOG(LS_ERROR) << "Failed to get pixel buffer pool.";
</span><span class="cx">     return nullptr;
</span><span class="lines">@@ -210,7 +210,7 @@
</span><span class="cx"> 
</span><span class="cx"> // This is the callback function that VideoToolbox calls when encode is
</span><span class="cx"> // complete. From inspection this happens on its own queue.
</span><del>-void VTCompressionOutputCallback(void* encoder,
</del><ins>+static void VTCompressionOutputCallback(void* encoder,
</ins><span class="cx">                                  void* params,
</span><span class="cx">                                  OSStatus status,
</span><span class="cx">                                  VTEncodeInfoFlags info_flags,
</span><span class="lines">@@ -228,7 +228,7 @@
</span><span class="cx"> // specific VideoToolbox profile for the specified level, AutoLevel will be
</span><span class="cx"> // returned. The user must initialize the encoder with a resolution and
</span><span class="cx"> // framerate conforming to the selected H264 level regardless.
</span><del>-CFStringRef ExtractProfile(const cricket::VideoCodec& codec) {
</del><ins>+static CFStringRef ExtractProfile(const cricket::VideoCodec& codec) {
</ins><span class="cx">   const rtc::Optional<webrtc::H264::ProfileLevelId> profile_level_id =
</span><span class="cx">       webrtc::H264::ParseSdpProfileLevelId(codec.params);
</span><span class="cx">   RTC_DCHECK(profile_level_id);
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcSourcewebrtcsdkobjcFrameworkClassesVideoToolboxvideocodecfactoryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.h (224427 => 224428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.h      2017-11-03 21:04:49 UTC (rev 224427)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.h 2017-11-03 21:13:35 UTC (rev 224428)
</span><span class="lines">@@ -27,9 +27,10 @@
</span><span class="cx">   void DestroyVideoEncoder(VideoEncoder* encoder) override;
</span><span class="cx">   const std::vector<cricket::VideoCodec>& supported_codecs() const override;
</span><span class="cx"> 
</span><del>- private:
</del><ins>+protected:
</ins><span class="cx">   virtual VideoEncoder* CreateSupportedVideoEncoder(const cricket::VideoCodec& codec);
</span><span class="cx"> 
</span><ins>+private:
</ins><span class="cx">   // TODO(magjed): Mutable because it depends on a field trial and it is
</span><span class="cx">   // recalculated every call to supported_codecs().
</span><span class="cx">   mutable std::vector<cricket::VideoCodec> supported_codecs_;
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcSourcewebrtcsdkobjcFrameworkClassesVideoToolboxvideocodecfactorymm"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.mm (224427 => 224428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.mm     2017-11-03 21:04:49 UTC (rev 224427)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/videocodecfactory.mm        2017-11-03 21:13:35 UTC (rev 224428)
</span><span class="lines">@@ -12,6 +12,7 @@
</span><span class="cx"> #include "webrtc/base/logging.h"
</span><span class="cx"> #include "webrtc/common_video/h264/profile_level_id.h"
</span><span class="cx"> #include "webrtc/media/base/codec.h"
</span><ins>+#include "webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h"
</ins><span class="cx"> #include "webrtc/sdk/objc/Framework/Classes/VideoToolbox/decoder.h"
</span><span class="cx"> #include "webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.h"
</span><span class="cx"> #include "webrtc/system_wrappers/include/field_trial.h"
</span><span class="lines">@@ -28,7 +29,12 @@
</span><span class="cx"> 
</span><span class="cx"> // VideoToolboxVideoEncoderFactory
</span><span class="cx"> 
</span><del>-VideoToolboxVideoEncoderFactory::VideoToolboxVideoEncoderFactory() {}
</del><ins>+VideoToolboxVideoEncoderFactory::VideoToolboxVideoEncoderFactory()
+{
+#if ENABLE_VCP_ENCODER
+    VPModuleInitialize();
+#endif
+}
</ins><span class="cx"> 
</span><span class="cx"> VideoToolboxVideoEncoderFactory::~VideoToolboxVideoEncoderFactory() {}
</span><span class="cx"> 
</span><span class="lines">@@ -43,7 +49,11 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> VideoEncoder* VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder(const cricket::VideoCodec& codec) {
</span><del>-  return new H264VideoToolboxEncoder(codec);
</del><ins>+#if ENABLE_VCP_ENCODER
+  return new H264VideoToolboxEncoderVCP(codec);
+#else
+    return new H264VideoToolboxEncoder(codec);
+#endif
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void VideoToolboxVideoEncoderFactory::DestroyVideoEncoder(VideoEncoder* encoder) {
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtclibwebrtcxcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj (224427 => 224428)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj    2017-11-03 21:04:49 UTC (rev 224427)
+++ trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj       2017-11-03 21:13:35 UTC (rev 224428)
</span><span class="lines">@@ -165,6 +165,8 @@
</span><span class="cx">          414D71141E4AE98C0023E526 /* user_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = 414D71121E4AE9820023E526 /* user_socket.c */; };
</span><span class="cx">          414D71171E4AEAFB0023E526 /* sctp_indata.c in Sources */ = {isa = PBXBuildFile; fileRef = 414D71151E4AEACD0023E526 /* sctp_indata.c */; };
</span><span class="cx">          414D71191E4AEB110023E526 /* sctp_userspace.c in Sources */ = {isa = PBXBuildFile; fileRef = 414D71181E4AEB110023E526 /* sctp_userspace.c */; };
</span><ins>+               416D2F151FA8CCAE00097345 /* encoder_vcp.h in Headers */ = {isa = PBXBuildFile; fileRef = 416D2F131FA8CCAD00097345 /* encoder_vcp.h */; settings = {ATTRIBUTES = (Private, ); }; };
+               416D2F161FA8CCAE00097345 /* encoder_vcp.mm in Sources */ = {isa = PBXBuildFile; fileRef = 416D2F141FA8CCAD00097345 /* encoder_vcp.mm */; };
</ins><span class="cx">           417DA4581EF9CD0D00E869DB /* RTCUIApplicationStatusObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 417DA4561EF9CD0A00E869DB /* RTCUIApplicationStatusObserver.h */; };
</span><span class="cx">          41A391731EFC447C00C4516A /* sha1-altivec.c in Sources */ = {isa = PBXBuildFile; fileRef = 41A3914F1EFC446E00C4516A /* sha1-altivec.c */; };
</span><span class="cx">          41A391741EFC447C00C4516A /* sha1.c in Sources */ = {isa = PBXBuildFile; fileRef = 41A391501EFC446E00C4516A /* sha1.c */; };
</span><span class="lines">@@ -2932,6 +2934,9 @@
</span><span class="cx">          414D71121E4AE9820023E526 /* user_socket.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = user_socket.c; sourceTree = "<group>"; };
</span><span class="cx">          414D71151E4AEACD0023E526 /* sctp_indata.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sctp_indata.c; path = netinet/sctp_indata.c; sourceTree = "<group>"; };
</span><span class="cx">          414D71181E4AEB110023E526 /* sctp_userspace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sctp_userspace.c; path = netinet/sctp_userspace.c; sourceTree = "<group>"; };
</span><ins>+               416D2F101FA8CC0400097345 /* VideoProcessing.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = VideoProcessing.framework; path = System/Library/PrivateFrameworks/VideoProcessing.framework; sourceTree = SDKROOT; };
+               416D2F131FA8CCAD00097345 /* encoder_vcp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = encoder_vcp.h; path = VideoProcessing/encoder_vcp.h; sourceTree = "<group>"; };
+               416D2F141FA8CCAD00097345 /* encoder_vcp.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = encoder_vcp.mm; path = VideoProcessing/encoder_vcp.mm; sourceTree = "<group>"; };
</ins><span class="cx">           417DA4561EF9CD0A00E869DB /* RTCUIApplicationStatusObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RTCUIApplicationStatusObserver.h; path = Source/webrtc/sdk/objc/Framework/Classes/Common/RTCUIApplicationStatusObserver.h; sourceTree = SOURCE_ROOT; };
</span><span class="cx">          41A391451EFC446E00C4516A /* sha1-586.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = "sha1-586.pl"; sourceTree = "<group>"; };
</span><span class="cx">          41A391461EFC446E00C4516A /* sha1-armv4-large.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = "sha1-armv4-large.pl"; sourceTree = "<group>"; };
</span><span class="lines">@@ -5426,11 +5431,10 @@
</span><span class="cx">                  isa = PBXFrameworksBuildPhase;
</span><span class="cx">                  buildActionMask = 2147483647;
</span><span class="cx">                  files = (
</span><del>-                               5C316D8B1E66333C008BE64D /* Foundation.framework in Frameworks */,
</del><span class="cx">                           5C316D891E66323F008BE64D /* CoreFoundation.framework in Frameworks */,
</span><del>-                               5C0073141E5514020042215A /* VideoToolbox.framework in Frameworks */,
</del><span class="cx">                           5C0073111E5513E70042215A /* CoreMedia.framework in Frameworks */,
</span><span class="cx">                          5C0073121E5513E70042215A /* CoreVideo.framework in Frameworks */,
</span><ins>+                               5C316D8B1E66333C008BE64D /* Foundation.framework in Frameworks */,
</ins><span class="cx">                           5C0073031E5513E70042215A /* libboringssl.a in Frameworks */,
</span><span class="cx">                          5C0073041E5513E70042215A /* libopus.a in Frameworks */,
</span><span class="cx">                          5C0073051E5513E70042215A /* libsrtp.a in Frameworks */,
</span><span class="lines">@@ -5437,6 +5441,7 @@
</span><span class="cx">                          5C0073061E5513E70042215A /* libusrsctp.a in Frameworks */,
</span><span class="cx">                          5C0073071E5513E70042215A /* libwebrtcpcrtc.a in Frameworks */,
</span><span class="cx">                          5C0073081E5513E70042215A /* libyuv.a in Frameworks */,
</span><ins>+                               5C0073141E5514020042215A /* VideoToolbox.framework in Frameworks */,
</ins><span class="cx">                   );
</span><span class="cx">                  runOnlyForDeploymentPostprocessing = 0;
</span><span class="cx">          };
</span><span class="lines">@@ -5446,11 +5451,11 @@
</span><span class="cx">          41109AA41E5FA18100C0955A /* include */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><ins>+                               41109AA91E5FA19200C0955A /* bitrate_adjuster.h */,
+                               41109AA81E5FA19200C0955A /* frame_callback.h */,
</ins><span class="cx">                           41109AA61E5FA19200C0955A /* i420_buffer_pool.h */,
</span><ins>+                               41109AAA1E5FA19200C0955A /* incoming_video_stream.h */,
</ins><span class="cx">                           41109AA71E5FA19200C0955A /* video_frame_buffer.h */,
</span><del>-                               41109AA81E5FA19200C0955A /* frame_callback.h */,
-                               41109AA91E5FA19200C0955A /* bitrate_adjuster.h */,
-                               41109AAA1E5FA19200C0955A /* incoming_video_stream.h */,
</del><span class="cx">                   );
</span><span class="cx">                  name = include;
</span><span class="cx">                  sourceTree = "<group>";
</span><span class="lines">@@ -5529,9 +5534,9 @@
</span><span class="cx">          41433C9E1F79B1E800387B4D /* source */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><ins>+                               41433CC91F79B33300387B4D /* arith_routines.c */,
</ins><span class="cx">                           41433CE81F79B33300387B4D /* arith_routines_hist.c */,
</span><span class="cx">                          41433CCE1F79B33300387B4D /* arith_routines_logist.c */,
</span><del>-                               41433CC91F79B33300387B4D /* arith_routines.c */,
</del><span class="cx">                           41433CC01F79B33300387B4D /* arith_routins.h */,
</span><span class="cx">                          41433CB81F79B33300387B4D /* audio_decoder_isacfix.cc */,
</span><span class="cx">                          41433CBA1F79B33300387B4D /* audio_encoder_isacfix.cc */,
</span><span class="lines">@@ -5538,49 +5543,49 @@
</span><span class="cx">                          41433CB61F79B33300387B4D /* bandwidth_estimator.c */,
</span><span class="cx">                          41433CE31F79B33300387B4D /* bandwidth_estimator.h */,
</span><span class="cx">                          41433CB21F79B33200387B4D /* codec.h */,
</span><ins>+                               41433CC41F79B33300387B4D /* decode.c */,
</ins><span class="cx">                           41433CAA1F79B33200387B4D /* decode_bwe.c */,
</span><span class="cx">                          41433CCD1F79B33300387B4D /* decode_plc.c */,
</span><del>-                               41433CC41F79B33300387B4D /* decode.c */,
</del><span class="cx">                           41433CD11F79B33300387B4D /* encode.c */,
</span><ins>+                               41433CD41F79B33300387B4D /* entropy_coding.c */,
+                               41433CD21F79B33300387B4D /* entropy_coding.h */,
</ins><span class="cx">                           41433CC21F79B33300387B4D /* entropy_coding_mips.c */,
</span><span class="cx">                          41433CD91F79B33300387B4D /* entropy_coding_neon.c */,
</span><del>-                               41433CD41F79B33300387B4D /* entropy_coding.c */,
-                               41433CD21F79B33300387B4D /* entropy_coding.h */,
</del><span class="cx">                           41433CA91F79B33200387B4D /* fft.c */,
</span><span class="cx">                          41433CE11F79B33300387B4D /* fft.h */,
</span><span class="cx">                          41433CAC1F79B33200387B4D /* filterbank_internal.h */,
</span><span class="cx">                          41433CE61F79B33300387B4D /* filterbank_tables.c */,
</span><span class="cx">                          41433CCC1F79B33300387B4D /* filterbank_tables.h */,
</span><ins>+                               41433CC51F79B33300387B4D /* filterbanks.c */,
</ins><span class="cx">                           41433CCA1F79B33300387B4D /* filterbanks_mips.c */,
</span><span class="cx">                          41433CDF1F79B33300387B4D /* filterbanks_neon.c */,
</span><span class="cx">                          41433CDC1F79B33300387B4D /* filterbanks_unittest.cc */,
</span><del>-                               41433CC51F79B33300387B4D /* filterbanks.c */,
</del><ins>+                                41433CC31F79B33300387B4D /* filters.c */,
</ins><span class="cx">                           41433CDB1F79B33300387B4D /* filters_mips.c */,
</span><span class="cx">                          41433CE01F79B33300387B4D /* filters_neon.c */,
</span><span class="cx">                          41433CBD1F79B33300387B4D /* filters_unittest.cc */,
</span><del>-                               41433CC31F79B33300387B4D /* filters.c */,
</del><span class="cx">                           41433CB71F79B33300387B4D /* initialize.c */,
</span><span class="cx">                          41433CBE1F79B33300387B4D /* isac_fix_type.h */,
</span><span class="cx">                          41433CE91F79B33300387B4D /* isacfix.c */,
</span><ins>+                               41433CB11F79B33200387B4D /* lattice.c */,
</ins><span class="cx">                           41433CB91F79B33300387B4D /* lattice_armv7.S */,
</span><span class="cx">                          41433CD31F79B33300387B4D /* lattice_c.c */,
</span><span class="cx">                          41433CE41F79B33300387B4D /* lattice_mips.c */,
</span><span class="cx">                          41433CAB1F79B33200387B4D /* lattice_neon.c */,
</span><del>-                               41433CB11F79B33200387B4D /* lattice.c */,
</del><ins>+                                41433CAD1F79B33200387B4D /* lpc_masking_model.c */,
+                               41433CD71F79B33300387B4D /* lpc_masking_model.h */,
</ins><span class="cx">                           41433CBC1F79B33300387B4D /* lpc_masking_model_mips.c */,
</span><span class="cx">                          41433CC61F79B33300387B4D /* lpc_masking_model_unittest.cc */,
</span><del>-                               41433CAD1F79B33200387B4D /* lpc_masking_model.c */,
-                               41433CD71F79B33300387B4D /* lpc_masking_model.h */,
</del><span class="cx">                           41433CDD1F79B33300387B4D /* lpc_tables.c */,
</span><span class="cx">                          41433CE71F79B33300387B4D /* lpc_tables.h */,
</span><ins>+                               41433CE51F79B33300387B4D /* pitch_estimator.c */,
+                               41433CB01F79B33200387B4D /* pitch_estimator.h */,
</ins><span class="cx">                           41433CB51F79B33300387B4D /* pitch_estimator_c.c */,
</span><span class="cx">                          41433CD61F79B33300387B4D /* pitch_estimator_mips.c */,
</span><del>-                               41433CE51F79B33300387B4D /* pitch_estimator.c */,
-                               41433CB01F79B33200387B4D /* pitch_estimator.h */,
</del><ins>+                                41433CD01F79B33300387B4D /* pitch_filter.c */,
</ins><span class="cx">                           41433CDA1F79B33300387B4D /* pitch_filter_armv6.S */,
</span><span class="cx">                          41433CB31F79B33200387B4D /* pitch_filter_c.c */,
</span><span class="cx">                          41433CDE1F79B33300387B4D /* pitch_filter_mips.c */,
</span><del>-                               41433CD01F79B33300387B4D /* pitch_filter.c */,
</del><span class="cx">                           41433CCF1F79B33300387B4D /* pitch_gain_tables.c */,
</span><span class="cx">                          41433CE21F79B33300387B4D /* pitch_gain_tables.h */,
</span><span class="cx">                          41433CD81F79B33300387B4D /* pitch_lag_tables.c */,
</span><span class="lines">@@ -5589,11 +5594,11 @@
</span><span class="cx">                          41433CC11F79B33300387B4D /* spectrum_ar_model_tables.c */,
</span><span class="cx">                          41433CAE1F79B33200387B4D /* spectrum_ar_model_tables.h */,
</span><span class="cx">                          41433CAF1F79B33200387B4D /* structs.h */,
</span><ins>+                               41433CBF1F79B33300387B4D /* transform.c */,
</ins><span class="cx">                           41433CBB1F79B33300387B4D /* transform_mips.c */,
</span><span class="cx">                          41433CB41F79B33300387B4D /* transform_neon.c */,
</span><span class="cx">                          41433CD51F79B33300387B4D /* transform_tables.c */,
</span><span class="cx">                          41433CCB1F79B33300387B4D /* transform_unittest.cc */,
</span><del>-                               41433CBF1F79B33300387B4D /* transform.c */,
</del><span class="cx">                   );
</span><span class="cx">                  name = source;
</span><span class="cx">                  sourceTree = "<group>";
</span><span class="lines">@@ -5635,8 +5640,8 @@
</span><span class="cx">          4145E4C01EF8962800FCF6E6 /* stats */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><ins>+                               4145E4C41EF896D700FCF6E6 /* rtcstats.h */,
</ins><span class="cx">                           4145E4C31EF896D200FCF6E6 /* rtcstats_objects.h */,
</span><del>-                               4145E4C41EF896D700FCF6E6 /* rtcstats.h */,
</del><span class="cx">                           4145E4C11EF896C800FCF6E6 /* rtcstatscollectorcallback.h */,
</span><span class="cx">                          4145E4C21EF896CE00FCF6E6 /* rtcstatsreport.h */,
</span><span class="cx">                  );
</span><span class="lines">@@ -5643,6 +5648,15 @@
</span><span class="cx">                  name = stats;
</span><span class="cx">                  sourceTree = "<group>";
</span><span class="cx">          };
</span><ins>+               416D2F121FA8CC8E00097345 /* VideoProcessing */ = {
+                       isa = PBXGroup;
+                       children = (
+                               416D2F131FA8CCAD00097345 /* encoder_vcp.h */,
+                               416D2F141FA8CCAD00097345 /* encoder_vcp.mm */,
+                       );
+                       name = VideoProcessing;
+                       sourceTree = "<group>";
+               };
</ins><span class="cx">           417DA4551EF9CCD800E869DB /* Common */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><span class="lines">@@ -5852,8 +5866,8 @@
</span><span class="cx">          41A391EA1EFC493000C4516A /* aes */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><ins>+                               41A391EE1EFC493000C4516A /* asm */,
</ins><span class="cx">                           41A391EB1EFC493000C4516A /* aes.c */,
</span><del>-                               41A391EE1EFC493000C4516A /* asm */,
</del><span class="cx">                           41A391FA1EFC493000C4516A /* internal.h */,
</span><span class="cx">                          41A391FB1EFC493000C4516A /* key_wrap.c */,
</span><span class="cx">                          41A391FC1EFC493000C4516A /* mode_wrappers.c */,
</span><span class="lines">@@ -5922,11 +5936,11 @@
</span><span class="cx">                          41EA53D31EFC2CDC002FF04C /* ecdsa */,
</span><span class="cx">                          41EA53A31EFC2BFD002FF04C /* hmac */,
</span><span class="cx">                          41EA54121EFC2D4F002FF04C /* md4 */,
</span><ins>+                               41EA54141EFC2D53002FF04C /* md5 */,
</ins><span class="cx">                           41A391531EFC447400C4516A /* modes */,
</span><span class="cx">                          41A391641EFC447900C4516A /* rand */,
</span><span class="cx">                          41A3916D1EFC447C00C4516A /* rsa */,
</span><span class="cx">                          41A391431EFC446E00C4516A /* sha */,
</span><del>-                               41EA54141EFC2D53002FF04C /* md5 */,
</del><span class="cx">                   );
</span><span class="cx">                  path = fipsmodule;
</span><span class="cx">                  sourceTree = "<group>";
</span><span class="lines">@@ -5994,8 +6008,8 @@
</span><span class="cx">          41EA53DA1EFC2D1A002FF04C /* bn */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><ins>+                               41EA53DC1EFC2D1A002FF04C /* asm */,
</ins><span class="cx">                           41EA53DB1EFC2D1A002FF04C /* add.c */,
</span><del>-                               41EA53DC1EFC2D1A002FF04C /* asm */,
</del><span class="cx">                           41EA53E61EFC2D1A002FF04C /* bn.c */,
</span><span class="cx">                          41EA53E91EFC2D1A002FF04C /* bytes.c */,
</span><span class="cx">                          41EA53EB1EFC2D1A002FF04C /* cmp.c */,
</span><span class="lines">@@ -6335,8 +6349,8 @@
</span><span class="cx">                          5C4B45BD1E42A87E002651C8 /* p_dsa_asn1.c */,
</span><span class="cx">                          5C4B45BF1E42A87E002651C8 /* p_ec.c */,
</span><span class="cx">                          5C4B45BE1E42A87E002651C8 /* p_ec_asn1.c */,
</span><ins>+                               41A392051EFC4A6300C4516A /* p_ed25519.c */,
</ins><span class="cx">                           41A392071EFC4A7100C4516A /* p_ed25519_asn1.c */,
</span><del>-                               41A392051EFC4A6300C4516A /* p_ed25519.c */,
</del><span class="cx">                           5C4B45C11E42A87E002651C8 /* p_rsa.c */,
</span><span class="cx">                          5C4B45C01E42A87E002651C8 /* p_rsa_asn1.c */,
</span><span class="cx">                          5C4B45C31E42A87E002651C8 /* pbkdf.c */,
</span><span class="lines">@@ -6443,7 +6457,6 @@
</span><span class="cx">                          5C4B44BC1E42A6F7002651C8 /* t_x509.c */,
</span><span class="cx">                          5C4B44BD1E42A6F7002651C8 /* t_x509a.c */,
</span><span class="cx">                          5C4B44BE1E42A6F7002651C8 /* vpm_int.h */,
</span><del>-                               41A391CB1EFC46DE00C4516A /* x_all.c */,
</del><span class="cx">                           5C4B44DE1E42A6F7002651C8 /* x509.c */,
</span><span class="cx">                          5C4B44CE1E42A6F7002651C8 /* x509_att.c */,
</span><span class="cx">                          5C4B44CF1E42A6F7002651C8 /* x509_cmp.c */,
</span><span class="lines">@@ -6465,6 +6478,7 @@
</span><span class="cx">                          5C4B44E11E42A6F7002651C8 /* x509rset.c */,
</span><span class="cx">                          5C4B44E21E42A6F7002651C8 /* x509spki.c */,
</span><span class="cx">                          5C4B44BF1E42A6F7002651C8 /* x_algor.c */,
</span><ins>+                               41A391CB1EFC46DE00C4516A /* x_all.c */,
</ins><span class="cx">                           5C4B44C01E42A6F7002651C8 /* x_all.c */,
</span><span class="cx">                          5C4B44C11E42A6F7002651C8 /* x_attrib.c */,
</span><span class="cx">                          5C4B44C21E42A6F7002651C8 /* x_crl.c */,
</span><span class="lines">@@ -6751,9 +6765,9 @@
</span><span class="cx">          5C4B48481E42C171002651C8 /* media */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD286381E6A680D0094FDC8 /* sctp */,
</del><span class="cx">                           5C4B48491E42C18C002651C8 /* base */,
</span><span class="cx">                          5C4B484B1E42C199002651C8 /* engine */,
</span><ins>+                               5CD286381E6A680D0094FDC8 /* sctp */,
</ins><span class="cx">                   );
</span><span class="cx">                  path = media;
</span><span class="cx">                  sourceTree = "<group>";
</span><span class="lines">@@ -6808,22 +6822,22 @@
</span><span class="cx">          5C4B484B1E42C199002651C8 /* engine */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD286221E6A666D0094FDC8 /* videodecodersoftwarefallbackwrapper.cc */,
-                               5CD286231E6A666D0094FDC8 /* videodecodersoftwarefallbackwrapper.h */,
</del><ins>+                                41F411C61EF972F100343C26 /* adm_helpers.cc */,
+                               41F411C51EF972EC00343C26 /* adm_helpers.h */,
+                               5CD284C01E6A5FFC0094FDC8 /* apm_helpers.cc */,
+                               5CD284C11E6A5FFC0094FDC8 /* apm_helpers.h */,
+                               5C4B48511E42C1BA002651C8 /* constants.h */,
</ins><span class="cx">                           5CD285231E6A61110094FDC8 /* internaldecoderfactory.cc */,
</span><span class="cx">                          5CD285241E6A61110094FDC8 /* internaldecoderfactory.h */,
</span><span class="cx">                          5CD285251E6A61110094FDC8 /* internalencoderfactory.cc */,
</span><span class="cx">                          5CD285261E6A61110094FDC8 /* internalencoderfactory.h */,
</span><span class="cx">                          5CD285271E6A61110094FDC8 /* nullwebrtcvideoengine.h */,
</span><del>-                               41F411C61EF972F100343C26 /* adm_helpers.cc */,
-                               41F411C51EF972EC00343C26 /* adm_helpers.h */,
-                               5CD284C01E6A5FFC0094FDC8 /* apm_helpers.cc */,
-                               5CD284C11E6A5FFC0094FDC8 /* apm_helpers.h */,
-                               5C4B48511E42C1BA002651C8 /* constants.h */,
</del><span class="cx">                           5C4B485C1E42C1BA002651C8 /* payload_type_mapper.cc */,
</span><span class="cx">                          5C4B485D1E42C1BA002651C8 /* payload_type_mapper.h */,
</span><span class="cx">                          5C4B485F1E42C1BA002651C8 /* simulcast.cc */,
</span><span class="cx">                          5C4B48601E42C1BA002651C8 /* simulcast.h */,
</span><ins>+                               5CD286221E6A666D0094FDC8 /* videodecodersoftwarefallbackwrapper.cc */,
+                               5CD286231E6A666D0094FDC8 /* videodecodersoftwarefallbackwrapper.h */,
</ins><span class="cx">                           5C4B48621E42C1BA002651C8 /* videoencodersoftwarefallbackwrapper.cc */,
</span><span class="cx">                          5C4B48631E42C1BA002651C8 /* videoencodersoftwarefallbackwrapper.h */,
</span><span class="cx">                          5C4B48641E42C1BA002651C8 /* webrtccommon.h */,
</span><span class="lines">@@ -6831,12 +6845,12 @@
</span><span class="cx">                          5C4B48671E42C1BA002651C8 /* webrtcmediaengine.h */,
</span><span class="cx">                          5C4B48691E42C1BA002651C8 /* webrtcvideocapturer.cc */,
</span><span class="cx">                          5C4B486A1E42C1BA002651C8 /* webrtcvideocapturer.h */,
</span><del>-                               4145E4CF1EF8CC1700FCF6E6 /* webrtcvideoengine.cc */,
-                               4145E4D01EF8CC1F00FCF6E6 /* webrtcvideoengine.h */,
</del><span class="cx">                           5C4B486B1E42C1BA002651C8 /* webrtcvideocapturerfactory.cc */,
</span><span class="cx">                          5C4B486C1E42C1BA002651C8 /* webrtcvideocapturerfactory.h */,
</span><span class="cx">                          5C4B486D1E42C1BA002651C8 /* webrtcvideodecoderfactory.h */,
</span><span class="cx">                          5C4B486F1E42C1BA002651C8 /* webrtcvideoencoderfactory.h */,
</span><ins>+                               4145E4CF1EF8CC1700FCF6E6 /* webrtcvideoengine.cc */,
+                               4145E4D01EF8CC1F00FCF6E6 /* webrtcvideoengine.h */,
</ins><span class="cx">                           5C4B48741E42C1BA002651C8 /* webrtcvoe.h */,
</span><span class="cx">                          5C4B48761E42C1BA002651C8 /* webrtcvoiceengine.cc */,
</span><span class="cx">                          5C4B48771E42C1BA002651C8 /* webrtcvoiceengine.h */,
</span><span class="lines">@@ -7015,8 +7029,9 @@
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><span class="cx">                          417DA4551EF9CCD800E869DB /* Common */,
</span><ins>+                               4145E4931EF890E500FCF6E6 /* Video */,
+                               416D2F121FA8CC8E00097345 /* VideoProcessing */,
</ins><span class="cx">                           4145E4971EF8918600FCF6E6 /* VideoToolbox */,
</span><del>-                               4145E4931EF890E500FCF6E6 /* Video */,
</del><span class="cx">                   );
</span><span class="cx">                  name = Classes;
</span><span class="cx">                  path = sdk/objc/Framework/Classes;
</span><span class="lines">@@ -7042,8 +7057,6 @@
</span><span class="cx">          5C4B4C221E431F81002651C8 /* common_audio */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD285F21E6A63F60094FDC8 /* smoothing_filter.cc */,
-                               5CD285F31E6A63F60094FDC8 /* smoothing_filter.h */,
</del><span class="cx">                           5CDD87431E43BAE900621E92 /* resampler */,
</span><span class="cx">                          5CDD86091E43B8A300621E92 /* signal_processing */,
</span><span class="cx">                          5CDD86C41E43BA1800621E92 /* vad */,
</span><span class="lines">@@ -7070,6 +7083,8 @@
</span><span class="cx">                          5C4B4C431E431F9C002651C8 /* real_fourier_ooura.h */,
</span><span class="cx">                          5C4B4C4A1E431F9C002651C8 /* ring_buffer.c */,
</span><span class="cx">                          5C4B4C4B1E431F9C002651C8 /* ring_buffer.h */,
</span><ins>+                               5CD285F21E6A63F60094FDC8 /* smoothing_filter.cc */,
+                               5CD285F31E6A63F60094FDC8 /* smoothing_filter.h */,
</ins><span class="cx">                           5C4B4C4D1E431F9C002651C8 /* sparse_fir_filter.cc */,
</span><span class="cx">                          5C4B4C4E1E431F9C002651C8 /* sparse_fir_filter.h */,
</span><span class="cx">                          5C4B4C501E431F9C002651C8 /* wav_file.cc */,
</span><span class="lines">@@ -7093,7 +7108,6 @@
</span><span class="cx">          5C4B4C8C1E43209B002651C8 /* source */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD286261E6A669D0094FDC8 /* rtp_to_ntp_estimator.cc */,
</del><span class="cx">                           5C4B4C8F1E4320A9002651C8 /* aligned_malloc.cc */,
</span><span class="cx">                          5C4B4C901E4320A9002651C8 /* atomic32_darwin.cc */,
</span><span class="cx">                          5C4B4C941E4320A9002651C8 /* clock.cc */,
</span><span class="lines">@@ -7105,6 +7119,7 @@
</span><span class="cx">                          5C4B4CA11E4320A9002651C8 /* field_trial_default.cc */,
</span><span class="cx">                          5C4B4CA21E4320A9002651C8 /* file_impl.cc */,
</span><span class="cx">                          5C4B4CA71E4320A9002651C8 /* metrics_default.cc */,
</span><ins>+                               5CD286261E6A669D0094FDC8 /* rtp_to_ntp_estimator.cc */,
</ins><span class="cx">                           5C4B4CB31E4320A9002651C8 /* rw_lock.cc */,
</span><span class="cx">                          5C4B4CAD1E4320A9002651C8 /* rw_lock_posix.cc */,
</span><span class="cx">                          5C4B4CAE1E4320A9002651C8 /* rw_lock_posix.h */,
</span><span class="lines">@@ -7195,11 +7210,6 @@
</span><span class="cx">          5C63F3041E4146D2002CA531 /* base */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD286421E6A7B420094FDC8 /* sha1.cc */,
-                               5CD286431E6A7B420094FDC8 /* sha1.h */,
-                               412455461EF8853300F11809 /* stringize_macros.h */,
-                               41F411C01EF8DBF600343C26 /* string_to_number.cc */,
-                               41F411C11EF8DBF600343C26 /* string_to_number.h */,
</del><span class="cx">                           5CD2854F1E6A62310094FDC8 /* numerics */,
</span><span class="cx">                          5C63F66D1E41619E002CA531 /* applefilesystem.mm */,
</span><span class="cx">                          5C63F66E1E41619E002CA531 /* array_view.h */,
</span><span class="lines">@@ -7372,6 +7382,8 @@
</span><span class="cx">                          5C63F7571E416288002CA531 /* sequenced_task_checker.h */,
</span><span class="cx">                          5C63F7541E416288002CA531 /* sequenced_task_checker_impl.cc */,
</span><span class="cx">                          5C63F7551E416288002CA531 /* sequenced_task_checker_impl.h */,
</span><ins>+                               5CD286421E6A7B420094FDC8 /* sha1.cc */,
+                               5CD286431E6A7B420094FDC8 /* sha1.h */,
</ins><span class="cx">                           5C63F7581E416288002CA531 /* sha1digest.cc */,
</span><span class="cx">                          5C63F7591E416288002CA531 /* sha1digest.h */,
</span><span class="cx">                          5C63F75C1E416288002CA531 /* signalthread.cc */,
</span><span class="lines">@@ -7402,8 +7414,11 @@
</span><span class="cx">                          5C63F77D1E416288002CA531 /* sslstreamadapter.h */,
</span><span class="cx">                          5C63F77E1E416288002CA531 /* stream.cc */,
</span><span class="cx">                          5C63F77F1E416288002CA531 /* stream.h */,
</span><ins>+                               41F411C01EF8DBF600343C26 /* string_to_number.cc */,
+                               41F411C11EF8DBF600343C26 /* string_to_number.h */,
</ins><span class="cx">                           5C63F7801E416288002CA531 /* stringencode.cc */,
</span><span class="cx">                          5C63F7811E416288002CA531 /* stringencode.h */,
</span><ins>+                               412455461EF8853300F11809 /* stringize_macros.h */,
</ins><span class="cx">                           5C63F7821E416288002CA531 /* stringutils.cc */,
</span><span class="cx">                          5C63F7831E416288002CA531 /* stringutils.h */,
</span><span class="cx">                          5C63F7841E416288002CA531 /* swap_queue.h */,
</span><span class="lines">@@ -7499,14 +7514,11 @@
</span><span class="cx">          5C63F8E21E41732B002CA531 /* api */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD2863F1E6A683A0094FDC8 /* mediastreaminterface.cc */,
-                               5CD286301E6A67BF0094FDC8 /* mediatypes.cc */,
-                               5CD286311E6A67BF0094FDC8 /* mediatypes.h */,
</del><span class="cx">                           5CD2853B1E6A61BE0094FDC8 /* audio_codecs */,
</span><ins>+                               5CDD8C451E43C57900621E92 /* call */,
</ins><span class="cx">                           4145E4C01EF8962800FCF6E6 /* stats */,
</span><ins>+                               5CD284601E6A57DD0094FDC8 /* video */,
</ins><span class="cx">                           412455581EF88AD900F11809 /* video_codecs */,
</span><del>-                               5CD284601E6A57DD0094FDC8 /* video */,
-                               5CDD8C451E43C57900621E92 /* call */,
</del><span class="cx">                           5C63F8E61E41737B002CA531 /* datachannel.h */,
</span><span class="cx">                          5C63F8E71E41737B002CA531 /* datachannelinterface.h */,
</span><span class="cx">                          5C63F8EB1E41737B002CA531 /* dtmfsenderinterface.h */,
</span><span class="lines">@@ -7518,10 +7530,13 @@
</span><span class="cx">                          5C63F8F61E41737B002CA531 /* mediaconstraintsinterface.cc */,
</span><span class="cx">                          5C63F8F71E41737B002CA531 /* mediaconstraintsinterface.h */,
</span><span class="cx">                          5C63F8FB1E41737B002CA531 /* mediastream.h */,
</span><ins>+                               5CD2863F1E6A683A0094FDC8 /* mediastreaminterface.cc */,
</ins><span class="cx">                           5C63F8FC1E41737B002CA531 /* mediastreaminterface.h */,
</span><span class="cx">                          5C63F8FF1E41737B002CA531 /* mediastreamproxy.h */,
</span><span class="cx">                          5C63F9001E41737B002CA531 /* mediastreamtrack.h */,
</span><span class="cx">                          5C63F9011E41737B002CA531 /* mediastreamtrackproxy.h */,
</span><ins>+                               5CD286301E6A67BF0094FDC8 /* mediatypes.cc */,
+                               5CD286311E6A67BF0094FDC8 /* mediatypes.h */,
</ins><span class="cx">                           5C63F9021E41737B002CA531 /* notifier.h */,
</span><span class="cx">                          5C63F9081E41737B002CA531 /* peerconnectionfactoryproxy.h */,
</span><span class="cx">                          5C63F9091E41737B002CA531 /* peerconnectioninterface.h */,
</span><span class="lines">@@ -7556,8 +7571,6 @@
</span><span class="cx">          5C63F9881E4174DD002CA531 /* base */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD2846D1E6A5C250094FDC8 /* jseptransport.cc */,
-                               5CD2846E1E6A5C250094FDC8 /* jseptransport.h */,
</del><span class="cx">                           5C63F98A1E4174F6002CA531 /* asyncstuntcpsocket.cc */,
</span><span class="cx">                          5C63F98B1E4174F6002CA531 /* asyncstuntcpsocket.h */,
</span><span class="cx">                          5C63F98C1E4174F6002CA531 /* basicpacketsocketfactory.cc */,
</span><span class="lines">@@ -7569,12 +7582,14 @@
</span><span class="cx">                          5C63F9941E4174F6002CA531 /* dtlstransportchannel.h */,
</span><span class="cx">                          5C63F9951E4174F6002CA531 /* fakeportallocator.h */,
</span><span class="cx">                          5C63F9961E4174F6002CA531 /* faketransportcontroller.h */,
</span><del>-                               412455541EF887FA00F11809 /* packetlossestimator.cc */,
-                               412455551EF887FA00F11809 /* packetlossestimator.h */,
</del><ins>+                                5CD2846D1E6A5C250094FDC8 /* jseptransport.cc */,
+                               5CD2846E1E6A5C250094FDC8 /* jseptransport.h */,
</ins><span class="cx">                           5C63F9971E4174F6002CA531 /* p2pconstants.cc */,
</span><span class="cx">                          5C63F9981E4174F6002CA531 /* p2pconstants.h */,
</span><span class="cx">                          5C63F99C1E4174F6002CA531 /* p2ptransportchannel.cc */,
</span><span class="cx">                          5C63F99D1E4174F6002CA531 /* p2ptransportchannel.h */,
</span><ins>+                               412455541EF887FA00F11809 /* packetlossestimator.cc */,
+                               412455551EF887FA00F11809 /* packetlossestimator.h */,
</ins><span class="cx">                           5C63F99E1E4174F6002CA531 /* packetsocketfactory.h */,
</span><span class="cx">                          5C63F99F1E4174F6002CA531 /* packettransportinterface.h */,
</span><span class="cx">                          5C63F9A11E4174F6002CA531 /* port.cc */,
</span><span class="lines">@@ -7626,17 +7641,35 @@
</span><span class="cx">          5C63FA351E417608002CA531 /* pc */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><ins>+                               5C63FA361E41761F002CA531 /* audiomonitor.cc */,
+                               5C63FA371E41761F002CA531 /* audiomonitor.h */,
</ins><span class="cx">                           5CD284C41E6A60570094FDC8 /* audiotrack.cc */,
</span><span class="cx">                          5CD284C51E6A60570094FDC8 /* audiotrack.h */,
</span><ins>+                               5C63FA3A1E41761F002CA531 /* bundlefilter.cc */,
+                               5C63FA3B1E41761F002CA531 /* bundlefilter.h */,
+                               5C63FA3D1E41761F002CA531 /* channel.cc */,
+                               5C63FA3E1E41761F002CA531 /* channel.h */,
+                               5C63FA401E41761F002CA531 /* channelmanager.cc */,
+                               5C63FA411E41761F002CA531 /* channelmanager.h */,
</ins><span class="cx">                           4145E4C91EF8CB3100FCF6E6 /* createpeerconnectionfactory.cc */,
</span><ins>+                               5C63FA431E41761F002CA531 /* currentspeakermonitor.cc */,
+                               5C63FA441E41761F002CA531 /* currentspeakermonitor.h */,
</ins><span class="cx">                           5CD284C61E6A60570094FDC8 /* datachannel.cc */,
</span><span class="cx">                          5CD284C71E6A60570094FDC8 /* datachannel.h */,
</span><span class="cx">                          5CD284C81E6A60570094FDC8 /* dtmfsender.cc */,
</span><span class="cx">                          5CD284C91E6A60570094FDC8 /* dtmfsender.h */,
</span><ins>+                               5C63FA461E41761F002CA531 /* externalhmac.cc */,
+                               5C63FA471E41761F002CA531 /* externalhmac.h */,
</ins><span class="cx">                           413091F61EF8CFBD00757C55 /* iceserverparsing.cc */,
</span><span class="cx">                          413091F51EF8CFBD00757C55 /* iceserverparsing.h */,
</span><ins>+                               5CD284731E6A5D280094FDC8 /* jsepicecandidate.cc */,
+                               5CD284711E6A5D080094FDC8 /* jsepsessiondescription.cc */,
</ins><span class="cx">                           5CD284CA1E6A60570094FDC8 /* localaudiosource.cc */,
</span><span class="cx">                          5CD284CB1E6A60570094FDC8 /* localaudiosource.h */,
</span><ins>+                               5C63FA481E41761F002CA531 /* mediamonitor.cc */,
+                               5C63FA491E41761F002CA531 /* mediamonitor.h */,
+                               5C63FA4B1E41761F002CA531 /* mediasession.cc */,
+                               5C63FA4C1E41761F002CA531 /* mediasession.h */,
</ins><span class="cx">                           5CD284CE1E6A60570094FDC8 /* mediastream.cc */,
</span><span class="cx">                          5CD284CF1E6A60570094FDC8 /* mediastream.h */,
</span><span class="cx">                          5CD284D01E6A60570094FDC8 /* mediastreamobserver.cc */,
</span><span class="lines">@@ -7644,8 +7677,12 @@
</span><span class="cx">                          5CD284D21E6A60570094FDC8 /* mediastreamtrack.h */,
</span><span class="cx">                          5CD284D31E6A60570094FDC8 /* peerconnection.cc */,
</span><span class="cx">                          5CD284D41E6A60570094FDC8 /* peerconnection.h */,
</span><ins>+                               5CD2847D1E6A5E740094FDC8 /* peerconnectionfactory.cc */,
+                               5CD2847E1E6A5E740094FDC8 /* peerconnectionfactory.h */,
</ins><span class="cx">                           5CD284D91E6A60570094FDC8 /* remoteaudiosource.cc */,
</span><span class="cx">                          5CD284DA1E6A60570094FDC8 /* remoteaudiosource.h */,
</span><ins>+                               5C63FA501E41761F002CA531 /* rtcpmuxfilter.cc */,
+                               5C63FA511E41761F002CA531 /* rtcpmuxfilter.h */,
</ins><span class="cx">                           5CD284DB1E6A60570094FDC8 /* rtcstatscollector.cc */,
</span><span class="cx">                          5CD284DC1E6A60570094FDC8 /* rtcstatscollector.h */,
</span><span class="cx">                          5CD284DD1E6A60570094FDC8 /* rtpreceiver.cc */,
</span><span class="lines">@@ -7656,6 +7693,8 @@
</span><span class="cx">                          4145E4CD1EF8CB9400FCF6E6 /* rtptransport.h */,
</span><span class="cx">                          5CD284E11E6A60570094FDC8 /* sctputils.cc */,
</span><span class="cx">                          5CD284E21E6A60570094FDC8 /* sctputils.h */,
</span><ins>+                               5C63FA531E41761F002CA531 /* srtpfilter.cc */,
+                               5C63FA541E41761F002CA531 /* srtpfilter.h */,
</ins><span class="cx">                           5CD284E31E6A60570094FDC8 /* statscollector.cc */,
</span><span class="cx">                          5CD284E41E6A60570094FDC8 /* statscollector.h */,
</span><span class="cx">                          5CD284E51E6A60570094FDC8 /* streamcollection.h */,
</span><span class="lines">@@ -7667,37 +7706,13 @@
</span><span class="cx">                          5CD284EB1E6A60570094FDC8 /* videotrack.h */,
</span><span class="cx">                          5CD284EC1E6A60570094FDC8 /* videotracksource.cc */,
</span><span class="cx">                          5CD284ED1E6A60570094FDC8 /* videotracksource.h */,
</span><del>-                               5CD284EE1E6A60570094FDC8 /* webrtcsessiondescriptionfactory.cc */,
-                               5CD284EF1E6A60570094FDC8 /* webrtcsessiondescriptionfactory.h */,
-                               5CD2847D1E6A5E740094FDC8 /* peerconnectionfactory.cc */,
-                               5CD2847E1E6A5E740094FDC8 /* peerconnectionfactory.h */,
</del><ins>+                                5C63FA561E41761F002CA531 /* voicechannel.h */,
</ins><span class="cx">                           5CD284751E6A5D550094FDC8 /* webrtcsdp.cc */,
</span><span class="cx">                          5CD284761E6A5D550094FDC8 /* webrtcsdp.h */,
</span><span class="cx">                          5CD284771E6A5D550094FDC8 /* webrtcsession.cc */,
</span><span class="cx">                          5CD284781E6A5D550094FDC8 /* webrtcsession.h */,
</span><del>-                               5CD284731E6A5D280094FDC8 /* jsepicecandidate.cc */,
-                               5CD284711E6A5D080094FDC8 /* jsepsessiondescription.cc */,
-                               5C63FA361E41761F002CA531 /* audiomonitor.cc */,
-                               5C63FA371E41761F002CA531 /* audiomonitor.h */,
-                               5C63FA3A1E41761F002CA531 /* bundlefilter.cc */,
-                               5C63FA3B1E41761F002CA531 /* bundlefilter.h */,
-                               5C63FA3D1E41761F002CA531 /* channel.cc */,
-                               5C63FA3E1E41761F002CA531 /* channel.h */,
-                               5C63FA401E41761F002CA531 /* channelmanager.cc */,
-                               5C63FA411E41761F002CA531 /* channelmanager.h */,
-                               5C63FA431E41761F002CA531 /* currentspeakermonitor.cc */,
-                               5C63FA441E41761F002CA531 /* currentspeakermonitor.h */,
-                               5C63FA461E41761F002CA531 /* externalhmac.cc */,
-                               5C63FA471E41761F002CA531 /* externalhmac.h */,
-                               5C63FA481E41761F002CA531 /* mediamonitor.cc */,
-                               5C63FA491E41761F002CA531 /* mediamonitor.h */,
-                               5C63FA4B1E41761F002CA531 /* mediasession.cc */,
-                               5C63FA4C1E41761F002CA531 /* mediasession.h */,
-                               5C63FA501E41761F002CA531 /* rtcpmuxfilter.cc */,
-                               5C63FA511E41761F002CA531 /* rtcpmuxfilter.h */,
-                               5C63FA531E41761F002CA531 /* srtpfilter.cc */,
-                               5C63FA541E41761F002CA531 /* srtpfilter.h */,
-                               5C63FA561E41761F002CA531 /* voicechannel.h */,
</del><ins>+                                5CD284EE1E6A60570094FDC8 /* webrtcsessiondescriptionfactory.cc */,
+                               5CD284EF1E6A60570094FDC8 /* webrtcsessiondescriptionfactory.h */,
</ins><span class="cx">                   );
</span><span class="cx">                  path = pc;
</span><span class="cx">                  sourceTree = "<group>";
</span><span class="lines">@@ -7762,8 +7777,8 @@
</span><span class="cx">                          5C4B44581E42A64B002651C8 /* pem */,
</span><span class="cx">                          5C4B445A1E42A65A002651C8 /* pkcs8 */,
</span><span class="cx">                          5C4B445B1E42A664002651C8 /* poly1305 */,
</span><ins>+                               41A391C11EFC465600C4516A /* pool */,
</ins><span class="cx">                           41A392091EFC4AFE00C4516A /* rand_extra */,
</span><del>-                               41A391C11EFC465600C4516A /* pool */,
</del><span class="cx">                           5C4B445E1E42A676002651C8 /* rc4 */,
</span><span class="cx">                          41A391CF1EFC484C00C4516A /* rsa_extra */,
</span><span class="cx">                          5C4B44611E42A690002651C8 /* stack */,
</span><span class="lines">@@ -7787,18 +7802,19 @@
</span><span class="cx">          5CB3048A1DE4143400D2C405 /* Frameworks */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5C316D8A1E66333C008BE64D /* Foundation.framework */,
-                               5C316D881E66323F008BE64D /* CoreFoundation.framework */,
-                               5C85C4CA1E5780DD00D097B1 /* CFNetwork.framework */,
-                               5C0073451E552CA20042215A /* SystemConfiguration.framework */,
-                               5C0073411E552C800042215A /* CoreGraphics.framework */,
-                               5C0073421E552C800042215A /* Security.framework */,
-                               5C0073131E5514020042215A /* VideoToolbox.framework */,
</del><span class="cx">                           5C0073091E5513E70042215A /* AudioToolbox.framework */,
</span><span class="cx">                          5C00730A1E5513E70042215A /* AVFoundation.framework */,
</span><ins>+                               5C85C4CA1E5780DD00D097B1 /* CFNetwork.framework */,
</ins><span class="cx">                           5C00730B1E5513E70042215A /* CoreAudio.framework */,
</span><ins>+                               5C316D881E66323F008BE64D /* CoreFoundation.framework */,
+                               5C0073411E552C800042215A /* CoreGraphics.framework */,
</ins><span class="cx">                           5C00730C1E5513E70042215A /* CoreMedia.framework */,
</span><span class="cx">                          5C00730D1E5513E70042215A /* CoreVideo.framework */,
</span><ins>+                               5C316D8A1E66333C008BE64D /* Foundation.framework */,
+                               5C0073421E552C800042215A /* Security.framework */,
+                               5C0073451E552CA20042215A /* SystemConfiguration.framework */,
+                               416D2F101FA8CC0400097345 /* VideoProcessing.framework */,
+                               5C0073131E5514020042215A /* VideoToolbox.framework */,
</ins><span class="cx">                   );
</span><span class="cx">                  name = Frameworks;
</span><span class="cx">                  sourceTree = "<group>";
</span><span class="lines">@@ -7808,10 +7824,10 @@
</span><span class="cx">                  children = (
</span><span class="cx">                          5CD284611E6A57F40094FDC8 /* i420_buffer.cc */,
</span><span class="cx">                          5CD284621E6A57F40094FDC8 /* i420_buffer.h */,
</span><ins>+                               5CD284641E6A57F40094FDC8 /* video_frame.cc */,
+                               5CD284651E6A57F40094FDC8 /* video_frame.h */,
</ins><span class="cx">                           4124554A1EF8874300F11809 /* video_frame_buffer.cc */,
</span><span class="cx">                          5CD284631E6A57F40094FDC8 /* video_frame_buffer.h */,
</span><del>-                               5CD284641E6A57F40094FDC8 /* video_frame.cc */,
-                               5CD284651E6A57F40094FDC8 /* video_frame.h */,
</del><span class="cx">                           5CD284661E6A57F40094FDC8 /* video_rotation.h */,
</span><span class="cx">                  );
</span><span class="cx">                  path = video;
</span><span class="lines">@@ -7836,9 +7852,9 @@
</span><span class="cx">          5CD2853B1E6A61BE0094FDC8 /* audio_codecs */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD2853C1E6A61D20094FDC8 /* audio_decoder_factory.h */,
</del><span class="cx">                           5CD2853D1E6A61D20094FDC8 /* audio_decoder.cc */,
</span><span class="cx">                          5CD2853E1E6A61D20094FDC8 /* audio_decoder.h */,
</span><ins>+                               5CD2853C1E6A61D20094FDC8 /* audio_decoder_factory.h */,
</ins><span class="cx">                           4145E4DD1EF8CD3400FCF6E6 /* audio_encoder.cc */,
</span><span class="cx">                          4145E4DE1EF8CD3900FCF6E6 /* audio_encoder.h */,
</span><span class="cx">                          5CD2853F1E6A61D20094FDC8 /* audio_format.cc */,
</span><span class="lines">@@ -7875,18 +7891,18 @@
</span><span class="cx">                  children = (
</span><span class="cx">                          5CD285601E6A63430094FDC8 /* adaptive_fir_filter.cc */,
</span><span class="cx">                          5CD285611E6A63430094FDC8 /* adaptive_fir_filter.h */,
</span><del>-                               5CD285621E6A63430094FDC8 /* aec_state.cc */,
-                               5CD285631E6A63430094FDC8 /* aec_state.h */,
</del><span class="cx">                           5CD285641E6A63430094FDC8 /* aec3_common.cc */,
</span><span class="cx">                          5CD285651E6A63430094FDC8 /* aec3_common.h */,
</span><span class="cx">                          5CD285661E6A63430094FDC8 /* aec3_fft.cc */,
</span><span class="cx">                          5CD285671E6A63430094FDC8 /* aec3_fft.h */,
</span><ins>+                               5CD285621E6A63430094FDC8 /* aec_state.cc */,
+                               5CD285631E6A63430094FDC8 /* aec_state.h */,
</ins><span class="cx">                           5CD285681E6A63430094FDC8 /* block_framer.cc */,
</span><span class="cx">                          5CD285691E6A63430094FDC8 /* block_framer.h */,
</span><ins>+                               5CD2856C1E6A63430094FDC8 /* block_processor.cc */,
+                               5CD2856D1E6A63430094FDC8 /* block_processor.h */,
</ins><span class="cx">                           5CD2856A1E6A63430094FDC8 /* block_processor_metrics.cc */,
</span><span class="cx">                          5CD2856B1E6A63430094FDC8 /* block_processor_metrics.h */,
</span><del>-                               5CD2856C1E6A63430094FDC8 /* block_processor.cc */,
-                               5CD2856D1E6A63430094FDC8 /* block_processor.h */,
</del><span class="cx">                           5CD2856E1E6A63430094FDC8 /* cascaded_biquad_filter.cc */,
</span><span class="cx">                          5CD2856F1E6A63430094FDC8 /* cascaded_biquad_filter.h */,
</span><span class="cx">                          5CD285701E6A63430094FDC8 /* comfort_noise_generator.cc */,
</span><span class="lines">@@ -7901,10 +7917,10 @@
</span><span class="cx">                          5CD285771E6A63430094FDC8 /* echo_path_delay_estimator.h */,
</span><span class="cx">                          5CD285781E6A63430094FDC8 /* echo_path_variability.cc */,
</span><span class="cx">                          5CD285791E6A63430094FDC8 /* echo_path_variability.h */,
</span><ins>+                               5CD2857C1E6A63430094FDC8 /* echo_remover.cc */,
+                               5CD2857D1E6A63430094FDC8 /* echo_remover.h */,
</ins><span class="cx">                           5CD2857A1E6A63430094FDC8 /* echo_remover_metrics.cc */,
</span><span class="cx">                          5CD2857B1E6A63430094FDC8 /* echo_remover_metrics.h */,
</span><del>-                               5CD2857C1E6A63430094FDC8 /* echo_remover.cc */,
-                               5CD2857D1E6A63430094FDC8 /* echo_remover.h */,
</del><span class="cx">                           5CD2857E1E6A63430094FDC8 /* erl_estimator.cc */,
</span><span class="cx">                          5CD2857F1E6A63430094FDC8 /* erl_estimator.h */,
</span><span class="cx">                          5CD285801E6A63430094FDC8 /* erle_estimator.cc */,
</span><span class="lines">@@ -7914,10 +7930,10 @@
</span><span class="cx">                          5CD285861E6A63430094FDC8 /* frame_blocker.h */,
</span><span class="cx">                          5CD285871E6A63430094FDC8 /* main_filter_update_gain.cc */,
</span><span class="cx">                          5CD285881E6A63430094FDC8 /* main_filter_update_gain.h */,
</span><ins>+                               5CD2858B1E6A63430094FDC8 /* matched_filter.cc */,
+                               5CD2858C1E6A63430094FDC8 /* matched_filter.h */,
</ins><span class="cx">                           5CD285891E6A63430094FDC8 /* matched_filter_lag_aggregator.cc */,
</span><span class="cx">                          5CD2858A1E6A63430094FDC8 /* matched_filter_lag_aggregator.h */,
</span><del>-                               5CD2858B1E6A63430094FDC8 /* matched_filter.cc */,
-                               5CD2858C1E6A63430094FDC8 /* matched_filter.h */,
</del><span class="cx">                           5CD2858D1E6A63430094FDC8 /* output_selector.cc */,
</span><span class="cx">                          5CD2858E1E6A63430094FDC8 /* output_selector.h */,
</span><span class="cx">                          4145E4D71EF8CC9A00FCF6E6 /* render_buffer.cc */,
</span><span class="lines">@@ -7924,10 +7940,10 @@
</span><span class="cx">                          4145E4D81EF8CC9A00FCF6E6 /* render_buffer.h */,
</span><span class="cx">                          5CD285911E6A63430094FDC8 /* render_delay_buffer.cc */,
</span><span class="cx">                          5CD285921E6A63430094FDC8 /* render_delay_buffer.h */,
</span><ins>+                               5CD285951E6A63430094FDC8 /* render_delay_controller.cc */,
+                               5CD285961E6A63430094FDC8 /* render_delay_controller.h */,
</ins><span class="cx">                           5CD285931E6A63430094FDC8 /* render_delay_controller_metrics.cc */,
</span><span class="cx">                          5CD285941E6A63430094FDC8 /* render_delay_controller_metrics.h */,
</span><del>-                               5CD285951E6A63430094FDC8 /* render_delay_controller.cc */,
-                               5CD285961E6A63430094FDC8 /* render_delay_controller.h */,
</del><span class="cx">                           5CD285971E6A63430094FDC8 /* render_signal_analyzer.cc */,
</span><span class="cx">                          5CD285981E6A63430094FDC8 /* render_signal_analyzer.h */,
</span><span class="cx">                          5CD285991E6A63430094FDC8 /* residual_echo_estimator.cc */,
</span><span class="lines">@@ -7934,9 +7950,9 @@
</span><span class="cx">                          5CD2859A1E6A63430094FDC8 /* residual_echo_estimator.h */,
</span><span class="cx">                          5CD2859B1E6A63430094FDC8 /* shadow_filter_update_gain.cc */,
</span><span class="cx">                          5CD2859C1E6A63430094FDC8 /* shadow_filter_update_gain.h */,
</span><del>-                               5CD2859D1E6A63430094FDC8 /* subtractor_output.h */,
</del><span class="cx">                           5CD2859E1E6A63430094FDC8 /* subtractor.cc */,
</span><span class="cx">                          5CD2859F1E6A63430094FDC8 /* subtractor.h */,
</span><ins>+                               5CD2859D1E6A63430094FDC8 /* subtractor_output.h */,
</ins><span class="cx">                           5CD285A01E6A63430094FDC8 /* suppression_filter.cc */,
</span><span class="cx">                          5CD285A11E6A63430094FDC8 /* suppression_filter.h */,
</span><span class="cx">                          5CD285A21E6A63430094FDC8 /* suppression_gain.cc */,
</span><span class="lines">@@ -7985,10 +8001,10 @@
</span><span class="cx">          5CDD83681E4399E400621E92 /* modules */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD284811E6A5F2B0094FDC8 /* audio_mixer */,
</del><span class="cx">                           5CDD84051E439AF200621E92 /* audio_coding */,
</span><span class="cx">                          5CDD87E71E43BDC400621E92 /* audio_conference_mixer */,
</span><span class="cx">                          5C119FEF1E4573CA004F0987 /* audio_device */,
</span><ins>+                               5CD284811E6A5F2B0094FDC8 /* audio_mixer */,
</ins><span class="cx">                           5CDD84881E43AEC900621E92 /* audio_processing */,
</span><span class="cx">                          5CDD90511E43D10400621E92 /* bitrate_controller */,
</span><span class="cx">                          5CDD8FA61E43CCE100621E92 /* congestion_controller */,
</span><span class="lines">@@ -8005,9 +8021,6 @@
</span><span class="cx">          5CDD83691E4399F400621E92 /* video_coding */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD285E81E6A639F0094FDC8 /* h264_sprop_parameter_sets.cc */,
-                               5CD285E91E6A639F0094FDC8 /* h264_sprop_parameter_sets.h */,
-                               5CD285341E6A61590094FDC8 /* video_codec_initializer.cc */,
</del><span class="cx">                           5CDD853D1E43B3F800621E92 /* codecs */,
</span><span class="cx">                          5CDD836A1E439A0D00621E92 /* utility */,
</span><span class="cx">                          5CDD83871E439A6F00621E92 /* codec_database.cc */,
</span><span class="lines">@@ -8028,6 +8041,8 @@
</span><span class="cx">                          5CDD83971E439A6F00621E92 /* generic_decoder.h */,
</span><span class="cx">                          5CDD83981E439A6F00621E92 /* generic_encoder.cc */,
</span><span class="cx">                          5CDD83991E439A6F00621E92 /* generic_encoder.h */,
</span><ins>+                               5CD285E81E6A639F0094FDC8 /* h264_sprop_parameter_sets.cc */,
+                               5CD285E91E6A639F0094FDC8 /* h264_sprop_parameter_sets.h */,
</ins><span class="cx">                           5CDD839A1E439A6F00621E92 /* h264_sps_pps_tracker.cc */,
</span><span class="cx">                          5CDD839B1E439A6F00621E92 /* h264_sps_pps_tracker.h */,
</span><span class="cx">                          5CDD839C1E439A6F00621E92 /* histogram.cc */,
</span><span class="lines">@@ -8068,6 +8083,7 @@
</span><span class="cx">                          5CDD83BF1E439A6F00621E92 /* timestamp_map.h */,
</span><span class="cx">                          5CDD83C01E439A6F00621E92 /* timing.cc */,
</span><span class="cx">                          5CDD83C11E439A6F00621E92 /* timing.h */,
</span><ins>+                               5CD285341E6A61590094FDC8 /* video_codec_initializer.cc */,
</ins><span class="cx">                           5CDD83C21E439A6F00621E92 /* video_coding_impl.cc */,
</span><span class="cx">                          5CDD83C31E439A6F00621E92 /* video_coding_impl.h */,
</span><span class="cx">                          5CDD83C41E439A6F00621E92 /* video_receiver.cc */,
</span><span class="lines">@@ -8110,11 +8126,6 @@
</span><span class="cx">          5CDD84061E439AF900621E92 /* codecs */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD2862C1E6A67970094FDC8 /* builtin_audio_decoder_factory_internal.cc */,
-                               5CD2862D1E6A67970094FDC8 /* builtin_audio_decoder_factory_internal.h */,
-                               413092241EF8D6E600757C55 /* builtin_audio_encoder_factory_internal.cc */,
-                               413092261EF8D6E600757C55 /* builtin_audio_encoder_factory_internal.h */,
-                               413092251EF8D6E600757C55 /* builtin_audio_encoder_factory.h */,
</del><span class="cx">                           5CDD8C9D1E43C6EB00621E92 /* cng */,
</span><span class="cx">                          4140B8161E4E335E007409E6 /* g711 */,
</span><span class="cx">                          4140B8171E4E3365007409E6 /* g722 */,
</span><span class="lines">@@ -8128,6 +8139,11 @@
</span><span class="cx">                          5CDD840C1E439B2900621E92 /* audio_format_conversion.cc */,
</span><span class="cx">                          5CDD840D1E439B2900621E92 /* audio_format_conversion.h */,
</span><span class="cx">                          5CDD84111E439B2900621E92 /* builtin_audio_decoder_factory.h */,
</span><ins>+                               5CD2862C1E6A67970094FDC8 /* builtin_audio_decoder_factory_internal.cc */,
+                               5CD2862D1E6A67970094FDC8 /* builtin_audio_decoder_factory_internal.h */,
+                               413092251EF8D6E600757C55 /* builtin_audio_encoder_factory.h */,
+                               413092241EF8D6E600757C55 /* builtin_audio_encoder_factory_internal.cc */,
+                               413092261EF8D6E600757C55 /* builtin_audio_encoder_factory_internal.h */,
</ins><span class="cx">                           5CDD84121E439B2900621E92 /* legacy_encoded_audio_frame.cc */,
</span><span class="cx">                          5CDD84131E439B2900621E92 /* legacy_encoded_audio_frame.h */,
</span><span class="cx">                  );
</span><span class="lines">@@ -8139,6 +8155,12 @@
</span><span class="cx">                  children = (
</span><span class="cx">                          413092041EF8D0C800757C55 /* audio_level.cc */,
</span><span class="cx">                          413092031EF8D0C800757C55 /* audio_level.h */,
</span><ins>+                               5CDD842E1E43AE2900621E92 /* channel.cc */,
+                               5CDD842F1E43AE2900621E92 /* channel.h */,
+                               5CDD842A1E43AE2900621E92 /* channel_manager.cc */,
+                               5CDD842B1E43AE2900621E92 /* channel_manager.h */,
+                               5CDD842C1E43AE2900621E92 /* channel_proxy.cc */,
+                               5CDD842D1E43AE2900621E92 /* channel_proxy.h */,
</ins><span class="cx">                           5CD285FC1E6A64840094FDC8 /* coder.cc */,
</span><span class="cx">                          5CD285FD1E6A64840094FDC8 /* coder.h */,
</span><span class="cx">                          5CD285FE1E6A64840094FDC8 /* file_player.cc */,
</span><span class="lines">@@ -8145,14 +8167,6 @@
</span><span class="cx">                          5CD285FF1E6A64840094FDC8 /* file_player.h */,
</span><span class="cx">                          5CD286001E6A64840094FDC8 /* file_recorder.cc */,
</span><span class="cx">                          5CD286011E6A64840094FDC8 /* file_recorder.h */,
</span><del>-                               4130920D1EF8D40100757C55 /* transport_feedback_packet_loss_tracker.cc */,
-                               5CD286021E6A64840094FDC8 /* transport_feedback_packet_loss_tracker.h */,
-                               5CDD842E1E43AE2900621E92 /* channel.cc */,
-                               5CDD842F1E43AE2900621E92 /* channel.h */,
-                               5CDD842A1E43AE2900621E92 /* channel_manager.cc */,
-                               5CDD842B1E43AE2900621E92 /* channel_manager.h */,
-                               5CDD842C1E43AE2900621E92 /* channel_proxy.cc */,
-                               5CDD842D1E43AE2900621E92 /* channel_proxy.h */,
</del><span class="cx">                           5CDD84331E43AE2900621E92 /* monitor_module.h */,
</span><span class="cx">                          5CDD84341E43AE2900621E92 /* output_mixer.cc */,
</span><span class="cx">                          5CDD84351E43AE2900621E92 /* output_mixer.h */,
</span><span class="lines">@@ -8161,8 +8175,10 @@
</span><span class="cx">                          5CDD84381E43AE2900621E92 /* statistics.cc */,
</span><span class="cx">                          5CDD84391E43AE2900621E92 /* statistics.h */,
</span><span class="cx">                          5CDD843A1E43AE2900621E92 /* transmit_mixer.cc */,
</span><ins>+                               5CDD843B1E43AE2900621E92 /* transmit_mixer.h */,
+                               4130920D1EF8D40100757C55 /* transport_feedback_packet_loss_tracker.cc */,
+                               5CD286021E6A64840094FDC8 /* transport_feedback_packet_loss_tracker.h */,
</ins><span class="cx">                           4130920C1EF8D40100757C55 /* transport_feedback_packet_loss_tracker.h */,
</span><del>-                               5CDD843B1E43AE2900621E92 /* transmit_mixer.h */,
</del><span class="cx">                           5CDD843C1E43AE2900621E92 /* utility.cc */,
</span><span class="cx">                          5CDD843D1E43AE2900621E92 /* utility.h */,
</span><span class="cx">                          5CDD84401E43AE2900621E92 /* voe_base_impl.cc */,
</span><span class="lines">@@ -8185,11 +8201,9 @@
</span><span class="cx">          5CDD84881E43AEC900621E92 /* audio_processing */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><ins>+                               5CDD86A91E43B9B900621E92 /* aec */,
+                               5CD2855F1E6A63050094FDC8 /* aec3 */,
</ins><span class="cx">                           4130922A1EF8D73500757C55 /* aec_dump */,
</span><del>-                               5CD2855F1E6A63050094FDC8 /* aec3 */,
-                               5CD2855B1E6A62ED0094FDC8 /* low_cut_filter.cc */,
-                               5CD2855C1E6A62ED0094FDC8 /* low_cut_filter.h */,
-                               5CDD86A91E43B9B900621E92 /* aec */,
</del><span class="cx">                           5CDD86E51E43BA5B00621E92 /* agc */,
</span><span class="cx">                          4130920B1EF8D2CD00757C55 /* agc2 */,
</span><span class="cx">                          5CDD90631E43D14B00621E92 /* beamformer */,
</span><span class="lines">@@ -8216,6 +8230,8 @@
</span><span class="cx">                          5CDD84951E43AF1300621E92 /* gain_control_impl.h */,
</span><span class="cx">                          5CDD84981E43AF1300621E92 /* level_estimator_impl.cc */,
</span><span class="cx">                          5CDD84991E43AF1300621E92 /* level_estimator_impl.h */,
</span><ins>+                               5CD2855B1E6A62ED0094FDC8 /* low_cut_filter.cc */,
+                               5CD2855C1E6A62ED0094FDC8 /* low_cut_filter.h */,
</ins><span class="cx">                           5CDD84E71E43B0B600621E92 /* noise_suppression_impl.cc */,
</span><span class="cx">                          5CDD84E81E43B0B600621E92 /* noise_suppression_impl.h */,
</span><span class="cx">                          5CDD849C1E43AF1300621E92 /* render_queue_item_verifier.h */,
</span><span class="lines">@@ -8293,10 +8309,6 @@
</span><span class="cx">                          5CD2849E1E6A5F9F0094FDC8 /* audio_send_stream.cc */,
</span><span class="cx">                          5CD2849F1E6A5F9F0094FDC8 /* audio_send_stream.h */,
</span><span class="cx">                          5CD284A01E6A5F9F0094FDC8 /* audio_state.h */,
</span><del>-                               5CD284A81E6A5F9F0094FDC8 /* flexfec_receive_stream_impl.cc */,
-                               5CD284A91E6A5F9F0094FDC8 /* flexfec_receive_stream_impl.h */,
-                               5CD284AE1E6A5F9F0094FDC8 /* syncable.cc */,
-                               5CD284AF1E6A5F9F0094FDC8 /* syncable.h */,
</del><span class="cx">                           5CDD851C1E43B39C00621E92 /* bitrate_allocator.cc */,
</span><span class="cx">                          5CDD851D1E43B39C00621E92 /* bitrate_allocator.h */,
</span><span class="cx">                          5CDD85221E43B39C00621E92 /* call.cc */,
</span><span class="lines">@@ -8305,11 +8317,15 @@
</span><span class="cx">                          4145E4E31EF8CD7C00FCF6E6 /* callfactory.h */,
</span><span class="cx">                          4145E4E21EF8CD7700FCF6E6 /* callfactoryinterface.h */,
</span><span class="cx">                          5CDD85261E43B39C00621E92 /* flexfec_receive_stream.h */,
</span><ins>+                               5CD284A81E6A5F9F0094FDC8 /* flexfec_receive_stream_impl.cc */,
+                               5CD284A91E6A5F9F0094FDC8 /* flexfec_receive_stream_impl.h */,
</ins><span class="cx">                           413092001EF8D0A600757C55 /* rtp_demuxer.cc */,
</span><del>-                               413092171EF8D63900757C55 /* rtp_transport_controller_send_interface.h */,
</del><ins>+                                413091FF1EF8D0A400757C55 /* rtp_demuxer.h */,
</ins><span class="cx">                           413092181EF8D63F00757C55 /* rtp_transport_controller_send.cc */,
</span><span class="cx">                          413092161EF8D63400757C55 /* rtp_transport_controller_send.h */,
</span><del>-                               413091FF1EF8D0A400757C55 /* rtp_demuxer.h */,
</del><ins>+                                413092171EF8D63900757C55 /* rtp_transport_controller_send_interface.h */,
+                               5CD284AE1E6A5F9F0094FDC8 /* syncable.cc */,
+                               5CD284AF1E6A5F9F0094FDC8 /* syncable.h */,
</ins><span class="cx">                   );
</span><span class="cx">                  name = call;
</span><span class="cx">                  sourceTree = "<group>";
</span><span class="lines">@@ -8317,9 +8333,9 @@
</span><span class="cx">          5CDD853D1E43B3F800621E92 /* codecs */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               41F411BD1EF8DB8200343C26 /* vp8 */,
</del><span class="cx">                           5CDD853E1E43B40500621E92 /* h264 */,
</span><span class="cx">                          5CDD904E1E43D0D400621E92 /* i420 */,
</span><ins>+                               41F411BD1EF8DB8200343C26 /* vp8 */,
</ins><span class="cx">                           5CDD8C121E43C39200621E92 /* vp9 */,
</span><span class="cx">                  );
</span><span class="cx">                  name = codecs;
</span><span class="lines">@@ -8337,8 +8353,6 @@
</span><span class="cx">          5CDD85591E43B5AE00621E92 /* video */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD286281E6A66C80094FDC8 /* quality_threshold.cc */,
-                               5CD286291E6A66C80094FDC8 /* quality_threshold.h */,
</del><span class="cx">                           5CDD855C1E43B5C000621E92 /* call_stats.cc */,
</span><span class="cx">                          5CDD855D1E43B5C000621E92 /* call_stats.h */,
</span><span class="cx">                          5CDD85601E43B5C000621E92 /* encoder_rtcp_feedback.cc */,
</span><span class="lines">@@ -8347,6 +8361,8 @@
</span><span class="cx">                          5CDD85671E43B5C000621E92 /* overuse_frame_detector.h */,
</span><span class="cx">                          5CDD856A1E43B5C000621E92 /* payload_router.cc */,
</span><span class="cx">                          5CDD856B1E43B5C000621E92 /* payload_router.h */,
</span><ins>+                               5CD286281E6A66C80094FDC8 /* quality_threshold.cc */,
+                               5CD286291E6A66C80094FDC8 /* quality_threshold.h */,
</ins><span class="cx">                           5CDD856D1E43B5C000621E92 /* receive_statistics_proxy.cc */,
</span><span class="cx">                          5CDD856E1E43B5C000621E92 /* receive_statistics_proxy.h */,
</span><span class="cx">                          5CDD85711E43B5C000621E92 /* report_block_stats.cc */,
</span><span class="lines">@@ -8474,12 +8490,12 @@
</span><span class="cx">          5CDD86961E43B98200621E92 /* echo_detector */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD2860E1E6A64C90094FDC8 /* moving_max.cc */,
-                               5CD2860F1E6A64C90094FDC8 /* moving_max.h */,
</del><span class="cx">                           5CDD86981E43B99400621E92 /* circular_buffer.cc */,
</span><span class="cx">                          5CDD86991E43B99400621E92 /* circular_buffer.h */,
</span><span class="cx">                          5CDD869B1E43B99400621E92 /* mean_variance_estimator.cc */,
</span><span class="cx">                          5CDD869C1E43B99400621E92 /* mean_variance_estimator.h */,
</span><ins>+                               5CD2860E1E6A64C90094FDC8 /* moving_max.cc */,
+                               5CD2860F1E6A64C90094FDC8 /* moving_max.h */,
</ins><span class="cx">                           5CDD869E1E43B99400621E92 /* normalized_covariance_estimator.cc */,
</span><span class="cx">                          5CDD869F1E43B99400621E92 /* normalized_covariance_estimator.h */,
</span><span class="cx">                  );
</span><span class="lines">@@ -8741,8 +8757,6 @@
</span><span class="cx">          5CDD87FA1E43BE2600621E92 /* source */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD285F81E6A64520094FDC8 /* rtcp_nack_stats.cc */,
-                               5CD285F91E6A64520094FDC8 /* rtcp_nack_stats.h */,
</del><span class="cx">                           5CDD88EB1E43BF2500621E92 /* rtcp_packet */,
</span><span class="cx">                          5CDD87FC1E43BE3C00621E92 /* byte_io.h */,
</span><span class="cx">                          5CDD87FE1E43BE3C00621E92 /* dtmf_queue.cc */,
</span><span class="lines">@@ -8766,6 +8780,8 @@
</span><span class="cx">                          5CDD881A1E43BE3C00621E92 /* receive_statistics_impl.cc */,
</span><span class="cx">                          5CDD881B1E43BE3C00621E92 /* receive_statistics_impl.h */,
</span><span class="cx">                          5CDD881E1E43BE3C00621E92 /* remote_ntp_time_estimator.cc */,
</span><ins>+                               5CD285F81E6A64520094FDC8 /* rtcp_nack_stats.cc */,
+                               5CD285F91E6A64520094FDC8 /* rtcp_nack_stats.h */,
</ins><span class="cx">                           5CDD88211E43BE3C00621E92 /* rtcp_packet.cc */,
</span><span class="cx">                          5CDD88221E43BE3C00621E92 /* rtcp_packet.h */,
</span><span class="cx">                          5CDD88241E43BE3C00621E92 /* rtcp_receiver.cc */,
</span><span class="lines">@@ -8888,8 +8904,6 @@
</span><span class="cx">          5CDD89881E43BF8A00621E92 /* neteq */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD285EC1E6A63D20094FDC8 /* neteq_decoder_enum.cc */,
-                               5CD285ED1E6A63D20094FDC8 /* neteq_decoder_enum.h */,
</del><span class="cx">                           5CDD8A5F1E43C00000621E92 /* tools */,
</span><span class="cx">                          5CDD89891E43BFB300621E92 /* accelerate.cc */,
</span><span class="cx">                          5CDD898A1E43BFB300621E92 /* accelerate.h */,
</span><span class="lines">@@ -8933,6 +8947,8 @@
</span><span class="cx">                          5CDD89C51E43BFB300621E92 /* nack_tracker.cc */,
</span><span class="cx">                          5CDD89C61E43BFB300621E92 /* nack_tracker.h */,
</span><span class="cx">                          5CDD89D01E43BFB300621E92 /* neteq.cc */,
</span><ins>+                               5CD285EC1E6A63D20094FDC8 /* neteq_decoder_enum.cc */,
+                               5CD285ED1E6A63D20094FDC8 /* neteq_decoder_enum.h */,
</ins><span class="cx">                           5CDD89C91E43BFB300621E92 /* neteq_impl.cc */,
</span><span class="cx">                          5CDD89CA1E43BFB300621E92 /* neteq_impl.h */,
</span><span class="cx">                          5CDD89D31E43BFB300621E92 /* normal.cc */,
</span><span class="lines">@@ -9004,8 +9020,6 @@
</span><span class="cx">          5CDD8ABB1E43C22200621E92 /* audio */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD286341E6A67D80094FDC8 /* audio_transport_proxy.cc */,
-                               5CD286351E6A67D80094FDC8 /* audio_transport_proxy.h */,
</del><span class="cx">                           5CD2854A1E6A62090094FDC8 /* utility */,
</span><span class="cx">                          5CDD8ABD1E43C23900621E92 /* audio_receive_stream.cc */,
</span><span class="cx">                          5CDD8ABE1E43C23900621E92 /* audio_receive_stream.h */,
</span><span class="lines">@@ -9013,6 +9027,8 @@
</span><span class="cx">                          5CDD8AC11E43C23900621E92 /* audio_send_stream.h */,
</span><span class="cx">                          5CDD8AC31E43C23900621E92 /* audio_state.cc */,
</span><span class="cx">                          5CDD8AC41E43C23900621E92 /* audio_state.h */,
</span><ins>+                               5CD286341E6A67D80094FDC8 /* audio_transport_proxy.cc */,
+                               5CD286351E6A67D80094FDC8 /* audio_transport_proxy.h */,
</ins><span class="cx">                           5CDD8AC61E43C23900621E92 /* conversion.h */,
</span><span class="cx">                          5CDD8AC91E43C23900621E92 /* scoped_voe_interface.h */,
</span><span class="cx">                  );
</span><span class="lines">@@ -9407,12 +9423,12 @@
</span><span class="cx">          5CDD8E241E43C7DC00621E92 /* x86 */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><ins>+                               5CDD8E251E43C7EC00621E92 /* main_sse.h */,
</ins><span class="cx">                           5C5F408D1E978FD200D94279 /* NSQ_del_dec_sse.c */,
</span><span class="cx">                          5C5F408E1E978FD200D94279 /* NSQ_sse.c */,
</span><span class="cx">                          5C5F408F1E978FD200D94279 /* SigProc_FIX_sse.h */,
</span><span class="cx">                          5C5F40901E978FD200D94279 /* VAD_sse.c */,
</span><span class="cx">                          5C5F40911E978FD200D94279 /* VQ_WMat_EC_sse.c */,
</span><del>-                               5CDD8E251E43C7EC00621E92 /* main_sse.h */,
</del><span class="cx">                           5CDD8E2B1E43C7EC00621E92 /* x86_silk_map.c */,
</span><span class="cx">                  );
</span><span class="cx">                  name = x86;
</span><span class="lines">@@ -9496,8 +9512,6 @@
</span><span class="cx">          5CDD8F551E43CBCA00621E92 /* audio_network_adaptor */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               5CD286121E6A66130094FDC8 /* event_log_writer.cc */,
-                               5CD286131E6A66130094FDC8 /* event_log_writer.h */,
</del><span class="cx">                           5CDD8F591E43CBDF00621E92 /* audio_network_adaptor.cc */,
</span><span class="cx">                          5CDD8F571E43CBDF00621E92 /* audio_network_adaptor_impl.cc */,
</span><span class="cx">                          5CDD8F581E43CBDF00621E92 /* audio_network_adaptor_impl.h */,
</span><span class="lines">@@ -9513,6 +9527,8 @@
</span><span class="cx">                          5CDD8F681E43CBDF00621E92 /* debug_dump_writer.h */,
</span><span class="cx">                          5CDD8F6B1E43CBE000621E92 /* dtx_controller.cc */,
</span><span class="cx">                          5CDD8F6C1E43CBE000621E92 /* dtx_controller.h */,
</span><ins>+                               5CD286121E6A66130094FDC8 /* event_log_writer.cc */,
+                               5CD286131E6A66130094FDC8 /* event_log_writer.h */,
</ins><span class="cx">                           5CDD8F711E43CBE000621E92 /* frame_length_controller.cc */,
</span><span class="cx">                          5CDD8F721E43CBE000621E92 /* frame_length_controller.h */,
</span><span class="cx">                  );
</span><span class="lines">@@ -9539,13 +9555,11 @@
</span><span class="cx">                  children = (
</span><span class="cx">                          41F411B21EF8DA4A00343C26 /* acknowledge_bitrate_estimator.cc */,
</span><span class="cx">                          41F411B31EF8DA4A00343C26 /* acknowledge_bitrate_estimator.h */,
</span><del>-                               5CD286161E6A66380094FDC8 /* median_slope_estimator.cc */,
-                               5CD286171E6A66380094FDC8 /* median_slope_estimator.h */,
-                               5CD2861A1E6A66380094FDC8 /* trendline_estimator.cc */,
-                               5CD2861B1E6A66380094FDC8 /* trendline_estimator.h */,
</del><span class="cx">                           5CDD8FA71E43CD0700621E92 /* congestion_controller.cc */,
</span><span class="cx">                          5CDD8FAA1E43CD0700621E92 /* delay_based_bwe.cc */,
</span><span class="cx">                          5CDD8FAB1E43CD0700621E92 /* delay_based_bwe.h */,
</span><ins>+                               5CD286161E6A66380094FDC8 /* median_slope_estimator.cc */,
+                               5CD286171E6A66380094FDC8 /* median_slope_estimator.h */,
</ins><span class="cx">                           5CDD8FAC1E43CD0700621E92 /* probe_bitrate_estimator.cc */,
</span><span class="cx">                          5CDD8FAD1E43CD0700621E92 /* probe_bitrate_estimator.h */,
</span><span class="cx">                          5CDD8FAE1E43CD0700621E92 /* probe_controller.cc */,
</span><span class="lines">@@ -9554,6 +9568,8 @@
</span><span class="cx">                          413092141EF8D5ED00757C55 /* send_side_congestion_controller.cc */,
</span><span class="cx">                          5CDD8FB01E43CD0700621E92 /* transport_feedback_adapter.cc */,
</span><span class="cx">                          5CDD8FB11E43CD0700621E92 /* transport_feedback_adapter.h */,
</span><ins>+                               5CD2861A1E6A66380094FDC8 /* trendline_estimator.cc */,
+                               5CD2861B1E6A66380094FDC8 /* trendline_estimator.h */,
</ins><span class="cx">                   );
</span><span class="cx">                  path = congestion_controller;
</span><span class="cx">                  sourceTree = "<group>";
</span><span class="lines">@@ -9642,11 +9658,11 @@
</span><span class="cx">          5CDD90341E43CF3700621E92 /* rtc_event_log */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               41F411B71EF8DA9000343C26 /* rtc_event_log_factory_interface.h */,
</del><ins>+                                5CDD903E1E43CF6100621E92 /* rtc_event_log.cc */,
+                               5CDD903F1E43CF6100621E92 /* rtc_event_log.h */,
</ins><span class="cx">                           41F411B61EF8DA8A00343C26 /* rtc_event_log_factory.cc */,
</span><span class="cx">                          41F411B81EF8DA9500343C26 /* rtc_event_log_factory.h */,
</span><del>-                               5CDD903E1E43CF6100621E92 /* rtc_event_log.cc */,
-                               5CDD903F1E43CF6100621E92 /* rtc_event_log.h */,
</del><ins>+                                41F411B71EF8DA9000343C26 /* rtc_event_log_factory_interface.h */,
</ins><span class="cx">                           5CDD90371E43CF6100621E92 /* rtc_event_log_helper_thread.cc */,
</span><span class="cx">                          5CDD90381E43CF6100621E92 /* rtc_event_log_helper_thread.h */,
</span><span class="cx">                  );
</span><span class="lines">@@ -9786,13 +9802,13 @@
</span><span class="cx">          5D7C59C41208C68B001C873E /* Configurations */ = {
</span><span class="cx">                  isa = PBXGroup;
</span><span class="cx">                  children = (
</span><del>-                               41433D2B1F79B39200387B4D /* libwebrtc.iOS.exp */,
-                               41433D2D1F79B39200387B4D /* libwebrtc.iOSsim.exp */,
-                               41433D2C1F79B39200387B4D /* libwebrtc.mac.exp */,
</del><span class="cx">                           5D7C59C61208C68B001C873E /* Base.xcconfig */,
</span><span class="cx">                          5C4B43B01E42877A002651C8 /* boringssl.xcconfig */,
</span><span class="cx">                          5D7C59C71208C68B001C873E /* DebugRelease.xcconfig */,
</span><span class="cx">                          5C0884891E4A978C00403995 /* libsrtp.xcconfig */,
</span><ins>+                               41433D2B1F79B39200387B4D /* libwebrtc.iOS.exp */,
+                               41433D2D1F79B39200387B4D /* libwebrtc.iOSsim.exp */,
+                               41433D2C1F79B39200387B4D /* libwebrtc.mac.exp */,
</ins><span class="cx">                           5D7C59C51208C68B001C873E /* libwebrtc.xcconfig */,
</span><span class="cx">                          5C0885361E4AA38900403995 /* libwebrtcpcrtc.xcconfig */,
</span><span class="cx">                          5C08848A1E4A978C00403995 /* libyuv.xcconfig */,
</span><span class="lines">@@ -9957,7 +9973,6 @@
</span><span class="cx">                          5CDD8E701E43C80C00621E92 /* NSQ.h in Headers */,
</span><span class="cx">                          5C4B4AC11E42C574002651C8 /* opus_private.h in Headers */,
</span><span class="cx">                          5CDD8D511E43C79C00621E92 /* os_support.h in Headers */,
</span><del>-                               5C5F40991E978FDB00D94279 /* SigProc_FIX_sse.h in Headers */,
</del><span class="cx">                           5CDD8D531E43C79C00621E92 /* pitch.h in Headers */,
</span><span class="cx">                          5CDD8E711E43C80C00621E92 /* pitch_est_defines.h in Headers */,
</span><span class="cx">                          5CDD8E741E43C80C00621E92 /* PLC.h in Headers */,
</span><span class="lines">@@ -9967,6 +9982,7 @@
</span><span class="cx">                          5CDD8E7F1E43C80C00621E92 /* resampler_rom.h in Headers */,
</span><span class="cx">                          5CDD8E801E43C80C00621E92 /* resampler_structs.h in Headers */,
</span><span class="cx">                          5CDD8E841E43C80C00621E92 /* SigProc_FIX.h in Headers */,
</span><ins>+                               5C5F40991E978FDB00D94279 /* SigProc_FIX_sse.h in Headers */,
</ins><span class="cx">                           5CDD8EFC1E43C9F600621E92 /* SigProc_FLP.h in Headers */,
</span><span class="cx">                          5CDD8D581E43C79C00621E92 /* stack_alloc.h in Headers */,
</span><span class="cx">                          5CDD8D591E43C79C00621E92 /* static_modes_fixed.h in Headers */,
</span><span class="lines">@@ -9988,13 +10004,12 @@
</span><span class="cx">                  buildActionMask = 2147483647;
</span><span class="cx">                  files = (
</span><span class="cx">                          5C4B475A1E42AAF5002651C8 /* asn1_locl.h in Headers */,
</span><ins>+                               5C4B46751E42AA3C002651C8 /* charmap.h in Headers */,
+                               5C4B47DD1E42C029002651C8 /* conf_def.h in Headers */,
+                               5C4B46491E42AA34002651C8 /* ext_dat.h in Headers */,
</ins><span class="cx">                           41A391B31EFC454F00C4516A /* internal.h in Headers */,
</span><del>-                               41EA53AE1EFC2C4D002FF04C /* md32_common.h in Headers */,
-                               5C4B46751E42AA3C002651C8 /* charmap.h in Headers */,
</del><span class="cx">                           41A391931EFC44EB00C4516A /* internal.h in Headers */,
</span><del>-                               5C4B47DD1E42C029002651C8 /* conf_def.h in Headers */,
</del><span class="cx">                           41EA53AD1EFC2C4D002FF04C /* internal.h in Headers */,
</span><del>-                               5C4B46491E42AA34002651C8 /* ext_dat.h in Headers */,
</del><span class="cx">                           41A391C61EFC465600C4516A /* internal.h in Headers */,
</span><span class="cx">                          41A391DF1EFC489A00C4516A /* internal.h in Headers */,
</span><span class="cx">                          5C4B46BA1E42AA66002651C8 /* internal.h in Headers */,
</span><span class="lines">@@ -10008,16 +10023,17 @@
</span><span class="cx">                          41EA53C81EFC2C8B002FF04C /* internal.h in Headers */,
</span><span class="cx">                          5C4B463E1E42AA2C002651C8 /* internal.h in Headers */,
</span><span class="cx">                          5C4B46E71E42AA97002651C8 /* internal.h in Headers */,
</span><del>-                               41EA53CC1EFC2C8B002FF04C /* p256-x86_64-table.h in Headers */,
</del><span class="cx">                           5C4B47411E42AAEA002651C8 /* internal.h in Headers */,
</span><ins>+                               41A391811EFC447C00C4516A /* internal.h in Headers */,
+                               41A3917C1EFC447C00C4516A /* internal.h in Headers */,
+                               41A391851EFC447C00C4516A /* internal.h in Headers */,
+                               41EA53AE1EFC2C4D002FF04C /* md32_common.h in Headers */,
</ins><span class="cx">                           5C4B46C91E42AA70002651C8 /* obj_dat.h in Headers */,
</span><del>-                               41A391811EFC447C00C4516A /* internal.h in Headers */,
</del><ins>+                                41EA53CC1EFC2C8B002FF04C /* p256-x86_64-table.h in Headers */,
</ins><span class="cx">                           41EA53CE1EFC2C8B002FF04C /* p256-x86_64.h in Headers */,
</span><span class="cx">                          5C4B464C1E42AA34002651C8 /* pcy_int.h in Headers */,
</span><del>-                               41A3917C1EFC447C00C4516A /* internal.h in Headers */,
</del><ins>+                                41EA540F1EFC2D1B002FF04C /* rsaz_exp.h in Headers */,
</ins><span class="cx">                           5C4B467F1E42AA3C002651C8 /* vpm_int.h in Headers */,
</span><del>-                               41EA540F1EFC2D1B002FF04C /* rsaz_exp.h in Headers */,
-                               41A391851EFC447C00C4516A /* internal.h in Headers */,
</del><span class="cx">                   );
</span><span class="cx">                  runOnlyForDeploymentPostprocessing = 0;
</span><span class="cx">          };
</span><span class="lines">@@ -10028,38 +10044,39 @@
</span><span class="cx">                          5CDD8B6D1E43C2B500621E92 /* abs_quant.h in Headers */,
</span><span class="cx">                          5CDD8B6B1E43C2B500621E92 /* abs_quant_loop.h in Headers */,
</span><span class="cx">                          5CDD89F91E43BFB300621E92 /* accelerate.h in Headers */,
</span><ins>+                               41F411B51EF8DA4B00343C26 /* acknowledge_bitrate_estimator.h in Headers */,
</ins><span class="cx">                           5CDD85041E43B1EA00621E92 /* acm_codec_database.h in Headers */,
</span><del>-                               5CD286111E6A64C90094FDC8 /* moving_max.h in Headers */,
-                               4145E4B41EF8943E00FCF6E6 /* encoder.h in Headers */,
</del><span class="cx">                           5CDD850A1E43B1EA00621E92 /* acm_receiver.h in Headers */,
</span><span class="cx">                          5CDD850C1E43B1EA00621E92 /* acm_resampler.h in Headers */,
</span><span class="cx">                          5C4B48D81E42C1E3002651C8 /* adaptedvideotracksource.h in Headers */,
</span><ins>+                               5CD285A51E6A63430094FDC8 /* adaptive_fir_filter.h in Headers */,
+                               41F411C81EF97BAF00343C26 /* adm_helpers.h in Headers */,
+                               5CD285A91E6A63430094FDC8 /* aec3_common.h in Headers */,
+                               5CD285AB1E6A63430094FDC8 /* aec3_fft.h in Headers */,
</ins><span class="cx">                           5CDD86B71E43B9C200621E92 /* aec_common.h in Headers */,
</span><span class="cx">                          5CDD86BD1E43B9C200621E92 /* aec_core.h in Headers */,
</span><span class="cx">                          5CDD86BA1E43B9C200621E92 /* aec_core_optimized_methods.h in Headers */,
</span><ins>+                               413092121EF8D51100757C55 /* aec_dump.h in Headers */,
+                               413092301EF8D77100757C55 /* aec_dump_factory.h in Headers */,
</ins><span class="cx">                           5CDD86BF1E43B9C200621E92 /* aec_resampler.h in Headers */,
</span><ins>+                               5CD285A71E6A63430094FDC8 /* aec_state.h in Headers */,
</ins><span class="cx">                           5CDD85E81E43B81000621E92 /* aecm_core.h in Headers */,
</span><span class="cx">                          5CDD85E91E43B81000621E92 /* aecm_defines.h in Headers */,
</span><del>-                               4145E4C71EF896D700FCF6E6 /* rtcstats_objects.h in Headers */,
</del><span class="cx">                           5C0885271E4A99D200403995 /* aes.h in Headers */,
</span><del>-                               5CD285E71E6A63430094FDC8 /* suppression_gain.h in Headers */,
</del><span class="cx">                           5C0885241E4A99D200403995 /* aes_gcm_ossl.h in Headers */,
</span><del>-                               5CD2853A1E6A61980094FDC8 /* default_video_bitrate_allocator.h in Headers */,
</del><span class="cx">                           5C0885261E4A99D200403995 /* aes_icm.h in Headers */,
</span><span class="cx">                          5C0885251E4A99D200403995 /* aes_icm_ossl.h in Headers */,
</span><span class="cx">                          5CDD87021E43BA7500621E92 /* agc.h in Headers */,
</span><del>-                               5CD2846C1E6A57F40094FDC8 /* video_rotation.h in Headers */,
-                               41433D081F79B33400387B4D /* settings.h in Headers */,
</del><span class="cx">                           5CDD87001E43BA7500621E92 /* agc_manager_direct.h in Headers */,
</span><del>-                               4145E4E51EF8CD7D00FCF6E6 /* callfactoryinterface.h in Headers */,
</del><span class="cx">                           5CDD8FD21E43CD6600621E92 /* aimd_rate_control.h in Headers */,
</span><span class="cx">                          5C0885281E4A99D200403995 /* alloc.h in Headers */,
</span><del>-                               4145E4E01EF8CD3900FCF6E6 /* audio_encoder.h in Headers */,
</del><span class="cx">                           5CDD8F9F1E43CCBE00621E92 /* alr_detector.h in Headers */,
</span><span class="cx">                          5CDD86ED1E43BA6D00621E92 /* analog_agc.h in Headers */,
</span><span class="cx">                          5CDD87E61E43BDA100621E92 /* apm_data_dumper.h in Headers */,
</span><ins>+                               5CD284C31E6A5FFC0094FDC8 /* apm_helpers.h in Headers */,
</ins><span class="cx">                           5CDD893C1E43BF3A00621E92 /* app.h in Headers */,
</span><span class="cx">                          5CDD87AA1E43BC0500621E92 /* arith_routines.h in Headers */,
</span><ins>+                               41433D011F79B33400387B4D /* arith_routins.h in Headers */,
</ins><span class="cx">                           5CDD90761E43D15C00621E92 /* array_util.h in Headers */,
</span><span class="cx">                          5C63F6811E41619E002CA531 /* array_view.h in Headers */,
</span><span class="cx">                          5C63F6821E41619E002CA531 /* arraysize.h in Headers */,
</span><span class="lines">@@ -10069,11 +10086,9 @@
</span><span class="cx">                          5C63F6891E41619E002CA531 /* asyncpacketsocket.h in Headers */,
</span><span class="cx">                          5C63F68B1E41619E002CA531 /* asyncresolverinterface.h in Headers */,
</span><span class="cx">                          5C63F68D1E41619E002CA531 /* asyncsocket.h in Headers */,
</span><del>-                               4145E4B71EF8943E00FCF6E6 /* nalu_rewriter.h in Headers */,
</del><span class="cx">                           5C63F9E11E4174F6002CA531 /* asyncstuntcpsocket.h in Headers */,
</span><span class="cx">                          5C63F68F1E41619E002CA531 /* asynctcpsocket.h in Headers */,
</span><span class="cx">                          5C63F6911E41619E002CA531 /* asyncudpsocket.h in Headers */,
</span><del>-                               5CD284F11E6A60570094FDC8 /* audiotrack.h in Headers */,
</del><span class="cx">                           5C63F7B21E416288002CA531 /* atomicops.h in Headers */,
</span><span class="cx">                          5CDD84AA1E43AF1300621E92 /* audio_buffer.h in Headers */,
</span><span class="cx">                          5CDD8A8E1E43C00F00621E92 /* audio_checksum.h in Headers */,
</span><span class="lines">@@ -10080,12 +10095,13 @@
</span><span class="cx">                          5CDD87F21E43BDED00621E92 /* audio_conference_mixer_impl.h in Headers */,
</span><span class="cx">                          5C4B4C5A1E431F9C002651C8 /* audio_converter.h in Headers */,
</span><span class="cx">                          5CDD84161E439B2900621E92 /* audio_decoder.h in Headers */,
</span><ins>+                               5CD285451E6A61D20094FDC8 /* audio_decoder.h in Headers */,
+                               5CD285431E6A61D20094FDC8 /* audio_decoder_factory.h in Headers */,
</ins><span class="cx">                           4140B8321E4E3396007409E6 /* audio_decoder_g722.h in Headers */,
</span><span class="cx">                          5CDD8B6F1E43C2B500621E92 /* audio_decoder_ilbc.h in Headers */,
</span><span class="cx">                          5CDD89FE1E43BFB300621E92 /* audio_decoder_impl.h in Headers */,
</span><span class="cx">                          5CDD8C0A1E43C34600621E92 /* audio_decoder_isac_t.h in Headers */,
</span><span class="cx">                          5CDD8C091E43C34600621E92 /* audio_decoder_isac_t_impl.h in Headers */,
</span><del>-                               5CD285491E6A61D20094FDC8 /* builtin_audio_decoder_factory.h in Headers */,
</del><span class="cx">                           5CDD8C611E43C60900621E92 /* audio_decoder_opus.h in Headers */,
</span><span class="cx">                          4140B8231E4E3383007409E6 /* audio_decoder_pcm.h in Headers */,
</span><span class="cx">                          5CDD8FFD1E43CE3A00621E92 /* audio_decoder_pcm16b.h in Headers */,
</span><span class="lines">@@ -10095,22 +10111,25 @@
</span><span class="cx">                          5C119FFF1E457400004F0987 /* audio_device_generic.h in Headers */,
</span><span class="cx">                          5CFD537C1E4BA4F500482908 /* audio_device_ios.h in Headers */,
</span><span class="cx">                          5C11A00C1E457448004F0987 /* audio_device_mac.h in Headers */,
</span><ins>+                               4145E4E01EF8CD3900FCF6E6 /* audio_encoder.h in Headers */,
</ins><span class="cx">                           5CDD84181E439B2900621E92 /* audio_encoder.h in Headers */,
</span><span class="cx">                          5CDD8CA81E43C6F700621E92 /* audio_encoder_cng.h in Headers */,
</span><span class="cx">                          5CDD8FF41E43CDF400621E92 /* audio_encoder_copy_red.h in Headers */,
</span><del>-                               412455531EF887B700F11809 /* httpcommon.h in Headers */,
-                               5CD285CA1E6A63430094FDC8 /* frame_blocker.h in Headers */,
</del><span class="cx">                           4140B8341E4E3396007409E6 /* audio_encoder_g722.h in Headers */,
</span><span class="cx">                          5CDD8B711E43C2B500621E92 /* audio_encoder_ilbc.h in Headers */,
</span><span class="cx">                          5CDD8C0C1E43C34600621E92 /* audio_encoder_isac_t.h in Headers */,
</span><del>-                               412455571EF887FB00F11809 /* packetlossestimator.h in Headers */,
</del><span class="cx">                           5CDD8C0B1E43C34600621E92 /* audio_encoder_isac_t_impl.h in Headers */,
</span><span class="cx">                          5CDD8C641E43C60900621E92 /* audio_encoder_opus.h in Headers */,
</span><span class="cx">                          4140B8211E4E3383007409E6 /* audio_encoder_pcm.h in Headers */,
</span><span class="cx">                          5CDD8FFF1E43CE3A00621E92 /* audio_encoder_pcm16b.h in Headers */,
</span><ins>+                               5CD285471E6A61D20094FDC8 /* audio_format.h in Headers */,
</ins><span class="cx">                           5CDD841A1E439B2900621E92 /* audio_format_conversion.h in Headers */,
</span><span class="cx">                          5CDD87F41E43BDED00621E92 /* audio_frame_manipulator.h in Headers */,
</span><ins>+                               5CD284931E6A5F410094FDC8 /* audio_frame_manipulator.h in Headers */,
+                               5CD2854E1E6A62130094FDC8 /* audio_frame_operations.h in Headers */,
+                               413092051EF8D0C900757C55 /* audio_level.h in Headers */,
</ins><span class="cx">                           5CDD8A901E43C00F00621E92 /* audio_loop.h in Headers */,
</span><ins>+                               5CD284961E6A5F410094FDC8 /* audio_mixer_impl.h in Headers */,
</ins><span class="cx">                           5C11A00E1E457448004F0987 /* audio_mixer_manager_mac.h in Headers */,
</span><span class="cx">                          5CDD8A021E43BFB300621E92 /* audio_multi_vector.h in Headers */,
</span><span class="cx">                          5CDD8F7A1E43CBE000621E92 /* audio_network_adaptor_impl.h in Headers */,
</span><span class="lines">@@ -10117,68 +10136,74 @@
</span><span class="cx">                          5CDD8FEA1E43CDCA00621E92 /* audio_processing.h in Headers */,
</span><span class="cx">                          5CDD84AC1E43AF1300621E92 /* audio_processing_impl.h in Headers */,
</span><span class="cx">                          5CDD8ACD1E43C23900621E92 /* audio_receive_stream.h in Headers */,
</span><ins>+                               5CD284B01E6A5F9F0094FDC8 /* audio_receive_stream.h in Headers */,
</ins><span class="cx">                           5C4B4C5D1E431F9C002651C8 /* audio_ring_buffer.h in Headers */,
</span><del>-                               413091F31EF8CF9200757C55 /* rtp_video_stream_receiver.h in Headers */,
</del><span class="cx">                           5CDD8AD01E43C23900621E92 /* audio_send_stream.h in Headers */,
</span><ins>+                               5CD284B21E6A5F9F0094FDC8 /* audio_send_stream.h in Headers */,
</ins><span class="cx">                           5CFD53801E4BA4F500482908 /* audio_session_observer.h in Headers */,
</span><del>-                               5CD286151E6A66130094FDC8 /* event_log_writer.h in Headers */,
</del><span class="cx">                           5CDD8C4F1E43C58E00621E92 /* audio_sink.h in Headers */,
</span><del>-                               41433CED1F79B33400387B4D /* filterbank_internal.h in Headers */,
</del><span class="cx">                           5CDD8A921E43C00F00621E92 /* audio_sink.h in Headers */,
</span><del>-                               5CD2863D1E6A681C0094FDC8 /* sctptransport.h in Headers */,
</del><span class="cx">                           5CDD8AD31E43C23900621E92 /* audio_state.h in Headers */,
</span><ins>+                               5CD284B31E6A5F9F0094FDC8 /* audio_state.h in Headers */,
+                               5CD286371E6A67D80094FDC8 /* audio_transport_proxy.h in Headers */,
</ins><span class="cx">                           5CDD8A051E43BFB300621E92 /* audio_vector.h in Headers */,
</span><span class="cx">                          5C4B48D91E42C1E3002651C8 /* audiosource.h in Headers */,
</span><ins>+                               5CD284F11E6A60570094FDC8 /* audiotrack.h in Headers */,
</ins><span class="cx">                           5CDD8B731E43C2B500621E92 /* augmented_cb_corr.h in Headers */,
</span><span class="cx">                          5C0885291E4A99D200403995 /* auth.h in Headers */,
</span><span class="cx">                          5C63F8DA1E416D53002CA531 /* autolink.h in Headers */,
</span><span class="cx">                          5CDD8A081E43BFB300621E92 /* background_noise.h in Headers */,
</span><del>-                               5CD284B81E6A5F9F0094FDC8 /* call.h in Headers */,
-                               41433D0D1F79B33400387B4D /* filterbank_tables.h in Headers */,
</del><span class="cx">                           5CDD87AF1E43BC0500621E92 /* bandwidth_estimator.h in Headers */,
</span><ins>+                               41433D241F79B33400387B4D /* bandwidth_estimator.h in Headers */,
</ins><span class="cx">                           5CDD8C0D1E43C34600621E92 /* bandwidth_info.h in Headers */,
</span><span class="cx">                          5C63F7B61E416288002CA531 /* base64.h in Headers */,
</span><span class="cx">                          5C63F9E31E4174F6002CA531 /* basicpacketsocketfactory.h in Headers */,
</span><span class="cx">                          5C4B4D0A1E4322F6002651C8 /* basicportallocator.h in Headers */,
</span><span class="cx">                          5C63F7B71E416288002CA531 /* basictypes.h in Headers */,
</span><del>-                               41433D131F79B33400387B4D /* entropy_coding.h in Headers */,
</del><span class="cx">                           5C63F7B81E416288002CA531 /* bind.h in Headers */,
</span><span class="cx">                          5CDD901D1E43CEDE00621E92 /* biquad_filter.h in Headers */,
</span><span class="cx">                          5C63F7BA1E416288002CA531 /* bitbuffer.h in Headers */,
</span><ins>+                               41109AB01E5FA19200C0955A /* bitrate_adjuster.h in Headers */,
</ins><span class="cx">                           5CDD85301E43B39C00621E92 /* bitrate_allocator.h in Headers */,
</span><span class="cx">                          5CDD8F7E1E43CBE000621E92 /* bitrate_controller.h in Headers */,
</span><span class="cx">                          5CDD905E1E43D11200621E92 /* bitrate_controller_impl.h in Headers */,
</span><span class="cx">                          5CDD8FA11E43CCBE00621E92 /* bitrate_prober.h in Headers */,
</span><ins>+                               5CD285AD1E6A63430094FDC8 /* block_framer.h in Headers */,
</ins><span class="cx">                           5CDD86881E43B93900621E92 /* block_mean_calculator.h in Headers */,
</span><ins>+                               5CD285B11E6A63430094FDC8 /* block_processor.h in Headers */,
+                               5CD285AF1E6A63430094FDC8 /* block_processor_metrics.h in Headers */,
</ins><span class="cx">                           5C4B4C621E431F9C002651C8 /* blocker.h in Headers */,
</span><span class="cx">                          5C63F7BC1E416288002CA531 /* buffer.h in Headers */,
</span><span class="cx">                          5CDD8A0B1E43BFB300621E92 /* buffer_level_filter.h in Headers */,
</span><span class="cx">                          5C63F7BE1E416288002CA531 /* bufferqueue.h in Headers */,
</span><ins>+                               5CD285491E6A61D20094FDC8 /* builtin_audio_decoder_factory.h in Headers */,
</ins><span class="cx">                           5CDD841E1E439B2900621E92 /* builtin_audio_decoder_factory.h in Headers */,
</span><del>-                               5CD285A51E6A63430094FDC8 /* adaptive_fir_filter.h in Headers */,
-                               4145E4DA1EF8CC9B00FCF6E6 /* render_buffer.h in Headers */,
</del><ins>+                                5CD2862F1E6A67970094FDC8 /* builtin_audio_decoder_factory_internal.h in Headers */,
+                               413091FC1EF8CFF800757C55 /* builtin_audio_encoder_factory.h in Headers */,
+                               413092281EF8D6E600757C55 /* builtin_audio_encoder_factory.h in Headers */,
+                               413092291EF8D6E600757C55 /* builtin_audio_encoder_factory_internal.h in Headers */,
</ins><span class="cx">                           5CDD8B751E43C2B500621E92 /* bw_expand.h in Headers */,
</span><span class="cx">                          5CDD893F1E43BF3A00621E92 /* bye.h in Headers */,
</span><del>-                               4130921A1EF8D63F00757C55 /* rtp_transport_controller_send_interface.h in Headers */,
</del><span class="cx">                           5CDD88761E43BE3C00621E92 /* byte_io.h in Headers */,
</span><span class="cx">                          5C63F7C01E416288002CA531 /* bytebuffer.h in Headers */,
</span><span class="cx">                          5C63F7C11E416288002CA531 /* byteorder.h in Headers */,
</span><ins>+                               5CD284B81E6A5F9F0094FDC8 /* call.h in Headers */,
</ins><span class="cx">                           5CDD85131E43B1EA00621E92 /* call_statistics.h in Headers */,
</span><span class="cx">                          5CDD859D1E43B5C000621E92 /* call_stats.h in Headers */,
</span><span class="cx">                          5C63F7C21E416288002CA531 /* callback.h in Headers */,
</span><del>-                               5CD285111E6A60570094FDC8 /* streamcollection.h in Headers */,
</del><ins>+                                4145E4E61EF8CD7D00FCF6E6 /* callfactory.h in Headers */,
+                               4145E4E51EF8CD7D00FCF6E6 /* callfactoryinterface.h in Headers */,
</ins><span class="cx">                           5C63F9E41E4174F6002CA531 /* candidate.h in Headers */,
</span><span class="cx">                          5C63F9E51E4174F6002CA531 /* candidatepairinterface.h in Headers */,
</span><ins>+                               5CD285B31E6A63430094FDC8 /* cascaded_biquad_filter.h in Headers */,
</ins><span class="cx">                           5CDD8B771E43C2B500621E92 /* cb_construct.h in Headers */,
</span><span class="cx">                          5CDD8B7D1E43C2B500621E92 /* cb_mem_energy.h in Headers */,
</span><span class="cx">                          5CDD8B791E43C2B500621E92 /* cb_mem_energy_augmentation.h in Headers */,
</span><del>-                               5CD285BB1E6A63430094FDC8 /* echo_path_delay_estimator.h in Headers */,
</del><span class="cx">                           5CDD8B7B1E43C2B500621E92 /* cb_mem_energy_calc.h in Headers */,
</span><span class="cx">                          5CDD8B811E43C2B500621E92 /* cb_search.h in Headers */,
</span><span class="cx">                          5CDD8B7F1E43C2B500621E92 /* cb_search_core.h in Headers */,
</span><span class="cx">                          5CDD8B831E43C2B500621E92 /* cb_update_best_index.h in Headers */,
</span><span class="cx">                          5CDD845E1E43AE2900621E92 /* channel.h in Headers */,
</span><del>-                               412455441EF87C0F00F11809 /* dot_product_with_scale.h in Headers */,
</del><span class="cx">                           5C4B4C651E431F9C002651C8 /* channel_buffer.h in Headers */,
</span><span class="cx">                          5CDD8F811E43CBE000621E92 /* channel_controller.h in Headers */,
</span><span class="cx">                          5CDD845A1E43AE2900621E92 /* channel_manager.h in Headers */,
</span><span class="lines">@@ -10189,13 +10214,14 @@
</span><span class="cx">                          5CDD86A21E43B99400621E92 /* circular_buffer.h in Headers */,
</span><span class="cx">                          5C4B48DC1E42C1E3002651C8 /* codec.h in Headers */,
</span><span class="cx">                          5CDD87B01E43BC0500621E92 /* codec.h in Headers */,
</span><ins>+                               41433CF31F79B33400387B4D /* codec.h in Headers */,
</ins><span class="cx">                           5CDD83C71E439A6F00621E92 /* codec_database.h in Headers */,
</span><span class="cx">                          5CDD85161E43B1EA00621E92 /* codec_manager.h in Headers */,
</span><span class="cx">                          5CDD83C91E439A6F00621E92 /* codec_timer.h in Headers */,
</span><ins>+                               5CD286061E6A64840094FDC8 /* coder.h in Headers */,
</ins><span class="cx">                           5CDD8A0E1E43BFB300621E92 /* comfort_noise.h in Headers */,
</span><ins>+                               5CD285B51E6A63430094FDC8 /* comfort_noise_generator.h in Headers */,
</ins><span class="cx">                           5C63F9E61E4174F6002CA531 /* common.h in Headers */,
</span><del>-                               5CD284FD1E6A60570094FDC8 /* mediastreamobserver.h in Headers */,
-                               4145E4911EF88EF700FCF6E6 /* webrtc_libyuv.h in Headers */,
</del><span class="cx">                           5CDD87271E43BABE00621E92 /* common.h in Headers */,
</span><span class="cx">                          5CDD84AD1E43AF1300621E92 /* common.h in Headers */,
</span><span class="cx">                          5CDD8C861E43C66000621E92 /* common.h in Headers */,
</span><span class="lines">@@ -10202,9 +10228,7 @@
</span><span class="cx">                          5CDD89421E43BF3A00621E92 /* common_header.h in Headers */,
</span><span class="cx">                          5C6CDD4C1E413598009754E3 /* common_types.h in Headers */,
</span><span class="cx">                          5CDD8B871E43C2B500621E92 /* comp_corr.h in Headers */,
</span><del>-                               5CD285EF1E6A63D20094FDC8 /* neteq_decoder_enum.h in Headers */,
</del><span class="cx">                           5CDD86461E43B8B500621E92 /* complex_fft_tables.h in Headers */,
</span><del>-                               41F411C81EF97BAF00343C26 /* adm_helpers.h in Headers */,
</del><span class="cx">                           5CDD90781E43D15C00621E92 /* complex_matrix.h in Headers */,
</span><span class="cx">                          5CDD89451E43BF3A00621E92 /* compound_packet.h in Headers */,
</span><span class="cx">                          5CDD8FEC1E43CDCA00621E92 /* config.h in Headers */,
</span><span class="lines">@@ -10218,6 +10242,7 @@
</span><span class="cx">                          5CDD8F841E43CBE000621E92 /* controller_manager.h in Headers */,
</span><span class="cx">                          5CDD8AD41E43C23900621E92 /* conversion.h in Headers */,
</span><span class="cx">                          5C63F7C91E416288002CA531 /* copyonwritebuffer.h in Headers */,
</span><ins>+                               4145E4AB1EF8933D00FCF6E6 /* corevideo_frame_buffer.h in Headers */,
</ins><span class="cx">                           5CDD907B1E43D15C00621E92 /* covariance_matrix_generator.h in Headers */,
</span><span class="cx">                          5CDD87B21E43BC0500621E92 /* crc.h in Headers */,
</span><span class="cx">                          5C63F7CC1E416288002CA531 /* crc32.h in Headers */,
</span><span class="lines">@@ -10224,31 +10249,28 @@
</span><span class="cx">                          5CDD8B8C1E43C2B500621E92 /* create_augmented_vec.h in Headers */,
</span><span class="cx">                          5C63F7CE1E416288002CA531 /* criticalsection.h in Headers */,
</span><span class="cx">                          5CDD8A101E43BFB300621E92 /* cross_correlation.h in Headers */,
</span><del>-                               5CD285BD1E6A63430094FDC8 /* echo_path_variability.h in Headers */,
</del><span class="cx">                           5C08852B1E4A99D200403995 /* crypto_kernel.h in Headers */,
</span><span class="cx">                          5C08852C1E4A99D200403995 /* crypto_types.h in Headers */,
</span><span class="cx">                          5C4B48DD1E42C1E3002651C8 /* cryptoparams.h in Headers */,
</span><span class="cx">                          5C63F7D01E416288002CA531 /* cryptstring.h in Headers */,
</span><span class="cx">                          5C63F9391E41737B002CA531 /* datachannel.h in Headers */,
</span><del>-                               5CD284BF1E6A5F9F0094FDC8 /* syncable.h in Headers */,
</del><ins>+                                5CD284F31E6A60570094FDC8 /* datachannel.h in Headers */,
</ins><span class="cx">                           5C63F93A1E41737B002CA531 /* datachannelinterface.h in Headers */,
</span><del>-                               5CD286211E6A66380094FDC8 /* trendline_estimator.h in Headers */,
-                               5CD284931E6A5F410094FDC8 /* audio_frame_manipulator.h in Headers */,
-                               413092201EF8D6A200757C55 /* gain_controller2.h in Headers */,
</del><span class="cx">                           5C08852D1E4A99D200403995 /* datatypes.h in Headers */,
</span><span class="cx">                          5CDD8C871E43C66000621E92 /* daubechies_8_wavelet_coeffs.h in Headers */,
</span><span class="cx">                          5CDD8F881E43CBE000621E92 /* debug_dump_writer.h in Headers */,
</span><ins>+                               5CD285B71E6A63430094FDC8 /* decimator_by_4.h in Headers */,
</ins><span class="cx">                           5CDD8A171E43BFB300621E92 /* decision_logic.h in Headers */,
</span><span class="cx">                          5CDD8A121E43BFB300621E92 /* decision_logic_fax.h in Headers */,
</span><span class="cx">                          5CDD8A141E43BFB300621E92 /* decision_logic_normal.h in Headers */,
</span><span class="cx">                          5CDD8B901E43C2B500621E92 /* decode.h in Headers */,
</span><span class="cx">                          5CDD8B8E1E43C2B500621E92 /* decode_residual.h in Headers */,
</span><del>-                               5CD2862B1E6A66C80094FDC8 /* quality_threshold.h in Headers */,
-                               5CD285001E6A60570094FDC8 /* peerconnection.h in Headers */,
</del><ins>+                                4145E4B51EF8943E00FCF6E6 /* decoder.h in Headers */,
</ins><span class="cx">                           5CDD8A1A1E43BFB300621E92 /* decoder_database.h in Headers */,
</span><span class="cx">                          5CDD8B921E43C2B500621E92 /* decoder_interpolate_lsf.h in Headers */,
</span><span class="cx">                          5CDD83CB1E439A6F00621E92 /* decoding_state.h in Headers */,
</span><del>-                               41F411BA1EF8DA9600343C26 /* rtc_event_log_factory_interface.h in Headers */,
</del><ins>+                                5CD284981E6A5F410094FDC8 /* default_output_rate_calculator.h in Headers */,
+                               5CD2853A1E6A61980094FDC8 /* default_video_bitrate_allocator.h in Headers */,
</ins><span class="cx">                           5CDD85FB1E43B84E00621E92 /* defines.h in Headers */,
</span><span class="cx">                          5CDD8A1B1E43BFB300621E92 /* defines.h in Headers */,
</span><span class="cx">                          5CDD8B931E43C2B500621E92 /* defines.h in Headers */,
</span><span class="lines">@@ -10261,47 +10283,55 @@
</span><span class="cx">                          5C63F7D41E416288002CA531 /* deprecation.h in Headers */,
</span><span class="cx">                          5C4B48DE1E42C1E3002651C8 /* device.h in Headers */,
</span><span class="cx">                          5CDD86EF1E43BA6D00621E92 /* digital_agc.h in Headers */,
</span><ins>+                               413092211EF8D6A200757C55 /* digital_gain_applier.h in Headers */,
</ins><span class="cx">                           5CDD89481E43BF3A00621E92 /* dlrr.h in Headers */,
</span><span class="cx">                          5CDD8B951E43C2B500621E92 /* do_plc.h in Headers */,
</span><ins>+                               412455441EF87C0F00F11809 /* dot_product_with_scale.h in Headers */,
</ins><span class="cx">                           5CDD901F1E43CEDE00621E92 /* down_sampler.h in Headers */,
</span><ins>+                               4145E4D51EF8CC7600FCF6E6 /* downsampled_render_buffer.h in Headers */,
</ins><span class="cx">                           5C63F7D71E416288002CA531 /* dscp.h in Headers */,
</span><span class="cx">                          5CDD8A241E43BFB300621E92 /* dsp_helper.h in Headers */,
</span><span class="cx">                          5C63F9EA1E4174F6002CA531 /* dtlstransportchannel.h in Headers */,
</span><span class="cx">                          5CDD8A271E43BFB300621E92 /* dtmf_buffer.h in Headers */,
</span><span class="cx">                          5CDD88781E43BE3C00621E92 /* dtmf_queue.h in Headers */,
</span><del>-                               5CD285A71E6A63430094FDC8 /* aec_state.h in Headers */,
</del><span class="cx">                           5CDD8A2A1E43BFB300621E92 /* dtmf_tone_generator.h in Headers */,
</span><ins>+                               5CD284F51E6A60570094FDC8 /* dtmfsender.h in Headers */,
</ins><span class="cx">                           5C63F93D1E41737B002CA531 /* dtmfsenderinterface.h in Headers */,
</span><span class="cx">                          5CDD8F8B1E43CBE000621E92 /* dtx_controller.h in Headers */,
</span><del>-                               5CD285321E6A61110094FDC8 /* internalencoderfactory.h in Headers */,
</del><span class="cx">                           5CDD8C891E43C66000621E92 /* dyadic_decimator.h in Headers */,
</span><span class="cx">                          5CDD86C21E43B9C200621E92 /* echo_cancellation.h in Headers */,
</span><span class="cx">                          5CDD84AF1E43AF1300621E92 /* echo_cancellation_impl.h in Headers */,
</span><ins>+                               5CD285B91E6A63430094FDC8 /* echo_canceller3.h in Headers */,
</ins><span class="cx">                           5CDD85EB1E43B81000621E92 /* echo_control_mobile.h in Headers */,
</span><del>-                               5CD285E31E6A63430094FDC8 /* subtractor.h in Headers */,
</del><span class="cx">                           5CDD84B11E43AF1300621E92 /* echo_control_mobile_impl.h in Headers */,
</span><ins>+                               5CD285BB1E6A63430094FDC8 /* echo_path_delay_estimator.h in Headers */,
+                               5CD285BD1E6A63430094FDC8 /* echo_path_variability.h in Headers */,
+                               5CD285C11E6A63430094FDC8 /* echo_remover.h in Headers */,
+                               5CD285BF1E6A63430094FDC8 /* echo_remover_metrics.h in Headers */,
</ins><span class="cx">                           5CDD8B971E43C2B500621E92 /* encode.h in Headers */,
</span><span class="cx">                          5CDD87B61E43BC0500621E92 /* encode_lpc_swb.h in Headers */,
</span><span class="cx">                          5CDD8A961E43C00F00621E92 /* encode_neteq_input.h in Headers */,
</span><span class="cx">                          5CDD83CD1E439A6F00621E92 /* encoded_frame.h in Headers */,
</span><ins>+                               4145E4B41EF8943E00FCF6E6 /* encoder.h in Headers */,
</ins><span class="cx">                           5CDD85A01E43B5C000621E92 /* encoder_rtcp_feedback.h in Headers */,
</span><ins>+                               416D2F151FA8CCAE00097345 /* encoder_vcp.h in Headers */,
</ins><span class="cx">                           5CDD8B991E43C2B500621E92 /* energy_inverse.h in Headers */,
</span><del>-                               5CD285FB1E6A64520094FDC8 /* rtcp_nack_stats.h in Headers */,
</del><span class="cx">                           5CDD8B9B1E43C2B500621E92 /* enh_upsample.h in Headers */,
</span><span class="cx">                          5CDD8B9F1E43C2B500621E92 /* enhancer.h in Headers */,
</span><span class="cx">                          5CDD8B9D1E43C2B500621E92 /* enhancer_interface.h in Headers */,
</span><del>-                               5CD285DA1E6A63430094FDC8 /* render_delay_controller.h in Headers */,
</del><ins>+                                41433D131F79B33400387B4D /* entropy_coding.h in Headers */,
</ins><span class="cx">                           5CDD87B91E43BC0500621E92 /* entropy_coding.h in Headers */,
</span><del>-                               413091FC1EF8CFF800757C55 /* builtin_audio_encoder_factory.h in Headers */,
</del><ins>+                                5CD285C31E6A63430094FDC8 /* erl_estimator.h in Headers */,
+                               5CD285C51E6A63430094FDC8 /* erle_estimator.h in Headers */,
</ins><span class="cx">                           5C08852E1E4A99D200403995 /* err.h in Headers */,
</span><span class="cx">                          5C63F7DB1E416288002CA531 /* event.h in Headers */,
</span><ins>+                               5CD286151E6A66130094FDC8 /* event_log_writer.h in Headers */,
</ins><span class="cx">                           5C4B4CCF1E4320A9002651C8 /* event_timer_posix.h in Headers */,
</span><span class="cx">                          5C63F7D91E416288002CA531 /* event_tracer.h in Headers */,
</span><ins>+                               5CD285541E6A62410094FDC8 /* exp_filter.h in Headers */,
</ins><span class="cx">                           5CDD8A2D1E43BFB300621E92 /* expand.h in Headers */,
</span><span class="cx">                          5CDD894B1E43BF3A00621E92 /* extended_jitter_report.h in Headers */,
</span><span class="cx">                          5CDD894E1E43BF3A00621E92 /* extended_reports.h in Headers */,
</span><del>-                               41F411C31EF8DBF600343C26 /* string_to_number.h in Headers */,
-                               5CD285C81E6A63430094FDC8 /* fft_data.h in Headers */,
</del><span class="cx">                           5CDD8A981E43C00F00621E92 /* fake_decode_from_file.h in Headers */,
</span><span class="cx">                          5C63F7DF1E416288002CA531 /* fakeclock.h in Headers */,
</span><span class="cx">                          5C4B48DF1E42C1E3002651C8 /* fakemediaengine.h in Headers */,
</span><span class="lines">@@ -10319,59 +10349,59 @@
</span><span class="cx">                          5CDD887A1E43BE3C00621E92 /* fec_private_tables_random.h in Headers */,
</span><span class="cx">                          5CDD887C1E43BE3C00621E92 /* fec_test_helper.h in Headers */,
</span><span class="cx">                          5CDD87BB1E43BC0500621E92 /* fft.h in Headers */,
</span><ins>+                               41433D221F79B33400387B4D /* fft.h in Headers */,
</ins><span class="cx">                           5C4B4C671E431F9C002651C8 /* fft4g.h in Headers */,
</span><ins>+                               5CD285C81E6A63430094FDC8 /* fft_data.h in Headers */,
</ins><span class="cx">                           5C63F7E51E416288002CA531 /* file.h in Headers */,
</span><span class="cx">                          5C11A0221E457578004F0987 /* file_audio_device.h in Headers */,
</span><span class="cx">                          5C11A0201E457578004F0987 /* file_audio_device_factory.h in Headers */,
</span><ins>+                               5CD286081E6A64840094FDC8 /* file_player.h in Headers */,
+                               5CD2860A1E6A64840094FDC8 /* file_recorder.h in Headers */,
</ins><span class="cx">                           5CDD8C8C1E43C66000621E92 /* file_utils.h in Headers */,
</span><span class="cx">                          5C63F7E71E416288002CA531 /* filerotatingstream.h in Headers */,
</span><span class="cx">                          5C63F7EA1E416288002CA531 /* fileutils.h in Headers */,
</span><ins>+                               41433CED1F79B33400387B4D /* filterbank_internal.h in Headers */,
+                               41433D0D1F79B33400387B4D /* filterbank_tables.h in Headers */,
</ins><span class="cx">                           5CDD87BE1E43BC0500621E92 /* filterbank_tables.h in Headers */,
</span><span class="cx">                          5CDD8BA11E43C2B500621E92 /* filtered_cb_vecs.h in Headers */,
</span><del>-                               41433D281F79B33400387B4D /* lpc_tables.h in Headers */,
-                               5CD286251E6A666D0094FDC8 /* videodecodersoftwarefallbackwrapper.h in Headers */,
-                               41F411BB1EF8DA9600343C26 /* rtc_event_log_factory.h in Headers */,
</del><span class="cx">                           5C11A0041E457400004F0987 /* fine_audio_buffer.h in Headers */,
</span><span class="cx">                          5CDD89511E43BF3A00621E92 /* fir.h in Headers */,
</span><del>-                               413092281EF8D6E600757C55 /* builtin_audio_encoder_factory.h in Headers */,
</del><span class="cx">                           5C4B4C6E1E431F9C002651C8 /* fir_filter.h in Headers */,
</span><span class="cx">                          5C4B4C6B1E431F9C002651C8 /* fir_filter_sse.h in Headers */,
</span><del>-                               4145E4E61EF8CD7D00FCF6E6 /* callfactory.h in Headers */,
-                               41433D241F79B33400387B4D /* bandwidth_estimator.h in Headers */,
</del><span class="cx">                           5C63F7EC1E416288002CA531 /* firewallsocketserver.h in Headers */,
</span><span class="cx">                          5C63F7EE1E416288002CA531 /* flags.h in Headers */,
</span><span class="cx">                          5CDD887F1E43BE3C00621E92 /* flexfec_header_reader_writer.h in Headers */,
</span><span class="cx">                          5CDD85371E43B39C00621E92 /* flexfec_receive_stream.h in Headers */,
</span><ins>+                               5CD284BA1E6A5F9F0094FDC8 /* flexfec_receive_stream_impl.h in Headers */,
</ins><span class="cx">                           5C63F7EF1E416288002CA531 /* format_macros.h in Headers */,
</span><span class="cx">                          5CDD88891E43BE3C00621E92 /* forward_error_correction.h in Headers */,
</span><span class="cx">                          5CDD88871E43BE3C00621E92 /* forward_error_correction_internal.h in Headers */,
</span><span class="cx">                          5C63F8DD1E416D53002CA531 /* forwards.h in Headers */,
</span><ins>+                               5CD285CA1E6A63430094FDC8 /* frame_blocker.h in Headers */,
</ins><span class="cx">                           5CDD83D01E439A6F00621E92 /* frame_buffer.h in Headers */,
</span><span class="cx">                          5CDD83D21E439A6F00621E92 /* frame_buffer2.h in Headers */,
</span><ins>+                               41109AAF1E5FA19200C0955A /* frame_callback.h in Headers */,
</ins><span class="cx">                           5CDD8BA31E43C2B500621E92 /* frame_classify.h in Headers */,
</span><ins>+                               5CD2849B1E6A5F410094FDC8 /* frame_combiner.h in Headers */,
</ins><span class="cx">                           5CDD837A1E439A3500621E92 /* frame_dropper.h in Headers */,
</span><span class="cx">                          5CDD8F911E43CBE000621E92 /* frame_length_controller.h in Headers */,
</span><span class="cx">                          5CDD83D41E439A6F00621E92 /* frame_object.h in Headers */,
</span><span class="cx">                          5C63F7F01E416288002CA531 /* function_view.h in Headers */,
</span><span class="cx">                          4140B8271E4E3383007409E6 /* g711.h in Headers */,
</span><del>-                               5CD285301E6A61110094FDC8 /* internaldecoderfactory.h in Headers */,
</del><span class="cx">                           4140B8251E4E3383007409E6 /* g711_interface.h in Headers */,
</span><span class="cx">                          4140B8361E4E3396007409E6 /* g722_enc_dec.h in Headers */,
</span><span class="cx">                          4140B8391E4E3396007409E6 /* g722_interface.h in Headers */,
</span><del>-                               5CD285471E6A61D20094FDC8 /* audio_format.h in Headers */,
</del><span class="cx">                           5CDD90211E43CEDE00621E92 /* gain_applier.h in Headers */,
</span><span class="cx">                          5CDD86F01E43BA6D00621E92 /* gain_control.h in Headers */,
</span><span class="cx">                          5CDD84B31E43AF1300621E92 /* gain_control_for_experimental_agc.h in Headers */,
</span><span class="cx">                          5CDD84B51E43AF1300621E92 /* gain_control_impl.h in Headers */,
</span><ins>+                               413092201EF8D6A200757C55 /* gain_controller2.h in Headers */,
</ins><span class="cx">                           5CDD8BA51E43C2B500621E92 /* gain_dequant.h in Headers */,
</span><span class="cx">                          5CDD87031E43BA7500621E92 /* gain_map_internal.h in Headers */,
</span><span class="cx">                          5CDD8BA71E43C2B500621E92 /* gain_quant.h in Headers */,
</span><del>-                               5CD285431E6A61D20094FDC8 /* audio_decoder_factory.h in Headers */,
</del><span class="cx">                           5CDD90231E43CEDE00621E92 /* gain_selector.h in Headers */,
</span><del>-                               5CD285081E6A60570094FDC8 /* rtcstatscollector.h in Headers */,
</del><span class="cx">                           5CDD83D61E439A6F00621E92 /* generic_decoder.h in Headers */,
</span><span class="cx">                          5CDD83D81E439A6F00621E92 /* generic_encoder.h in Headers */,
</span><del>-                               5CD285AF1E6A63430094FDC8 /* block_processor_metrics.h in Headers */,
</del><span class="cx">                           5CDD8BA91E43C2B500621E92 /* get_cd_vec.h in Headers */,
</span><span class="cx">                          5CDD8BAB1E43C2B500621E92 /* get_lsp_poly.h in Headers */,
</span><span class="cx">                          5CDD8BAD1E43C2B500621E92 /* get_sync_seq.h in Headers */,
</span><span class="lines">@@ -10379,24 +10409,23 @@
</span><span class="cx">                          5C63F7F11E416288002CA531 /* gtest_prod_util.h in Headers */,
</span><span class="cx">                          5C63F7F31E416288002CA531 /* gunit.h in Headers */,
</span><span class="cx">                          5C63F7F21E416288002CA531 /* gunit_prod.h in Headers */,
</span><del>-                               41433CF01F79B33400387B4D /* structs.h in Headers */,
-                               5CD285C31E6A63430094FDC8 /* erl_estimator.h in Headers */,
-                               5CD285E01E6A63430094FDC8 /* shadow_filter_update_gain.h in Headers */,
</del><span class="cx">                           5CDD83551E43257200621E92 /* h264_bitstream_parser.h in Headers */,
</span><span class="cx">                          5CDD83571E43257200621E92 /* h264_common.h in Headers */,
</span><ins>+                               4145E4BE1EF894F600FCF6E6 /* h264_profile_level_id.h in Headers */,
+                               5CD285EB1E6A639F0094FDC8 /* h264_sprop_parameter_sets.h in Headers */,
</ins><span class="cx">                           5CDD83DA1E439A6F00621E92 /* h264_sps_pps_tracker.h in Headers */,
</span><span class="cx">                          5C63F7F51E416288002CA531 /* helpers.h in Headers */,
</span><span class="cx">                          5CDD83DC1E439A6F00621E92 /* histogram.h in Headers */,
</span><span class="cx">                          5CDD8BAF1E43C2B500621E92 /* hp_input.h in Headers */,
</span><del>-                               5CD285BF1E6A63430094FDC8 /* echo_remover_metrics.h in Headers */,
</del><span class="cx">                           5CDD8BB11E43C2B500621E92 /* hp_output.h in Headers */,
</span><del>-                               413092121EF8D51100757C55 /* aec_dump.h in Headers */,
</del><ins>+                                412455531EF887B700F11809 /* httpcommon.h in Headers */,
+                               5CD284681E6A57F40094FDC8 /* i420_buffer.h in Headers */,
+                               41109AAD1E5FA19200C0955A /* i420_buffer_pool.h in Headers */,
+                               413091F71EF8CFBD00757C55 /* iceserverparsing.h in Headers */,
</ins><span class="cx">                           5C63F8021E416288002CA531 /* ifaddrs_converter.h in Headers */,
</span><span class="cx">                          5C63F8051E416288002CA531 /* ignore_wundef.h in Headers */,
</span><del>-                               41109AAE1E5FA19200C0955A /* video_frame_buffer.h in Headers */,
</del><span class="cx">                           5CDD8BB41E43C2B500621E92 /* ilbc.h in Headers */,
</span><del>-                               5CD285F71E6A63F60094FDC8 /* smoothing_filter.h in Headers */,
-                               5CD285451E6A61D20094FDC8 /* audio_decoder.h in Headers */,
</del><ins>+                                41109AB11E5FA19200C0955A /* incoming_video_stream.h in Headers */,
</ins><span class="cx">                           5CDD8BB61E43C2B500621E92 /* index_conv_dec.h in Headers */,
</span><span class="cx">                          5CDD8BB81E43C2B500621E92 /* index_conv_enc.h in Headers */,
</span><span class="cx">                          5CDD8BBA1E43C2B500621E92 /* init_decode.h in Headers */,
</span><span class="lines">@@ -10404,12 +10433,14 @@
</span><span class="cx">                          5CDD8A9B1E43C00F00621E92 /* input_audio_file.h in Headers */,
</span><span class="cx">                          5C08852F1E4A99D200403995 /* integers.h in Headers */,
</span><span class="cx">                          5CDD8FD61E43CD6600621E92 /* inter_arrival.h in Headers */,
</span><del>-                               5CD2855E1E6A62ED0094FDC8 /* low_cut_filter.h in Headers */,
</del><span class="cx">                           5CDD83DE1E439A6F00621E92 /* inter_frame_delay.h in Headers */,
</span><span class="cx">                          5CDD83DF1E439A6F00621E92 /* internal_defines.h in Headers */,
</span><ins>+                               5CD285301E6A61110094FDC8 /* internaldecoderfactory.h in Headers */,
+                               5CD285321E6A61110094FDC8 /* internalencoderfactory.h in Headers */,
</ins><span class="cx">                           5CDD8BC01E43C2B500621E92 /* interpolate.h in Headers */,
</span><span class="cx">                          5CDD8BBE1E43C2B500621E92 /* interpolate_samples.h in Headers */,
</span><span class="cx">                          5C63F8071E416288002CA531 /* ipaddress.h in Headers */,
</span><ins>+                               41433CFF1F79B33400387B4D /* isac_fix_type.h in Headers */,
</ins><span class="cx">                           5CDD87C11E43BC0500621E92 /* isac_float_type.h in Headers */,
</span><span class="cx">                          5CDD837C1E439A3500621E92 /* ivf_file_writer.h in Headers */,
</span><span class="cx">                          5CDD83E21E439A6F00621E92 /* jitter_buffer.h in Headers */,
</span><span class="lines">@@ -10417,32 +10448,31 @@
</span><span class="cx">                          5CDD83E41E439A6F00621E92 /* jitter_estimator.h in Headers */,
</span><span class="cx">                          5C63F9411E41737B002CA531 /* jsep.h in Headers */,
</span><span class="cx">                          5C63F9431E41737B002CA531 /* jsepicecandidate.h in Headers */,
</span><del>-                               41433CF31F79B33400387B4D /* codec.h in Headers */,
</del><span class="cx">                           5C63F9451E41737B002CA531 /* jsepsessiondescription.h in Headers */,
</span><ins>+                               5CD284701E6A5C250094FDC8 /* jseptransport.h in Headers */,
</ins><span class="cx">                           5C63F8091E416288002CA531 /* json.h in Headers */,
</span><span class="cx">                          5C63F8DE1E416D53002CA531 /* json.h in Headers */,
</span><span class="cx">                          5C63F80A1E416288002CA531 /* keep_ref_until_done.h in Headers */,
</span><span class="cx">                          5C0885301E4A99D200403995 /* key.h in Headers */,
</span><span class="cx">                          5C4B4C711E431F9C002651C8 /* lapped_transform.h in Headers */,
</span><del>-                               413092291EF8D6E600757C55 /* builtin_audio_encoder_factory_internal.h in Headers */,
-                               41433CFF1F79B33400387B4D /* isac_fix_type.h in Headers */,
</del><span class="cx">                           5CDD84201E439B2900621E92 /* legacy_encoded_audio_frame.h in Headers */,
</span><span class="cx">                          5CDD90281E43CEDE00621E92 /* level_controller.h in Headers */,
</span><del>-                               41109AB11E5FA19200C0955A /* incoming_video_stream.h in Headers */,
-                               5CD2850E1E6A60570094FDC8 /* sctputils.h in Headers */,
-                               5CD286061E6A64840094FDC8 /* coder.h in Headers */,
</del><span class="cx">                           5CDD90251E43CEDE00621E92 /* level_controller_constants.h in Headers */,
</span><span class="cx">                          5CDD84B91E43AF1300621E92 /* level_estimator_impl.h in Headers */,
</span><ins>+                               5CD284F71E6A60570094FDC8 /* localaudiosource.h in Headers */,
</ins><span class="cx">                           5C63F80D1E416288002CA531 /* location.h in Headers */,
</span><span class="cx">                          5CDD8C101E43C34600621E92 /* locked_bandwidth_info.h in Headers */,
</span><span class="cx">                          5C63F8101E416288002CA531 /* logging.h in Headers */,
</span><span class="cx">                          5C63F8121E416288002CA531 /* logsinks.h in Headers */,
</span><span class="cx">                          5CDD87061E43BA7500621E92 /* loudness_histogram.h in Headers */,
</span><ins>+                               5CD2855E1E6A62ED0094FDC8 /* low_cut_filter.h in Headers */,
</ins><span class="cx">                           5CDD87C61E43BC0500621E92 /* lpc_analysis.h in Headers */,
</span><span class="cx">                          5CDD8BC21E43C2B500621E92 /* lpc_encode.h in Headers */,
</span><span class="cx">                          5CDD87C81E43BC0500621E92 /* lpc_gain_swb_tables.h in Headers */,
</span><ins>+                               41433D181F79B33400387B4D /* lpc_masking_model.h in Headers */,
</ins><span class="cx">                           5CDD87CA1E43BC0500621E92 /* lpc_shape_swb12_tables.h in Headers */,
</span><span class="cx">                          5CDD87CC1E43BC0500621E92 /* lpc_shape_swb16_tables.h in Headers */,
</span><ins>+                               41433D281F79B33400387B4D /* lpc_tables.h in Headers */,
</ins><span class="cx">                           5CDD87CE1E43BC0500621E92 /* lpc_tables.h in Headers */,
</span><span class="cx">                          5CDD8BC41E43C2B500621E92 /* lsf_check.h in Headers */,
</span><span class="cx">                          5CDD8BC61E43C2B500621E92 /* lsf_interpolate_to_poly_dec.h in Headers */,
</span><span class="lines">@@ -10451,18 +10481,17 @@
</span><span class="cx">                          5CDD8BCC1E43C2B500621E92 /* lsf_to_poly.h in Headers */,
</span><span class="cx">                          5CDD8BCE1E43C2B500621E92 /* lsp_to_lsf.h in Headers */,
</span><span class="cx">                          5C63F8181E416288002CA531 /* macutils.h in Headers */,
</span><del>-                               41109AB01E5FA19200C0955A /* bitrate_adjuster.h in Headers */,
-                               5CD285EB1E6A639F0094FDC8 /* h264_sprop_parameter_sets.h in Headers */,
</del><ins>+                                5CD285CC1E6A63430094FDC8 /* main_filter_update_gain.h in Headers */,
+                               5CD285D01E6A63430094FDC8 /* matched_filter.h in Headers */,
+                               5CD285CE1E6A63430094FDC8 /* matched_filter_lag_aggregator.h in Headers */,
</ins><span class="cx">                           5C63F81B1E416288002CA531 /* mathutils.h in Headers */,
</span><span class="cx">                          5CDD907E1E43D15C00621E92 /* matrix.h in Headers */,
</span><span class="cx">                          5C63F81D1E416288002CA531 /* md5.h in Headers */,
</span><del>-                               413092211EF8D6A200757C55 /* digital_gain_applier.h in Headers */,
</del><span class="cx">                           5C63F81F1E416288002CA531 /* md5digest.h in Headers */,
</span><span class="cx">                          5CDD86A51E43B99400621E92 /* mean_variance_estimator.h in Headers */,
</span><span class="cx">                          5CDD876C1E43BB3000621E92 /* media_file.h in Headers */,
</span><span class="cx">                          5CDD87671E43BB3000621E92 /* media_file_defines.h in Headers */,
</span><span class="cx">                          5CDD87691E43BB3000621E92 /* media_file_impl.h in Headers */,
</span><del>-                               5CD285D61E6A63430094FDC8 /* render_delay_buffer.h in Headers */,
</del><span class="cx">                           5CDD876B1E43BB3000621E92 /* media_file_utility.h in Headers */,
</span><span class="cx">                          5CDD83E61E439A6F00621E92 /* media_opt_util.h in Headers */,
</span><span class="cx">                          5CDD83E81E439A6F00621E92 /* media_optimization.h in Headers */,
</span><span class="lines">@@ -10469,13 +10498,17 @@
</span><span class="cx">                          5C4B48E51E42C1E3002651C8 /* mediachannel.h in Headers */,
</span><span class="cx">                          5C4B48E71E42C1E3002651C8 /* mediaconstants.h in Headers */,
</span><span class="cx">                          5C63F9491E41737B002CA531 /* mediaconstraintsinterface.h in Headers */,
</span><del>-                               5CD285D21E6A63430094FDC8 /* output_selector.h in Headers */,
</del><span class="cx">                           5C4B48E91E42C1E3002651C8 /* mediaengine.h in Headers */,
</span><ins>+                               5CD2861D1E6A66380094FDC8 /* median_slope_estimator.h in Headers */,
</ins><span class="cx">                           5C63F94D1E41737B002CA531 /* mediastream.h in Headers */,
</span><ins>+                               5CD284FB1E6A60570094FDC8 /* mediastream.h in Headers */,
</ins><span class="cx">                           5C63F94E1E41737B002CA531 /* mediastreaminterface.h in Headers */,
</span><ins>+                               5CD284FD1E6A60570094FDC8 /* mediastreamobserver.h in Headers */,
</ins><span class="cx">                           5C63F9511E41737B002CA531 /* mediastreamproxy.h in Headers */,
</span><span class="cx">                          5C63F9521E41737B002CA531 /* mediastreamtrack.h in Headers */,
</span><ins>+                               5CD284FE1E6A60570094FDC8 /* mediastreamtrack.h in Headers */,
</ins><span class="cx">                           5C63F9531E41737B002CA531 /* mediastreamtrackproxy.h in Headers */,
</span><ins>+                               5CD286331E6A67BF0094FDC8 /* mediatypes.h in Headers */,
</ins><span class="cx">                           5CDD87F61E43BDED00621E92 /* memory_pool.h in Headers */,
</span><span class="cx">                          5CDD87F51E43BDED00621E92 /* memory_pool_posix.h in Headers */,
</span><span class="cx">                          5CDD8A301E43BFB300621E92 /* merge.h in Headers */,
</span><span class="lines">@@ -10485,35 +10518,31 @@
</span><span class="cx">                          5CDD87071E43BA7500621E92 /* mock_agc.h in Headers */,
</span><span class="cx">                          5C11A0051E457400004F0987 /* mock_audio_device_buffer.h in Headers */,
</span><span class="cx">                          5CDD8FED1E43CDCA00621E92 /* mock_audio_processing.h in Headers */,
</span><del>-                               4130920A1EF8D11200757C55 /* qp_parser.h in Headers */,
</del><span class="cx">                           5CDD907F1E43D15C00621E92 /* mock_nonlinear_beamformer.h in Headers */,
</span><span class="cx">                          5C63F8261E416288002CA531 /* mod_ops.h in Headers */,
</span><span class="cx">                          5CDD84621E43AE2900621E92 /* monitor_module.h in Headers */,
</span><span class="cx">                          5CDD837E1E439A3500621E92 /* moving_average.h in Headers */,
</span><del>-                               5CD284981E6A5F410094FDC8 /* default_output_rate_calculator.h in Headers */,
</del><ins>+                                5CD286111E6A64C90094FDC8 /* moving_max.h in Headers */,
</ins><span class="cx">                           5CDD8C8F1E43C66000621E92 /* moving_moments.h in Headers */,
</span><span class="cx">                          5CDD8BD01E43C2B500621E92 /* my_corr.h in Headers */,
</span><del>-                               4145E4C81EF896D700FCF6E6 /* rtcstats.h in Headers */,
</del><span class="cx">                           5CDD89541E43BF3A00621E92 /* nack.h in Headers */,
</span><span class="cx">                          5CDD83E91E439A6F00621E92 /* nack_fec_tables.h in Headers */,
</span><span class="cx">                          5CDD83EB1E439A6F00621E92 /* nack_module.h in Headers */,
</span><span class="cx">                          5CDD8A331E43BFB300621E92 /* nack_tracker.h in Headers */,
</span><ins>+                               4145E4B71EF8943E00FCF6E6 /* nalu_rewriter.h in Headers */,
</ins><span class="cx">                           5C63F8291E416288002CA531 /* natserver.h in Headers */,
</span><del>-                               5CD284FB1E6A60570094FDC8 /* mediastream.h in Headers */,
</del><span class="cx">                           5C63F82B1E416288002CA531 /* natsocketfactory.h in Headers */,
</span><span class="cx">                          5C63F82D1E416288002CA531 /* nattypes.h in Headers */,
</span><span class="cx">                          5CDD8BD21E43C2B500621E92 /* nearest_neighbor.h in Headers */,
</span><ins>+                               5CD285EF1E6A63D20094FDC8 /* neteq_decoder_enum.h in Headers */,
</ins><span class="cx">                           5CDD8A371E43BFB300621E92 /* neteq_impl.h in Headers */,
</span><span class="cx">                          5CDD8A9E1E43C00F00621E92 /* neteq_input.h in Headers */,
</span><del>-                               4130920E1EF8D40100757C55 /* transport_feedback_packet_loss_tracker.h in Headers */,
</del><span class="cx">                           5CDD8AA61E43C00F00621E92 /* neteq_replacement_input.h in Headers */,
</span><span class="cx">                          5C63F82F1E416288002CA531 /* nethelpers.h in Headers */,
</span><span class="cx">                          5C63F8311E416288002CA531 /* network.h in Headers */,
</span><span class="cx">                          5C63F8331E416288002CA531 /* networkmonitor.h in Headers */,
</span><span class="cx">                          5C63F8341E416288002CA531 /* networkroute.h in Headers */,
</span><del>-                               5CD284FE1E6A60570094FDC8 /* mediastreamtrack.h in Headers */,
</del><span class="cx">                           5CDD872B1E43BABE00621E92 /* noise_gmm_tables.h in Headers */,
</span><del>-                               5CD285131E6A60570094FDC8 /* trackmediainfomap.h in Headers */,
</del><span class="cx">                           5CDD902A1E43CEDE00621E92 /* noise_level_estimator.h in Headers */,
</span><span class="cx">                          5CDD902C1E43CEDE00621E92 /* noise_spectrum_estimator.h in Headers */,
</span><span class="cx">                          5CDD85FF1E43B84E00621E92 /* noise_suppression.h in Headers */,
</span><span class="lines">@@ -10525,25 +10554,19 @@
</span><span class="cx">                          5C63F9541E41737B002CA531 /* notifier.h in Headers */,
</span><span class="cx">                          5CDD86011E43B84E00621E92 /* ns_core.h in Headers */,
</span><span class="cx">                          5CDD86061E43B84E00621E92 /* nsx_core.h in Headers */,
</span><del>-                               5CD285551E6A62410094FDC8 /* percentile_filter.h in Headers */,
-                               5CD285331E6A61110094FDC8 /* nullwebrtcvideoengine.h in Headers */,
</del><span class="cx">                           5CDD86071E43B84E00621E92 /* nsx_defines.h in Headers */,
</span><span class="cx">                          5C0885311E4A99D200403995 /* null_auth.h in Headers */,
</span><del>-                               41433CF11F79B33400387B4D /* pitch_estimator.h in Headers */,
</del><span class="cx">                           5C0885321E4A99D200403995 /* null_cipher.h in Headers */,
</span><span class="cx">                          5C63F8361E416288002CA531 /* nullsocketserver.h in Headers */,
</span><del>-                               5CD285C11E6A63430094FDC8 /* echo_remover.h in Headers */,
</del><ins>+                                5CD285331E6A61110094FDC8 /* nullwebrtcvideoengine.h in Headers */,
</ins><span class="cx">                           5C63F8371E416288002CA531 /* onetimeevent.h in Headers */,
</span><span class="cx">                          5CDD86951E43B93900621E92 /* ooura_fft.h in Headers */,
</span><span class="cx">                          5CDD86921E43B93900621E92 /* ooura_fft_tables_common.h in Headers */,
</span><span class="cx">                          5C63F8381E416288002CA531 /* openssl.h in Headers */,
</span><del>-                               5CD285B31E6A63430094FDC8 /* cascaded_biquad_filter.h in Headers */,
</del><span class="cx">                           5C63F83A1E416288002CA531 /* openssladapter.h in Headers */,
</span><del>-                               4145E48D1EF88B9D00FCF6E6 /* video_decoder.h in Headers */,
</del><span class="cx">                           5C63F83C1E416288002CA531 /* openssldigest.h in Headers */,
</span><span class="cx">                          5C63F83E1E416288002CA531 /* opensslidentity.h in Headers */,
</span><span class="cx">                          5C63F8401E416288002CA531 /* opensslstreamadapter.h in Headers */,
</span><del>-                               417DA4581EF9CD0D00E869DB /* RTCUIApplicationStatusObserver.h in Headers */,
</del><span class="cx">                           5C63F8431E416288002CA531 /* optional.h in Headers */,
</span><span class="cx">                          5C63F8451E416288002CA531 /* optionsfile.h in Headers */,
</span><span class="cx">                          5CDD8C661E43C60900621E92 /* opus_inst.h in Headers */,
</span><span class="lines">@@ -10551,6 +10574,8 @@
</span><span class="cx">                          5CDD87CF1E43BC0500621E92 /* os_specific_inline.h in Headers */,
</span><span class="cx">                          5CDD8AAA1E43C00F00621E92 /* output_audio_file.h in Headers */,
</span><span class="cx">                          5CDD84641E43AE2900621E92 /* output_mixer.h in Headers */,
</span><ins>+                               5CD2849C1E6A5F410094FDC8 /* output_rate_calculator.h in Headers */,
+                               5CD285D21E6A63430094FDC8 /* output_selector.h in Headers */,
</ins><span class="cx">                           5CDD8AAB1E43C00F00621E92 /* output_wav_file.h in Headers */,
</span><span class="cx">                          5CDD8FD81E43CD6600621E92 /* overuse_detector.h in Headers */,
</span><span class="cx">                          5CDD8FDA1E43CD6600621E92 /* overuse_estimator.h in Headers */,
</span><span class="lines">@@ -10564,13 +10589,12 @@
</span><span class="cx">                          5CDD83EF1E439A6F00621E92 /* packet.h in Headers */,
</span><span class="cx">                          5CDD8AB01E43C00F00621E92 /* packet.h in Headers */,
</span><span class="cx">                          5CDD8A431E43BFB300621E92 /* packet.h in Headers */,
</span><del>-                               5CD285D01E6A63430094FDC8 /* matched_filter.h in Headers */,
</del><span class="cx">                           5CDD8A411E43BFB300621E92 /* packet_buffer.h in Headers */,
</span><del>-                               41433D221F79B33400387B4D /* fft.h in Headers */,
</del><span class="cx">                           5CDD83ED1E439A6F00621E92 /* packet_buffer.h in Headers */,
</span><span class="cx">                          5CDD888D1E43BE3C00621E92 /* packet_loss_stats.h in Headers */,
</span><span class="cx">                          5CDD8FA51E43CCBE00621E92 /* packet_router.h in Headers */,
</span><span class="cx">                          5CDD8AAD1E43C00F00621E92 /* packet_source.h in Headers */,
</span><ins>+                               412455571EF887FB00F11809 /* packetlossestimator.h in Headers */,
</ins><span class="cx">                           5C63F9F41E4174F6002CA531 /* packetsocketfactory.h in Headers */,
</span><span class="cx">                          5C63F9F51E4174F6002CA531 /* packettransportinterface.h in Headers */,
</span><span class="cx">                          5C63F8471E416288002CA531 /* pathutils.h in Headers */,
</span><span class="lines">@@ -10578,20 +10602,24 @@
</span><span class="cx">                          5C4B48841E42C1BA002651C8 /* payload_type_mapper.h in Headers */,
</span><span class="cx">                          5CDD90011E43CE3A00621E92 /* pcm16b.h in Headers */,
</span><span class="cx">                          5CDD902E1E43CEDE00621E92 /* peak_level_estimator.h in Headers */,
</span><ins>+                               5CD285001E6A60570094FDC8 /* peerconnection.h in Headers */,
+                               5CD284801E6A5E740094FDC8 /* peerconnectionfactory.h in Headers */,
</ins><span class="cx">                           5C63F9591E41737B002CA531 /* peerconnectionfactoryproxy.h in Headers */,
</span><span class="cx">                          5C63F95A1E41737B002CA531 /* peerconnectioninterface.h in Headers */,
</span><span class="cx">                          5C63F95B1E41737B002CA531 /* peerconnectionproxy.h in Headers */,
</span><ins>+                               5CD285551E6A62410094FDC8 /* percentile_filter.h in Headers */,
</ins><span class="cx">                           5C63F8491E416288002CA531 /* physicalsocketserver.h in Headers */,
</span><span class="cx">                          5CDD872E1E43BABE00621E92 /* pitch_based_vad.h in Headers */,
</span><ins>+                               41433CF11F79B33400387B4D /* pitch_estimator.h in Headers */,
</ins><span class="cx">                           5CDD87D11E43BC0500621E92 /* pitch_estimator.h in Headers */,
</span><span class="cx">                          5CDD87D41E43BC0600621E92 /* pitch_gain_tables.h in Headers */,
</span><ins>+                               41433D231F79B33400387B4D /* pitch_gain_tables.h in Headers */,
</ins><span class="cx">                           5CDD87311E43BABE00621E92 /* pitch_internal.h in Headers */,
</span><span class="cx">                          5CDD87D61E43BC0600621E92 /* pitch_lag_tables.h in Headers */,
</span><ins>+                               41433D091F79B33400387B4D /* pitch_lag_tables.h in Headers */,
</ins><span class="cx">                           5C63F84B1E416288002CA531 /* platform_file.h in Headers */,
</span><del>-                               4145E4D21EF8CC2000FCF6E6 /* webrtcvideoengine.h in Headers */,
</del><span class="cx">                           5C63F84E1E416288002CA531 /* platform_thread.h in Headers */,
</span><span class="cx">                          5C63F84C1E416288002CA531 /* platform_thread_types.h in Headers */,
</span><del>-                               4145E4C51EF896D700FCF6E6 /* rtcstatscollectorcallback.h in Headers */,
</del><span class="cx">                           5CDD88901E43BE3C00621E92 /* playout_delay_oracle.h in Headers */,
</span><span class="cx">                          5CDD89571E43BF3A00621E92 /* pli.h in Headers */,
</span><span class="cx">                          5CDD87341E43BABE00621E92 /* pole_zero_filter.h in Headers */,
</span><span class="lines">@@ -10599,7 +10627,6 @@
</span><span class="cx">                          5CDD8BD81E43C2B500621E92 /* poly_to_lsp.h in Headers */,
</span><span class="cx">                          5C63F9F81E4174F6002CA531 /* port.h in Headers */,
</span><span class="cx">                          5C63F9FB1E4174F6002CA531 /* portallocator.h in Headers */,
</span><del>-                               5CD285191E6A60570094FDC8 /* videotracksource.h in Headers */,
</del><span class="cx">                           5C63F9FC1E4174F6002CA531 /* portinterface.h in Headers */,
</span><span class="cx">                          5CDD8A461E43BFB300621E92 /* post_decode_vad.h in Headers */,
</span><span class="cx">                          5CDD835A1E43257200621E92 /* pps_parser.h in Headers */,
</span><span class="lines">@@ -10610,29 +10637,23 @@
</span><span class="cx">                          5CDD835D1E43257200621E92 /* profile_level_id.h in Headers */,
</span><span class="cx">                          5CDD83F31E439A6F00621E92 /* protection_bitrate_calculator.h in Headers */,
</span><span class="cx">                          5C63F95D1E41737B002CA531 /* proxy.h in Headers */,
</span><del>-                               41433D231F79B33400387B4D /* pitch_gain_tables.h in Headers */,
</del><span class="cx">                           5C63F8521E416288002CA531 /* proxyinfo.h in Headers */,
</span><del>-                               41433D091F79B33400387B4D /* pitch_lag_tables.h in Headers */,
</del><span class="cx">                           5C63F8541E416288002CA531 /* proxyserver.h in Headers */,
</span><span class="cx">                          5C63F9FF1E4174F6002CA531 /* pseudotcp.h in Headers */,
</span><span class="cx">                          5CDD89591E43BF3A00621E92 /* psfb.h in Headers */,
</span><span class="cx">                          5CDD87561E43BAF500621E92 /* push_sinc_resampler.h in Headers */,
</span><ins>+                               4130920A1EF8D11200757C55 /* qp_parser.h in Headers */,
</ins><span class="cx">                           5CDD83821E439A3500621E92 /* quality_scaler.h in Headers */,
</span><ins>+                               5CD2862B1E6A66C80094FDC8 /* quality_threshold.h in Headers */,
</ins><span class="cx">                           5C63F8561E416288002CA531 /* race_checker.h in Headers */,
</span><span class="cx">                          5C63F8581E416288002CA531 /* random.h in Headers */,
</span><span class="cx">                          5CDD8A4B1E43BFB300621E92 /* random_vector.h in Headers */,
</span><del>-                               41109AAF1E5FA19200C0955A /* frame_callback.h in Headers */,
-                               4145E4B51EF8943E00FCF6E6 /* decoder.h in Headers */,
</del><span class="cx">                           5CDD895C1E43BF3A00621E92 /* rapid_resync_request.h in Headers */,
</span><span class="cx">                          5C63F85A1E416288002CA531 /* rate_limiter.h in Headers */,
</span><span class="cx">                          5C63F85C1E416288002CA531 /* rate_statistics.h in Headers */,
</span><del>-                               5CD2849B1E6A5F410094FDC8 /* frame_combiner.h in Headers */,
</del><span class="cx">                           5C63F85E1E416288002CA531 /* ratelimiter.h in Headers */,
</span><del>-                               5CD285B71E6A63430094FDC8 /* decimator_by_4.h in Headers */,
</del><span class="cx">                           5C63F8601E416288002CA531 /* ratetracker.h in Headers */,
</span><del>-                               5CD2861D1E6A66380094FDC8 /* median_slope_estimator.h in Headers */,
</del><span class="cx">                           5C0885331E4A99D200403995 /* rdb.h in Headers */,
</span><del>-                               4145E4D51EF8CC7600FCF6E6 /* downsampled_render_buffer.h in Headers */,
</del><span class="cx">                           5C0885341E4A99D200403995 /* rdbx.h in Headers */,
</span><span class="cx">                          5C63F8DF1E416D53002CA531 /* reader.h in Headers */,
</span><span class="cx">                          5C4B4C781E431F9C002651C8 /* real_fourier.h in Headers */,
</span><span class="lines">@@ -10645,7 +10666,6 @@
</span><span class="cx">                          5C63F8611E416288002CA531 /* refcount.h in Headers */,
</span><span class="cx">                          5C63F8621E416288002CA531 /* refcountedobject.h in Headers */,
</span><span class="cx">                          5CDD8BDA1E43C2B500621E92 /* refiner.h in Headers */,
</span><del>-                               5CD284F71E6A60570094FDC8 /* localaudiosource.h in Headers */,
</del><span class="cx">                           5C63FA021E4174F6002CA531 /* relayport.h in Headers */,
</span><span class="cx">                          5C63FA051E4174F6002CA531 /* relayserver.h in Headers */,
</span><span class="cx">                          5CDD89621E43BF3A00621E92 /* remb.h in Headers */,
</span><span class="lines">@@ -10652,30 +10672,43 @@
</span><span class="cx">                          5CDD8FDC1E43CD6600621E92 /* remote_bitrate_estimator_abs_send_time.h in Headers */,
</span><span class="cx">                          5CDD8FDE1E43CD6600621E92 /* remote_bitrate_estimator_single_stream.h in Headers */,
</span><span class="cx">                          5CDD8FE21E43CD6600621E92 /* remote_estimator_proxy.h in Headers */,
</span><ins>+                               5CD285061E6A60570094FDC8 /* remoteaudiosource.h in Headers */,
+                               4145E4DA1EF8CC9B00FCF6E6 /* render_buffer.h in Headers */,
+                               5CD285D61E6A63430094FDC8 /* render_delay_buffer.h in Headers */,
+                               5CD285DA1E6A63430094FDC8 /* render_delay_controller.h in Headers */,
+                               5CD285D81E6A63430094FDC8 /* render_delay_controller_metrics.h in Headers */,
</ins><span class="cx">                           5CDD84BC1E43AF1300621E92 /* render_queue_item_verifier.h in Headers */,
</span><ins>+                               5CD285DC1E6A63430094FDC8 /* render_signal_analyzer.h in Headers */,
</ins><span class="cx">                           5CDD85191E43B1EA00621E92 /* rent_a_codec.h in Headers */,
</span><span class="cx">                          5CDD89651E43BF3A00621E92 /* report_block.h in Headers */,
</span><del>-                               4145E4C61EF896D700FCF6E6 /* rtcstatsreport.h in Headers */,
</del><span class="cx">                           5CDD85AF1E43B5C000621E92 /* report_block_stats.h in Headers */,
</span><span class="cx">                          5CDD86651E43B8B500621E92 /* resample_by_2_internal.h in Headers */,
</span><span class="cx">                          5CDD8AB21E43C00F00621E92 /* resample_input_audio_file.h in Headers */,
</span><span class="cx">                          5CDD84BE1E43AF1300621E92 /* residual_echo_detector.h in Headers */,
</span><ins>+                               5CD285DE1E6A63430094FDC8 /* residual_echo_estimator.h in Headers */,
</ins><span class="cx">                           5C4B4C7B1E431F9C002651C8 /* ring_buffer.h in Headers */,
</span><span class="cx">                          5CDD84C01E43AF1300621E92 /* rms_level.h in Headers */,
</span><span class="cx">                          5C63F8631E416288002CA531 /* rollingaccumulator.h in Headers */,
</span><span class="cx">                          5CDD896B1E43BF3A00621E92 /* rrtr.h in Headers */,
</span><span class="cx">                          5CDD904C1E43CF6100621E92 /* rtc_event_log.h in Headers */,
</span><ins>+                               41F411BB1EF8DA9600343C26 /* rtc_event_log_factory.h in Headers */,
+                               41F411BA1EF8DA9600343C26 /* rtc_event_log_factory_interface.h in Headers */,
</ins><span class="cx">                           5CDD90451E43CF6100621E92 /* rtc_event_log_helper_thread.h in Headers */,
</span><span class="cx">                          5C63F8651E416288002CA531 /* rtccertificate.h in Headers */,
</span><del>-                               412455471EF8853300F11809 /* stringize_macros.h in Headers */,
</del><span class="cx">                           5C63F8671E416288002CA531 /* rtccertificategenerator.h in Headers */,
</span><ins>+                               41F411B11EF8DA0200343C26 /* rtcerror.h in Headers */,
</ins><span class="cx">                           5CDD8A501E43BFB300621E92 /* rtcp.h in Headers */,
</span><ins>+                               5CD285FB1E6A64520094FDC8 /* rtcp_nack_stats.h in Headers */,
</ins><span class="cx">                           5CDD88981E43BE3C00621E92 /* rtcp_packet.h in Headers */,
</span><del>-                               413092051EF8D0C900757C55 /* audio_level.h in Headers */,
</del><span class="cx">                           5CDD889B1E43BE3C00621E92 /* rtcp_receiver.h in Headers */,
</span><del>-                               5CD285AB1E6A63430094FDC8 /* aec3_fft.h in Headers */,
</del><span class="cx">                           5CDD889E1E43BE3C00621E92 /* rtcp_sender.h in Headers */,
</span><del>-                               41109AAD1E5FA19200C0955A /* i420_buffer_pool.h in Headers */,
</del><ins>+                                4145E4C81EF896D700FCF6E6 /* rtcstats.h in Headers */,
+                               4145E4C71EF896D700FCF6E6 /* rtcstats_objects.h in Headers */,
+                               5CD285081E6A60570094FDC8 /* rtcstatscollector.h in Headers */,
+                               4145E4C51EF896D700FCF6E6 /* rtcstatscollectorcallback.h in Headers */,
+                               4145E4C61EF896D700FCF6E6 /* rtcstatsreport.h in Headers */,
+                               417DA4581EF9CD0D00E869DB /* RTCUIApplicationStatusObserver.h in Headers */,
+                               413092011EF8D0A600757C55 /* rtp_demuxer.h in Headers */,
</ins><span class="cx">                           5CDD8AB71E43C00F00621E92 /* rtp_file_source.h in Headers */,
</span><span class="cx">                          5CDD88B11E43BE3C00621E92 /* rtp_format.h in Headers */,
</span><span class="cx">                          5CDD88A51E43BE3C00621E92 /* rtp_format_h264.h in Headers */,
</span><span class="lines">@@ -10684,7 +10717,6 @@
</span><span class="cx">                          5CDD88AF1E43BE3C00621E92 /* rtp_format_vp9.h in Headers */,
</span><span class="cx">                          5CDD83F71E439A6F00621E92 /* rtp_frame_reference_finder.h in Headers */,
</span><span class="cx">                          5CDD8AB91E43C00F00621E92 /* rtp_generator.h in Headers */,
</span><del>-                               5CD285151E6A60570094FDC8 /* videocapturertracksource.h in Headers */,
</del><span class="cx">                           5CDD88B61E43BE3C00621E92 /* rtp_header_extensions.h in Headers */,
</span><span class="cx">                          5CDD88BF1E43BE3D00621E92 /* rtp_packet.h in Headers */,
</span><span class="cx">                          5CDD88BA1E43BE3D00621E92 /* rtp_packet_history.h in Headers */,
</span><span class="lines">@@ -10691,46 +10723,43 @@
</span><span class="cx">                          5CDD88BB1E43BE3D00621E92 /* rtp_packet_received.h in Headers */,
</span><span class="cx">                          5CDD88BC1E43BE3D00621E92 /* rtp_packet_to_send.h in Headers */,
</span><span class="cx">                          5CDD88C31E43BE3D00621E92 /* rtp_receiver_audio.h in Headers */,
</span><del>-                               41433D011F79B33400387B4D /* arith_routins.h in Headers */,
</del><span class="cx">                           5CDD88C51E43BE3D00621E92 /* rtp_receiver_impl.h in Headers */,
</span><span class="cx">                          5CDD88C71E43BE3D00621E92 /* rtp_receiver_strategy.h in Headers */,
</span><del>-                               4145E4CE1EF8CB9500FCF6E6 /* rtptransport.h in Headers */,
</del><span class="cx">                           5CDD88C91E43BE3D00621E92 /* rtp_receiver_video.h in Headers */,
</span><span class="cx">                          5CDD88CA1E43BE3D00621E92 /* rtp_rtcp_config.h in Headers */,
</span><del>-                               5CD285CE1E6A63430094FDC8 /* matched_filter_lag_aggregator.h in Headers */,
</del><span class="cx">                           5CDD88CD1E43BE3D00621E92 /* rtp_rtcp_impl.h in Headers */,
</span><span class="cx">                          5CDD88D41E43BE3D00621E92 /* rtp_sender.h in Headers */,
</span><span class="cx">                          5CDD88CF1E43BE3D00621E92 /* rtp_sender_audio.h in Headers */,
</span><span class="cx">                          5CDD88D21E43BE3D00621E92 /* rtp_sender_video.h in Headers */,
</span><span class="cx">                          5CDD85B31E43B5C000621E92 /* rtp_streams_synchronizer.h in Headers */,
</span><del>-                               4145E48E1EF88B9D00FCF6E6 /* video_encoder.h in Headers */,
-                               5CD285E11E6A63430094FDC8 /* subtractor_output.h in Headers */,
</del><ins>+                                413092191EF8D63F00757C55 /* rtp_transport_controller_send.h in Headers */,
+                               4130921A1EF8D63F00757C55 /* rtp_transport_controller_send_interface.h in Headers */,
</ins><span class="cx">                           5CDD88D61E43BE3D00621E92 /* rtp_utility.h in Headers */,
</span><ins>+                               413091F31EF8CF9200757C55 /* rtp_video_stream_receiver.h in Headers */,
</ins><span class="cx">                           5C4B48EC1E42C1E3002651C8 /* rtpdataengine.h in Headers */,
</span><span class="cx">                          5CDD896D1E43BF3A00621E92 /* rtpfb.h in Headers */,
</span><span class="cx">                          5C63F9661E41737B002CA531 /* rtpparameters.h in Headers */,
</span><ins>+                               5CD2850A1E6A60570094FDC8 /* rtpreceiver.h in Headers */,
</ins><span class="cx">                           5C63F9691E41737B002CA531 /* rtpreceiverinterface.h in Headers */,
</span><span class="cx">                          5C63F96B1E41737B002CA531 /* rtpsender.h in Headers */,
</span><ins>+                               5CD2850C1E6A60570094FDC8 /* rtpsender.h in Headers */,
</ins><span class="cx">                           5C63F96C1E41737B002CA531 /* rtpsenderinterface.h in Headers */,
</span><ins>+                               4145E4CE1EF8CB9500FCF6E6 /* rtptransport.h in Headers */,
</ins><span class="cx">                           5C4B48F21E42C1E3002651C8 /* rtputils.h in Headers */,
</span><span class="cx">                          5CDD83F91E439A6F00621E92 /* rtt_filter.h in Headers */,
</span><del>-                               41433D181F79B33400387B4D /* lpc_masking_model.h in Headers */,
</del><span class="cx">                           5C4B4CDF1E4320A9002651C8 /* rw_lock_posix.h in Headers */,
</span><span class="cx">                          5C63F8681E416288002CA531 /* safe_compare.h in Headers */,
</span><span class="cx">                          5C63F86A1E416288002CA531 /* safe_conversions.h in Headers */,
</span><span class="cx">                          5C63F8691E416288002CA531 /* safe_conversions_impl.h in Headers */,
</span><del>-                               5CD285101E6A60570094FDC8 /* statscollector.h in Headers */,
</del><span class="cx">                           5C63F86B1E416288002CA531 /* sanitizer.h in Headers */,
</span><del>-                               4145E4AB1EF8933D00FCF6E6 /* corevideo_frame_buffer.h in Headers */,
</del><span class="cx">                           5CDD90301E43CEDE00621E92 /* saturating_gain_estimator.h in Headers */,
</span><span class="cx">                          5C63F5CC1E414811002CA531 /* scoped_ref_ptr.h in Headers */,
</span><span class="cx">                          5CDD8AD51E43C23900621E92 /* scoped_voe_interface.h in Headers */,
</span><ins>+                               5CD2863D1E6A681C0094FDC8 /* sctptransport.h in Headers */,
+                               5CD2863E1E6A681C0094FDC8 /* sctptransportinternal.h in Headers */,
+                               5CD2850E1E6A60570094FDC8 /* sctputils.h in Headers */,
</ins><span class="cx">                           5CDD89701E43BF3A00621E92 /* sdes.h in Headers */,
</span><span class="cx">                          5CDD85B71E43B5C000621E92 /* send_delay_stats.h in Headers */,
</span><del>-                               5CD284B21E6A5F9F0094FDC8 /* audio_send_stream.h in Headers */,
-                               5CD285D81E6A63430094FDC8 /* render_delay_controller_metrics.h in Headers */,
-                               5CD286331E6A67BF0094FDC8 /* mediatypes.h in Headers */,
-                               413091F71EF8CFBD00757C55 /* iceserverparsing.h in Headers */,
</del><span class="cx">                           5CDD90621E43D11200621E92 /* send_side_bandwidth_estimation.h in Headers */,
</span><span class="cx">                          5CDD85BA1E43B5C000621E92 /* send_statistics_proxy.h in Headers */,
</span><span class="cx">                          5CDD89731E43BF3A00621E92 /* sender_report.h in Headers */,
</span><span class="lines">@@ -10738,29 +10767,21 @@
</span><span class="cx">                          5C63F8721E416288002CA531 /* sequenced_task_checker.h in Headers */,
</span><span class="cx">                          5C63F8701E416288002CA531 /* sequenced_task_checker_impl.h in Headers */,
</span><span class="cx">                          5C63FA071E4174F6002CA531 /* session.h in Headers */,
</span><del>-                               5CD285B91E6A63430094FDC8 /* echo_canceller3.h in Headers */,
</del><span class="cx">                           5CDD83FC1E439A6F00621E92 /* session_info.h in Headers */,
</span><span class="cx">                          5C63FA091E4174F6002CA531 /* sessiondescription.h in Headers */,
</span><ins>+                               41433D081F79B33400387B4D /* settings.h in Headers */,
</ins><span class="cx">                           5CDD87D71E43BC0600621E92 /* settings.h in Headers */,
</span><ins>+                               5CD286451E6A7B420094FDC8 /* sha1.h in Headers */,
</ins><span class="cx">                           5C63F8741E416288002CA531 /* sha1digest.h in Headers */,
</span><del>-                               5CD284B01E6A5F9F0094FDC8 /* audio_receive_stream.h in Headers */,
-                               5CD2846B1E6A57F40094FDC8 /* video_frame.h in Headers */,
-                               5CD285DE1E6A63430094FDC8 /* residual_echo_estimator.h in Headers */,
</del><ins>+                                5CD285E01E6A63430094FDC8 /* shadow_filter_update_gain.h in Headers */,
</ins><span class="cx">                           5CDD84661E43AE2900621E92 /* shared_data.h in Headers */,
</span><span class="cx">                          5CDD90321E43CEDE00621E92 /* signal_classifier.h in Headers */,
</span><del>-                               5CD2850C1E6A60570094FDC8 /* rtpsender.h in Headers */,
-                               5CD285B51E6A63430094FDC8 /* comfort_noise_generator.h in Headers */,
</del><span class="cx">                           5C63F8781E416288002CA531 /* signalthread.h in Headers */,
</span><del>-                               413092011EF8D0A600757C55 /* rtp_demuxer.h in Headers */,
</del><span class="cx">                           5C63F87A1E416288002CA531 /* sigslot.h in Headers */,
</span><del>-                               5CD284691E6A57F40094FDC8 /* video_frame_buffer.h in Headers */,
</del><span class="cx">                           5C63F87C1E416288002CA531 /* sigslottester.h in Headers */,
</span><del>-                               5CD2849C1E6A5F410094FDC8 /* output_rate_calculator.h in Headers */,
</del><span class="cx">                           5CDD8BDC1E43C2B500621E92 /* simple_interpolate_lsf.h in Headers */,
</span><span class="cx">                          5CDD8BDE1E43C2B500621E92 /* simple_lpc_analysis.h in Headers */,
</span><span class="cx">                          5CDD8BE01E43C2B500621E92 /* simple_lsf_dequant.h in Headers */,
</span><del>-                               5CD284681E6A57F40094FDC8 /* i420_buffer.h in Headers */,
-                               5CD285A91E6A63430094FDC8 /* aec3_common.h in Headers */,
</del><span class="cx">                           5CDD8BE21E43C2B500621E92 /* simple_lsf_quant.h in Headers */,
</span><span class="cx">                          5C4B48871E42C1BA002651C8 /* simulcast.h in Headers */,
</span><span class="cx">                          5CDD875D1E43BAF500621E92 /* sinc_resampler.h in Headers */,
</span><span class="lines">@@ -10767,7 +10788,7 @@
</span><span class="cx">                          5CDD875F1E43BAF500621E92 /* sinusoidal_linear_chirp_source.h in Headers */,
</span><span class="cx">                          5CDD8BE61E43C2B500621E92 /* smooth.h in Headers */,
</span><span class="cx">                          5CDD8BE41E43C2B500621E92 /* smooth_out_data.h in Headers */,
</span><del>-                               5CD285061E6A60570094FDC8 /* remoteaudiosource.h in Headers */,
</del><ins>+                                5CD285F71E6A63F60094FDC8 /* smoothing_filter.h in Headers */,
</ins><span class="cx">                           5C63F87F1E416288002CA531 /* socket.h in Headers */,
</span><span class="cx">                          5C63F8811E416288002CA531 /* socketadapters.h in Headers */,
</span><span class="cx">                          5C63F8831E416288002CA531 /* socketaddress.h in Headers */,
</span><span class="lines">@@ -10775,11 +10796,11 @@
</span><span class="cx">                          5C63F8861E416288002CA531 /* socketfactory.h in Headers */,
</span><span class="cx">                          5C4B4D0C1E4322F6002651C8 /* socketmonitor.h in Headers */,
</span><span class="cx">                          5C63F8891E416288002CA531 /* socketserver.h in Headers */,
</span><del>-                               5CD2850A1E6A60570094FDC8 /* rtpreceiver.h in Headers */,
</del><span class="cx">                           5C63F88B1E416288002CA531 /* socketstream.h in Headers */,
</span><span class="cx">                          5CDD8BE81E43C2B500621E92 /* sort_sq.h in Headers */,
</span><span class="cx">                          5C4B4C7E1E431F9C002651C8 /* sparse_fir_filter.h in Headers */,
</span><span class="cx">                          5CDD87D91E43BC0600621E92 /* spectrum_ar_model_tables.h in Headers */,
</span><ins>+                               41433CEF1F79B33400387B4D /* spectrum_ar_model_tables.h in Headers */,
</ins><span class="cx">                           5CDD8BEA1E43C2B500621E92 /* split_vq.h in Headers */,
</span><span class="cx">                          5CDD84C21E43AF1300621E92 /* splitting_filter.h in Headers */,
</span><span class="cx">                          5CDD83601E43257200621E92 /* sps_parser.h in Headers */,
</span><span class="lines">@@ -10796,31 +10817,34 @@
</span><span class="cx">                          5CDD84681E43AE2900621E92 /* statistics.h in Headers */,
</span><span class="cx">                          5CDD8A521E43BFB300621E92 /* statistics_calculator.h in Headers */,
</span><span class="cx">                          5CDD85BD1E43B5C000621E92 /* stats_counter.h in Headers */,
</span><del>-                               5CD2854E1E6A62130094FDC8 /* audio_frame_operations.h in Headers */,
-                               41F411B11EF8DA0200343C26 /* rtcerror.h in Headers */,
</del><ins>+                                5CD285101E6A60570094FDC8 /* statscollector.h in Headers */,
</ins><span class="cx">                           5C63F9731E41737B002CA531 /* statstypes.h in Headers */,
</span><span class="cx">                          5C63F8991E416288002CA531 /* stream.h in Headers */,
</span><span class="cx">                          5CDD85C01E43B5C000621E92 /* stream_synchronization.h in Headers */,
</span><ins>+                               5CD285111E6A60570094FDC8 /* streamcollection.h in Headers */,
</ins><span class="cx">                           5C63F9741E41737B002CA531 /* streamcollection.h in Headers */,
</span><span class="cx">                          5C4B48F51E42C1E3002651C8 /* streamparams.h in Headers */,
</span><ins>+                               41F411C31EF8DBF600343C26 /* string_to_number.h in Headers */,
</ins><span class="cx">                           5C63F89B1E416288002CA531 /* stringencode.h in Headers */,
</span><ins>+                               412455471EF8853300F11809 /* stringize_macros.h in Headers */,
</ins><span class="cx">                           5C63F89D1E416288002CA531 /* stringutils.h in Headers */,
</span><ins>+                               41433CF01F79B33400387B4D /* structs.h in Headers */,
</ins><span class="cx">                           5CDD87DA1E43BC0600621E92 /* structs.h in Headers */,
</span><span class="cx">                          5C63FA0C1E4174F6002CA531 /* stun.h in Headers */,
</span><span class="cx">                          5C63FA0F1E4174F6002CA531 /* stunport.h in Headers */,
</span><span class="cx">                          5C63FA121E4174F6002CA531 /* stunrequest.h in Headers */,
</span><span class="cx">                          5C63FA151E4174F6002CA531 /* stunserver.h in Headers */,
</span><ins>+                               5CD285E31E6A63430094FDC8 /* subtractor.h in Headers */,
+                               5CD285E11E6A63430094FDC8 /* subtractor_output.h in Headers */,
+                               5CD285E51E6A63430094FDC8 /* suppression_filter.h in Headers */,
+                               5CD285E71E6A63430094FDC8 /* suppression_gain.h in Headers */,
</ins><span class="cx">                           5CDD8BF01E43C2B500621E92 /* swap_bytes.h in Headers */,
</span><del>-                               5CD284F31E6A60570094FDC8 /* datachannel.h in Headers */,
-                               5CD2863E1E6A681C0094FDC8 /* sctptransportinternal.h in Headers */,
-                               5CD286371E6A67D80094FDC8 /* audio_transport_proxy.h in Headers */,
</del><span class="cx">                           5C63F89E1E416288002CA531 /* swap_queue.h in Headers */,
</span><span class="cx">                          5CDD8A551E43BFB300621E92 /* sync_buffer.h in Headers */,
</span><ins>+                               5CD284BF1E6A5F9F0094FDC8 /* syncable.h in Headers */,
</ins><span class="cx">                           5CDD89791E43BF3A00621E92 /* target_bitrate.h in Headers */,
</span><span class="cx">                          5C63F8A61E416288002CA531 /* task_queue.h in Headers */,
</span><span class="cx">                          5C63F8A41E416288002CA531 /* task_queue_posix.h in Headers */,
</span><del>-                               5CD285CC1E6A63430094FDC8 /* main_filter_update_gain.h in Headers */,
-                               5CD284701E6A5C250094FDC8 /* jseptransport.h in Headers */,
</del><span class="cx">                           5C63FA181E4174F6002CA531 /* tcpport.h in Headers */,
</span><span class="cx">                          5C63F8AD1E416288002CA531 /* template_util.h in Headers */,
</span><span class="cx">                          5C63F8AE1E416288002CA531 /* testbase64.h in Headers */,
</span><span class="lines">@@ -10842,7 +10866,6 @@
</span><span class="cx">                          5C63F8B81E416288002CA531 /* timedelta.h in Headers */,
</span><span class="cx">                          5CDD83FE1E439A6F00621E92 /* timestamp_map.h in Headers */,
</span><span class="cx">                          5CDD8A5E1E43BFB300621E92 /* timestamp_scaler.h in Headers */,
</span><del>-                               5CD284801E6A5E740094FDC8 /* peerconnectionfactory.h in Headers */,
</del><span class="cx">                           5C63F8BA1E416288002CA531 /* timestampaligner.h in Headers */,
</span><span class="cx">                          5C63F8BC1E416288002CA531 /* timeutils.h in Headers */,
</span><span class="cx">                          5CDD84001E439A6F00621E92 /* timing.h in Headers */,
</span><span class="lines">@@ -10850,49 +10873,41 @@
</span><span class="cx">                          5CDD897E1E43BF3A00621E92 /* tmmbn.h in Headers */,
</span><span class="cx">                          5CDD89811E43BF3A00621E92 /* tmmbr.h in Headers */,
</span><span class="cx">                          5CDD88DD1E43BE3D00621E92 /* tmmbr_help.h in Headers */,
</span><del>-                               5CD285171E6A60570094FDC8 /* videotrack.h in Headers */,
</del><span class="cx">                           5C63F8BD1E416288002CA531 /* trace_event.h in Headers */,
</span><span class="cx">                          5C4B4CEB1E4320A9002651C8 /* trace_impl.h in Headers */,
</span><span class="cx">                          5C4B4CED1E4320A9002651C8 /* trace_posix.h in Headers */,
</span><ins>+                               5CD285131E6A60570094FDC8 /* trackmediainfomap.h in Headers */,
</ins><span class="cx">                           5C63F8BF1E416288002CA531 /* transformadapter.h in Headers */,
</span><span class="cx">                          5CDD8C921E43C66000621E92 /* transient_detector.h in Headers */,
</span><del>-                               5CD285E51E6A63430094FDC8 /* suppression_filter.h in Headers */,
</del><span class="cx">                           5CDD8C961E43C66000621E92 /* transient_suppressor.h in Headers */,
</span><del>-                               4145E4BE1EF894F600FCF6E6 /* h264_profile_level_id.h in Headers */,
</del><span class="cx">                           5CDD846A1E43AE2900621E92 /* transmit_mixer.h in Headers */,
</span><span class="cx">                          5C63FA1E1E4174F6002CA531 /* transport.h in Headers */,
</span><del>-                               5CD285541E6A62410094FDC8 /* exp_filter.h in Headers */,
</del><span class="cx">                           5CDD85C21E43B5C000621E92 /* transport_adapter.h in Headers */,
</span><span class="cx">                          5CDD89841E43BF3A00621E92 /* transport_feedback.h in Headers */,
</span><span class="cx">                          5CDD8FBC1E43CD0700621E92 /* transport_feedback_adapter.h in Headers */,
</span><ins>+                               4130920E1EF8D40100757C55 /* transport_feedback_packet_loss_tracker.h in Headers */,
+                               5CD2860B1E6A64840094FDC8 /* transport_feedback_packet_loss_tracker.h in Headers */,
</ins><span class="cx">                           5C63FA211E4174F6002CA531 /* transportchannelimpl.h in Headers */,
</span><span class="cx">                          5C63FA241E4174F6002CA531 /* transportcontroller.h in Headers */,
</span><del>-                               4145E4BB1EF8943E00FCF6E6 /* videocodecfactory.h in Headers */,
</del><span class="cx">                           5C63FA261E4174F6002CA531 /* transportdescription.h in Headers */,
</span><del>-                               41F411B51EF8DA4B00343C26 /* acknowledge_bitrate_estimator.h in Headers */,
</del><span class="cx">                           5C63FA291E4174F6002CA531 /* transportdescriptionfactory.h in Headers */,
</span><del>-                               5CD2862F1E6A67970094FDC8 /* builtin_audio_decoder_factory_internal.h in Headers */,
</del><span class="cx">                           5C63FA2A1E4174F6002CA531 /* transportinfo.h in Headers */,
</span><ins>+                               5CD286211E6A66380094FDC8 /* trendline_estimator.h in Headers */,
</ins><span class="cx">                           5C63FA2D1E4174F6002CA531 /* turnport.h in Headers */,
</span><span class="cx">                          5C63FA301E4174F6002CA531 /* turnserver.h in Headers */,
</span><span class="cx">                          5C4B48FA1E42C1E3002651C8 /* turnutils.h in Headers */,
</span><span class="cx">                          5C63F8C01E416288002CA531 /* type_traits.h in Headers */,
</span><del>-                               5CD284B31E6A5F9F0094FDC8 /* audio_state.h in Headers */,
</del><span class="cx">                           5C6CDD501E413598009754E3 /* typedefs.h in Headers */,
</span><span class="cx">                          5CDD84C61E43AF1300621E92 /* typing_detection.h in Headers */,
</span><span class="cx">                          5C63FA311E4174F6002CA531 /* udpport.h in Headers */,
</span><del>-                               5CD2851B1E6A60570094FDC8 /* webrtcsessiondescriptionfactory.h in Headers */,
</del><span class="cx">                           5CDD88E01E43BE3D00621E92 /* ulpfec_generator.h in Headers */,
</span><del>-                               5CD285B11E6A63430094FDC8 /* block_processor.h in Headers */,
</del><span class="cx">                           5CDD88E31E43BE3D00621E92 /* ulpfec_header_reader_writer.h in Headers */,
</span><span class="cx">                          5CDD88E51E43BE3D00621E92 /* ulpfec_receiver_impl.h in Headers */,
</span><span class="cx">                          5C63F9751E41737B002CA531 /* umametrics.h in Headers */,
</span><del>-                               5CD286451E6A7B420094FDC8 /* sha1.h in Headers */,
</del><span class="cx">                           5C63F8C31E416288002CA531 /* unixfilesystem.h in Headers */,
</span><span class="cx">                          5CDD8BF21E43C2B500621E92 /* unpack_bits.h in Headers */,
</span><span class="cx">                          5CDD87091E43BA7500621E92 /* utility.h in Headers */,
</span><span class="cx">                          5CDD846C1E43AE2900621E92 /* utility.h in Headers */,
</span><del>-                               5CD284961E6A5F410094FDC8 /* audio_mixer_impl.h in Headers */,
</del><span class="cx">                           5CDD87DF1E43BC2E00621E92 /* utility.h in Headers */,
</span><span class="cx">                          5CDD873B1E43BABE00621E92 /* vad_audio_proc.h in Headers */,
</span><span class="cx">                          5CDD87381E43BABE00621E92 /* vad_audio_proc_internal.h in Headers */,
</span><span class="lines">@@ -10900,16 +10915,19 @@
</span><span class="cx">                          5CDD86D71E43BA2800621E92 /* vad_core.h in Headers */,
</span><span class="cx">                          5CDD86DA1E43BA2800621E92 /* vad_filterbank.h in Headers */,
</span><span class="cx">                          5CDD86DD1E43BA2800621E92 /* vad_gmm.h in Headers */,
</span><del>-                               5CD285C51E6A63430094FDC8 /* erle_estimator.h in Headers */,
-                               5CD284F51E6A60570094FDC8 /* dtmfsender.h in Headers */,
</del><span class="cx">                           5CDD86E01E43BA2800621E92 /* vad_sp.h in Headers */,
</span><span class="cx">                          5C63F8E01E416D53002CA531 /* value.h in Headers */,
</span><span class="cx">                          5CDD88E71E43BE3D00621E92 /* video_codec_information.h in Headers */,
</span><span class="cx">                          5CDD84021E439A6F00621E92 /* video_coding_impl.h in Headers */,
</span><del>-                               5CD284BA1E6A5F9F0094FDC8 /* flexfec_receive_stream_impl.h in Headers */,
</del><ins>+                                4145E48D1EF88B9D00FCF6E6 /* video_decoder.h in Headers */,
+                               4145E48E1EF88B9D00FCF6E6 /* video_encoder.h in Headers */,
+                               5CD2846B1E6A57F40094FDC8 /* video_frame.h in Headers */,
+                               41109AAE1E5FA19200C0955A /* video_frame_buffer.h in Headers */,
+                               5CD284691E6A57F40094FDC8 /* video_frame_buffer.h in Headers */,
</ins><span class="cx">                           5C6CDD541E413598009754E3 /* video_receive_stream.h in Headers */,
</span><span class="cx">                          5CDD85CB1E43B5C000621E92 /* video_receive_stream.h in Headers */,
</span><span class="cx">                          5C4B4C211E431F75002651C8 /* video_render_frames.h in Headers */,
</span><ins>+                               5CD2846C1E6A57F40094FDC8 /* video_rotation.h in Headers */,
</ins><span class="cx">                           5C6CDD551E413598009754E3 /* video_send_stream.h in Headers */,
</span><span class="cx">                          5CDD85CE1E43B5C000621E92 /* video_send_stream.h in Headers */,
</span><span class="cx">                          5CDD85D01E43B5C000621E92 /* video_stream_decoder.h in Headers */,
</span><span class="lines">@@ -10917,31 +10935,28 @@
</span><span class="cx">                          5C4B49001E42C1E3002651C8 /* videobroadcaster.h in Headers */,
</span><span class="cx">                          5C4B49031E42C1E3002651C8 /* videocapturer.h in Headers */,
</span><span class="cx">                          5C4B49041E42C1E3002651C8 /* videocapturerfactory.h in Headers */,
</span><del>-                               5CD2860A1E6A64840094FDC8 /* file_recorder.h in Headers */,
-                               413092301EF8D77100757C55 /* aec_dump_factory.h in Headers */,
-                               5CD285DC1E6A63430094FDC8 /* render_signal_analyzer.h in Headers */,
</del><ins>+                                5CD285151E6A60570094FDC8 /* videocapturertracksource.h in Headers */,
+                               4145E4BB1EF8943E00FCF6E6 /* videocodecfactory.h in Headers */,
</ins><span class="cx">                           5C4B49071E42C1E3002651C8 /* videocommon.h in Headers */,
</span><ins>+                               5CD286251E6A666D0094FDC8 /* videodecodersoftwarefallbackwrapper.h in Headers */,
</ins><span class="cx">                           5C4B488A1E42C1BA002651C8 /* videoencodersoftwarefallbackwrapper.h in Headers */,
</span><span class="cx">                          5C4B490A1E42C1E3002651C8 /* videosinkinterface.h in Headers */,
</span><span class="cx">                          5C4B490C1E42C1E3002651C8 /* videosourcebase.h in Headers */,
</span><span class="cx">                          5C4B490D1E42C1E3002651C8 /* videosourceinterface.h in Headers */,
</span><del>-                               5CD2847A1E6A5D550094FDC8 /* webrtcsdp.h in Headers */,
-                               5CD2860B1E6A64840094FDC8 /* transport_feedback_packet_loss_tracker.h in Headers */,
</del><span class="cx">                           5C63F9791E41737B002CA531 /* videosourceproxy.h in Headers */,
</span><ins>+                               5CD285171E6A60570094FDC8 /* videotrack.h in Headers */,
+                               5CD285191E6A60570094FDC8 /* videotracksource.h in Headers */,
</ins><span class="cx">                           5C63F97E1E41737B002CA531 /* videotracksource.h in Headers */,
</span><span class="cx">                          5CDD85D31E43B5C000621E92 /* vie_encoder.h in Headers */,
</span><span class="cx">                          5C63F8C71E416288002CA531 /* virtualsocketserver.h in Headers */,
</span><span class="cx">                          5CDD84701E43AE2900621E92 /* voe_base_impl.h in Headers */,
</span><del>-                               413092191EF8D63F00757C55 /* rtp_transport_controller_send.h in Headers */,
</del><span class="cx">                           5CDD84721E43AE2900621E92 /* voe_codec_impl.h in Headers */,
</span><span class="cx">                          5CDD84761E43AE2900621E92 /* voe_file_impl.h in Headers */,
</span><span class="cx">                          5CDD847C1E43AE2900621E92 /* voe_network_impl.h in Headers */,
</span><del>-                               5CD284C31E6A5FFC0094FDC8 /* apm_helpers.h in Headers */,
</del><span class="cx">                           5CDD847E1E43AE2900621E92 /* voe_rtp_rtcp_impl.h in Headers */,
</span><span class="cx">                          5CDD87411E43BABE00621E92 /* voice_activity_detector.h in Headers */,
</span><span class="cx">                          5CDD84C81E43AF1300621E92 /* voice_detection_impl.h in Headers */,
</span><span class="cx">                          5CDD84831E43AE2900621E92 /* voice_engine_defines.h in Headers */,
</span><del>-                               5CD286081E6A64840094FDC8 /* file_player.h in Headers */,
</del><span class="cx">                           5CDD84871E43AE2900621E92 /* voice_engine_impl.h in Headers */,
</span><span class="cx">                          5CDD87421E43BABE00621E92 /* voice_gmm_tables.h in Headers */,
</span><span class="cx">                          5CFD53811E4BA4F500482908 /* voice_processing_audio_unit.h in Headers */,
</span><span class="lines">@@ -10948,20 +10963,23 @@
</span><span class="cx">                          5CDD89871E43BF3A00621E92 /* voip_metric.h in Headers */,
</span><span class="cx">                          5CDD83861E439A3500621E92 /* vp8_header_parser.h in Headers */,
</span><span class="cx">                          5CDD8BF41E43C2B500621E92 /* vq3.h in Headers */,
</span><del>-                               5CD285AD1E6A63430094FDC8 /* block_framer.h in Headers */,
</del><span class="cx">                           5CDD8BF61E43C2B500621E92 /* vq4.h in Headers */,
</span><span class="cx">                          5C4B4C811E431F9C002651C8 /* wav_file.h in Headers */,
</span><span class="cx">                          5C4B4C841E431F9C002651C8 /* wav_header.h in Headers */,
</span><span class="cx">                          5C63F8CA1E416288002CA531 /* weak_ptr.h in Headers */,
</span><span class="cx">                          5CDD8CAB1E43C6F700621E92 /* webrtc_cng.h in Headers */,
</span><ins>+                               4145E4911EF88EF700FCF6E6 /* webrtc_libyuv.h in Headers */,
</ins><span class="cx">                           5C4B488B1E42C1BA002651C8 /* webrtccommon.h in Headers */,
</span><span class="cx">                          5C4B488E1E42C1BA002651C8 /* webrtcmediaengine.h in Headers */,
</span><del>-                               41433CEF1F79B33400387B4D /* spectrum_ar_model_tables.h in Headers */,
</del><ins>+                                5CD2847A1E6A5D550094FDC8 /* webrtcsdp.h in Headers */,
</ins><span class="cx">                           5C63F9811E41737B002CA531 /* webrtcsdp.h in Headers */,
</span><ins>+                               5CD2847C1E6A5D550094FDC8 /* webrtcsession.h in Headers */,
+                               5CD2851B1E6A60570094FDC8 /* webrtcsessiondescriptionfactory.h in Headers */,
</ins><span class="cx">                           5C4B48911E42C1BA002651C8 /* webrtcvideocapturer.h in Headers */,
</span><span class="cx">                          5C4B48931E42C1BA002651C8 /* webrtcvideocapturerfactory.h in Headers */,
</span><span class="cx">                          5C4B48941E42C1BA002651C8 /* webrtcvideodecoderfactory.h in Headers */,
</span><span class="cx">                          5C4B48961E42C1BA002651C8 /* webrtcvideoencoderfactory.h in Headers */,
</span><ins>+                               4145E4D21EF8CC2000FCF6E6 /* webrtcvideoengine.h in Headers */,
</ins><span class="cx">                           5C4B489B1E42C1BA002651C8 /* webrtcvoe.h in Headers */,
</span><span class="cx">                          5C4B489E1E42C1BA002651C8 /* webrtcvoiceengine.h in Headers */,
</span><span class="cx">                          5CDD8BF81E43C2B500621E92 /* window32_w32.h in Headers */,
</span><span class="lines">@@ -10970,7 +10988,6 @@
</span><span class="cx">                          5CDD8C991E43C66000621E92 /* wpd_node.h in Headers */,
</span><span class="cx">                          5CDD8C9C1E43C66000621E92 /* wpd_tree.h in Headers */,
</span><span class="cx">                          5C63F8E11E416D53002CA531 /* writer.h in Headers */,
</span><del>-                               5CD2847C1E6A5D550094FDC8 /* webrtcsession.h in Headers */,
</del><span class="cx">                           5CDD8BFA1E43C2B500621E92 /* xcorr_coef.h in Headers */,
</span><span class="cx">                  );
</span><span class="cx">                  runOnlyForDeploymentPostprocessing = 0;
</span><span class="lines">@@ -11328,7 +11345,6 @@
</span><span class="cx">                          5CDD8D341E43C79C00621E92 /* celt_encoder.c in Sources */,
</span><span class="cx">                          5CDD8D351E43C79C00621E92 /* celt_lpc.c in Sources */,
</span><span class="cx">                          5CDD8E401E43C80C00621E92 /* check_control_input.c in Sources */,
</span><del>-                               5C5F409B1E978FDB00D94279 /* VQ_WMat_EC_sse.c in Sources */,
</del><span class="cx">                           5CDD8E411E43C80C00621E92 /* CNG.c in Sources */,
</span><span class="cx">                          5CDD8E421E43C80C00621E92 /* code_signs.c in Sources */,
</span><span class="cx">                          5CDD8E431E43C80C00621E92 /* control_audio_bandwidth.c in Sources */,
</span><span class="lines">@@ -11350,7 +11366,6 @@
</span><span class="cx">                          5CDD8F3E1E43CB1E00621E92 /* encode_frame_FIX.c in Sources */,
</span><span class="cx">                          5CDD8EE51E43C9F600621E92 /* encode_frame_FLP.c in Sources */,
</span><span class="cx">                          5CDD8E531E43C80C00621E92 /* encode_indices.c in Sources */,
</span><del>-                               5C5F40971E978FDB00D94279 /* NSQ_del_dec_sse.c in Sources */,
</del><span class="cx">                           5CDD8E541E43C80C00621E92 /* encode_pulses.c in Sources */,
</span><span class="cx">                          5CDD8EE61E43C9F600621E92 /* energy_FLP.c in Sources */,
</span><span class="cx">                          5CDD8D3D1E43C79C00621E92 /* entcode.c in Sources */,
</span><span class="lines">@@ -11405,6 +11420,8 @@
</span><span class="cx">                          5CDD8EF31E43C9F600621E92 /* noise_shape_analysis_FLP.c in Sources */,
</span><span class="cx">                          5CDD8E6F1E43C80C00621E92 /* NSQ.c in Sources */,
</span><span class="cx">                          5CDD8E6E1E43C80C00621E92 /* NSQ_del_dec.c in Sources */,
</span><ins>+                               5C5F40971E978FDB00D94279 /* NSQ_del_dec_sse.c in Sources */,
+                               5C5F40981E978FDB00D94279 /* NSQ_sse.c in Sources */,
</ins><span class="cx">                           5C4B4AC21E42C574002651C8 /* opus.c in Sources */,
</span><span class="cx">                          5C4B4ABA1E42C574002651C8 /* opus_compare.c in Sources */,
</span><span class="cx">                          5C4B4ABB1E42C574002651C8 /* opus_decoder.c in Sources */,
</span><span class="lines">@@ -11468,12 +11485,12 @@
</span><span class="cx">                          5CDD8E941E43C80C00621E92 /* tables_pitch_lag.c in Sources */,
</span><span class="cx">                          5CDD8E951E43C80C00621E92 /* tables_pulses_per_block.c in Sources */,
</span><span class="cx">                          5CDD8E991E43C80C00621E92 /* VAD.c in Sources */,
</span><del>-                               5C5F40981E978FDB00D94279 /* NSQ_sse.c in Sources */,
</del><ins>+                                5C5F409A1E978FDB00D94279 /* VAD_sse.c in Sources */,
</ins><span class="cx">                           5CDD8F531E43CB1E00621E92 /* vector_ops_FIX.c in Sources */,
</span><span class="cx">                          5CDD8D5B1E43C79C00621E92 /* vq.c in Sources */,
</span><span class="cx">                          5CDD8E9A1E43C80C00621E92 /* VQ_WMat_EC.c in Sources */,
</span><ins>+                               5C5F409B1E978FDB00D94279 /* VQ_WMat_EC_sse.c in Sources */,
</ins><span class="cx">                           5CDD8F541E43CB1E00621E92 /* warped_autocorrelation_FIX.c in Sources */,
</span><del>-                               5C5F409A1E978FDB00D94279 /* VAD_sse.c in Sources */,
</del><span class="cx">                           5CDD8F001E43C9F600621E92 /* warped_autocorrelation_FLP.c in Sources */,
</span><span class="cx">                          5CDD8F011E43C9F600621E92 /* wrappers_FLP.c in Sources */,
</span><span class="cx">                          5CDD8D2C1E43C79C00621E92 /* x86_celt_map.c in Sources */,
</span><span class="lines">@@ -11490,23 +11507,16 @@
</span><span class="cx">                          5C4B47481E42AAF5002651C8 /* a_bool.c in Sources */,
</span><span class="cx">                          5C4B47491E42AAF5002651C8 /* a_d2i_fp.c in Sources */,
</span><span class="cx">                          5C4B466D1E42AA3C002651C8 /* a_digest.c in Sources */,
</span><del>-                               41EA53AB1EFC2C4D002FF04C /* digest.c in Sources */,
</del><span class="cx">                           5C4B474A1E42AAF5002651C8 /* a_dup.c in Sources */,
</span><del>-                               41EA540C1EFC2D1B002FF04C /* prime.c in Sources */,
-                               41EA53D01EFC2C8B002FF04C /* simple.c in Sources */,
</del><span class="cx">                           5C4B474B1E42AAF5002651C8 /* a_enum.c in Sources */,
</span><span class="cx">                          5C4B474C1E42AAF5002651C8 /* a_gentm.c in Sources */,
</span><span class="cx">                          5C4B474D1E42AAF5002651C8 /* a_i2d_fp.c in Sources */,
</span><del>-                               41EA53D21EFC2C8B002FF04C /* wnaf.c in Sources */,
-                               41A3918F1EFC44EB00C4516A /* aead.c in Sources */,
</del><span class="cx">                           5C4B474E1E42AAF5002651C8 /* a_int.c in Sources */,
</span><span class="cx">                          5C4B474F1E42AAF5002651C8 /* a_mbstr.c in Sources */,
</span><span class="cx">                          5C4B47501E42AAF5002651C8 /* a_object.c in Sources */,
</span><span class="cx">                          5C4B47511E42AAF5002651C8 /* a_octet.c in Sources */,
</span><span class="cx">                          5C4B47521E42AAF5002651C8 /* a_print.c in Sources */,
</span><del>-                               41A392011EFC493000C4516A /* mode_wrappers.c in Sources */,
</del><span class="cx">                           5C4B466E1E42AA3C002651C8 /* a_sign.c in Sources */,
</span><del>-                               41A391BE1EFC460D00C4516A /* pkcs8_x509.c in Sources */,
</del><span class="cx">                           5C4B466F1E42AA3C002651C8 /* a_strex.c in Sources */,
</span><span class="cx">                          5C4B47531E42AAF5002651C8 /* a_strnid.c in Sources */,
</span><span class="cx">                          5C4B47541E42AAF5002651C8 /* a_time.c in Sources */,
</span><span class="lines">@@ -11514,70 +11524,91 @@
</span><span class="cx">                          5C4B47561E42AAF5002651C8 /* a_utctm.c in Sources */,
</span><span class="cx">                          5C4B47571E42AAF5002651C8 /* a_utf8.c in Sources */,
</span><span class="cx">                          5C4B46701E42AA3C002651C8 /* a_verify.c in Sources */,
</span><del>-                               41A391881EFC447C00C4516A /* rsa_impl.c in Sources */,
</del><ins>+                                41EA53FC1EFC2D1B002FF04C /* add.c in Sources */,
+                               41A3918F1EFC44EB00C4516A /* aead.c in Sources */,
</ins><span class="cx">                           5C4B47D11E42BDB1002651C8 /* aes-586.S in Sources */,
</span><span class="cx">                          5C4B47961E42B60C002651C8 /* aes-x86_64.S in Sources */,
</span><ins>+                               41A392211EFC5CFA00C4516A /* aes.c in Sources */,
</ins><span class="cx">                           5C4B47A11E42B623002651C8 /* aesni-gcm-x86_64.S in Sources */,
</span><span class="cx">                          5C4B47D21E42BDB1002651C8 /* aesni-x86.S in Sources */,
</span><del>-                               41A391821EFC447C00C4516A /* rand.c in Sources */,
</del><span class="cx">                           5C4B47971E42B60C002651C8 /* aesni-x86_64.S in Sources */,
</span><span class="cx">                          5C4B46711E42AA3C002651C8 /* algorithm.c in Sources */,
</span><span class="cx">                          5C4B471E1E42AAD6002651C8 /* asn1_compat.c in Sources */,
</span><del>-                               41EA54001EFC2D1B002FF04C /* bytes.c in Sources */,
</del><span class="cx">                           5C4B46721E42AA3C002651C8 /* asn1_gen.c in Sources */,
</span><span class="cx">                          5C4B47591E42AAF5002651C8 /* asn1_lib.c in Sources */,
</span><del>-                               41A392031EFC495B00C4516A /* time_support.c in Sources */,
</del><span class="cx">                           5C4B475B1E42AAF5002651C8 /* asn1_par.c in Sources */,
</span><del>-                               41EA54031EFC2D1B002FF04C /* div.c in Sources */,
</del><span class="cx">                           5C4B47581E42AAF5002651C8 /* asn_pack.c in Sources */,
</span><span class="cx">                          5C4B47461E42AAEF002651C8 /* base64.c in Sources */,
</span><span class="cx">                          5C4B471F1E42AAD6002651C8 /* ber.c in Sources */,
</span><del>-                               41EA53C31EFC2C8B002FF04C /* ec.c in Sources */,
-                               41A3917A1EFC447C00C4516A /* gcm.c in Sources */,
</del><span class="cx">                           5C4B473B1E42AAEA002651C8 /* bio.c in Sources */,
</span><span class="cx">                          5C4B473A1E42AAEA002651C8 /* bio_mem.c in Sources */,
</span><del>-                               41A391CE1EFC473B00C4516A /* ssl_transcript.c in Sources */,
</del><ins>+                                41A391841EFC447C00C4516A /* blinding.c in Sources */,
</ins><span class="cx">                           5C4B47CE1E42BDB1002651C8 /* bn-586.S in Sources */,
</span><ins>+                               41EA53FE1EFC2D1B002FF04C /* bn.c in Sources */,
+                               41A391BB1EFC45CD00C4516A /* bn_asn1.c in Sources */,
</ins><span class="cx">                           5C4B47981E42B60C002651C8 /* bsaes-x86_64.S in Sources */,
</span><span class="cx">                          5C4B47231E42AADA002651C8 /* buf.c in Sources */,
</span><span class="cx">                          5C4B46731E42AA3C002651C8 /* by_dir.c in Sources */,
</span><span class="cx">                          5C4B46741E42AA3C002651C8 /* by_file.c in Sources */,
</span><ins>+                               41EA54001EFC2D1B002FF04C /* bytes.c in Sources */,
</ins><span class="cx">                           5C4B47201E42AAD6002651C8 /* cbb.c in Sources */,
</span><ins>+                               41A391771EFC447C00C4516A /* cbc.c in Sources */,
</ins><span class="cx">                           5C4B47211E42AAD6002651C8 /* cbs.c in Sources */,
</span><del>-                               41A3921A1EFC5AB800C4516A /* x25519-asm-arm.S in Sources */,
-                               41A391C71EFC465600C4516A /* pool.c in Sources */,
</del><ins>+                                41A391781EFC447C00C4516A /* cfb.c in Sources */,
</ins><span class="cx">                           5C4B47CD1E42BDB1002651C8 /* chacha-x86.S in Sources */,
</span><span class="cx">                          5C4B479E1E42B619002651C8 /* chacha-x86_64.S in Sources */,
</span><span class="cx">                          5C4B471D1E42AAD0002651C8 /* chacha.c in Sources */,
</span><ins>+                               41A3921E1EFC5B1100C4516A /* chacha20_poly1305_x86_64.S in Sources */,
</ins><span class="cx">                           5C4B47091E42AABE002651C8 /* check.c in Sources */,
</span><ins>+                               41A391901EFC44EB00C4516A /* cipher.c in Sources */,
+                               41A391A81EFC454F00C4516A /* cipher_extra.c in Sources */,
</ins><span class="cx">                           5C4B470F1E42AAC6002651C8 /* cmac.c in Sources */,
</span><del>-                               41EA540B1EFC2D1B002FF04C /* mul.c in Sources */,
</del><ins>+                                41EA54011EFC2D1B002FF04C /* cmp.c in Sources */,
</ins><span class="cx">                           5C4B47CF1E42BDB1002651C8 /* co-586.S in Sources */,
</span><span class="cx">                          5C4B47DB1E42C021002651C8 /* conf.c in Sources */,
</span><span class="cx">                          5C4B473D1E42AAEA002651C8 /* connect.c in Sources */,
</span><ins>+                               41A391BC1EFC45CD00C4516A /* convert.c in Sources */,
</ins><span class="cx">                           5C4B463B1E42AA2C002651C8 /* cpu-intel.c in Sources */,
</span><del>-                               41A391741EFC447C00C4516A /* sha1.c in Sources */,
-                               41A391751EFC447C00C4516A /* sha256.c in Sources */,
</del><span class="cx">                           5C4B463C1E42AA2C002651C8 /* crypto.c in Sources */,
</span><ins>+                               41A391791EFC447C00C4516A /* ctr.c in Sources */,
+                               41A3917F1EFC447C00C4516A /* ctrdrbg.c in Sources */,
+                               41EA54021EFC2D1B002FF04C /* ctx.c in Sources */,
</ins><span class="cx">                           5C4B4D001E432185002651C8 /* curve25519.c in Sources */,
</span><span class="cx">                          5C4B48231E42C06A002651C8 /* custom_extensions.c in Sources */,
</span><del>-                               41A392201EFC5CF500C4516A /* e_aes.c in Sources */,
</del><span class="cx">                           5C4B48241E42C06A002651C8 /* d1_both.c in Sources */,
</span><span class="cx">                          5C4B48251E42C06A002651C8 /* d1_lib.c in Sources */,
</span><del>-                               41A391E31EFC48AE00C4516A /* ecdsa_asn1.c in Sources */,
</del><span class="cx">                           5C4B48261E42C06A002651C8 /* d1_pkt.c in Sources */,
</span><del>-                               41A391B11EFC454F00C4516A /* e_ssl3.c in Sources */,
</del><span class="cx">                           5C4B48271E42C06A002651C8 /* d1_srtp.c in Sources */,
</span><ins>+                               41A391AA1EFC454F00C4516A /* derive_key.c in Sources */,
+                               41A391E81EFC490400C4516A /* des.c in Sources */,
</ins><span class="cx">                           5C4B470B1E42AABE002651C8 /* dh.c in Sources */,
</span><span class="cx">                          5C4B470A1E42AABE002651C8 /* dh_asn1.c in Sources */,
</span><del>-                               41A391AA1EFC454F00C4516A /* derive_key.c in Sources */,
-                               41EA54081EFC2D1B002FF04C /* jacobi.c in Sources */,
</del><ins>+                                41EA53AB1EFC2C4D002FF04C /* digest.c in Sources */,
+                               41A391DD1EFC489A00C4516A /* digest_extra.c in Sources */,
+                               41EA53AC1EFC2C4D002FF04C /* digests.c in Sources */,
</ins><span class="cx">                           5C4B46E31E42AA97002651C8 /* digestsign.c in Sources */,
</span><ins>+                               41EA54031EFC2D1B002FF04C /* div.c in Sources */,
</ins><span class="cx">                           5C4B47041E42AAB4002651C8 /* dsa.c in Sources */,
</span><span class="cx">                          5C4B48471E42C0F6002651C8 /* dsa_asn1.c in Sources */,
</span><span class="cx">                          5C4B48281E42C06A002651C8 /* dtls_method.c in Sources */,
</span><span class="cx">                          5C4B48291E42C06A002651C8 /* dtls_record.c in Sources */,
</span><ins>+                               41A392201EFC5CF500C4516A /* e_aes.c in Sources */,
+                               41A391AB1EFC454F00C4516A /* e_aesctrhmac.c in Sources */,
+                               41A391AC1EFC454F00C4516A /* e_aesgcmsiv.c in Sources */,
+                               41A391AD1EFC454F00C4516A /* e_chacha20poly1305.c in Sources */,
+                               41A391921EFC44EB00C4516A /* e_des.c in Sources */,
+                               41A391AE1EFC454F00C4516A /* e_null.c in Sources */,
+                               41A391AF1EFC454F00C4516A /* e_rc2.c in Sources */,
+                               41A391B01EFC454F00C4516A /* e_rc4.c in Sources */,
+                               41A391B11EFC454F00C4516A /* e_ssl3.c in Sources */,
+                               41A391B21EFC454F00C4516A /* e_tls.c in Sources */,
+                               41EA53C31EFC2C8B002FF04C /* ec.c in Sources */,
+                               41A391E41EFC48CE00C4516A /* ec_asn1.c in Sources */,
+                               41EA53C41EFC2C8B002FF04C /* ec_key.c in Sources */,
+                               41EA53C51EFC2C8B002FF04C /* ec_montgomery.c in Sources */,
</ins><span class="cx">                           5C4B46F51E42AAAA002651C8 /* ecdh.c in Sources */,
</span><ins>+                               41EA53D81EFC2CDC002FF04C /* ecdsa.c in Sources */,
+                               41A391E31EFC48AE00C4516A /* ecdsa_asn1.c in Sources */,
</ins><span class="cx">                           5C4B46F21E42AAA1002651C8 /* engine.c in Sources */,
</span><span class="cx">                          5C4B46F11E42AA9C002651C8 /* err.c in Sources */,
</span><span class="cx">                          5C4B4C8A1E432051002651C8 /* err_data.c in Sources */,
</span><span class="lines">@@ -11585,53 +11616,56 @@
</span><span class="cx">                          5C4B46E41E42AA97002651C8 /* evp_asn1.c in Sources */,
</span><span class="cx">                          5C4B46E51E42AA97002651C8 /* evp_ctx.c in Sources */,
</span><span class="cx">                          5C4B463D1E42AA2C002651C8 /* ex_data.c in Sources */,
</span><ins>+                               41EA54041EFC2D1B002FF04C /* exponentiation.c in Sources */,
</ins><span class="cx">                           5C4B475D1E42AAF5002651C8 /* f_enum.c in Sources */,
</span><span class="cx">                          5C4B475E1E42AAF5002651C8 /* f_int.c in Sources */,
</span><span class="cx">                          5C4B475F1E42AAF5002651C8 /* f_string.c in Sources */,
</span><span class="cx">                          5C4B473E1E42AAEA002651C8 /* fd.c in Sources */,
</span><del>-                               41A3921B1EFC5AB800C4516A /* x25519-asm-x86_64.S in Sources */,
</del><span class="cx">                           5C4B473F1E42AAEA002651C8 /* file.c in Sources */,
</span><del>-                               41EA54011EFC2D1B002FF04C /* cmp.c in Sources */,
-                               41A391B21EFC454F00C4516A /* e_tls.c in Sources */,
-                               41EA54021EFC2D1B002FF04C /* ctx.c in Sources */,
</del><ins>+                                41A392151EFC4B3A00C4516A /* forkunsafe.c in Sources */,
+                               41EA54051EFC2D1B002FF04C /* gcd.c in Sources */,
+                               41A3917A1EFC447C00C4516A /* gcm.c in Sources */,
+                               41EA54061EFC2D1B002FF04C /* generic.c in Sources */,
</ins><span class="cx">                           5C4B47CB1E42BDB1002651C8 /* ghash-x86.S in Sources */,
</span><del>-                               41EA53D81EFC2CDC002FF04C /* ecdsa.c in Sources */,
-                               41EA53FE1EFC2D1B002FF04C /* bn.c in Sources */,
</del><span class="cx">                           5C4B47A21E42B623002651C8 /* ghash-x86_64.S in Sources */,
</span><span class="cx">                          5C4B482A1E42C06A002651C8 /* handshake_client.c in Sources */,
</span><del>-                               41EA53A51EFC2C14002FF04C /* hmac.c in Sources */,
-                               41EA54061EFC2D1B002FF04C /* generic.c in Sources */,
</del><span class="cx">                           5C4B482B1E42C06A002651C8 /* handshake_server.c in Sources */,
</span><span class="cx">                          5C4B47401E42AAEA002651C8 /* hexdump.c in Sources */,
</span><del>-                               41EA54191EFC2D53002FF04C /* md4.c in Sources */,
</del><span class="cx">                           5C4B46E21E42AA92002651C8 /* hkdf.c in Sources */,
</span><del>-                               41EA53CA1EFC2C8B002FF04C /* p224-64.c in Sources */,
-                               41A391AF1EFC454F00C4516A /* e_rc2.c in Sources */,
</del><ins>+                                41EA53A51EFC2C14002FF04C /* hmac.c in Sources */,
</ins><span class="cx">                           5C4B46761E42AA3C002651C8 /* i2d_pr.c in Sources */,
</span><ins>+                               41EA54081EFC2D1B002FF04C /* jacobi.c in Sources */,
+                               41A392001EFC493000C4516A /* key_wrap.c in Sources */,
</ins><span class="cx">                           5C4B46DF1E42AA89002651C8 /* lhash.c in Sources */,
</span><ins>+                               41EA54191EFC2D53002FF04C /* md4.c in Sources */,
</ins><span class="cx">                           5C4B47CC1E42BDB1002651C8 /* md5-586.S in Sources */,
</span><span class="cx">                          5C4B47A01E42B61F002651C8 /* md5-x86_64.S in Sources */,
</span><del>-                               41A391E81EFC490400C4516A /* des.c in Sources */,
</del><ins>+                                41EA541A1EFC2D53002FF04C /* md5.c in Sources */,
</ins><span class="cx">                           5C4B463F1E42AA2C002651C8 /* mem.c in Sources */,
</span><del>-                               41A391761EFC447C00C4516A /* sha512.c in Sources */,
-                               41EA53C41EFC2C8B002FF04C /* ec_key.c in Sources */,
</del><ins>+                                41A392011EFC493000C4516A /* mode_wrappers.c in Sources */,
+                               41EA54091EFC2D1B002FF04C /* montgomery.c in Sources */,
+                               41EA540A1EFC2D1B002FF04C /* montgomery_inv.c in Sources */,
+                               41EA540B1EFC2D1B002FF04C /* mul.c in Sources */,
</ins><span class="cx">                           5C4B46CD1E42AA70002651C8 /* obj.c in Sources */,
</span><span class="cx">                          5C4B46CB1E42AA70002651C8 /* obj_xref.c in Sources */,
</span><ins>+                               41EA53C91EFC2C8B002FF04C /* oct.c in Sources */,
+                               41A3917D1EFC447C00C4516A /* ofb.c in Sources */,
+                               41EA53CA1EFC2C8B002FF04C /* p224-64.c in Sources */,
+                               41EA53CB1EFC2C8B002FF04C /* p256-64.c in Sources */,
</ins><span class="cx">                           5C4B479F1E42B61D002651C8 /* p256-x86_64-asm.S in Sources */,
</span><ins>+                               41EA53CD1EFC2C8B002FF04C /* p256-x86_64.c in Sources */,
</ins><span class="cx">                           5C4B46BC1E42AA66002651C8 /* p5_pbev2.c in Sources */,
</span><span class="cx">                          5C4B46E81E42AA97002651C8 /* p_dsa_asn1.c in Sources */,
</span><span class="cx">                          5C4B46EA1E42AA97002651C8 /* p_ec.c in Sources */,
</span><span class="cx">                          5C4B46E91E42AA97002651C8 /* p_ec_asn1.c in Sources */,
</span><ins>+                               41A392061EFC4A6300C4516A /* p_ed25519.c in Sources */,
+                               41A392081EFC4A7100C4516A /* p_ed25519_asn1.c in Sources */,
</ins><span class="cx">                           5C4B46EC1E42AA97002651C8 /* p_rsa.c in Sources */,
</span><del>-                               41EA53FD1EFC2D1B002FF04C /* x86_64-gcc.c in Sources */,
</del><span class="cx">                           5C4B46EB1E42AA97002651C8 /* p_rsa_asn1.c in Sources */,
</span><del>-                               41A391AD1EFC454F00C4516A /* e_chacha20poly1305.c in Sources */,
</del><ins>+                                41A391861EFC447C00C4516A /* padding.c in Sources */,
</ins><span class="cx">                           5C4B47421E42AAEA002651C8 /* pair.c in Sources */,
</span><del>-                               41A391731EFC447C00C4516A /* sha1-altivec.c in Sources */,
-                               41A391AC1EFC454F00C4516A /* e_aesgcmsiv.c in Sources */,
</del><span class="cx">                           5C4B470C1E42AABE002651C8 /* params.c in Sources */,
</span><span class="cx">                          5C4B46EE1E42AA97002651C8 /* pbkdf.c in Sources */,
</span><del>-                               41A392081EFC4A7100C4516A /* p_ed25519_asn1.c in Sources */,
</del><span class="cx">                           5C4B464A1E42AA34002651C8 /* pcy_cache.c in Sources */,
</span><span class="cx">                          5C4B464B1E42AA34002651C8 /* pcy_data.c in Sources */,
</span><span class="cx">                          5C4B464D1E42AA34002651C8 /* pcy_lib.c in Sources */,
</span><span class="lines">@@ -11647,64 +11681,64 @@
</span><span class="cx">                          5C4B46C71E42AA6B002651C8 /* pem_x509.c in Sources */,
</span><span class="cx">                          5C4B46C81E42AA6B002651C8 /* pem_xaux.c in Sources */,
</span><span class="cx">                          5C4B46BF1E42AA66002651C8 /* pkcs8.c in Sources */,
</span><ins>+                               41A391BE1EFC460D00C4516A /* pkcs8_x509.c in Sources */,
</ins><span class="cx">                           5C4B46B91E42AA61002651C8 /* poly1305.c in Sources */,
</span><span class="cx">                          5C4B46B81E42AA61002651C8 /* poly1305_vec.c in Sources */,
</span><ins>+                               41A3917E1EFC447C00C4516A /* polyval.c in Sources */,
+                               41A391C71EFC465600C4516A /* pool.c in Sources */,
+                               41EA540C1EFC2D1B002FF04C /* prime.c in Sources */,
</ins><span class="cx">                           5C4B46EF1E42AA97002651C8 /* print.c in Sources */,
</span><span class="cx">                          5C4B47431E42AAEA002651C8 /* printf.c in Sources */,
</span><del>-                               41A391CC1EFC46DE00C4516A /* x_all.c in Sources */,
</del><ins>+                                41A391821EFC447C00C4516A /* rand.c in Sources */,
+                               41EA540D1EFC2D1B002FF04C /* random.c in Sources */,
</ins><span class="cx">                           5C4B46B01E42AA51002651C8 /* rc4.c in Sources */,
</span><del>-                               41A392211EFC5CFA00C4516A /* aes.c in Sources */,
</del><span class="cx">                           5C4B47A31E42B625002651C8 /* rdrand-x86_64.S in Sources */,
</span><span class="cx">                          5C4B46401E42AA2C002651C8 /* refcount_c11.c in Sources */,
</span><span class="cx">                          5C4B46411E42AA2C002651C8 /* refcount_lock.c in Sources */,
</span><del>-                               41A392001EFC493000C4516A /* key_wrap.c in Sources */,
-                               41EA541A1EFC2D53002FF04C /* md5.c in Sources */,
</del><ins>+                                41A391871EFC447C00C4516A /* rsa.c in Sources */,
+                               41A391D31EFC484D00C4516A /* rsa_asn1.c in Sources */,
+                               41A391881EFC447C00C4516A /* rsa_impl.c in Sources */,
</ins><span class="cx">                           5C4B467A1E42AA3C002651C8 /* rsa_pss.c in Sources */,
</span><span class="cx">                          5C4B479A1E42B610002651C8 /* rsaz-avx2.S in Sources */,
</span><del>-                               41A391B61EFC459D00C4516A /* ssl_x509.c in Sources */,
</del><ins>+                                41EA540E1EFC2D1B002FF04C /* rsaz_exp.c in Sources */,
</ins><span class="cx">                           5C4B482D1E42C06A002651C8 /* s3_both.c in Sources */,
</span><del>-                               41EA54041EFC2D1B002FF04C /* exponentiation.c in Sources */,
-                               41A391CA1EFC469D00C4516A /* ssl_privkey.c in Sources */,
</del><span class="cx">                           5C4B482F1E42C06A002651C8 /* s3_lib.c in Sources */,
</span><del>-                               41A391841EFC447C00C4516A /* blinding.c in Sources */,
</del><span class="cx">                           5C4B48301E42C06A002651C8 /* s3_pkt.c in Sources */,
</span><span class="cx">                          5C4B47C81E42BDB1002651C8 /* sha1-586.S in Sources */,
</span><ins>+                               41A391731EFC447C00C4516A /* sha1-altivec.c in Sources */,
</ins><span class="cx">                           5C4B47A41E42B629002651C8 /* sha1-x86_64.S in Sources */,
</span><ins>+                               41A391741EFC447C00C4516A /* sha1.c in Sources */,
</ins><span class="cx">                           5C4B47C91E42BDB1002651C8 /* sha256-586.S in Sources */,
</span><span class="cx">                          5C4B47A51E42B629002651C8 /* sha256-x86_64.S in Sources */,
</span><ins>+                               41A391751EFC447C00C4516A /* sha256.c in Sources */,
</ins><span class="cx">                           5C4B47CA1E42BDB1002651C8 /* sha512-586.S in Sources */,
</span><del>-                               41A3917F1EFC447C00C4516A /* ctrdrbg.c in Sources */,
</del><ins>+                                5C4B47A61E42B629002651C8 /* sha512-x86_64.S in Sources */,
+                               41A391761EFC447C00C4516A /* sha512.c in Sources */,
</ins><span class="cx">                           41EA54101EFC2D1B002FF04C /* shift.c in Sources */,
</span><del>-                               5C4B47A61E42B629002651C8 /* sha512-x86_64.S in Sources */,
-                               41A391861EFC447C00C4516A /* padding.c in Sources */,
</del><span class="cx">                           5C4B46F01E42AA97002651C8 /* sign.c in Sources */,
</span><del>-                               41EA540E1EFC2D1B002FF04C /* rsaz_exp.c in Sources */,
</del><ins>+                                41EA53D01EFC2C8B002FF04C /* simple.c in Sources */,
</ins><span class="cx">                           5C4B47451E42AAEA002651C8 /* socket.c in Sources */,
</span><span class="cx">                          5C4B47441E42AAEA002651C8 /* socket_helper.c in Sources */,
</span><span class="cx">                          5C4B4D021E432185002651C8 /* spake25519.c in Sources */,
</span><ins>+                               41EA54111EFC2D1B002FF04C /* sqrt.c in Sources */,
</ins><span class="cx">                           5C4B48311E42C06A002651C8 /* ssl_aead_ctx.c in Sources */,
</span><del>-                               41EA540A1EFC2D1B002FF04C /* montgomery_inv.c in Sources */,
</del><span class="cx">                           5C4B48321E42C06A002651C8 /* ssl_asn1.c in Sources */,
</span><span class="cx">                          5C4B48331E42C06A002651C8 /* ssl_buffer.c in Sources */,
</span><span class="cx">                          5C4B48341E42C06A002651C8 /* ssl_cert.c in Sources */,
</span><span class="cx">                          5C4B48351E42C06A002651C8 /* ssl_cipher.c in Sources */,
</span><span class="cx">                          5C4B48361E42C06A002651C8 /* ssl_ecdh.c in Sources */,
</span><del>-                               41A391771EFC447C00C4516A /* cbc.c in Sources */,
</del><span class="cx">                           5C4B48371E42C06A002651C8 /* ssl_file.c in Sources */,
</span><del>-                               41EA53C51EFC2C8B002FF04C /* ec_montgomery.c in Sources */,
</del><span class="cx">                           5C4B48381E42C06A002651C8 /* ssl_lib.c in Sources */,
</span><del>-                               41A391B41EFC454F00C4516A /* tls_cbc.c in Sources */,
</del><ins>+                                41A391CA1EFC469D00C4516A /* ssl_privkey.c in Sources */,
</ins><span class="cx">                           5C4B483A1E42C06A002651C8 /* ssl_session.c in Sources */,
</span><span class="cx">                          5C4B483B1E42C06A002651C8 /* ssl_stat.c in Sources */,
</span><del>-                               41EA53FC1EFC2D1B002FF04C /* add.c in Sources */,
-                               41A391901EFC44EB00C4516A /* cipher.c in Sources */,
</del><ins>+                                41A391CE1EFC473B00C4516A /* ssl_transcript.c in Sources */,
+                               41A391B61EFC459D00C4516A /* ssl_x509.c in Sources */,
</ins><span class="cx">                           5C4B46A51E42AA42002651C8 /* stack.c in Sources */,
</span><span class="cx">                          5C4B483D1E42C06A002651C8 /* t1_enc.c in Sources */,
</span><span class="cx">                          5C4B483E1E42C06A002651C8 /* t1_lib.c in Sources */,
</span><span class="cx">                          5C4B467B1E42AA3C002651C8 /* t_crl.c in Sources */,
</span><span class="cx">                          5C4B467C1E42AA3C002651C8 /* t_req.c in Sources */,
</span><del>-                               41A391DD1EFC489A00C4516A /* digest_extra.c in Sources */,
-                               41A391D31EFC484D00C4516A /* rsa_asn1.c in Sources */,
</del><span class="cx">                           5C4B467D1E42AA3C002651C8 /* t_x509.c in Sources */,
</span><span class="cx">                          5C4B467E1E42AA3C002651C8 /* t_x509a.c in Sources */,
</span><span class="cx">                          5C4B46511E42AA34002651C8 /* tab_test.c in Sources */,
</span><span class="lines">@@ -11718,23 +11752,20 @@
</span><span class="cx">                          5C4B46431E42AA2C002651C8 /* thread_none.c in Sources */,
</span><span class="cx">                          5C4B46441E42AA2C002651C8 /* thread_pthread.c in Sources */,
</span><span class="cx">                          5C4B46461E42AA2C002651C8 /* thread_win.c in Sources */,
</span><ins>+                               41A392031EFC495B00C4516A /* time_support.c in Sources */,
</ins><span class="cx">                           5C4B48411E42C06A002651C8 /* tls13_both.c in Sources */,
</span><span class="cx">                          5C4B48421E42C06A002651C8 /* tls13_client.c in Sources */,
</span><span class="cx">                          5C4B48431E42C06A002651C8 /* tls13_enc.c in Sources */,
</span><del>-                               41A391831EFC447C00C4516A /* urandom.c in Sources */,
</del><span class="cx">                           5C4B48441E42C06A002651C8 /* tls13_server.c in Sources */,
</span><del>-                               41A391921EFC44EB00C4516A /* e_des.c in Sources */,
</del><ins>+                                41A391B41EFC454F00C4516A /* tls_cbc.c in Sources */,
</ins><span class="cx">                           5C4B483F1E42C06A002651C8 /* tls_method.c in Sources */,
</span><span class="cx">                          5C4B48401E42C06A002651C8 /* tls_record.c in Sources */,
</span><del>-                               41A391791EFC447C00C4516A /* ctr.c in Sources */,
</del><ins>+                                41A391831EFC447C00C4516A /* urandom.c in Sources */,
+                               41EA53D11EFC2C8B002FF04C /* util-64.c in Sources */,
</ins><span class="cx">                           5C4B46521E42AA34002651C8 /* v3_akey.c in Sources */,
</span><del>-                               41A391BC1EFC45CD00C4516A /* convert.c in Sources */,
</del><span class="cx">                           5C4B46531E42AA34002651C8 /* v3_akeya.c in Sources */,
</span><del>-                               41A392151EFC4B3A00C4516A /* forkunsafe.c in Sources */,
</del><span class="cx">                           5C4B46541E42AA34002651C8 /* v3_alt.c in Sources */,
</span><span class="cx">                          5C4B46551E42AA34002651C8 /* v3_bcons.c in Sources */,
</span><del>-                               41EA53C91EFC2C8B002FF04C /* oct.c in Sources */,
-                               41EA54091EFC2D1B002FF04C /* montgomery.c in Sources */,
</del><span class="cx">                           5C4B46561E42AA34002651C8 /* v3_bitst.c in Sources */,
</span><span class="cx">                          5C4B46571E42AA34002651C8 /* v3_conf.c in Sources */,
</span><span class="cx">                          5C4B46581E42AA34002651C8 /* v3_cpols.c in Sources */,
</span><span class="lines">@@ -11741,7 +11772,6 @@
</span><span class="cx">                          5C4B46591E42AA34002651C8 /* v3_crld.c in Sources */,
</span><span class="cx">                          5C4B465A1E42AA34002651C8 /* v3_enum.c in Sources */,
</span><span class="cx">                          5C4B465B1E42AA34002651C8 /* v3_extku.c in Sources */,
</span><del>-                               41A392061EFC4A6300C4516A /* p_ed25519.c in Sources */,
</del><span class="cx">                           5C4B465C1E42AA34002651C8 /* v3_genn.c in Sources */,
</span><span class="cx">                          5C4B465D1E42AA34002651C8 /* v3_ia5.c in Sources */,
</span><span class="cx">                          5C4B465E1E42AA34002651C8 /* v3_info.c in Sources */,
</span><span class="lines">@@ -11753,7 +11783,6 @@
</span><span class="cx">                          5C4B46641E42AA34002651C8 /* v3_pcons.c in Sources */,
</span><span class="cx">                          5C4B46651E42AA34002651C8 /* v3_pku.c in Sources */,
</span><span class="cx">                          5C4B46661E42AA34002651C8 /* v3_pmaps.c in Sources */,
</span><del>-                               41A3917D1EFC447C00C4516A /* ofb.c in Sources */,
</del><span class="cx">                           5C4B46671E42AA34002651C8 /* v3_prn.c in Sources */,
</span><span class="cx">                          5C4B46681E42AA34002651C8 /* v3_purp.c in Sources */,
</span><span class="cx">                          5C4B46691E42AA34002651C8 /* v3_skey.c in Sources */,
</span><span class="lines">@@ -11761,11 +11790,12 @@
</span><span class="cx">                          5C4B466B1E42AA34002651C8 /* v3_utl.c in Sources */,
</span><span class="cx">                          5C4B47D31E42BDB1002651C8 /* vpaes-x86.S in Sources */,
</span><span class="cx">                          5C4B47991E42B60C002651C8 /* vpaes-x86_64.S in Sources */,
</span><ins>+                               41EA53D21EFC2C8B002FF04C /* wnaf.c in Sources */,
+                               41A3921A1EFC5AB800C4516A /* x25519-asm-arm.S in Sources */,
+                               41A3921B1EFC5AB800C4516A /* x25519-asm-x86_64.S in Sources */,
</ins><span class="cx">                           5C4B4D031E432185002651C8 /* x25519-x86_64.c in Sources */,
</span><del>-                               41A391871EFC447C00C4516A /* rsa.c in Sources */,
</del><span class="cx">                           5C4B469F1E42AA3C002651C8 /* x509.c in Sources */,
</span><span class="cx">                          5C4B468F1E42AA3C002651C8 /* x509_att.c in Sources */,
</span><del>-                               41A391B01EFC454F00C4516A /* e_rc4.c in Sources */,
</del><span class="cx">                           5C4B46901E42AA3C002651C8 /* x509_cmp.c in Sources */,
</span><span class="cx">                          5C4B46911E42AA3C002651C8 /* x509_d2.c in Sources */,
</span><span class="cx">                          5C4B46921E42AA3C002651C8 /* x509_def.c in Sources */,
</span><span class="lines">@@ -11775,41 +11805,28 @@
</span><span class="cx">                          5C4B46961E42AA3C002651C8 /* x509_r2x.c in Sources */,
</span><span class="cx">                          5C4B46971E42AA3C002651C8 /* x509_req.c in Sources */,
</span><span class="cx">                          5C4B46981E42AA3C002651C8 /* x509_set.c in Sources */,
</span><del>-                               41A391A81EFC454F00C4516A /* cipher_extra.c in Sources */,
-                               41A3917E1EFC447C00C4516A /* polyval.c in Sources */,
-                               41EA54051EFC2D1B002FF04C /* gcd.c in Sources */,
</del><span class="cx">                           5C4B469A1E42AA3C002651C8 /* x509_trs.c in Sources */,
</span><del>-                               41EA53AC1EFC2C4D002FF04C /* digests.c in Sources */,
</del><span class="cx">                           5C4B469B1E42AA3C002651C8 /* x509_txt.c in Sources */,
</span><del>-                               41EA53CB1EFC2C8B002FF04C /* p256-64.c in Sources */,
</del><span class="cx">                           5C4B469C1E42AA3C002651C8 /* x509_v3.c in Sources */,
</span><del>-                               41A391AB1EFC454F00C4516A /* e_aesctrhmac.c in Sources */,
</del><span class="cx">                           5C4B469D1E42AA3C002651C8 /* x509_vfy.c in Sources */,
</span><del>-                               41EA53CD1EFC2C8B002FF04C /* p256-x86_64.c in Sources */,
</del><span class="cx">                           5C4B469E1E42AA3C002651C8 /* x509_vpm.c in Sources */,
</span><del>-                               41EA54111EFC2D1B002FF04C /* sqrt.c in Sources */,
</del><span class="cx">                           5C4B46A01E42AA3C002651C8 /* x509cset.c in Sources */,
</span><span class="cx">                          5C4B46A11E42AA3C002651C8 /* x509name.c in Sources */,
</span><del>-                               41EA540D1EFC2D1B002FF04C /* random.c in Sources */,
-                               41A391AE1EFC454F00C4516A /* e_null.c in Sources */,
</del><span class="cx">                           5C4B46A21E42AA3C002651C8 /* x509rset.c in Sources */,
</span><del>-                               41A391781EFC447C00C4516A /* cfb.c in Sources */,
</del><span class="cx">                           5C4B46A31E42AA3C002651C8 /* x509spki.c in Sources */,
</span><span class="cx">                          5C4B47D01E42BDB1002651C8 /* x86-mont.S in Sources */,
</span><del>-                               41A3921E1EFC5B1100C4516A /* chacha20_poly1305_x86_64.S in Sources */,
</del><ins>+                                41EA53FD1EFC2D1B002FF04C /* x86_64-gcc.c in Sources */,
</ins><span class="cx">                           5C4B479C1E42B610002651C8 /* x86_64-mont.S in Sources */,
</span><span class="cx">                          5C4B479D1E42B610002651C8 /* x86_64-mont5.S in Sources */,
</span><del>-                               41EA53D11EFC2C8B002FF04C /* util-64.c in Sources */,
</del><span class="cx">                           5C4B46801E42AA3C002651C8 /* x_algor.c in Sources */,
</span><ins>+                               41A391CC1EFC46DE00C4516A /* x_all.c in Sources */,
</ins><span class="cx">                           5C4B46811E42AA3C002651C8 /* x_all.c in Sources */,
</span><span class="cx">                          5C4B46821E42AA3C002651C8 /* x_attrib.c in Sources */,
</span><span class="cx">                          5C4B46831E42AA3C002651C8 /* x_crl.c in Sources */,
</span><span class="cx">                          5C4B46841E42AA3C002651C8 /* x_exten.c in Sources */,
</span><del>-                               41A391E41EFC48CE00C4516A /* ec_asn1.c in Sources */,
</del><span class="cx">                           5C4B46851E42AA3C002651C8 /* x_info.c in Sources */,
</span><span class="cx">                          5C4B46861E42AA3C002651C8 /* x_name.c in Sources */,
</span><span class="cx">                          5C4B46871E42AA3C002651C8 /* x_pkey.c in Sources */,
</span><del>-                               41A391BB1EFC45CD00C4516A /* bn_asn1.c in Sources */,
</del><span class="cx">                           5C4B46881E42AA3C002651C8 /* x_pubkey.c in Sources */,
</span><span class="cx">                          5C4B46891E42AA3C002651C8 /* x_req.c in Sources */,
</span><span class="cx">                          5C4B468A1E42AA3C002651C8 /* x_sig.c in Sources */,
</span><span class="lines">@@ -11827,31 +11844,38 @@
</span><span class="cx">                          5CDD8B6C1E43C2B500621E92 /* abs_quant.c in Sources */,
</span><span class="cx">                          5CDD8B6A1E43C2B500621E92 /* abs_quant_loop.c in Sources */,
</span><span class="cx">                          5CDD89F81E43BFB300621E92 /* accelerate.cc in Sources */,
</span><ins>+                               41F411B41EF8DA4B00343C26 /* acknowledge_bitrate_estimator.cc in Sources */,
</ins><span class="cx">                           5CDD85031E43B1EA00621E92 /* acm_codec_database.cc in Sources */,
</span><span class="cx">                          5CDD85091E43B1EA00621E92 /* acm_receiver.cc in Sources */,
</span><span class="cx">                          5CDD850B1E43B1EA00621E92 /* acm_resampler.cc in Sources */,
</span><span class="cx">                          5C4B48D71E42C1E3002651C8 /* adaptedvideotracksource.cc in Sources */,
</span><ins>+                               5CD285A41E6A63430094FDC8 /* adaptive_fir_filter.cc in Sources */,
+                               41F411C71EF97BAC00343C26 /* adm_helpers.cc in Sources */,
+                               5CD285A81E6A63430094FDC8 /* aec3_common.cc in Sources */,
+                               5CD285AA1E6A63430094FDC8 /* aec3_fft.cc in Sources */,
</ins><span class="cx">                           5CDD86BC1E43B9C200621E92 /* aec_core.cc in Sources */,
</span><span class="cx">                          5CDD86BB1E43B9C200621E92 /* aec_core_sse2.cc in Sources */,
</span><ins>+                               413092131EF8D51100757C55 /* aec_dump.cc in Sources */,
</ins><span class="cx">                           5CDD86BE1E43B9C200621E92 /* aec_resampler.cc in Sources */,
</span><del>-                               5CD2852F1E6A61110094FDC8 /* internaldecoderfactory.cc in Sources */,
</del><ins>+                                5CD285A61E6A63430094FDC8 /* aec_state.cc in Sources */,
</ins><span class="cx">                           5CDD85E71E43B81000621E92 /* aecm_core.cc in Sources */,
</span><span class="cx">                          5CDD85E41E43B81000621E92 /* aecm_core_c.cc in Sources */,
</span><span class="cx">                          5CDD87011E43BA7500621E92 /* agc.cc in Sources */,
</span><span class="cx">                          5CDD86FF1E43BA7500621E92 /* agc_manager_direct.cc in Sources */,
</span><span class="cx">                          5CDD8FD11E43CD6600621E92 /* aimd_rate_control.cc in Sources */,
</span><del>-                               5CD2846A1E6A57F40094FDC8 /* video_frame.cc in Sources */,
</del><span class="cx">                           5C4B4CC11E4320A9002651C8 /* aligned_malloc.cc in Sources */,
</span><span class="cx">                          5CDD8F9E1E43CCBE00621E92 /* alr_detector.cc in Sources */,
</span><del>-                               41433CEE1F79B33400387B4D /* lpc_masking_model.c in Sources */,
</del><span class="cx">                           5CDD86EC1E43BA6D00621E92 /* analog_agc.c in Sources */,
</span><span class="cx">                          5CDD87E51E43BDA100621E92 /* apm_data_dumper.cc in Sources */,
</span><del>-                               5CD284951E6A5F410094FDC8 /* audio_mixer_impl.cc in Sources */,
</del><ins>+                                5CD284C21E6A5FFC0094FDC8 /* apm_helpers.cc in Sources */,
</ins><span class="cx">                           5CDD893B1E43BF3A00621E92 /* app.cc in Sources */,
</span><span class="cx">                          5C63F6801E41619E002CA531 /* applefilesystem.mm in Sources */,
</span><span class="cx">                          5CDD87A91E43BC0500621E92 /* arith_routines.c in Sources */,
</span><ins>+                               41433D0A1F79B33400387B4D /* arith_routines.c in Sources */,
</ins><span class="cx">                           5CDD87A71E43BC0500621E92 /* arith_routines_hist.c in Sources */,
</span><ins>+                               41433D291F79B33400387B4D /* arith_routines_hist.c in Sources */,
</ins><span class="cx">                           5CDD87A81E43BC0500621E92 /* arith_routines_logist.c in Sources */,
</span><ins>+                               41433D0F1F79B33400387B4D /* arith_routines_logist.c in Sources */,
</ins><span class="cx">                           5CDD90751E43D15C00621E92 /* array_util.cc in Sources */,
</span><span class="cx">                          5C63F6861E41619E002CA531 /* asyncinvoker.cc in Sources */,
</span><span class="cx">                          5C63F6881E41619E002CA531 /* asyncpacketsocket.cc in Sources */,
</span><span class="lines">@@ -11865,62 +11889,63 @@
</span><span class="cx">                          5CDD85101E43B1EA00621E92 /* audio_coding_module.cc in Sources */,
</span><span class="cx">                          5CDD87F11E43BDED00621E92 /* audio_conference_mixer_impl.cc in Sources */,
</span><span class="cx">                          5C4B4C591E431F9C002651C8 /* audio_converter.cc in Sources */,
</span><ins>+                               5CD285441E6A61D20094FDC8 /* audio_decoder.cc in Sources */,
</ins><span class="cx">                           4140B8311E4E3396007409E6 /* audio_decoder_g722.cc in Sources */,
</span><span class="cx">                          5CDD8B6E1E43C2B500621E92 /* audio_decoder_ilbc.cc in Sources */,
</span><span class="cx">                          5CDD89FD1E43BFB300621E92 /* audio_decoder_impl.cc in Sources */,
</span><del>-                               413092061EF8D0C900757C55 /* audio_level.cc in Sources */,
</del><span class="cx">                           5CDD87AB1E43BC0500621E92 /* audio_decoder_isac.cc in Sources */,
</span><ins>+                               41433CF91F79B33400387B4D /* audio_decoder_isacfix.cc in Sources */,
</ins><span class="cx">                           5CDD8C601E43C60900621E92 /* audio_decoder_opus.cc in Sources */,
</span><span class="cx">                          4140B8221E4E3383007409E6 /* audio_decoder_pcm.cc in Sources */,
</span><span class="cx">                          5CDD8FFC1E43CE3A00621E92 /* audio_decoder_pcm16b.cc in Sources */,
</span><del>-                               5CD285B01E6A63430094FDC8 /* block_processor.cc in Sources */,
</del><span class="cx">                           5C119FFB1E457400004F0987 /* audio_device_buffer.cc in Sources */,
</span><span class="cx">                          5C11A01D1E457578004F0987 /* audio_device_dummy.cc in Sources */,
</span><span class="cx">                          5C119FFE1E457400004F0987 /* audio_device_generic.cc in Sources */,
</span><span class="cx">                          5C11A00B1E457448004F0987 /* audio_device_mac.cc in Sources */,
</span><ins>+                               4145E4DF1EF8CD3900FCF6E6 /* audio_encoder.cc in Sources */,
</ins><span class="cx">                           5CDD8CA71E43C6F700621E92 /* audio_encoder_cng.cc in Sources */,
</span><span class="cx">                          5CDD8FF31E43CDF400621E92 /* audio_encoder_copy_red.cc in Sources */,
</span><span class="cx">                          4140B8331E4E3396007409E6 /* audio_encoder_g722.cc in Sources */,
</span><del>-                               5CD284C21E6A5FFC0094FDC8 /* apm_helpers.cc in Sources */,
</del><span class="cx">                           5CDD8B701E43C2B500621E92 /* audio_encoder_ilbc.cc in Sources */,
</span><span class="cx">                          5CDD87AD1E43BC0500621E92 /* audio_encoder_isac.cc in Sources */,
</span><del>-                               5CD284671E6A57F40094FDC8 /* i420_buffer.cc in Sources */,
</del><ins>+                                41433CFB1F79B33400387B4D /* audio_encoder_isacfix.cc in Sources */,
</ins><span class="cx">                           5CDD8C631E43C60900621E92 /* audio_encoder_opus.cc in Sources */,
</span><del>-                               41433CF71F79B33400387B4D /* bandwidth_estimator.c in Sources */,
</del><span class="cx">                           4140B8201E4E3383007409E6 /* audio_encoder_pcm.cc in Sources */,
</span><span class="cx">                          5CDD8FFE1E43CE3A00621E92 /* audio_encoder_pcm16b.cc in Sources */,
</span><ins>+                               5CD285461E6A61D20094FDC8 /* audio_format.cc in Sources */,
</ins><span class="cx">                           5CDD84191E439B2900621E92 /* audio_format_conversion.cc in Sources */,
</span><span class="cx">                          5CDD87F31E43BDED00621E92 /* audio_frame_manipulator.cc in Sources */,
</span><ins>+                               5CD284921E6A5F410094FDC8 /* audio_frame_manipulator.cc in Sources */,
+                               5CD2854D1E6A62130094FDC8 /* audio_frame_operations.cc in Sources */,
+                               413092061EF8D0C900757C55 /* audio_level.cc in Sources */,
</ins><span class="cx">                           5CDD8A8F1E43C00F00621E92 /* audio_loop.cc in Sources */,
</span><del>-                               5CD285D11E6A63430094FDC8 /* output_selector.cc in Sources */,
</del><ins>+                                5CD284951E6A5F410094FDC8 /* audio_mixer_impl.cc in Sources */,
</ins><span class="cx">                           5C11A00D1E457448004F0987 /* audio_mixer_manager_mac.cc in Sources */,
</span><span class="cx">                          5CDD8A011E43BFB300621E92 /* audio_multi_vector.cc in Sources */,
</span><del>-                               5CD285CD1E6A63430094FDC8 /* matched_filter_lag_aggregator.cc in Sources */,
</del><span class="cx">                           5CDD8F7B1E43CBE000621E92 /* audio_network_adaptor.cc in Sources */,
</span><span class="cx">                          5CDD8F791E43CBE000621E92 /* audio_network_adaptor_impl.cc in Sources */,
</span><del>-                               5CD285351E6A61590094FDC8 /* video_codec_initializer.cc in Sources */,
</del><span class="cx">                           5CDD8FE91E43CDCA00621E92 /* audio_processing.cc in Sources */,
</span><span class="cx">                          5CDD84AB1E43AF1300621E92 /* audio_processing_impl.cc in Sources */,
</span><span class="cx">                          5CDD8ACC1E43C23900621E92 /* audio_receive_stream.cc in Sources */,
</span><span class="cx">                          5C4B4C5C1E431F9C002651C8 /* audio_ring_buffer.cc in Sources */,
</span><span class="cx">                          5CDD8ACF1E43C23900621E92 /* audio_send_stream.cc in Sources */,
</span><ins>+                               5CD284B11E6A5F9F0094FDC8 /* audio_send_stream.cc in Sources */,
</ins><span class="cx">                           5CDD8A911E43C00F00621E92 /* audio_sink.cc in Sources */,
</span><span class="cx">                          5CDD8AD21E43C23900621E92 /* audio_state.cc in Sources */,
</span><ins>+                               5CD286361E6A67D80094FDC8 /* audio_transport_proxy.cc in Sources */,
</ins><span class="cx">                           5C4B4C5F1E431F9C002651C8 /* audio_util.cc in Sources */,
</span><span class="cx">                          5CDD8A041E43BFB300621E92 /* audio_vector.cc in Sources */,
</span><ins>+                               5CD284F01E6A60570094FDC8 /* audiotrack.cc in Sources */,
</ins><span class="cx">                           5CDD8B721E43C2B500621E92 /* augmented_cb_corr.c in Sources */,
</span><span class="cx">                          5CDD86401E43B8B500621E92 /* auto_corr_to_refl_coef.c in Sources */,
</span><span class="cx">                          5CDD86411E43B8B500621E92 /* auto_correlation.c in Sources */,
</span><span class="cx">                          5CDD8A071E43BFB300621E92 /* background_noise.cc in Sources */,
</span><ins>+                               41433CF71F79B33400387B4D /* bandwidth_estimator.c in Sources */,
</ins><span class="cx">                           5CDD87AE1E43BC0500621E92 /* bandwidth_estimator.c in Sources */,
</span><span class="cx">                          5C63F7B51E416288002CA531 /* base64.cc in Sources */,
</span><span class="cx">                          5C63F9E21E4174F6002CA531 /* basicpacketsocketfactory.cc in Sources */,
</span><del>-                               5CD285B81E6A63430094FDC8 /* echo_canceller3.cc in Sources */,
-                               41433D051F79B33400387B4D /* decode.c in Sources */,
</del><span class="cx">                           5C4B4D091E4322F6002651C8 /* basicportallocator.cc in Sources */,
</span><del>-                               5CD2855D1E6A62ED0094FDC8 /* low_cut_filter.cc in Sources */,
</del><span class="cx">                           5CDD901C1E43CEDE00621E92 /* biquad_filter.cc in Sources */,
</span><del>-                               413091FB1EF8CFF800757C55 /* builtin_audio_encoder_factory.cc in Sources */,
</del><span class="cx">                           5C63F7B91E416288002CA531 /* bitbuffer.cc in Sources */,
</span><span class="cx">                          5C4B4C191E431F75002651C8 /* bitrate_adjuster.cc in Sources */,
</span><span class="cx">                          5CDD852F1E43B39C00621E92 /* bitrate_allocator.cc in Sources */,
</span><span class="lines">@@ -11927,24 +11952,30 @@
</span><span class="cx">                          5CDD8F7D1E43CBE000621E92 /* bitrate_controller.cc in Sources */,
</span><span class="cx">                          5CDD905D1E43D11200621E92 /* bitrate_controller_impl.cc in Sources */,
</span><span class="cx">                          5CDD8FA01E43CCBE00621E92 /* bitrate_prober.cc in Sources */,
</span><ins>+                               5CD285AC1E6A63430094FDC8 /* block_framer.cc in Sources */,
</ins><span class="cx">                           5CDD86871E43B93900621E92 /* block_mean_calculator.cc in Sources */,
</span><ins>+                               5CD285B01E6A63430094FDC8 /* block_processor.cc in Sources */,
+                               5CD285AE1E6A63430094FDC8 /* block_processor_metrics.cc in Sources */,
</ins><span class="cx">                           5C4B4C611E431F9C002651C8 /* blocker.cc in Sources */,
</span><span class="cx">                          5CDD8A0A1E43BFB300621E92 /* buffer_level_filter.cc in Sources */,
</span><span class="cx">                          5C63F7BD1E416288002CA531 /* bufferqueue.cc in Sources */,
</span><del>-                               412455521EF887B700F11809 /* httpcommon.cc in Sources */,
</del><ins>+                                5CD285481E6A61D20094FDC8 /* builtin_audio_decoder_factory.cc in Sources */,
+                               5CD2862E1E6A67970094FDC8 /* builtin_audio_decoder_factory_internal.cc in Sources */,
+                               413091FB1EF8CFF800757C55 /* builtin_audio_encoder_factory.cc in Sources */,
+                               413092271EF8D6E600757C55 /* builtin_audio_encoder_factory_internal.cc in Sources */,
</ins><span class="cx">                           5CDD8B741E43C2B500621E92 /* bw_expand.c in Sources */,
</span><span class="cx">                          5CDD8FD31E43CD6600621E92 /* bwe_defines.cc in Sources */,
</span><span class="cx">                          5CDD893E1E43BF3A00621E92 /* bye.cc in Sources */,
</span><span class="cx">                          5C63F7BF1E416288002CA531 /* bytebuffer.cc in Sources */,
</span><del>-                               412455491EF886FA00F11809 /* thread_darwin.mm in Sources */,
</del><span class="cx">                           5CDD85341E43B39C00621E92 /* call.cc in Sources */,
</span><span class="cx">                          5CDD85121E43B1EA00621E92 /* call_statistics.cc in Sources */,
</span><span class="cx">                          5CDD859C1E43B5C000621E92 /* call_stats.cc in Sources */,
</span><ins>+                               4145E4E41EF8CD7D00FCF6E6 /* callfactory.cc in Sources */,
+                               5CD285B21E6A63430094FDC8 /* cascaded_biquad_filter.cc in Sources */,
</ins><span class="cx">                           5CDD8B761E43C2B500621E92 /* cb_construct.c in Sources */,
</span><span class="cx">                          5CDD8B7C1E43C2B500621E92 /* cb_mem_energy.c in Sources */,
</span><span class="cx">                          5CDD8B781E43C2B500621E92 /* cb_mem_energy_augmentation.c in Sources */,
</span><span class="cx">                          5CDD8B7A1E43C2B500621E92 /* cb_mem_energy_calc.c in Sources */,
</span><del>-                               4145E4BF1EF894F600FCF6E6 /* h264_profile_level_id.cc in Sources */,
</del><span class="cx">                           5CDD8B801E43C2B500621E92 /* cb_search.c in Sources */,
</span><span class="cx">                          5CDD8B7E1E43C2B500621E92 /* cb_search_core.c in Sources */,
</span><span class="cx">                          5CDD8B821E43C2B500621E92 /* cb_update_best_index.c in Sources */,
</span><span class="lines">@@ -11954,26 +11985,19 @@
</span><span class="cx">                          5CDD84591E43AE2900621E92 /* channel_manager.cc in Sources */,
</span><span class="cx">                          5CDD845B1E43AE2900621E92 /* channel_proxy.cc in Sources */,
</span><span class="cx">                          5CDD8B841E43C2B500621E92 /* chebyshev.c in Sources */,
</span><del>-                               41433D141F79B33400387B4D /* lattice_c.c in Sources */,
</del><span class="cx">                           5C63F7C31E416288002CA531 /* checks.cc in Sources */,
</span><del>-                               5CD285A61E6A63430094FDC8 /* aec_state.cc in Sources */,
</del><span class="cx">                           5CDD86A11E43B99400621E92 /* circular_buffer.cc in Sources */,
</span><del>-                               413092021EF8D0A600757C55 /* rtp_demuxer.cc in Sources */,
</del><span class="cx">                           5CDD8C851E43C66000621E92 /* click_annotate.cc in Sources */,
</span><del>-                               5CD285C21E6A63430094FDC8 /* erl_estimator.cc in Sources */,
-                               5CD2846F1E6A5C250094FDC8 /* jseptransport.cc in Sources */,
-                               5CD286071E6A64840094FDC8 /* file_player.cc in Sources */,
</del><span class="cx">                           5C4B4CC61E4320A9002651C8 /* clock.cc in Sources */,
</span><span class="cx">                          5C4B48DB1E42C1E3002651C8 /* codec.cc in Sources */,
</span><del>-                               41433CEB1F79B33400387B4D /* decode_bwe.c in Sources */,
-                               5CD284F01E6A60570094FDC8 /* audiotrack.cc in Sources */,
</del><span class="cx">                           5CDD83C61E439A6F00621E92 /* codec_database.cc in Sources */,
</span><span class="cx">                          5CDD85151E43B1EA00621E92 /* codec_manager.cc in Sources */,
</span><span class="cx">                          5CDD83C81E439A6F00621E92 /* codec_timer.cc in Sources */,
</span><ins>+                               5CD286051E6A64840094FDC8 /* coder.cc in Sources */,
</ins><span class="cx">                           5CDD8A0D1E43BFB300621E92 /* comfort_noise.cc in Sources */,
</span><ins>+                               5CD285B41E6A63430094FDC8 /* comfort_noise_generator.cc in Sources */,
</ins><span class="cx">                           5CDD89411E43BF3A00621E92 /* common_header.cc in Sources */,
</span><span class="cx">                          5C6CDD4B1E413598009754E3 /* common_types.cc in Sources */,
</span><del>-                               5CD2849A1E6A5F410094FDC8 /* frame_combiner.cc in Sources */,
</del><span class="cx">                           5CDD8B861E43C2B500621E92 /* comp_corr.c in Sources */,
</span><span class="cx">                          5CFD538D1E4BD3A300482908 /* compare_neon.cc in Sources */,
</span><span class="cx">                          5CFD538E1E4BD3A300482908 /* compare_neon64.cc in Sources */,
</span><span class="lines">@@ -11985,85 +12009,96 @@
</span><span class="cx">                          5CDD8FB21E43CD0700621E92 /* congestion_controller.cc in Sources */,
</span><span class="cx">                          5CDD8A931E43C00F00621E92 /* constant_pcm_packet_source.cc in Sources */,
</span><span class="cx">                          5CDD8B891E43C2B500621E92 /* constants.c in Sources */,
</span><del>-                               41433D061F79B33400387B4D /* filterbanks.c in Sources */,
</del><span class="cx">                           5CDD8F851E43CBE000621E92 /* controller.cc in Sources */,
</span><span class="cx">                          5CDD8F831E43CBE000621E92 /* controller_manager.cc in Sources */,
</span><span class="cx">                          5CDD86481E43B8B500621E92 /* copy_set_operations.c in Sources */,
</span><span class="cx">                          5C63F7C81E416288002CA531 /* copyonwritebuffer.cc in Sources */,
</span><ins>+                               4145E4AA1EF8933D00FCF6E6 /* corevideo_frame_buffer.cc in Sources */,
</ins><span class="cx">                           5CDD907A1E43D15C00621E92 /* covariance_matrix_generator.cc in Sources */,
</span><span class="cx">                          5C4B4CCA1E4320A9002651C8 /* cpu_features.cc in Sources */,
</span><del>-                               5CD285071E6A60570094FDC8 /* rtcstatscollector.cc in Sources */,
</del><span class="cx">                           5C4B4CCB1E4320A9002651C8 /* cpu_info.cc in Sources */,
</span><span class="cx">                          5CDD87B11E43BC0500621E92 /* crc.c in Sources */,
</span><span class="cx">                          5C63F7CB1E416288002CA531 /* crc32.cc in Sources */,
</span><span class="cx">                          5CDD8B8B1E43C2B500621E92 /* create_augmented_vec.c in Sources */,
</span><ins>+                               4145E4CA1EF8CB3200FCF6E6 /* createpeerconnectionfactory.cc in Sources */,
</ins><span class="cx">                           5C63F7CD1E416288002CA531 /* criticalsection.cc in Sources */,
</span><span class="cx">                          5CDD864B1E43B8B500621E92 /* cross_correlation.c in Sources */,
</span><span class="cx">                          5CDD8A0F1E43BFB300621E92 /* cross_correlation.cc in Sources */,
</span><span class="cx">                          5C63F7CF1E416288002CA531 /* cryptstring.cc in Sources */,
</span><ins>+                               5CD284F21E6A60570094FDC8 /* datachannel.cc in Sources */,
</ins><span class="cx">                           5CDD8F871E43CBE000621E92 /* debug_dump_writer.cc in Sources */,
</span><del>-                               5CD285181E6A60570094FDC8 /* videotracksource.cc in Sources */,
</del><ins>+                                5CD285B61E6A63430094FDC8 /* decimator_by_4.cc in Sources */,
</ins><span class="cx">                           5CDD8A161E43BFB300621E92 /* decision_logic.cc in Sources */,
</span><span class="cx">                          5CDD8A111E43BFB300621E92 /* decision_logic_fax.cc in Sources */,
</span><span class="cx">                          5CDD8A131E43BFB300621E92 /* decision_logic_normal.cc in Sources */,
</span><del>-                               5CD2862E1E6A67970094FDC8 /* builtin_audio_decoder_factory_internal.cc in Sources */,
</del><ins>+                                41433D051F79B33400387B4D /* decode.c in Sources */,
</ins><span class="cx">                           5CDD87B41E43BC0500621E92 /* decode.c in Sources */,
</span><span class="cx">                          5CDD8B8F1E43C2B500621E92 /* decode.c in Sources */,
</span><ins>+                               41433CEB1F79B33400387B4D /* decode_bwe.c in Sources */,
</ins><span class="cx">                           5CDD87B31E43BC0500621E92 /* decode_bwe.c in Sources */,
</span><ins>+                               41433D0E1F79B33400387B4D /* decode_plc.c in Sources */,
</ins><span class="cx">                           5CDD8B8D1E43C2B500621E92 /* decode_residual.c in Sources */,
</span><del>-                               5CD284971E6A5F410094FDC8 /* default_output_rate_calculator.cc in Sources */,
</del><ins>+                                4145E4B81EF8943E00FCF6E6 /* decoder.mm in Sources */,
</ins><span class="cx">                           5CDD8A191E43BFB300621E92 /* decoder_database.cc in Sources */,
</span><span class="cx">                          5CDD8B911E43C2B500621E92 /* decoder_interpolate_lsf.c in Sources */,
</span><del>-                               41433D0E1F79B33400387B4D /* decode_plc.c in Sources */,
</del><span class="cx">                           5CDD83CA1E439A6F00621E92 /* decoding_state.cc in Sources */,
</span><ins>+                               5CD284971E6A5F410094FDC8 /* default_output_rate_calculator.cc in Sources */,
+                               5CD285391E6A61980094FDC8 /* default_video_bitrate_allocator.cc in Sources */,
</ins><span class="cx">                           5CDD8FB51E43CD0700621E92 /* delay_based_bwe.cc in Sources */,
</span><del>-                               5CD284BE1E6A5F9F0094FDC8 /* syncable.cc in Sources */,
</del><span class="cx">                           5CDD868D1E43B93900621E92 /* delay_estimator.cc in Sources */,
</span><span class="cx">                          5CDD868B1E43B93900621E92 /* delay_estimator_wrapper.cc in Sources */,
</span><span class="cx">                          5CDD8A1D1E43BFB300621E92 /* delay_manager.cc in Sources */,
</span><span class="cx">                          5CDD8A201E43BFB300621E92 /* delay_peak_detector.cc in Sources */,
</span><span class="cx">                          5CDD86EE1E43BA6D00621E92 /* digital_agc.c in Sources */,
</span><ins>+                               413092221EF8D6A200757C55 /* digital_gain_applier.cc in Sources */,
</ins><span class="cx">                           5CDD864C1E43B8B500621E92 /* division_operations.c in Sources */,
</span><span class="cx">                          5CDD89471E43BF3A00621E92 /* dlrr.cc in Sources */,
</span><span class="cx">                          5CDD8B941E43C2B500621E92 /* do_plc.c in Sources */,
</span><ins>+                               412455451EF87C0F00F11809 /* dot_product_with_scale.cc in Sources */,
</ins><span class="cx">                           5CDD901E1E43CEDE00621E92 /* down_sampler.cc in Sources */,
</span><span class="cx">                          5CDD86501E43B8B500621E92 /* downsample_fast.c in Sources */,
</span><ins>+                               4145E4D61EF8CC7600FCF6E6 /* downsampled_render_buffer.cc in Sources */,
</ins><span class="cx">                           5CDD8A231E43BFB300621E92 /* dsp_helper.cc in Sources */,
</span><span class="cx">                          5C63F9E91E4174F6002CA531 /* dtlstransportchannel.cc in Sources */,
</span><span class="cx">                          5CDD8A261E43BFB300621E92 /* dtmf_buffer.cc in Sources */,
</span><del>-                               5CD285A81E6A63430094FDC8 /* aec3_common.cc in Sources */,
</del><span class="cx">                           5CDD88771E43BE3C00621E92 /* dtmf_queue.cc in Sources */,
</span><span class="cx">                          5CDD8A291E43BFB300621E92 /* dtmf_tone_generator.cc in Sources */,
</span><ins>+                               5CD284F41E6A60570094FDC8 /* dtmfsender.cc in Sources */,
</ins><span class="cx">                           5CDD8F8A1E43CBE000621E92 /* dtx_controller.cc in Sources */,
</span><span class="cx">                          5CDD86C11E43B9C200621E92 /* echo_cancellation.cc in Sources */,
</span><span class="cx">                          5CDD84AE1E43AF1300621E92 /* echo_cancellation_impl.cc in Sources */,
</span><ins>+                               5CD285B81E6A63430094FDC8 /* echo_canceller3.cc in Sources */,
</ins><span class="cx">                           5CDD85EA1E43B81000621E92 /* echo_control_mobile.cc in Sources */,
</span><del>-                               5CD285E21E6A63430094FDC8 /* subtractor.cc in Sources */,
-                               4124554B1EF8874300F11809 /* video_frame_buffer.cc in Sources */,
-                               5CD285DB1E6A63430094FDC8 /* render_signal_analyzer.cc in Sources */,
</del><span class="cx">                           5CDD84B01E43AF1300621E92 /* echo_control_mobile_impl.cc in Sources */,
</span><ins>+                               5CD285BA1E6A63430094FDC8 /* echo_path_delay_estimator.cc in Sources */,
+                               5CD285BC1E6A63430094FDC8 /* echo_path_variability.cc in Sources */,
+                               5CD285C01E6A63430094FDC8 /* echo_remover.cc in Sources */,
+                               5CD285BE1E6A63430094FDC8 /* echo_remover_metrics.cc in Sources */,
</ins><span class="cx">                           5CDD8C0E1E43C34600621E92 /* empty.cc in Sources */,
</span><span class="cx">                          5CDD8B961E43C2B500621E92 /* encode.c in Sources */,
</span><span class="cx">                          5CDD87B71E43BC0500621E92 /* encode.c in Sources */,
</span><ins>+                               41433D121F79B33400387B4D /* encode.c in Sources */,
</ins><span class="cx">                           5CDD87B51E43BC0500621E92 /* encode_lpc_swb.c in Sources */,
</span><span class="cx">                          5CDD8A951E43C00F00621E92 /* encode_neteq_input.cc in Sources */,
</span><span class="cx">                          5CDD83CC1E439A6F00621E92 /* encoded_frame.cc in Sources */,
</span><ins>+                               4145E4B61EF8943E00FCF6E6 /* encoder.mm in Sources */,
</ins><span class="cx">                           5CDD859F1E43B5C000621E92 /* encoder_rtcp_feedback.cc in Sources */,
</span><ins>+                               416D2F161FA8CCAE00097345 /* encoder_vcp.mm in Sources */,
</ins><span class="cx">                           5CDD86511E43B8B500621E92 /* energy.c in Sources */,
</span><span class="cx">                          5CDD8B981E43C2B500621E92 /* energy_inverse.c in Sources */,
</span><span class="cx">                          5CDD8B9A1E43C2B500621E92 /* enh_upsample.c in Sources */,
</span><span class="cx">                          5CDD8B9E1E43C2B500621E92 /* enhancer.c in Sources */,
</span><del>-                               41433D291F79B33400387B4D /* arith_routines_hist.c in Sources */,
</del><span class="cx">                           5CDD8B9C1E43C2B500621E92 /* enhancer_interface.c in Sources */,
</span><del>-                               4145E4D11EF8CC2000FCF6E6 /* webrtcvideoengine.cc in Sources */,
-                               5CD284B11E6A5F9F0094FDC8 /* audio_send_stream.cc in Sources */,
-                               413091F81EF8CFBD00757C55 /* iceserverparsing.cc in Sources */,
</del><span class="cx">                           5CDD87B81E43BC0500621E92 /* entropy_coding.c in Sources */,
</span><ins>+                               41433D151F79B33400387B4D /* entropy_coding.c in Sources */,
+                               5CD285C21E6A63430094FDC8 /* erl_estimator.cc in Sources */,
+                               5CD285C41E6A63430094FDC8 /* erle_estimator.cc in Sources */,
</ins><span class="cx">                           5C4B4CD21E4320A9002651C8 /* event.cc in Sources */,
</span><del>-                               5CD285A41E6A63430094FDC8 /* adaptive_fir_filter.cc in Sources */,
</del><span class="cx">                           5C63F7DA1E416288002CA531 /* event.cc in Sources */,
</span><ins>+                               5CD286141E6A66130094FDC8 /* event_log_writer.cc in Sources */,
</ins><span class="cx">                           5C4B4CCE1E4320A9002651C8 /* event_timer_posix.cc in Sources */,
</span><span class="cx">                          5C63F7D81E416288002CA531 /* event_tracer.cc in Sources */,
</span><ins>+                               5CD285531E6A62410094FDC8 /* exp_filter.cc in Sources */,
</ins><span class="cx">                           5CDD8A2C1E43BFB300621E92 /* expand.cc in Sources */,
</span><span class="cx">                          5CDD894A1E43BF3A00621E92 /* extended_jitter_report.cc in Sources */,
</span><span class="cx">                          5CDD894D1E43BF3A00621E92 /* extended_reports.cc in Sources */,
</span><span class="lines">@@ -12070,10 +12105,9 @@
</span><span class="cx">                          5CDD8A971E43C00F00621E92 /* fake_decode_from_file.cc in Sources */,
</span><span class="cx">                          5C63F7DE1E416288002CA531 /* fakeclock.cc in Sources */,
</span><span class="cx">                          5C63F93F1E41737B002CA531 /* fakemetricsobserver.cc in Sources */,
</span><del>-                               5CD285BC1E6A63430094FDC8 /* echo_path_variability.cc in Sources */,
</del><span class="cx">                           5CDD887B1E43BE3C00621E92 /* fec_test_helper.cc in Sources */,
</span><span class="cx">                          5CDD87BA1E43BC0500621E92 /* fft.c in Sources */,
</span><del>-                               5CD285EE1E6A63D20094FDC8 /* neteq_decoder_enum.cc in Sources */,
</del><ins>+                                41433CEA1F79B33400387B4D /* fft.c in Sources */,
</ins><span class="cx">                           5C4B4C661E431F9C002651C8 /* fft4g.c in Sources */,
</span><span class="cx">                          5C4B4CD31E4320A9002651C8 /* field_trial_default.cc in Sources */,
</span><span class="cx">                          5C63F7E41E416288002CA531 /* file.cc in Sources */,
</span><span class="lines">@@ -12080,8 +12114,9 @@
</span><span class="cx">                          5C11A0211E457578004F0987 /* file_audio_device.cc in Sources */,
</span><span class="cx">                          5C11A01F1E457578004F0987 /* file_audio_device_factory.cc in Sources */,
</span><span class="cx">                          5C4B4CD41E4320A9002651C8 /* file_impl.cc in Sources */,
</span><del>-                               4130921B1EF8D63F00757C55 /* rtp_transport_controller_send.cc in Sources */,
</del><ins>+                                5CD286071E6A64840094FDC8 /* file_player.cc in Sources */,
</ins><span class="cx">                           5C63F7E31E416288002CA531 /* file_posix.cc in Sources */,
</span><ins>+                               5CD286091E6A64840094FDC8 /* file_recorder.cc in Sources */,
</ins><span class="cx">                           5CDD8C8B1E43C66000621E92 /* file_utils.cc in Sources */,
</span><span class="cx">                          5C63F7E61E416288002CA531 /* filerotatingstream.cc in Sources */,
</span><span class="cx">                          5C63F7E91E416288002CA531 /* fileutils.cc in Sources */,
</span><span class="lines">@@ -12088,34 +12123,33 @@
</span><span class="cx">                          5CDD86551E43B8B500621E92 /* filter_ar.c in Sources */,
</span><span class="cx">                          5CDD86541E43B8B500621E92 /* filter_ar_fast_q12.c in Sources */,
</span><span class="cx">                          5CDD87BC1E43BC0500621E92 /* filter_functions.c in Sources */,
</span><del>-                               5CD284F61E6A60570094FDC8 /* localaudiosource.cc in Sources */,
</del><span class="cx">                           5CDD86561E43B8B500621E92 /* filter_ma_fast_q12.c in Sources */,
</span><span class="cx">                          5CDD87BD1E43BC0500621E92 /* filterbank_tables.c in Sources */,
</span><ins>+                               41433D271F79B33400387B4D /* filterbank_tables.c in Sources */,
+                               41433D061F79B33400387B4D /* filterbanks.c in Sources */,
</ins><span class="cx">                           5CDD87BF1E43BC0500621E92 /* filterbanks.c in Sources */,
</span><del>-                               5CD285481E6A61D20094FDC8 /* builtin_audio_decoder_factory.cc in Sources */,
</del><span class="cx">                           5CDD8BA01E43C2B500621E92 /* filtered_cb_vecs.c in Sources */,
</span><ins>+                               41433D041F79B33400387B4D /* filters.c in Sources */,
</ins><span class="cx">                           5C11A0031E457400004F0987 /* fine_audio_buffer.cc in Sources */,
</span><del>-                               5CD285311E6A61110094FDC8 /* internalencoderfactory.cc in Sources */,
</del><span class="cx">                           5CDD89501E43BF3A00621E92 /* fir.cc in Sources */,
</span><span class="cx">                          5C4B4C6D1E431F9C002651C8 /* fir_filter.cc in Sources */,
</span><span class="cx">                          5C4B4C6A1E431F9C002651C8 /* fir_filter_sse.cc in Sources */,
</span><span class="cx">                          5C63F7EB1E416288002CA531 /* firewallsocketserver.cc in Sources */,
</span><del>-                               41F411BF1EF8DBA500343C26 /* vp8_noop.cc in Sources */,
</del><span class="cx">                           5C63F7ED1E416288002CA531 /* flags.cc in Sources */,
</span><span class="cx">                          5CDD887E1E43BE3C00621E92 /* flexfec_header_reader_writer.cc in Sources */,
</span><ins>+                               5CD284B91E6A5F9F0094FDC8 /* flexfec_receive_stream_impl.cc in Sources */,
</ins><span class="cx">                           5CDD88831E43BE3C00621E92 /* flexfec_receiver.cc in Sources */,
</span><span class="cx">                          5CDD88851E43BE3C00621E92 /* flexfec_sender.cc in Sources */,
</span><span class="cx">                          5CDD88881E43BE3C00621E92 /* forward_error_correction.cc in Sources */,
</span><span class="cx">                          5CDD88861E43BE3C00621E92 /* forward_error_correction_internal.cc in Sources */,
</span><ins>+                               5CD285C91E6A63430094FDC8 /* frame_blocker.cc in Sources */,
</ins><span class="cx">                           5CDD83CF1E439A6F00621E92 /* frame_buffer.cc in Sources */,
</span><span class="cx">                          5CDD83D11E439A6F00621E92 /* frame_buffer2.cc in Sources */,
</span><del>-                               5CD286101E6A64C90094FDC8 /* moving_max.cc in Sources */,
</del><span class="cx">                           5CDD8BA21E43C2B500621E92 /* frame_classify.c in Sources */,
</span><ins>+                               5CD2849A1E6A5F410094FDC8 /* frame_combiner.cc in Sources */,
</ins><span class="cx">                           5CDD83791E439A3500621E92 /* frame_dropper.cc in Sources */,
</span><span class="cx">                          5CDD8F901E43CBE000621E92 /* frame_length_controller.cc in Sources */,
</span><del>-                               5CD286141E6A66130094FDC8 /* event_log_writer.cc in Sources */,
</del><span class="cx">                           5CDD83D31E439A6F00621E92 /* frame_object.cc in Sources */,
</span><del>-                               5CD284FA1E6A60570094FDC8 /* mediastream.cc in Sources */,
</del><span class="cx">                           4140B8261E4E3383007409E6 /* g711.c in Sources */,
</span><span class="cx">                          4140B8241E4E3383007409E6 /* g711_interface.c in Sources */,
</span><span class="cx">                          4140B8351E4E3396007409E6 /* g722_decode.c in Sources */,
</span><span class="lines">@@ -12124,15 +12158,14 @@
</span><span class="cx">                          5CDD90201E43CEDE00621E92 /* gain_applier.cc in Sources */,
</span><span class="cx">                          5CDD84B21E43AF1300621E92 /* gain_control_for_experimental_agc.cc in Sources */,
</span><span class="cx">                          5CDD84B41E43AF1300621E92 /* gain_control_impl.cc in Sources */,
</span><ins>+                               413092231EF8D6A200757C55 /* gain_controller2.cc in Sources */,
</ins><span class="cx">                           5CDD8BA41E43C2B500621E92 /* gain_dequant.c in Sources */,
</span><span class="cx">                          5CDD8BA61E43C2B500621E92 /* gain_quant.c in Sources */,
</span><span class="cx">                          5CDD90221E43CEDE00621E92 /* gain_selector.cc in Sources */,
</span><span class="cx">                          5CDD83D51E439A6F00621E92 /* generic_decoder.cc in Sources */,
</span><del>-                               5CD285531E6A62410094FDC8 /* exp_filter.cc in Sources */,
</del><span class="cx">                           5CDD83D71E439A6F00621E92 /* generic_encoder.cc in Sources */,
</span><span class="cx">                          5CDD8BA81E43C2B500621E92 /* get_cd_vec.c in Sources */,
</span><span class="cx">                          5CDD86571E43B8B500621E92 /* get_hanning_window.c in Sources */,
</span><del>-                               5CD285461E6A61D20094FDC8 /* audio_format.cc in Sources */,
</del><span class="cx">                           5CDD8BAA1E43C2B500621E92 /* get_lsp_poly.c in Sources */,
</span><span class="cx">                          5CDD86581E43B8B500621E92 /* get_scaling_square.c in Sources */,
</span><span class="cx">                          5CDD8BAC1E43C2B500621E92 /* get_sync_seq.c in Sources */,
</span><span class="lines">@@ -12140,62 +12173,69 @@
</span><span class="cx">                          5CDD85581E43B42B00621E92 /* h264.cc in Sources */,
</span><span class="cx">                          5CDD83541E43257200621E92 /* h264_bitstream_parser.cc in Sources */,
</span><span class="cx">                          5CDD83561E43257200621E92 /* h264_common.cc in Sources */,
</span><ins>+                               4145E4BF1EF894F600FCF6E6 /* h264_profile_level_id.cc in Sources */,
+                               5CD285EA1E6A639F0094FDC8 /* h264_sprop_parameter_sets.cc in Sources */,
</ins><span class="cx">                           5CDD83D91E439A6F00621E92 /* h264_sps_pps_tracker.cc in Sources */,
</span><del>-                               5CD285CB1E6A63430094FDC8 /* main_filter_update_gain.cc in Sources */,
</del><span class="cx">                           5C63F7F41E416288002CA531 /* helpers.cc in Sources */,
</span><del>-                               5CD285BA1E6A63430094FDC8 /* echo_path_delay_estimator.cc in Sources */,
</del><span class="cx">                           5CDD83DB1E439A6F00621E92 /* histogram.cc in Sources */,
</span><span class="cx">                          5CDD8BAE1E43C2B500621E92 /* hp_input.c in Sources */,
</span><span class="cx">                          5CDD8BB01E43C2B500621E92 /* hp_output.c in Sources */,
</span><ins>+                               412455521EF887B700F11809 /* httpcommon.cc in Sources */,
</ins><span class="cx">                           5CDD90501E43D0E900621E92 /* i420.cc in Sources */,
</span><ins>+                               5CD284671E6A57F40094FDC8 /* i420_buffer.cc in Sources */,
</ins><span class="cx">                           5C4B4C1B1E431F75002651C8 /* i420_buffer_pool.cc in Sources */,
</span><ins>+                               413091F81EF8CFBD00757C55 /* iceserverparsing.cc in Sources */,
</ins><span class="cx">                           5C63F8011E416288002CA531 /* ifaddrs_converter.cc in Sources */,
</span><del>-                               5CD285441E6A61D20094FDC8 /* audio_decoder.cc in Sources */,
-                               5CD285FA1E6A64520094FDC8 /* rtcp_nack_stats.cc in Sources */,
</del><span class="cx">                           5CDD8BB31E43C2B500621E92 /* ilbc.c in Sources */,
</span><span class="cx">                          5CDD86591E43B8B500621E92 /* ilbc_specific_functions.c in Sources */,
</span><del>-                               41433D151F79B33400387B4D /* entropy_coding.c in Sources */,
</del><span class="cx">                           5C4B4C1C1E431F75002651C8 /* incoming_video_stream.cc in Sources */,
</span><del>-                               4145E4D61EF8CC7600FCF6E6 /* downsampled_render_buffer.cc in Sources */,
-                               41433CF61F79B33400387B4D /* pitch_estimator_c.c in Sources */,
</del><span class="cx">                           5CDD8BB51E43C2B500621E92 /* index_conv_dec.c in Sources */,
</span><span class="cx">                          5CDD8BB71E43C2B500621E92 /* index_conv_enc.c in Sources */,
</span><span class="cx">                          5CDD8BB91E43C2B500621E92 /* init_decode.c in Sources */,
</span><span class="cx">                          5CDD8BBB1E43C2B500621E92 /* init_encode.c in Sources */,
</span><ins>+                               41433CF81F79B33400387B4D /* initialize.c in Sources */,
</ins><span class="cx">                           5CDD8A9A1E43C00F00621E92 /* input_audio_file.cc in Sources */,
</span><span class="cx">                          5CDD8FD51E43CD6600621E92 /* inter_arrival.cc in Sources */,
</span><span class="cx">                          5CDD83DD1E439A6F00621E92 /* inter_frame_delay.cc in Sources */,
</span><ins>+                               5CD2852F1E6A61110094FDC8 /* internaldecoderfactory.cc in Sources */,
+                               5CD285311E6A61110094FDC8 /* internalencoderfactory.cc in Sources */,
</ins><span class="cx">                           5CDD8BBF1E43C2B500621E92 /* interpolate.c in Sources */,
</span><span class="cx">                          5CDD8BBD1E43C2B500621E92 /* interpolate_samples.c in Sources */,
</span><del>-                               5CD285D91E6A63430094FDC8 /* render_delay_controller.cc in Sources */,
</del><span class="cx">                           5CDD87C01E43BC0500621E92 /* intialize.c in Sources */,
</span><span class="cx">                          5C63F8061E416288002CA531 /* ipaddress.cc in Sources */,
</span><del>-                               5CD285C91E6A63430094FDC8 /* frame_blocker.cc in Sources */,
</del><span class="cx">                           5CDD87C31E43BC0500621E92 /* isac.c in Sources */,
</span><ins>+                               41433D2A1F79B33400387B4D /* isacfix.c in Sources */,
</ins><span class="cx">                           5CDD837B1E439A3500621E92 /* ivf_file_writer.cc in Sources */,
</span><span class="cx">                          5CDD83E11E439A6F00621E92 /* jitter_buffer.cc in Sources */,
</span><span class="cx">                          5CDD83E31E439A6F00621E92 /* jitter_estimator.cc in Sources */,
</span><ins>+                               5CD284741E6A5D280094FDC8 /* jsepicecandidate.cc in Sources */,
+                               5CD284721E6A5D080094FDC8 /* jsepsessiondescription.cc in Sources */,
+                               5CD2846F1E6A5C250094FDC8 /* jseptransport.cc in Sources */,
</ins><span class="cx">                           5C63F8081E416288002CA531 /* json.cc in Sources */,
</span><span class="cx">                          5C4B4C701E431F9C002651C8 /* lapped_transform.cc in Sources */,
</span><span class="cx">                          5CDD87C41E43BC0500621E92 /* lattice.c in Sources */,
</span><ins>+                               41433CF21F79B33400387B4D /* lattice.c in Sources */,
+                               41433D141F79B33400387B4D /* lattice_c.c in Sources */,
</ins><span class="cx">                           5CDD841F1E439B2900621E92 /* legacy_encoded_audio_frame.cc in Sources */,
</span><span class="cx">                          5CDD90271E43CEDE00621E92 /* level_controller.cc in Sources */,
</span><span class="cx">                          5CDD84B81E43AF1300621E92 /* level_estimator_impl.cc in Sources */,
</span><span class="cx">                          5CDD865A1E43B8B500621E92 /* levinson_durbin.c in Sources */,
</span><del>-                               5CD285B61E6A63430094FDC8 /* decimator_by_4.cc in Sources */,
</del><ins>+                                5CD284F61E6A60570094FDC8 /* localaudiosource.cc in Sources */,
</ins><span class="cx">                           5C63F80C1E416288002CA531 /* location.cc in Sources */,
</span><span class="cx">                          5CDD8C0F1E43C34600621E92 /* locked_bandwidth_info.cc in Sources */,
</span><span class="cx">                          5C63F80F1E416288002CA531 /* logging.cc in Sources */,
</span><span class="cx">                          5C63F80E1E416288002CA531 /* logging_mac.mm in Sources */,
</span><del>-                               41433D0A1F79B33400387B4D /* arith_routines.c in Sources */,
</del><span class="cx">                           5C63F8111E416288002CA531 /* logsinks.cc in Sources */,
</span><span class="cx">                          5CDD87051E43BA7500621E92 /* loudness_histogram.cc in Sources */,
</span><ins>+                               5CD2855D1E6A62ED0094FDC8 /* low_cut_filter.cc in Sources */,
</ins><span class="cx">                           5CDD87C51E43BC0500621E92 /* lpc_analysis.c in Sources */,
</span><span class="cx">                          5CDD8BC11E43C2B500621E92 /* lpc_encode.c in Sources */,
</span><span class="cx">                          5CDD87C71E43BC0500621E92 /* lpc_gain_swb_tables.c in Sources */,
</span><ins>+                               41433CEE1F79B33400387B4D /* lpc_masking_model.c in Sources */,
</ins><span class="cx">                           5CDD87C91E43BC0500621E92 /* lpc_shape_swb12_tables.c in Sources */,
</span><span class="cx">                          5CDD87CB1E43BC0500621E92 /* lpc_shape_swb16_tables.c in Sources */,
</span><span class="cx">                          5CDD87CD1E43BC0500621E92 /* lpc_tables.c in Sources */,
</span><ins>+                               41433D1E1F79B33400387B4D /* lpc_tables.c in Sources */,
</ins><span class="cx">                           5CDD865B1E43B8B500621E92 /* lpc_to_refl_coef.c in Sources */,
</span><span class="cx">                          5CDD8BC31E43C2B500621E92 /* lsf_check.c in Sources */,
</span><span class="cx">                          5CDD8BC51E43C2B500621E92 /* lsf_interpolate_to_poly_dec.c in Sources */,
</span><span class="lines">@@ -12205,21 +12245,24 @@
</span><span class="cx">                          5CDD8BCD1E43C2B500621E92 /* lsp_to_lsf.c in Sources */,
</span><span class="cx">                          5CDD90031E43CE9700621E92 /* macifaddrs_converter.cc in Sources */,
</span><span class="cx">                          5C63F8171E416288002CA531 /* macutils.cc in Sources */,
</span><ins>+                               5CD285CB1E6A63430094FDC8 /* main_filter_update_gain.cc in Sources */,
+                               5CD285CF1E6A63430094FDC8 /* matched_filter.cc in Sources */,
+                               5CD285CD1E6A63430094FDC8 /* matched_filter_lag_aggregator.cc in Sources */,
</ins><span class="cx">                           5C63F81C1E416288002CA531 /* md5.cc in Sources */,
</span><span class="cx">                          5C63F81E1E416288002CA531 /* md5digest.cc in Sources */,
</span><del>-                               5CD286091E6A64840094FDC8 /* file_recorder.cc in Sources */,
</del><span class="cx">                           5CDD86A41E43B99400621E92 /* mean_variance_estimator.cc in Sources */,
</span><span class="cx">                          5CDD87681E43BB3000621E92 /* media_file_impl.cc in Sources */,
</span><span class="cx">                          5CDD876A1E43BB3000621E92 /* media_file_utility.cc in Sources */,
</span><del>-                               5CD286321E6A67BF0094FDC8 /* mediatypes.cc in Sources */,
</del><span class="cx">                           5CDD83E51E439A6F00621E92 /* media_opt_util.cc in Sources */,
</span><span class="cx">                          5CDD83E71E439A6F00621E92 /* media_optimization.cc in Sources */,
</span><span class="cx">                          5C4B48E61E42C1E3002651C8 /* mediaconstants.cc in Sources */,
</span><span class="cx">                          5C63F9481E41737B002CA531 /* mediaconstraintsinterface.cc in Sources */,
</span><del>-                               5CD284741E6A5D280094FDC8 /* jsepicecandidate.cc in Sources */,
-                               5CD285141E6A60570094FDC8 /* videocapturertracksource.cc in Sources */,
-                               41433D261F79B33400387B4D /* pitch_estimator.c in Sources */,
</del><span class="cx">                           5C4B48E81E42C1E3002651C8 /* mediaengine.cc in Sources */,
</span><ins>+                               5CD2861C1E6A66380094FDC8 /* median_slope_estimator.cc in Sources */,
+                               5CD284FA1E6A60570094FDC8 /* mediastream.cc in Sources */,
+                               5CD286401E6A683A0094FDC8 /* mediastreaminterface.cc in Sources */,
+                               5CD284FC1E6A60570094FDC8 /* mediastreamobserver.cc in Sources */,
+                               5CD286321E6A67BF0094FDC8 /* mediatypes.cc in Sources */,
</ins><span class="cx">                           5CDD8A2F1E43BFB300621E92 /* merge.cc in Sources */,
</span><span class="cx">                          5C63F8201E416288002CA531 /* messagedigest.cc in Sources */,
</span><span class="cx">                          5C63F8221E416288002CA531 /* messagehandler.cc in Sources */,
</span><span class="lines">@@ -12226,29 +12269,26 @@
</span><span class="cx">                          5C63F8241E416288002CA531 /* messagequeue.cc in Sources */,
</span><span class="cx">                          5C4B4CD91E4320A9002651C8 /* metrics_default.cc in Sources */,
</span><span class="cx">                          5CDD865E1E43B8B500621E92 /* min_max_operations.c in Sources */,
</span><del>-                               5CD284B91E6A5F9F0094FDC8 /* flexfec_receive_stream_impl.cc in Sources */,
</del><span class="cx">                           5CDD837D1E439A3500621E92 /* moving_average.cc in Sources */,
</span><ins>+                               5CD286101E6A64C90094FDC8 /* moving_max.cc in Sources */,
</ins><span class="cx">                           5CDD8C8E1E43C66000621E92 /* moving_moments.cc in Sources */,
</span><span class="cx">                          5CDD8BCF1E43C2B500621E92 /* my_corr.c in Sources */,
</span><span class="cx">                          5CDD89531E43BF3A00621E92 /* nack.cc in Sources */,
</span><span class="cx">                          5CDD83EA1E439A6F00621E92 /* nack_module.cc in Sources */,
</span><span class="cx">                          5CDD8A321E43BFB300621E92 /* nack_tracker.cc in Sources */,
</span><ins>+                               4145E4BA1EF8943E00FCF6E6 /* nalu_rewriter.cc in Sources */,
</ins><span class="cx">                           5C63F8281E416288002CA531 /* natserver.cc in Sources */,
</span><span class="cx">                          5C63F82A1E416288002CA531 /* natsocketfactory.cc in Sources */,
</span><span class="cx">                          5C63F82C1E416288002CA531 /* nattypes.cc in Sources */,
</span><span class="cx">                          5CDD8BD11E43C2B500621E92 /* nearest_neighbor.c in Sources */,
</span><del>-                               5CD2850D1E6A60570094FDC8 /* sctputils.cc in Sources */,
</del><span class="cx">                           5CDD8A3B1E43BFB300621E92 /* neteq.cc in Sources */,
</span><ins>+                               5CD285EE1E6A63D20094FDC8 /* neteq_decoder_enum.cc in Sources */,
</ins><span class="cx">                           5CDD8A361E43BFB300621E92 /* neteq_impl.cc in Sources */,
</span><del>-                               5CD286271E6A669D0094FDC8 /* rtp_to_ntp_estimator.cc in Sources */,
</del><span class="cx">                           5CDD8AA51E43C00F00621E92 /* neteq_replacement_input.cc in Sources */,
</span><span class="cx">                          5C63F82E1E416288002CA531 /* nethelpers.cc in Sources */,
</span><del>-                               41433D101F79B33400387B4D /* pitch_gain_tables.c in Sources */,
</del><span class="cx">                           5C63F8301E416288002CA531 /* network.cc in Sources */,
</span><span class="cx">                          5C63F8321E416288002CA531 /* networkmonitor.cc in Sources */,
</span><span class="cx">                          5CDD90291E43CEDE00621E92 /* noise_level_estimator.cc in Sources */,
</span><del>-                               5CD2850B1E6A60570094FDC8 /* rtpsender.cc in Sources */,
-                               413092131EF8D51100757C55 /* aec_dump.cc in Sources */,
</del><span class="cx">                           5CDD902B1E43CEDE00621E92 /* noise_spectrum_estimator.cc in Sources */,
</span><span class="cx">                          5CDD85FE1E43B84E00621E92 /* noise_suppression.c in Sources */,
</span><span class="cx">                          5CDD84E91E43B0B600621E92 /* noise_suppression_impl.cc in Sources */,
</span><span class="lines">@@ -12255,13 +12295,11 @@
</span><span class="cx">                          5CDD85FC1E43B84E00621E92 /* noise_suppression_x.c in Sources */,
</span><span class="cx">                          5CDD90821E43D15C00621E92 /* nonlinear_beamformer.cc in Sources */,
</span><span class="cx">                          5CDD8A3D1E43BFB300621E92 /* normal.cc in Sources */,
</span><del>-                               5CD285B41E6A63430094FDC8 /* comfort_noise_generator.cc in Sources */,
</del><span class="cx">                           5CDD86A71E43B99400621E92 /* normalized_covariance_estimator.cc in Sources */,
</span><del>-                               5CD286401E6A683A0094FDC8 /* mediastreaminterface.cc in Sources */,
</del><span class="cx">                           5CDD86001E43B84E00621E92 /* ns_core.c in Sources */,
</span><span class="cx">                          5CDD86051E43B84E00621E92 /* nsx_core.c in Sources */,
</span><del>-                               5CD286241E6A666D0094FDC8 /* videodecodersoftwarefallbackwrapper.cc in Sources */,
</del><span class="cx">                           5CDD86021E43B84E00621E92 /* nsx_core_c.c in Sources */,
</span><ins>+                               41F411AD1EF8D91F00343C26 /* null_aec_dump_factory.cc in Sources */,
</ins><span class="cx">                           5C63F8351E416288002CA531 /* nullsocketserver.cc in Sources */,
</span><span class="cx">                          5CDD86941E43B93900621E92 /* ooura_fft.cc in Sources */,
</span><span class="cx">                          5CDD86911E43B93900621E92 /* ooura_fft_sse2.cc in Sources */,
</span><span class="lines">@@ -12273,20 +12311,15 @@
</span><span class="cx">                          5C63F8441E416288002CA531 /* optionsfile.cc in Sources */,
</span><span class="cx">                          5CDD8C671E43C60900621E92 /* opus_interface.c in Sources */,
</span><span class="cx">                          5CDD84631E43AE2900621E92 /* output_mixer.cc in Sources */,
</span><del>-                               41433D1E1F79B33400387B4D /* lpc_tables.c in Sources */,
</del><ins>+                                5CD285D11E6A63430094FDC8 /* output_selector.cc in Sources */,
</ins><span class="cx">                           5CDD8FD71E43CD6600621E92 /* overuse_detector.cc in Sources */,
</span><span class="cx">                          5CDD8FD91E43CD6600621E92 /* overuse_estimator.cc in Sources */,
</span><span class="cx">                          5CDD85A41E43B5C000621E92 /* overuse_frame_detector.cc in Sources */,
</span><span class="cx">                          5C63F9ED1E4174F6002CA531 /* p2pconstants.cc in Sources */,
</span><del>-                               41F411AD1EF8D91F00343C26 /* null_aec_dump_factory.cc in Sources */,
</del><span class="cx">                           5C63F9F21E4174F6002CA531 /* p2ptransportchannel.cc in Sources */,
</span><span class="cx">                          5C11A0141E4574C5004F0987 /* pa_ringbuffer.c in Sources */,
</span><del>-                               5CD284921E6A5F410094FDC8 /* audio_frame_manipulator.cc in Sources */,
</del><span class="cx">                           5CDD8FA21E43CCBE00621E92 /* paced_sender.cc in Sources */,
</span><del>-                               5CD286361E6A67D80094FDC8 /* audio_transport_proxy.cc in Sources */,
</del><span class="cx">                           5CDD8BD31E43C2B500621E92 /* pack_bits.c in Sources */,
</span><del>-                               41F411B41EF8DA4B00343C26 /* acknowledge_bitrate_estimator.cc in Sources */,
-                               5CD285121E6A60570094FDC8 /* trackmediainfomap.cc in Sources */,
</del><span class="cx">                           5CDD8A421E43BFB300621E92 /* packet.cc in Sources */,
</span><span class="cx">                          5CDD83EE1E439A6F00621E92 /* packet.cc in Sources */,
</span><span class="cx">                          5CDD8AAF1E43C00F00621E92 /* packet.cc in Sources */,
</span><span class="lines">@@ -12295,23 +12328,28 @@
</span><span class="cx">                          5CDD888C1E43BE3C00621E92 /* packet_loss_stats.cc in Sources */,
</span><span class="cx">                          5CDD8FA41E43CCBE00621E92 /* packet_router.cc in Sources */,
</span><span class="cx">                          5CDD8AAC1E43C00F00621E92 /* packet_source.cc in Sources */,
</span><ins>+                               412455561EF887FB00F11809 /* packetlossestimator.cc in Sources */,
</ins><span class="cx">                           5C63F8461E416288002CA531 /* pathutils.cc in Sources */,
</span><span class="cx">                          5CDD85A71E43B5C000621E92 /* payload_router.cc in Sources */,
</span><span class="cx">                          5C4B48831E42C1BA002651C8 /* payload_type_mapper.cc in Sources */,
</span><span class="cx">                          5CDD90001E43CE3A00621E92 /* pcm16b.c in Sources */,
</span><ins>+                               5CDD902D1E43CEDE00621E92 /* peak_level_estimator.cc in Sources */,
+                               5CD284FF1E6A60570094FDC8 /* peerconnection.cc in Sources */,
</ins><span class="cx">                           5CD2847F1E6A5E740094FDC8 /* peerconnectionfactory.cc in Sources */,
</span><del>-                               5CDD902D1E43CEDE00621E92 /* peak_level_estimator.cc in Sources */,
-                               5CD284F21E6A60570094FDC8 /* datachannel.cc in Sources */,
</del><span class="cx">                           5C63F8481E416288002CA531 /* physicalsocketserver.cc in Sources */,
</span><del>-                               41433CF41F79B33400387B4D /* pitch_filter_c.c in Sources */,
</del><span class="cx">                           5CDD872D1E43BABE00621E92 /* pitch_based_vad.cc in Sources */,
</span><ins>+                               41433D261F79B33400387B4D /* pitch_estimator.c in Sources */,
</ins><span class="cx">                           5CDD87D01E43BC0500621E92 /* pitch_estimator.c in Sources */,
</span><ins>+                               41433CF61F79B33400387B4D /* pitch_estimator_c.c in Sources */,
</ins><span class="cx">                           5CDD87D21E43BC0500621E92 /* pitch_filter.c in Sources */,
</span><ins>+                               41433D111F79B33400387B4D /* pitch_filter.c in Sources */,
+                               41433CF41F79B33400387B4D /* pitch_filter_c.c in Sources */,
+                               41433D101F79B33400387B4D /* pitch_gain_tables.c in Sources */,
</ins><span class="cx">                           5CDD87D31E43BC0500621E92 /* pitch_gain_tables.c in Sources */,
</span><span class="cx">                          5CDD87301E43BABE00621E92 /* pitch_internal.cc in Sources */,
</span><span class="cx">                          5CDD87D51E43BC0600621E92 /* pitch_lag_tables.c in Sources */,
</span><ins>+                               41433D191F79B33400387B4D /* pitch_lag_tables.c in Sources */,
</ins><span class="cx">                           5C63F84A1E416288002CA531 /* platform_file.cc in Sources */,
</span><del>-                               5CD285C41E6A63430094FDC8 /* erle_estimator.cc in Sources */,
</del><span class="cx">                           5C63F84D1E416288002CA531 /* platform_thread.cc in Sources */,
</span><span class="cx">                          5CDD888F1E43BE3C00621E92 /* playout_delay_oracle.cc in Sources */,
</span><span class="cx">                          5CDD89561E43BF3A00621E92 /* pli.cc in Sources */,
</span><span class="lines">@@ -12319,35 +12357,29 @@
</span><span class="cx">                          5CDD8BD51E43C2B500621E92 /* poly_to_lsf.c in Sources */,
</span><span class="cx">                          5CDD8BD71E43C2B500621E92 /* poly_to_lsp.c in Sources */,
</span><span class="cx">                          5C63F9F71E4174F6002CA531 /* port.cc in Sources */,
</span><del>-                               5CD284F41E6A60570094FDC8 /* dtmfsender.cc in Sources */,
</del><span class="cx">                           5C63F9FA1E4174F6002CA531 /* portallocator.cc in Sources */,
</span><span class="cx">                          5CDD8A451E43BFB300621E92 /* post_decode_vad.cc in Sources */,
</span><del>-                               4145E4B61EF8943E00FCF6E6 /* encoder.mm in Sources */,
</del><span class="cx">                           5CDD83591E43257200621E92 /* pps_parser.cc in Sources */,
</span><span class="cx">                          5CDD8A471E43BFB300621E92 /* preemptive_expand.cc in Sources */,
</span><span class="cx">                          5CDD8FB71E43CD0700621E92 /* probe_bitrate_estimator.cc in Sources */,
</span><del>-                               41F411C21EF8DBF600343C26 /* string_to_number.cc in Sources */,
</del><span class="cx">                           5CDD8FB91E43CD0700621E92 /* probe_controller.cc in Sources */,
</span><span class="cx">                          5CDD84E51E43B04D00621E92 /* process_thread_impl.cc in Sources */,
</span><del>-                               41433D0F1F79B33400387B4D /* arith_routines_logist.c in Sources */,
</del><span class="cx">                           5CDD83F21E439A6F00621E92 /* protection_bitrate_calculator.cc in Sources */,
</span><ins>+                               4124554E1EF8878B00F11809 /* proxyinfo.cc in Sources */,
</ins><span class="cx">                           5C63F8531E416288002CA531 /* proxyserver.cc in Sources */,
</span><del>-                               4145E4AA1EF8933D00FCF6E6 /* corevideo_frame_buffer.cc in Sources */,
</del><span class="cx">                           5C63F9FE1E4174F6002CA531 /* pseudotcp.cc in Sources */,
</span><span class="cx">                          5CDD89581E43BF3A00621E92 /* psfb.cc in Sources */,
</span><span class="cx">                          5CDD87531E43BAF500621E92 /* push_resampler.cc in Sources */,
</span><span class="cx">                          5CDD87551E43BAF500621E92 /* push_sinc_resampler.cc in Sources */,
</span><ins>+                               413092091EF8D11200757C55 /* qp_parser.cc in Sources */,
</ins><span class="cx">                           5CDD83811E439A3500621E92 /* quality_scaler.cc in Sources */,
</span><ins>+                               5CD2862A1E6A66C80094FDC8 /* quality_threshold.cc in Sources */,
</ins><span class="cx">                           5C63F8551E416288002CA531 /* race_checker.cc in Sources */,
</span><del>-                               5CD2847B1E6A5D550094FDC8 /* webrtcsession.cc in Sources */,
</del><span class="cx">                           5C63F8571E416288002CA531 /* random.cc in Sources */,
</span><del>-                               413091F41EF8CF9200757C55 /* rtp_video_stream_receiver.cc in Sources */,
-                               5CD285DF1E6A63430094FDC8 /* shadow_filter_update_gain.cc in Sources */,
</del><span class="cx">                           5CDD8A4A1E43BFB300621E92 /* random_vector.cc in Sources */,
</span><span class="cx">                          5CDD865F1E43B8B500621E92 /* randomization_functions.c in Sources */,
</span><span class="cx">                          5CDD895B1E43BF3A00621E92 /* rapid_resync_request.cc in Sources */,
</span><span class="cx">                          5C63F8591E416288002CA531 /* rate_limiter.cc in Sources */,
</span><del>-                               41433CF21F79B33400387B4D /* lattice.c in Sources */,
</del><span class="cx">                           5C63F85B1E416288002CA531 /* rate_statistics.cc in Sources */,
</span><span class="cx">                          5C63F85D1E416288002CA531 /* ratelimiter.cc in Sources */,
</span><span class="cx">                          5C63F85F1E416288002CA531 /* ratetracker.cc in Sources */,
</span><span class="lines">@@ -12354,14 +12386,13 @@
</span><span class="cx">                          5CDD86611E43B8B500621E92 /* real_fft.c in Sources */,
</span><span class="cx">                          5C4B4C771E431F9C002651C8 /* real_fourier.cc in Sources */,
</span><span class="cx">                          5C4B4C721E431F9C002651C8 /* real_fourier_ooura.cc in Sources */,
</span><ins>+                               413091FE1EF8D06D00757C55 /* receive_side_congestion_controller.cc in Sources */,
</ins><span class="cx">                           5CDD88911E43BE3C00621E92 /* receive_statistics_impl.cc in Sources */,
</span><span class="cx">                          5CDD85AA1E43B5C000621E92 /* receive_statistics_proxy.cc in Sources */,
</span><span class="cx">                          5CDD83F41E439A6F00621E92 /* receiver.cc in Sources */,
</span><span class="cx">                          5CDD895E1E43BF3A00621E92 /* receiver_report.cc in Sources */,
</span><del>-                               41433CF91F79B33400387B4D /* audio_decoder_isacfix.cc in Sources */,
</del><span class="cx">                           5CDD8A4D1E43BFB300621E92 /* red_payload_splitter.cc in Sources */,
</span><span class="cx">                          5CDD8BD91E43C2B500621E92 /* refiner.c in Sources */,
</span><del>-                               5CD285B21E6A63430094FDC8 /* cascaded_biquad_filter.cc in Sources */,
</del><span class="cx">                           5CDD86621E43B8B500621E92 /* refl_coef_to_lpc.c in Sources */,
</span><span class="cx">                          5C63FA011E4174F6002CA531 /* relayport.cc in Sources */,
</span><span class="cx">                          5C63FA041E4174F6002CA531 /* relayserver.cc in Sources */,
</span><span class="lines">@@ -12368,9 +12399,14 @@
</span><span class="cx">                          5CDD89611E43BF3A00621E92 /* remb.cc in Sources */,
</span><span class="cx">                          5CDD8FDB1E43CD6600621E92 /* remote_bitrate_estimator_abs_send_time.cc in Sources */,
</span><span class="cx">                          5CDD8FDD1E43CD6600621E92 /* remote_bitrate_estimator_single_stream.cc in Sources */,
</span><del>-                               5CD286441E6A7B420094FDC8 /* sha1.cc in Sources */,
</del><span class="cx">                           5CDD8FE11E43CD6600621E92 /* remote_estimator_proxy.cc in Sources */,
</span><span class="cx">                          5CDD88951E43BE3C00621E92 /* remote_ntp_time_estimator.cc in Sources */,
</span><ins>+                               5CD285051E6A60570094FDC8 /* remoteaudiosource.cc in Sources */,
+                               4145E4D91EF8CC9B00FCF6E6 /* render_buffer.cc in Sources */,
+                               5CD285D51E6A63430094FDC8 /* render_delay_buffer.cc in Sources */,
+                               5CD285D91E6A63430094FDC8 /* render_delay_controller.cc in Sources */,
+                               5CD285D71E6A63430094FDC8 /* render_delay_controller_metrics.cc in Sources */,
+                               5CD285DB1E6A63430094FDC8 /* render_signal_analyzer.cc in Sources */,
</ins><span class="cx">                           5CDD85181E43B1EA00621E92 /* rent_a_codec.cc in Sources */,
</span><span class="cx">                          5CDD89641E43BF3A00621E92 /* report_block.cc in Sources */,
</span><span class="cx">                          5CDD85AE1E43B5C000621E92 /* report_block_stats.cc in Sources */,
</span><span class="lines">@@ -12381,8 +12417,8 @@
</span><span class="cx">                          5CDD86681E43B8B500621E92 /* resample_fractional.c in Sources */,
</span><span class="cx">                          5CDD8AB11E43C00F00621E92 /* resample_input_audio_file.cc in Sources */,
</span><span class="cx">                          5CDD87581E43BAF500621E92 /* resampler.cc in Sources */,
</span><del>-                               4145E4CA1EF8CB3200FCF6E6 /* createpeerconnectionfactory.cc in Sources */,
</del><span class="cx">                           5CDD84BD1E43AF1300621E92 /* residual_echo_detector.cc in Sources */,
</span><ins>+                               5CD285DD1E6A63430094FDC8 /* residual_echo_estimator.cc in Sources */,
</ins><span class="cx">                           5C4B4C7A1E431F9C002651C8 /* ring_buffer.c in Sources */,
</span><span class="cx">                          5CDD84BF1E43AF1300621E92 /* rms_level.cc in Sources */,
</span><span class="cx">                          5CFD538F1E4BD3A300482908 /* rotate_neon.cc in Sources */,
</span><span class="lines">@@ -12391,99 +12427,93 @@
</span><span class="cx">                          5CFD53921E4BD3A300482908 /* row_neon64.cc in Sources */,
</span><span class="cx">                          5CDD896A1E43BF3A00621E92 /* rrtr.cc in Sources */,
</span><span class="cx">                          5CDD904B1E43CF6100621E92 /* rtc_event_log.cc in Sources */,
</span><ins>+                               41F411B91EF8DA9600343C26 /* rtc_event_log_factory.cc in Sources */,
</ins><span class="cx">                           5CDD90441E43CF6100621E92 /* rtc_event_log_helper_thread.cc in Sources */,
</span><del>-                               4145E4E41EF8CD7D00FCF6E6 /* callfactory.cc in Sources */,
</del><span class="cx">                           5C63F8641E416288002CA531 /* rtccertificate.cc in Sources */,
</span><span class="cx">                          5C63F8661E416288002CA531 /* rtccertificategenerator.cc in Sources */,
</span><ins>+                               41F411B01EF8DA0100343C26 /* rtcerror.cc in Sources */,
</ins><span class="cx">                           5CDD8A4F1E43BFB300621E92 /* rtcp.cc in Sources */,
</span><ins>+                               5CD285FA1E6A64520094FDC8 /* rtcp_nack_stats.cc in Sources */,
</ins><span class="cx">                           5CDD88971E43BE3C00621E92 /* rtcp_packet.cc in Sources */,
</span><del>-                               413092091EF8D11200757C55 /* qp_parser.cc in Sources */,
-                               413092271EF8D6E600757C55 /* builtin_audio_encoder_factory_internal.cc in Sources */,
</del><span class="cx">                           5CDD889A1E43BE3C00621E92 /* rtcp_receiver.cc in Sources */,
</span><span class="cx">                          5CDD889D1E43BE3C00621E92 /* rtcp_sender.cc in Sources */,
</span><span class="cx">                          5C63FA781E417AED002CA531 /* rtcstats.cc in Sources */,
</span><span class="cx">                          5C63FA771E417AED002CA531 /* rtcstats_objects.cc in Sources */,
</span><ins>+                               5CD285071E6A60570094FDC8 /* rtcstatscollector.cc in Sources */,
</ins><span class="cx">                           5C63FA791E417AED002CA531 /* rtcstatsreport.cc in Sources */,
</span><ins>+                               413092021EF8D0A600757C55 /* rtp_demuxer.cc in Sources */,
</ins><span class="cx">                           5CDD8AB61E43C00F00621E92 /* rtp_file_source.cc in Sources */,
</span><span class="cx">                          5CDD88B01E43BE3C00621E92 /* rtp_format.cc in Sources */,
</span><span class="cx">                          5CDD88A41E43BE3C00621E92 /* rtp_format_h264.cc in Sources */,
</span><del>-                               5CD285BE1E6A63430094FDC8 /* echo_remover_metrics.cc in Sources */,
</del><span class="cx">                           5CDD88A61E43BE3C00621E92 /* rtp_format_video_generic.cc in Sources */,
</span><span class="cx">                          5CDD88AB1E43BE3C00621E92 /* rtp_format_vp8.cc in Sources */,
</span><span class="cx">                          5CDD88AE1E43BE3C00621E92 /* rtp_format_vp9.cc in Sources */,
</span><span class="cx">                          5CDD83F61E439A6F00621E92 /* rtp_frame_reference_finder.cc in Sources */,
</span><span class="cx">                          5CDD8AB81E43C00F00621E92 /* rtp_generator.cc in Sources */,
</span><ins>+                               4145E4DC1EF8CCEF00FCF6E6 /* rtp_header_extension_map.cc in Sources */,
</ins><span class="cx">                           5CDD88B51E43BE3C00621E92 /* rtp_header_extensions.cc in Sources */,
</span><del>-                               5CD285091E6A60570094FDC8 /* rtpreceiver.cc in Sources */,
</del><span class="cx">                           5CDD88B71E43BE3C00621E92 /* rtp_header_parser.cc in Sources */,
</span><span class="cx">                          5CDD88BE1E43BE3D00621E92 /* rtp_packet.cc in Sources */,
</span><span class="cx">                          5CDD88B91E43BE3D00621E92 /* rtp_packet_history.cc in Sources */,
</span><del>-                               41F411B01EF8DA0100343C26 /* rtcerror.cc in Sources */,
</del><span class="cx">                           5CDD88C11E43BE3D00621E92 /* rtp_payload_registry.cc in Sources */,
</span><span class="cx">                          5CDD88C21E43BE3D00621E92 /* rtp_receiver_audio.cc in Sources */,
</span><span class="cx">                          5CDD88C41E43BE3D00621E92 /* rtp_receiver_impl.cc in Sources */,
</span><del>-                               413092151EF8D5EE00757C55 /* send_side_congestion_controller.cc in Sources */,
</del><span class="cx">                           5CDD88C61E43BE3D00621E92 /* rtp_receiver_strategy.cc in Sources */,
</span><span class="cx">                          5CDD88C81E43BE3D00621E92 /* rtp_receiver_video.cc in Sources */,
</span><span class="cx">                          5CDD88CC1E43BE3D00621E92 /* rtp_rtcp_impl.cc in Sources */,
</span><span class="cx">                          5CDD88D31E43BE3D00621E92 /* rtp_sender.cc in Sources */,
</span><del>-                               5CD284FC1E6A60570094FDC8 /* mediastreamobserver.cc in Sources */,
</del><span class="cx">                           5CDD88CE1E43BE3D00621E92 /* rtp_sender_audio.cc in Sources */,
</span><del>-                               5CD285D51E6A63430094FDC8 /* render_delay_buffer.cc in Sources */,
</del><span class="cx">                           5CDD88D11E43BE3D00621E92 /* rtp_sender_video.cc in Sources */,
</span><del>-                               5CD285E61E6A63430094FDC8 /* suppression_gain.cc in Sources */,
</del><span class="cx">                           5CDD85B21E43B5C000621E92 /* rtp_streams_synchronizer.cc in Sources */,
</span><del>-                               412455451EF87C0F00F11809 /* dot_product_with_scale.cc in Sources */,
</del><ins>+                                5CD286271E6A669D0094FDC8 /* rtp_to_ntp_estimator.cc in Sources */,
+                               4130921B1EF8D63F00757C55 /* rtp_transport_controller_send.cc in Sources */,
</ins><span class="cx">                           5CDD88D51E43BE3D00621E92 /* rtp_utility.cc in Sources */,
</span><del>-                               41433D271F79B33400387B4D /* filterbank_tables.c in Sources */,
</del><ins>+                                413091F41EF8CF9200757C55 /* rtp_video_stream_receiver.cc in Sources */,
</ins><span class="cx">                           5CDD8ABA1E43C00F00621E92 /* rtpcat.cc in Sources */,
</span><del>-                               5CD286051E6A64840094FDC8 /* coder.cc in Sources */,
</del><span class="cx">                           5C4B48EB1E42C1E3002651C8 /* rtpdataengine.cc in Sources */,
</span><span class="cx">                          5CDD896C1E43BF3A00621E92 /* rtpfb.cc in Sources */,
</span><ins>+                               5CD285091E6A60570094FDC8 /* rtpreceiver.cc in Sources */,
+                               5CD2850B1E6A60570094FDC8 /* rtpsender.cc in Sources */,
+                               4145E4CC1EF8CB8B00FCF6E6 /* rtptransport.cc in Sources */,
</ins><span class="cx">                           5C4B48F11E42C1E3002651C8 /* rtputils.cc in Sources */,
</span><del>-                               413091FE1EF8D06D00757C55 /* receive_side_congestion_controller.cc in Sources */,
</del><span class="cx">                           5CDD83F81E439A6F00621E92 /* rtt_filter.cc in Sources */,
</span><span class="cx">                          5C4B4CE41E4320A9002651C8 /* rw_lock.cc in Sources */,
</span><span class="cx">                          5C4B4CDE1E4320A9002651C8 /* rw_lock_posix.cc in Sources */,
</span><span class="cx">                          5CDD902F1E43CEDE00621E92 /* saturating_gain_estimator.cc in Sources */,
</span><span class="cx">                          5CFD53931E4BD3A300482908 /* scale_neon.cc in Sources */,
</span><del>-                               41433D021F79B33400387B4D /* spectrum_ar_model_tables.c in Sources */,
</del><span class="cx">                           5CFD53941E4BD3A300482908 /* scale_neon64.cc in Sources */,
</span><ins>+                               5CD2863C1E6A681C0094FDC8 /* sctptransport.cc in Sources */,
+                               5CD2850D1E6A60570094FDC8 /* sctputils.cc in Sources */,
</ins><span class="cx">                           5CDD896F1E43BF3A00621E92 /* sdes.cc in Sources */,
</span><span class="cx">                          5CDD85B61E43B5C000621E92 /* send_delay_stats.cc in Sources */,
</span><span class="cx">                          5CDD90611E43D11200621E92 /* send_side_bandwidth_estimation.cc in Sources */,
</span><ins>+                               413092151EF8D5EE00757C55 /* send_side_congestion_controller.cc in Sources */,
</ins><span class="cx">                           5CDD85B91E43B5C000621E92 /* send_statistics_proxy.cc in Sources */,
</span><span class="cx">                          5CDD8FE31E43CD6600621E92 /* send_time_history.cc in Sources */,
</span><span class="cx">                          5CDD89721E43BF3A00621E92 /* sender_report.cc in Sources */,
</span><span class="cx">                          5C63F86F1E416288002CA531 /* sequenced_task_checker_impl.cc in Sources */,
</span><del>-                               5CD2850F1E6A60570094FDC8 /* statscollector.cc in Sources */,
-                               5CD284FF1E6A60570094FDC8 /* peerconnection.cc in Sources */,
</del><span class="cx">                           5C63FA061E4174F6002CA531 /* session.cc in Sources */,
</span><span class="cx">                          5CDD83FB1E439A6F00621E92 /* session_info.cc in Sources */,
</span><span class="cx">                          5C63FA081E4174F6002CA531 /* sessiondescription.cc in Sources */,
</span><ins>+                               5CD286441E6A7B420094FDC8 /* sha1.cc in Sources */,
</ins><span class="cx">                           5C63F8731E416288002CA531 /* sha1digest.cc in Sources */,
</span><ins>+                               5CD285DF1E6A63430094FDC8 /* shadow_filter_update_gain.cc in Sources */,
</ins><span class="cx">                           5CDD84651E43AE2900621E92 /* shared_data.cc in Sources */,
</span><span class="cx">                          5CDD90311E43CEDE00621E92 /* signal_classifier.cc in Sources */,
</span><span class="cx">                          5C63F8771E416288002CA531 /* signalthread.cc in Sources */,
</span><del>-                               41433CFB1F79B33400387B4D /* audio_encoder_isacfix.cc in Sources */,
</del><span class="cx">                           5C63F8791E416288002CA531 /* sigslot.cc in Sources */,
</span><span class="cx">                          5CDD8BDB1E43C2B500621E92 /* simple_interpolate_lsf.c in Sources */,
</span><span class="cx">                          5CDD8BDD1E43C2B500621E92 /* simple_lpc_analysis.c in Sources */,
</span><del>-                               5CD285C01E6A63430094FDC8 /* echo_remover.cc in Sources */,
</del><span class="cx">                           5CDD8BDF1E43C2B500621E92 /* simple_lsf_dequant.c in Sources */,
</span><del>-                               41433D111F79B33400387B4D /* pitch_filter.c in Sources */,
</del><span class="cx">                           5CDD8BE11E43C2B500621E92 /* simple_lsf_quant.c in Sources */,
</span><span class="cx">                          5C4B48861E42C1BA002651C8 /* simulcast.cc in Sources */,
</span><span class="cx">                          5CDD875C1E43BAF500621E92 /* sinc_resampler.cc in Sources */,
</span><del>-                               5CD285161E6A60570094FDC8 /* videotrack.cc in Sources */,
-                               5CD285CF1E6A63430094FDC8 /* matched_filter.cc in Sources */,
</del><span class="cx">                           5CDD87E11E43BD7000621E92 /* sinc_resampler_sse.cc in Sources */,
</span><span class="cx">                          5CDD875E1E43BAF500621E92 /* sinusoidal_linear_chirp_source.cc in Sources */,
</span><del>-                               5CD285F61E6A63F60094FDC8 /* smoothing_filter.cc in Sources */,
-                               5CD2861C1E6A66380094FDC8 /* median_slope_estimator.cc in Sources */,
</del><span class="cx">                           5C4B4CE51E4320A9002651C8 /* sleep.cc in Sources */,
</span><span class="cx">                          5CDD8BE51E43C2B500621E92 /* smooth.c in Sources */,
</span><span class="cx">                          5CDD8BE31E43C2B500621E92 /* smooth_out_data.c in Sources */,
</span><ins>+                               5CD285F61E6A63F60094FDC8 /* smoothing_filter.cc in Sources */,
</ins><span class="cx">                           5C63F8801E416288002CA531 /* socketadapters.cc in Sources */,
</span><span class="cx">                          5C63F8821E416288002CA531 /* socketaddress.cc in Sources */,
</span><span class="cx">                          5C63F8841E416288002CA531 /* socketaddresspair.cc in Sources */,
</span><span class="lines">@@ -12491,6 +12521,7 @@
</span><span class="cx">                          5C63F88A1E416288002CA531 /* socketstream.cc in Sources */,
</span><span class="cx">                          5CDD8BE71E43C2B500621E92 /* sort_sq.c in Sources */,
</span><span class="cx">                          5C4B4C7D1E431F9C002651C8 /* sparse_fir_filter.cc in Sources */,
</span><ins>+                               41433D021F79B33400387B4D /* spectrum_ar_model_tables.c in Sources */,
</ins><span class="cx">                           5CDD87D81E43BC0600621E92 /* spectrum_ar_model_tables.c in Sources */,
</span><span class="cx">                          5CDD866B1E43B8B500621E92 /* spl_init.c in Sources */,
</span><span class="cx">                          5CDD866C1E43B8B500621E92 /* spl_inl.c in Sources */,
</span><span class="lines">@@ -12500,9 +12531,7 @@
</span><span class="cx">                          5CDD86711E43B8B500621E92 /* splitting_filter.c in Sources */,
</span><span class="cx">                          5CDD84C11E43AF1300621E92 /* splitting_filter.cc in Sources */,
</span><span class="cx">                          5CDD835F1E43257200621E92 /* sps_parser.cc in Sources */,
</span><del>-                               41F411C71EF97BAC00343C26 /* adm_helpers.cc in Sources */,
</del><span class="cx">                           5CDD83621E43257200621E92 /* sps_vui_rewriter.cc in Sources */,
</span><del>-                               5CD285391E6A61980094FDC8 /* default_video_bitrate_allocator.cc in Sources */,
</del><span class="cx">                           5CDD86721E43B8B500621E92 /* sqrt_of_one_minus_x_squared.c in Sources */,
</span><span class="cx">                          5C63F88C1E416288002CA531 /* ssladapter.cc in Sources */,
</span><span class="cx">                          5C63F88F1E416288002CA531 /* sslfingerprint.cc in Sources */,
</span><span class="lines">@@ -12509,27 +12538,29 @@
</span><span class="cx">                          5C63F8911E416288002CA531 /* sslidentity.cc in Sources */,
</span><span class="cx">                          5C63F8961E416288002CA531 /* sslstreamadapter.cc in Sources */,
</span><span class="cx">                          5CDD87361E43BABE00621E92 /* standalone_vad.cc in Sources */,
</span><del>-                               41433D2A1F79B33400387B4D /* isacfix.c in Sources */,
-                               4145E4DC1EF8CCEF00FCF6E6 /* rtp_header_extension_map.cc in Sources */,
</del><span class="cx">                           5CDD8BEB1E43C2B500621E92 /* state_construct.c in Sources */,
</span><span class="cx">                          5CDD8BED1E43C2B500621E92 /* state_search.c in Sources */,
</span><span class="cx">                          5CDD84671E43AE2900621E92 /* statistics.cc in