<!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>[214288] trunk/Source/ThirdParty/libwebrtc</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/214288">214288</a></dd>
<dt>Author</dt> <dd>achristensen@apple.com</dd>
<dt>Date</dt> <dd>2017-03-22 17:57:27 -0700 (Wed, 22 Mar 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Fix warnings in libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=169973

Reviewed by Geoffrey Garen.

* Configurations/boringssl.xcconfig:
* Configurations/libsrtp.xcconfig:
* Configurations/libwebrtc.xcconfig:
* Configurations/libwebrtcpcrtc.xcconfig:
* Configurations/libyuv.xcconfig:
* Configurations/opus.xcconfig:
* Configurations/usrsctp.xcconfig:
Build with more warnings.
opus still needs some incompatible pointer warnings disabled because it converts 
const opus_int16 * to const opus_val16 * and opus_int32 * to opus_val32 *
and that's ok because its a codec and that's what codecs do.
* Source/webrtc/base/logging.cc:
* Source/webrtc/base/logging.h:
* Source/webrtc/base/neverdestroyed.h: Added.
(webrtc::NeverDestroyed::NeverDestroyed):
(webrtc::NeverDestroyed::operator T&amp;):
(webrtc::NeverDestroyed::get):
(webrtc::NeverDestroyed::operator&amp;):
(webrtc::NeverDestroyed::asPtr):
Added webrtc::NeverDestroyed which may or may not be based on WTF::NeverDestroyed.
This allows us to avoid exit time destructors, which would slow down program termination for no reason.
* Source/webrtc/base/virtualsocketserver.cc:
* Source/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.cc:
Adopt NeverDestroyed in function scope so we don't have global constructors or destructors.
* Source/webrtc/modules/audio_processing/beamformer/array_util.h:
(webrtc::DegreesToRadians):
(webrtc::RadiansToDegrees):
Add constexpr so we can calculate values at compile time instead of launch time.
* Source/webrtc/modules/rtp_rtcp/source/rtp_utility.cc:
* Source/webrtc/system_wrappers/source/clock.cc:
* libwebrtc.xcodeproj/project.pbxproj:
Don't compile ssl_test.cc.  We don't need it.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceThirdPartylibwebrtcChangeLog">trunk/Source/ThirdParty/libwebrtc/ChangeLog</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcConfigurationsboringsslxcconfig">trunk/Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcConfigurationslibsrtpxcconfig">trunk/Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcConfigurationslibwebrtcxcconfig">trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcConfigurationslibwebrtcpcrtcxcconfig">trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtcpcrtc.xcconfig</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcConfigurationslibyuvxcconfig">trunk/Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcConfigurationsopusxcconfig">trunk/Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcConfigurationsusrsctpxcconfig">trunk/Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcSourcewebrtcbaseloggingcc">trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/logging.cc</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcSourcewebrtcbaseloggingh">trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/logging.h</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcSourcewebrtcbasevirtualsocketservercc">trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/virtualsocketserver.cc</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcSourcewebrtcmodulesaudio_codingcodecsbuiltin_audio_decoder_factory_internalcc">trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.cc</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcSourcewebrtcmodulesaudio_processingbeamformerarray_utilh">trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_processing/beamformer/array_util.h</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcSourcewebrtcmodulesrtp_rtcpsourcertp_utilitycc">trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_utility.cc</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtcSourcewebrtcsystem_wrapperssourceclockcc">trunk/Source/ThirdParty/libwebrtc/Source/webrtc/system_wrappers/source/clock.cc</a></li>
<li><a href="#trunkSourceThirdPartylibwebrtclibwebrtcxcodeprojprojectpbxproj">trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceThirdPartylibwebrtcSourcewebrtcbaseneverdestroyedh">trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/neverdestroyed.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceThirdPartylibwebrtcChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/ChangeLog (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/ChangeLog        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/ChangeLog        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -1,3 +1,43 @@
</span><ins>+2017-03-22  Alex Christensen  &lt;achristensen@webkit.org&gt;
+
+        Fix warnings in libwebrtc
+        https://bugs.webkit.org/show_bug.cgi?id=169973
+
+        Reviewed by Geoffrey Garen.
+
+        * Configurations/boringssl.xcconfig:
+        * Configurations/libsrtp.xcconfig:
+        * Configurations/libwebrtc.xcconfig:
+        * Configurations/libwebrtcpcrtc.xcconfig:
+        * Configurations/libyuv.xcconfig:
+        * Configurations/opus.xcconfig:
+        * Configurations/usrsctp.xcconfig:
+        Build with more warnings.
+        opus still needs some incompatible pointer warnings disabled because it converts 
+        const opus_int16 * to const opus_val16 * and opus_int32 * to opus_val32 *
+        and that's ok because its a codec and that's what codecs do.
+        * Source/webrtc/base/logging.cc:
+        * Source/webrtc/base/logging.h:
+        * Source/webrtc/base/neverdestroyed.h: Added.
+        (webrtc::NeverDestroyed::NeverDestroyed):
+        (webrtc::NeverDestroyed::operator T&amp;):
+        (webrtc::NeverDestroyed::get):
+        (webrtc::NeverDestroyed::operator&amp;):
+        (webrtc::NeverDestroyed::asPtr):
+        Added webrtc::NeverDestroyed which may or may not be based on WTF::NeverDestroyed.
+        This allows us to avoid exit time destructors, which would slow down program termination for no reason.
+        * Source/webrtc/base/virtualsocketserver.cc:
+        * Source/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.cc:
+        Adopt NeverDestroyed in function scope so we don't have global constructors or destructors.
+        * Source/webrtc/modules/audio_processing/beamformer/array_util.h:
+        (webrtc::DegreesToRadians):
+        (webrtc::RadiansToDegrees):
+        Add constexpr so we can calculate values at compile time instead of launch time.
+        * Source/webrtc/modules/rtp_rtcp/source/rtp_utility.cc:
+        * Source/webrtc/system_wrappers/source/clock.cc:
+        * libwebrtc.xcodeproj/project.pbxproj:
+        Don't compile ssl_test.cc.  We don't need it.
+
</ins><span class="cx"> 2017-03-10  Youenn Fablet  &lt;youenn@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Move libwebrtc backend to using tracks
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcConfigurationsboringsslxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -10,7 +10,6 @@
</span><span class="cx"> INSTALL_PATH = /usr/local/lib;
</span><span class="cx"> PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
</span><span class="cx"> USE_HEADERMAP = NO;
</span><del>-WARNING_CFLAGS = -Wno-exit-time-destructors;
</del><span class="cx"> 
</span><span class="cx"> // FIXME: There's no assembly used in the boringssl build yet :(
</span><span class="cx"> GCC_PREPROCESSOR_DEFINITIONS = OPENSSL_NO_ASM;
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcConfigurationslibsrtpxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -11,5 +11,5 @@
</span><span class="cx"> INSTALL_PATH = /usr/local/lib;
</span><span class="cx"> PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
</span><span class="cx"> USE_HEADERMAP = NO;
</span><del>-WARNING_CFLAGS = -Wno-exit-time-destructors -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-deprecated-declarations;
</del><ins>+WARNING_CFLAGS = -Wno-implicit-function-declaration -Wno-deprecated-declarations;
</ins><span class="cx"> GCC_PREPROCESSOR_DEFINITIONS = V8_DEPRECATION_WARNINGS ENABLE_NOTIFICATIONS ENABLE_PLUGINS=1 ENABLE_PDF=1 ENABLE_PRINTING=1 ENABLE_BASIC_PRINTING=1 ENABLE_PRINT_PREVIEW=1 ENABLE_SPELLCHECK=1 USE_BROWSER_SPELLCHECKER=1 NO_TCMALLOC USE_EXTERNAL_POPUP_MENU=1 ENABLE_WEBRTC=1 ENABLE_EXTENSIONS=1 ENABLE_TASK_MANAGER=1 ENABLE_THEMES=1 ENABLE_SESSION_SERVICE=1 ENABLE_SUPERVISED_USERS=1 FULL_SAFE_BROWSING SAFE_BROWSING_CSD SAFE_BROWSING_DB_LOCAL CHROMIUM_BUILD ENABLE_MEDIA_ROUTER=1 FIELDTRIAL_TESTING_ENABLED CR_CLANG_REVISION=284979-1 CR_XCODE_VERSION=0820 __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORE=0 _DEBUG DYNAMIC_ANNOTATIONS_ENABLED=1 WTF_USE_DYNAMIC_ANNOTATIONS=1 PACKAGE_STRING=&quot;\&quot;libsrtp2 2.0.0-pre\&quot;&quot; PACKAGE_VERSION=&quot;\&quot;2.0.0-pre\&quot;&quot; HAVE_CONFIG_H OPENSSL HAVE_STDLIB_H HAVE_STRING_H HAVE_STDINT_H HAVE_INTTYPES_H HAVE_INT16_T HAVE_INT32_T HAVE_INT8_T HAVE_UINT16_T HAVE_UINT32_T HAVE_UINT64_T HAVE_UINT8_T HAVE_AR
 PA_INET_H HAVE_NETINET_IN_H HAVE_SYS_TYPES_H HAVE_UNISTD_H;
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcConfigurationslibwebrtcxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
</span><span class="cx"> USE_HEADERMAP = NO;
</span><span class="cx"> INSTALLHDRS_SCRIPT_PHASE = YES;
</span><del>-WARNING_CFLAGS = -Wno-exit-time-destructors -Wno-objc-property-no-attribute -Wno-objc-missing-super-calls -Wno-deprecated-declarations;
</del><ins>+WARNING_CFLAGS = -Wno-objc-property-no-attribute -Wno-objc-missing-super-calls -Wno-deprecated-declarations;
</ins><span class="cx"> 
</span><span class="cx"> GCC_PREPROCESSOR_DEFINITIONS = WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_CODEC_ILBC WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED RTC_DISABLE_VP9 RTC_DISABLE_VP8 HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE  HAVE_SCTP WEBRTC_CODEC_G711 WEBRTC_CODEC_G722;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcConfigurationslibwebrtcpcrtcxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtcpcrtc.xcconfig (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtcpcrtc.xcconfig        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtcpcrtc.xcconfig        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> INSTALL_PATH = /usr/local/lib;
</span><span class="cx"> PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
</span><span class="cx"> USE_HEADERMAP = NO;
</span><del>-WARNING_CFLAGS = -Wno-exit-time-destructors -Wno-objc-property-no-attribute -Wno-objc-missing-super-calls;
</del><ins>+WARNING_CFLAGS = -Wno-objc-property-no-attribute -Wno-objc-missing-super-calls;
</ins><span class="cx"> 
</span><span class="cx"> GCC_PREPROCESSOR_DEFINITIONS = WEBRTC_POSIX WEBRTC_MAC SSL_USE_OPENSSL FEATURE_ENABLE_SSL HAVE_SRTP HAVE_OPENSSL_SSL_H SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin NON_WINDOWS_DEFINE HAVE_WEBRTC_VIDEO HAVE_WEBRTC_VOICE WEBRTC_INTELLIGIBILITY_ENHANCER=0 WEBRTC_APM_DEBUG_DUMP=0 WEBRTC_NS_FLOAT WEBRTC_CODEC_ILBC WEBRTC_CODEC_OPUS WEBRTC_CODEC_ISAC WEBRTC_CODEC_RED RTC_DISABLE_VP9 RTC_DISABLE_VP8 HAVE_STDINT_H HAVE_STDLIB_H HAVE_UINT64_T OPENSSL HAVE_CONFIG_H WEBRTC_WEBKIT_BUILD HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE  HAVE_SCTP;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcConfigurationslibyuvxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -10,4 +10,3 @@
</span><span class="cx"> INSTALL_PATH = /usr/local/lib;
</span><span class="cx"> PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
</span><span class="cx"> USE_HEADERMAP = NO;
</span><del>-WARNING_CFLAGS = -Wno-exit-time-destructors -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-deprecated-declarations;
</del></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcConfigurationsopusxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -10,7 +10,7 @@
</span><span class="cx"> INSTALL_PATH = /usr/local/lib;
</span><span class="cx"> PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
</span><span class="cx"> USE_HEADERMAP = NO;
</span><del>-WARNING_CFLAGS = -Wno-exit-time-destructors -Wno-implicit-function-declaration -Wno-incompatible-pointer-types
</del><ins>+WARNING_CFLAGS = -Wno-incompatible-pointer-types
</ins><span class="cx"> GCC_PREPROCESSOR_DEFINITIONS = VAR_ARRAYS OPUS_BUILD OPUS_EXPORT= HAVE_LRINT HAVE_LRINTF OPUS_X86_MAY_HAVE_SSE2;
</span><span class="cx"> 
</span><span class="cx"> EXCLUDED_SOURCE_FILE_NAMES[sdk=iphone*] = *_sse.c *_sse2.c;
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcConfigurationsusrsctpxcconfig"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -10,6 +10,6 @@
</span><span class="cx"> INSTALL_PATH = /usr/local/lib;
</span><span class="cx"> PUBLIC_HEADERS_FOLDER_PATH = /usr/local/include/libwebrtc;
</span><span class="cx"> USE_HEADERMAP = NO;
</span><del>-WARNING_CFLAGS = -Wno-exit-time-destructors -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-deprecated-declarations;
</del><ins>+WARNING_CFLAGS = -Wno-deprecated-declarations;
</ins><span class="cx"> GCC_PREPROCESSOR_DEFINITIONS = SCTP_PROCESS_LEVEL_LOCKS SCTP_SIMPLE_ALLOCATOR SCTP_USE_OPENSSL_SHA1 __Userspace__ HAVE_SA_LEN HAVE_SCONN_LEN __APPLE_USE_RFC_2292 __Userspace_os_Darwin;
</span><span class="cx"> OTHER_CFLAGS = -UINET -UINET6 -U__APPLE__;
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcSourcewebrtcbaseloggingcc"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/logging.cc (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/logging.cc        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/logging.cc        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -41,6 +41,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;webrtc/base/criticalsection.h&quot;
</span><span class="cx"> #include &quot;webrtc/base/logging.h&quot;
</span><ins>+#include &quot;webrtc/base/neverdestroyed.h&quot;
</ins><span class="cx"> #include &quot;webrtc/base/platform_thread.h&quot;
</span><span class="cx"> #include &quot;webrtc/base/stringencode.h&quot;
</span><span class="cx"> #include &quot;webrtc/base/stringutils.h&quot;
</span><span class="lines">@@ -103,8 +104,12 @@
</span><span class="cx"> bool LogMessage::log_to_stderr_ = true;
</span><span class="cx"> 
</span><span class="cx"> namespace {
</span><del>-// Global lock for log subsystem, only needed to serialize access to streams_.
-CriticalSection g_log_crit;
</del><ins>+// Global lock for log subsystem, only needed to serialize access to streams.
+const CriticalSection&amp; g_log_crit()
+{
+    static webrtc::NeverDestroyed&lt;CriticalSection&gt; g_log_crit;
+    return g_log_crit;
+}
</ins><span class="cx"> }  // namespace
</span><span class="cx"> 
</span><span class="cx"> // The list of logging streams currently configured.
</span><span class="lines">@@ -111,7 +116,11 @@
</span><span class="cx"> // Note: we explicitly do not clean this up, because of the uncertain ordering
</span><span class="cx"> // of destructors at program exit.  Let the person who sets the stream trigger
</span><span class="cx"> // cleanup by setting to null, or let it leak (safe at program exit).
</span><del>-LogMessage::StreamList LogMessage::streams_ GUARDED_BY(g_log_crit);
</del><ins>+LogMessage::StreamList&amp; LogMessage::streams()
+{
+    static webrtc::NeverDestroyed&lt;LogMessage::StreamList&gt; streams GUARDED_BY(g_log_crit);
+    return streams;
+}
</ins><span class="cx"> 
</span><span class="cx"> // Boolean options default to false (0)
</span><span class="cx"> bool LogMessage::thread_, LogMessage::timestamp_;
</span><span class="lines">@@ -207,8 +216,8 @@
</span><span class="cx">     OutputToDebug(str, severity_, tag_);
</span><span class="cx">   }
</span><span class="cx"> 
</span><del>-  CritScope cs(&amp;g_log_crit);
-  for (auto&amp; kv : streams_) {
</del><ins>+  CritScope cs(&amp;g_log_crit());
+  for (auto&amp; kv : streams()) {
</ins><span class="cx">     if (severity_ &gt;= kv.second) {
</span><span class="cx">       kv.first-&gt;OnLogMessage(str);
</span><span class="cx">     }
</span><span class="lines">@@ -235,7 +244,7 @@
</span><span class="cx"> 
</span><span class="cx"> void LogMessage::LogToDebug(LoggingSeverity min_sev) {
</span><span class="cx">   dbg_sev_ = min_sev;
</span><del>-  CritScope cs(&amp;g_log_crit);
</del><ins>+  CritScope cs(&amp;g_log_crit());
</ins><span class="cx">   UpdateMinLogSeverity();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -244,9 +253,9 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> int LogMessage::GetLogToStream(LogSink* stream) {
</span><del>-  CritScope cs(&amp;g_log_crit);
</del><ins>+  CritScope cs(&amp;g_log_crit());
</ins><span class="cx">   LoggingSeverity sev = LS_NONE;
</span><del>-  for (auto&amp; kv : streams_) {
</del><ins>+  for (auto&amp; kv : streams()) {
</ins><span class="cx">     if (!stream || stream == kv.first) {
</span><span class="cx">       sev = std::min(sev, kv.second);
</span><span class="cx">     }
</span><span class="lines">@@ -255,16 +264,16 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void LogMessage::AddLogToStream(LogSink* stream, LoggingSeverity min_sev) {
</span><del>-  CritScope cs(&amp;g_log_crit);
-  streams_.push_back(std::make_pair(stream, min_sev));
</del><ins>+  CritScope cs(&amp;g_log_crit());
+  streams().push_back(std::make_pair(stream, min_sev));
</ins><span class="cx">   UpdateMinLogSeverity();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void LogMessage::RemoveLogToStream(LogSink* stream) {
</span><del>-  CritScope cs(&amp;g_log_crit);
-  for (StreamList::iterator it = streams_.begin(); it != streams_.end(); ++it) {
</del><ins>+  CritScope cs(&amp;g_log_crit());
+  for (StreamList::iterator it = streams().begin(); it != streams().end(); ++it) {
</ins><span class="cx">     if (stream == it-&gt;first) {
</span><del>-      streams_.erase(it);
</del><ins>+      streams().erase(it);
</ins><span class="cx">       break;
</span><span class="cx">     }
</span><span class="cx">   }
</span><span class="lines">@@ -335,7 +344,7 @@
</span><span class="cx"> 
</span><span class="cx"> void LogMessage::UpdateMinLogSeverity() EXCLUSIVE_LOCKS_REQUIRED(g_log_crit) {
</span><span class="cx">   LoggingSeverity min_sev = dbg_sev_;
</span><del>-  for (auto&amp; kv : streams_) {
</del><ins>+  for (auto&amp; kv : streams()) {
</ins><span class="cx">     min_sev = std::min(dbg_sev_, kv.second);
</span><span class="cx">   }
</span><span class="cx">   min_sev_ = min_sev;
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcSourcewebrtcbaseloggingh"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/logging.h (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/logging.h        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/logging.h        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -234,7 +234,7 @@
</span><span class="cx">   static LoggingSeverity min_sev_, dbg_sev_, ctx_sev_;
</span><span class="cx"> 
</span><span class="cx">   // The output streams and their associated severities
</span><del>-  static StreamList streams_;
</del><ins>+  static StreamList&amp; streams();
</ins><span class="cx"> 
</span><span class="cx">   // Flags for formatting options
</span><span class="cx">   static bool thread_, timestamp_;
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcSourcewebrtcbaseneverdestroyedh"></a>
<div class="addfile"><h4>Added: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/neverdestroyed.h (0 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/neverdestroyed.h                                (rev 0)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/neverdestroyed.h        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+/*
+ *  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
+
+namespace webrtc {
+
+template&lt;typename T&gt; class NeverDestroyed {
+    NeverDestroyed(const NeverDestroyed&amp;) = delete;
+    NeverDestroyed&amp; operator=(const NeverDestroyed&amp;) = delete;
+public:
+    template&lt;typename... Args&gt;
+    NeverDestroyed(Args&amp;&amp;... args)
+    {
+        new (&amp;m_storage) T(std::forward&lt;Args&gt;(args)...);
+    }
+    operator T&amp;() { return *asPtr(); }
+    T&amp; get() { return *asPtr(); }
+    T* operator&amp;() { return asPtr(); }
+private:
+    typedef typename std::remove_const&lt;T&gt;::type* PointerType;
+    PointerType asPtr() { return reinterpret_cast&lt;PointerType&gt;(&amp;m_storage); }
+    typename std::aligned_storage&lt;sizeof(T), std::alignment_of&lt;T&gt;::value&gt;::type m_storage;
+};
+
+}
</ins></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcSourcewebrtcbasevirtualsocketservercc"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/virtualsocketserver.cc (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/virtualsocketserver.cc        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/base/virtualsocketserver.cc        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -1016,7 +1016,7 @@
</span><span class="cx">   }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static double PI = 4 * atan(1.0);
</del><ins>+static const double PI = 3.141592653589793238462643383279502884;
</ins><span class="cx"> 
</span><span class="cx"> static double Normal(double x, double mean, double stddev) {
</span><span class="cx">   double a = (x - mean) * (x - mean) / (2 * stddev * stddev);
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcSourcewebrtcmodulesaudio_codingcodecsbuiltin_audio_decoder_factory_internalcc"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.cc (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.cc        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.cc        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -15,6 +15,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;webrtc/base/checks.h&quot;
</span><span class="cx"> #include &quot;webrtc/base/optional.h&quot;
</span><ins>+#include &quot;webrtc/base/neverdestroyed.h&quot;
</ins><span class="cx"> #include &quot;webrtc/common_types.h&quot;
</span><span class="cx"> #include &quot;webrtc/modules/audio_coding/codecs/cng/webrtc_cng.h&quot;
</span><span class="cx"> #include &quot;webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.h&quot;
</span><span class="lines">@@ -50,7 +51,8 @@
</span><span class="cx"> 
</span><span class="cx"> // TODO(kwiberg): These factory functions should probably be moved to each
</span><span class="cx"> // decoder.
</span><del>-NamedDecoderConstructor decoder_constructors[] = {
</del><ins>+static const std::vector&lt;NamedDecoderConstructor&gt;&amp; decoder_constructors() {
+ static NeverDestroyed&lt;std::vector&lt;NamedDecoderConstructor&gt;&gt; decoder_constructors = [] { return std::vector&lt;NamedDecoderConstructor&gt;({
</ins><span class="cx">     {&quot;pcmu&quot;,
</span><span class="cx">      [](const SdpAudioFormat&amp; format, std::unique_ptr&lt;AudioDecoder&gt;* out) {
</span><span class="cx">        if (format.clockrate_hz == 8000 &amp;&amp; format.num_channels &gt;= 1) {
</span><span class="lines">@@ -170,7 +172,9 @@
</span><span class="cx">        }
</span><span class="cx">      }},
</span><span class="cx"> #endif
</span><del>-};
</del><ins>+  });}();
+  return decoder_constructors.get();
+}
</ins><span class="cx"> 
</span><span class="cx"> class BuiltinAudioDecoderFactory : public AudioDecoderFactory {
</span><span class="cx">  public:
</span><span class="lines">@@ -177,7 +181,7 @@
</span><span class="cx">   std::vector&lt;AudioCodecSpec&gt; GetSupportedDecoders() override {
</span><span class="cx">     // Although this looks a bit strange, it means specs need only be
</span><span class="cx">     // initialized once, and that that initialization is thread-safe.
</span><del>-    static std::vector&lt;AudioCodecSpec&gt; specs = [] {
</del><ins>+    static NeverDestroyed&lt;std::vector&lt;AudioCodecSpec&gt;&gt; specs = [] {
</ins><span class="cx">       std::vector&lt;AudioCodecSpec&gt; specs;
</span><span class="cx"> #ifdef WEBRTC_CODEC_OPUS
</span><span class="cx">       // clang-format off
</span><span class="lines">@@ -210,7 +214,7 @@
</span><span class="cx">   }
</span><span class="cx"> 
</span><span class="cx">   bool IsSupportedDecoder(const SdpAudioFormat&amp; format) override {
</span><del>-    for (const auto&amp; dc : decoder_constructors) {
</del><ins>+    for (const auto&amp; dc : decoder_constructors()) {
</ins><span class="cx">       if (STR_CASE_CMP(format.name.c_str(), dc.name) == 0) {
</span><span class="cx">         return dc.constructor(format, nullptr);
</span><span class="cx">       }
</span><span class="lines">@@ -220,7 +224,7 @@
</span><span class="cx"> 
</span><span class="cx">   std::unique_ptr&lt;AudioDecoder&gt; MakeAudioDecoder(
</span><span class="cx">       const SdpAudioFormat&amp; format) override {
</span><del>-    for (const auto&amp; dc : decoder_constructors) {
</del><ins>+    for (const auto&amp; dc : decoder_constructors()) {
</ins><span class="cx">       if (STR_CASE_CMP(format.name.c_str(), dc.name) == 0) {
</span><span class="cx">         std::unique_ptr&lt;AudioDecoder&gt; decoder;
</span><span class="cx">         bool ok = dc.constructor(format, &amp;decoder);
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcSourcewebrtcmodulesaudio_processingbeamformerarray_utilh"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_processing/beamformer/array_util.h (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_processing/beamformer/array_util.h        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/audio_processing/beamformer/array_util.h        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -103,12 +103,14 @@
</span><span class="cx"> 
</span><span class="cx"> // Helper functions to transform degrees to radians and the inverse.
</span><span class="cx"> template &lt;typename T&gt;
</span><del>-T DegreesToRadians(T angle_degrees) {
</del><ins>+constexpr T DegreesToRadians(T angle_degrees)
+{
</ins><span class="cx">   return M_PI * angle_degrees / 180;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> template &lt;typename T&gt;
</span><del>-T RadiansToDegrees(T angle_radians) {
</del><ins>+constexpr T RadiansToDegrees(T angle_radians)
+{
</ins><span class="cx">   return 180 * angle_radians / M_PI;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcSourcewebrtcmodulesrtp_rtcpsourcertp_utilitycc"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_utility.cc (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_utility.cc        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/modules/rtp_rtcp/source/rtp_utility.cc        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -13,6 +13,7 @@
</span><span class="cx"> #include &lt;string.h&gt;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;webrtc/base/logging.h&quot;
</span><ins>+#include &quot;webrtc/base/neverdestroyed.h&quot;
</ins><span class="cx"> #include &quot;webrtc/modules/rtp_rtcp/include/rtp_cvo.h&quot;
</span><span class="cx"> #include &quot;webrtc/modules/rtp_rtcp/source/byte_io.h&quot;
</span><span class="cx"> #include &quot;webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h&quot;
</span><span class="lines">@@ -20,17 +21,17 @@
</span><span class="cx"> namespace webrtc {
</span><span class="cx"> 
</span><span class="cx"> RtpData* NullObjectRtpData() {
</span><del>-  static NullRtpData null_rtp_data;
</del><ins>+  static NeverDestroyed&lt;NullRtpData&gt; null_rtp_data;
</ins><span class="cx">   return &amp;null_rtp_data;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RtpFeedback* NullObjectRtpFeedback() {
</span><del>-  static NullRtpFeedback null_rtp_feedback;
</del><ins>+  static NeverDestroyed&lt;NullRtpFeedback&gt; null_rtp_feedback;
</ins><span class="cx">   return &amp;null_rtp_feedback;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ReceiveStatistics* NullObjectReceiveStatistics() {
</span><del>-  static NullReceiveStatistics null_receive_statistics;
</del><ins>+  static NeverDestroyed&lt;NullReceiveStatistics&gt; null_receive_statistics;
</ins><span class="cx">   return &amp;null_receive_statistics;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtcSourcewebrtcsystem_wrapperssourceclockcc"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/Source/webrtc/system_wrappers/source/clock.cc (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/Source/webrtc/system_wrappers/source/clock.cc        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/Source/webrtc/system_wrappers/source/clock.cc        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -20,6 +20,7 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #include &quot;webrtc/base/criticalsection.h&quot;
</span><ins>+#include &quot;webrtc/base/neverdestroyed.h&quot;
</ins><span class="cx"> #include &quot;webrtc/base/timeutils.h&quot;
</span><span class="cx"> #include &quot;webrtc/system_wrappers/include/rw_lock_wrapper.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -223,7 +224,7 @@
</span><span class="cx">   }
</span><span class="cx">   return g_shared_clock;
</span><span class="cx"> #elif defined(WEBRTC_LINUX) || defined(WEBRTC_MAC)
</span><del>-  static UnixRealTimeClock clock;
</del><ins>+  static NeverDestroyed&lt;UnixRealTimeClock&gt; clock;
</ins><span class="cx">   return &amp;clock;
</span><span class="cx"> #else
</span><span class="cx">   return NULL;
</span></span></pre></div>
<a id="trunkSourceThirdPartylibwebrtclibwebrtcxcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj (214287 => 214288)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj        2017-03-23 00:27:01 UTC (rev 214287)
+++ trunk/Source/ThirdParty/libwebrtc/libwebrtc.xcodeproj/project.pbxproj        2017-03-23 00:57:27 UTC (rev 214288)
</span><span class="lines">@@ -528,7 +528,6 @@
</span><span class="cx">                 5C4B48391E42C06A002651C8 /* ssl_rsa.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C4B47F51E42C066002651C8 /* ssl_rsa.c */; };
</span><span class="cx">                 5C4B483A1E42C06A002651C8 /* ssl_session.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C4B47F61E42C066002651C8 /* ssl_session.c */; };
</span><span class="cx">                 5C4B483B1E42C06A002651C8 /* ssl_stat.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C4B47F71E42C066002651C8 /* ssl_stat.c */; };
</span><del>-                5C4B483C1E42C06A002651C8 /* ssl_test.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5C4B47F81E42C066002651C8 /* ssl_test.cc */; };
</del><span class="cx">                 5C4B483D1E42C06A002651C8 /* t1_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C4B47F91E42C066002651C8 /* t1_enc.c */; };
</span><span class="cx">                 5C4B483E1E42C06A002651C8 /* t1_lib.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C4B47FA1E42C066002651C8 /* t1_lib.c */; };
</span><span class="cx">                 5C4B483F1E42C06A002651C8 /* tls_method.c in Sources */ = {isa = PBXBuildFile; fileRef = 5C4B47FB1E42C066002651C8 /* tls_method.c */; };
</span><span class="lines">@@ -2489,6 +2488,7 @@
</span><span class="cx">                 5CDD907F1E43D15C00621E92 /* mock_nonlinear_beamformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CDD906F1E43D15C00621E92 /* mock_nonlinear_beamformer.h */; };
</span><span class="cx">                 5CDD90821E43D15C00621E92 /* nonlinear_beamformer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 5CDD90721E43D15C00621E92 /* nonlinear_beamformer.cc */; };
</span><span class="cx">                 5CDD90831E43D15C00621E92 /* nonlinear_beamformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CDD90731E43D15C00621E92 /* nonlinear_beamformer.h */; };
</span><ins>+                5CDEB3311E82110800209B14 /* neverdestroyed.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CDEB3301E82110800209B14 /* neverdestroyed.h */; };
</ins><span class="cx">                 5CFD537C1E4BA4F500482908 /* audio_device_ios.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53751E4BA4F500482908 /* audio_device_ios.h */; };
</span><span class="cx">                 5CFD53801E4BA4F500482908 /* audio_session_observer.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD53791E4BA4F500482908 /* audio_session_observer.h */; };
</span><span class="cx">                 5CFD53811E4BA4F500482908 /* voice_processing_audio_unit.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CFD537A1E4BA4F500482908 /* voice_processing_audio_unit.h */; };
</span><span class="lines">@@ -5208,6 +5208,7 @@
</span><span class="cx">                 5CDD90AB1E43D52900621E92 /* aes_icm_ossl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = aes_icm_ossl.c; path = cipher/aes_icm_ossl.c; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5CDD90AC1E43D52900621E92 /* cipher.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cipher.c; path = cipher/cipher.c; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5CDD90AD1E43D52900621E92 /* null_cipher.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = null_cipher.c; path = cipher/null_cipher.c; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                5CDEB3301E82110800209B14 /* neverdestroyed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = neverdestroyed.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 5CFD53751E4BA4F500482908 /* audio_device_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_device_ios.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5CFD53761E4BA4F500482908 /* audio_device_ios.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = audio_device_ios.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 5CFD53791E4BA4F500482908 /* audio_session_observer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_session_observer.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -6687,6 +6688,7 @@
</span><span class="cx">                 5C63F3041E4146D2002CA531 /* base */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                5CDEB3301E82110800209B14 /* neverdestroyed.h */,
</ins><span class="cx">                                 5CD286421E6A7B420094FDC8 /* sha1.cc */,
</span><span class="cx">                                 5CD286431E6A7B420094FDC8 /* sha1.h */,
</span><span class="cx">                                 5CD2854F1E6A62310094FDC8 /* numerics */,
</span><span class="lines">@@ -10260,6 +10262,7 @@
</span><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><ins>+                                5CDEB3311E82110800209B14 /* neverdestroyed.h in Headers */,
</ins><span class="cx">                                 5CDD83631E43257200621E92 /* sps_vui_rewriter.h in Headers */,
</span><span class="cx">                                 5C63F88D1E416288002CA531 /* ssladapter.h in Headers */,
</span><span class="cx">                                 5C63F8901E416288002CA531 /* sslfingerprint.h in Headers */,
</span><span class="lines">@@ -11211,7 +11214,6 @@
</span><span class="cx">                                 5C4B48391E42C06A002651C8 /* ssl_rsa.c in Sources */,
</span><span class="cx">                                 5C4B483A1E42C06A002651C8 /* ssl_session.c in Sources */,
</span><span class="cx">                                 5C4B483B1E42C06A002651C8 /* ssl_stat.c in Sources */,
</span><del>-                                5C4B483C1E42C06A002651C8 /* ssl_test.cc in Sources */,
</del><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></pre>
</div>
</div>

</body>
</html>