<!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>[207952] trunk/Source/WebCore</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/207952">207952</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2016-10-27 00:31:13 -0700 (Thu, 27 Oct 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>MediaPayload does not need to be refcounted
https://bugs.webkit.org/show_bug.cgi?id=164015

Patch by Youenn Fablet &lt;youenn@apple.com&gt; on 2016-10-27
Reviewed by Eric Carlson.

No change of behavior.
Making MediaPayload a struct and no-longer ref-counted.
Small performance improvements in MediaEndpointOwr.

* Modules/mediastream/MediaEndpointPeerConnection.h:
* Modules/mediastream/SDPProcessor.cpp:
(WebCore::configurationFromJSON):
(WebCore::configurationToJSON):
* platform/mediastream/MediaEndpoint.h:
* platform/mediastream/MediaPayload.h:
(WebCore::MediaPayload::addParameter):
(WebCore::MediaPayload::create): Deleted.
(WebCore::MediaPayload::~MediaPayload): Deleted.
(WebCore::MediaPayload::type): Deleted.
(WebCore::MediaPayload::setType): Deleted.
(WebCore::MediaPayload::encodingName): Deleted.
(WebCore::MediaPayload::setEncodingName): Deleted.
(WebCore::MediaPayload::clockRate): Deleted.
(WebCore::MediaPayload::setClockRate): Deleted.
(WebCore::MediaPayload::channels): Deleted.
(WebCore::MediaPayload::setChannels): Deleted.
(WebCore::MediaPayload::ccmfir): Deleted.
(WebCore::MediaPayload::setCcmfir): Deleted.
(WebCore::MediaPayload::nackpli): Deleted.
(WebCore::MediaPayload::setNackpli): Deleted.
(WebCore::MediaPayload::nack): Deleted.
(WebCore::MediaPayload::setNack): Deleted.
(WebCore::MediaPayload::parameters): Deleted.
(WebCore::MediaPayload::clone): Deleted.
(WebCore::MediaPayload::MediaPayload): Deleted.
* platform/mediastream/PeerMediaDescription.h:
(WebCore::PeerMediaDescription::payloads):
(WebCore::PeerMediaDescription::addPayload):
(WebCore::PeerMediaDescription::setPayloads):
(WebCore::PeerMediaDescription::clone):
* platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
(WebCore::MediaEndpointOwr::getDefaultAudioPayloads):
(WebCore::MediaEndpointOwr::getDefaultVideoPayloads):
(WebCore::MediaEndpointOwr::filterPayloads):
* platform/mock/MockMediaEndpoint.cpp:
(WebCore::MockMediaEndpoint::getDefaultAudioPayloads):
(WebCore::MockMediaEndpoint::getDefaultVideoPayloads):
(WebCore::MockMediaEndpoint::filterPayloads):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamMediaEndpointPeerConnectionh">trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.h</a></li>
<li><a href="#trunkSourceWebCoreModulesmediastreamSDPProcessorcpp">trunk/Source/WebCore/Modules/mediastream/SDPProcessor.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamMediaEndpointh">trunk/Source/WebCore/platform/mediastream/MediaEndpoint.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamMediaPayloadh">trunk/Source/WebCore/platform/mediastream/MediaPayload.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamPeerMediaDescriptionh">trunk/Source/WebCore/platform/mediastream/PeerMediaDescription.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreamopenwebrtcMediaEndpointOwrcpp">trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformmockMockMediaEndpointcpp">trunk/Source/WebCore/platform/mock/MockMediaEndpoint.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (207951 => 207952)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-10-27 07:28:58 UTC (rev 207951)
+++ trunk/Source/WebCore/ChangeLog        2016-10-27 07:31:13 UTC (rev 207952)
</span><span class="lines">@@ -1,3 +1,54 @@
</span><ins>+2016-10-27  Youenn Fablet  &lt;youenn@apple.com&gt;
+
+        MediaPayload does not need to be refcounted
+        https://bugs.webkit.org/show_bug.cgi?id=164015
+
+        Reviewed by Eric Carlson.
+
+        No change of behavior.
+        Making MediaPayload a struct and no-longer ref-counted.
+        Small performance improvements in MediaEndpointOwr.
+
+        * Modules/mediastream/MediaEndpointPeerConnection.h:
+        * Modules/mediastream/SDPProcessor.cpp:
+        (WebCore::configurationFromJSON):
+        (WebCore::configurationToJSON):
+        * platform/mediastream/MediaEndpoint.h:
+        * platform/mediastream/MediaPayload.h:
+        (WebCore::MediaPayload::addParameter):
+        (WebCore::MediaPayload::create): Deleted.
+        (WebCore::MediaPayload::~MediaPayload): Deleted.
+        (WebCore::MediaPayload::type): Deleted.
+        (WebCore::MediaPayload::setType): Deleted.
+        (WebCore::MediaPayload::encodingName): Deleted.
+        (WebCore::MediaPayload::setEncodingName): Deleted.
+        (WebCore::MediaPayload::clockRate): Deleted.
+        (WebCore::MediaPayload::setClockRate): Deleted.
+        (WebCore::MediaPayload::channels): Deleted.
+        (WebCore::MediaPayload::setChannels): Deleted.
+        (WebCore::MediaPayload::ccmfir): Deleted.
+        (WebCore::MediaPayload::setCcmfir): Deleted.
+        (WebCore::MediaPayload::nackpli): Deleted.
+        (WebCore::MediaPayload::setNackpli): Deleted.
+        (WebCore::MediaPayload::nack): Deleted.
+        (WebCore::MediaPayload::setNack): Deleted.
+        (WebCore::MediaPayload::parameters): Deleted.
+        (WebCore::MediaPayload::clone): Deleted.
+        (WebCore::MediaPayload::MediaPayload): Deleted.
+        * platform/mediastream/PeerMediaDescription.h:
+        (WebCore::PeerMediaDescription::payloads):
+        (WebCore::PeerMediaDescription::addPayload):
+        (WebCore::PeerMediaDescription::setPayloads):
+        (WebCore::PeerMediaDescription::clone):
+        * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
+        (WebCore::MediaEndpointOwr::getDefaultAudioPayloads):
+        (WebCore::MediaEndpointOwr::getDefaultVideoPayloads):
+        (WebCore::MediaEndpointOwr::filterPayloads):
+        * platform/mock/MockMediaEndpoint.cpp:
+        (WebCore::MockMediaEndpoint::getDefaultAudioPayloads):
+        (WebCore::MockMediaEndpoint::getDefaultVideoPayloads):
+        (WebCore::MockMediaEndpoint::filterPayloads):
+
</ins><span class="cx"> 2016-10-26  Dan Bernstein  &lt;mitz@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Improved the last build fix.
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamMediaEndpointPeerConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.h (207951 => 207952)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.h        2016-10-27 07:28:58 UTC (rev 207951)
+++ trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.h        2016-10-27 07:31:13 UTC (rev 207952)
</span><span class="lines">@@ -119,8 +119,8 @@
</span><span class="cx"> 
</span><span class="cx">     std::unique_ptr&lt;SDPProcessor&gt; m_sdpProcessor;
</span><span class="cx"> 
</span><del>-    Vector&lt;RefPtr&lt;MediaPayload&gt;&gt; m_defaultAudioPayloads;
-    Vector&lt;RefPtr&lt;MediaPayload&gt;&gt; m_defaultVideoPayloads;
</del><ins>+    Vector&lt;MediaPayload&gt; m_defaultAudioPayloads;
+    Vector&lt;MediaPayload&gt; m_defaultVideoPayloads;
</ins><span class="cx"> 
</span><span class="cx">     String m_cname;
</span><span class="cx">     String m_iceUfrag;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesmediastreamSDPProcessorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/mediastream/SDPProcessor.cpp (207951 => 207952)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/mediastream/SDPProcessor.cpp        2016-10-27 07:28:58 UTC (rev 207951)
+++ trunk/Source/WebCore/Modules/mediastream/SDPProcessor.cpp        2016-10-27 07:31:13 UTC (rev 207952)
</span><span class="lines">@@ -223,39 +223,39 @@
</span><span class="cx">             RefPtr&lt;InspectorObject&gt; payloadsObject = InspectorObject::create();
</span><span class="cx">             payloadsArray-&gt;get(j)-&gt;asObject(payloadsObject);
</span><span class="cx"> 
</span><del>-            RefPtr&lt;MediaPayload&gt; payload = MediaPayload::create();
</del><ins>+            MediaPayload payload;
</ins><span class="cx"> 
</span><span class="cx">             if (payloadsObject-&gt;getInteger(typeString(), intValue))
</span><del>-                payload-&gt;setType(intValue);
</del><ins>+                payload.type = intValue;
</ins><span class="cx"> 
</span><span class="cx">             if (payloadsObject-&gt;getString(encodingNameString(), stringValue))
</span><del>-                payload-&gt;setEncodingName(stringValue);
</del><ins>+                payload.encodingName = stringValue;
</ins><span class="cx"> 
</span><span class="cx">             if (payloadsObject-&gt;getInteger(clockRateString(), intValue))
</span><del>-                payload-&gt;setClockRate(intValue);
</del><ins>+                payload.clockRate = intValue;
</ins><span class="cx"> 
</span><span class="cx">             if (payloadsObject-&gt;getInteger(channelsString(), intValue))
</span><del>-                payload-&gt;setChannels(intValue);
</del><ins>+                payload.channels = intValue;
</ins><span class="cx"> 
</span><span class="cx">             if (payloadsObject-&gt;getBoolean(ccmfirString(), boolValue))
</span><del>-                payload-&gt;setCcmfir(boolValue);
</del><ins>+                payload.ccmfir = boolValue;
</ins><span class="cx"> 
</span><span class="cx">             if (payloadsObject-&gt;getBoolean(nackpliString(), boolValue))
</span><del>-                payload-&gt;setNackpli(boolValue);
</del><ins>+                payload.nackpli = boolValue;
</ins><span class="cx"> 
</span><span class="cx">             if (payloadsObject-&gt;getBoolean(nackString(), boolValue))
</span><del>-                payload-&gt;setNack(boolValue);
</del><ins>+                payload.nack = boolValue;
</ins><span class="cx"> 
</span><span class="cx">             RefPtr&lt;InspectorObject&gt; parametersObject = InspectorObject::create();
</span><span class="cx">             if (payloadsObject-&gt;getObject(parametersString(), parametersObject)) {
</span><span class="cx">                 if (parametersObject-&gt;getInteger(packetizationModeString(), intValue))
</span><del>-                    payload-&gt;addParameter(&quot;packetizationMode&quot;, intValue);
</del><ins>+                    payload.addParameter(&quot;packetizationMode&quot;, intValue);
</ins><span class="cx"> 
</span><span class="cx">                 if (parametersObject-&gt;getInteger(aptString(), intValue))
</span><del>-                    payload-&gt;addParameter(&quot;apt&quot;, intValue);
</del><ins>+                    payload.addParameter(&quot;apt&quot;, intValue);
</ins><span class="cx"> 
</span><span class="cx">                 if (parametersObject-&gt;getInteger(rtxTimeString(), intValue))
</span><del>-                    payload-&gt;addParameter(&quot;rtxTime&quot;, intValue);
</del><ins>+                    payload.addParameter(&quot;rtxTime&quot;, intValue);
</ins><span class="cx">             }
</span><span class="cx"> 
</span><span class="cx">             mediaDescription-&gt;addPayload(WTFMove(payload));
</span><span class="lines">@@ -362,22 +362,22 @@
</span><span class="cx"> 
</span><span class="cx">         RefPtr&lt;InspectorArray&gt; payloadsArray = InspectorArray::create();
</span><span class="cx"> 
</span><del>-        for (RefPtr&lt;MediaPayload&gt; payload : mediaDescription-&gt;payloads()) {
</del><ins>+        for (auto&amp; payload : mediaDescription-&gt;payloads()) {
</ins><span class="cx">             RefPtr&lt;InspectorObject&gt; payloadObject = InspectorObject::create();
</span><span class="cx"> 
</span><del>-            payloadObject-&gt;setInteger(typeString(), payload-&gt;type());
-            payloadObject-&gt;setString(encodingNameString(), payload-&gt;encodingName());
-            payloadObject-&gt;setInteger(clockRateString(), payload-&gt;clockRate());
-            payloadObject-&gt;setInteger(channelsString(), payload-&gt;channels());
-            payloadObject-&gt;setBoolean(ccmfirString(), payload-&gt;ccmfir());
-            payloadObject-&gt;setBoolean(nackpliString(), payload-&gt;nackpli());
-            payloadObject-&gt;setBoolean(nackString(), payload-&gt;nack());
</del><ins>+            payloadObject-&gt;setInteger(typeString(), payload.type);
+            payloadObject-&gt;setString(encodingNameString(), payload.encodingName);
+            payloadObject-&gt;setInteger(clockRateString(), payload.clockRate);
+            payloadObject-&gt;setInteger(channelsString(), payload.channels);
+            payloadObject-&gt;setBoolean(ccmfirString(), payload.ccmfir);
+            payloadObject-&gt;setBoolean(nackpliString(), payload.nackpli);
+            payloadObject-&gt;setBoolean(nackString(), payload.nack);
</ins><span class="cx"> 
</span><del>-            if (!payload-&gt;parameters().isEmpty()) {
</del><ins>+            if (!payload.parameters.isEmpty()) {
</ins><span class="cx">                 RefPtr&lt;InspectorObject&gt; parametersObject = InspectorObject::create();
</span><span class="cx"> 
</span><del>-                for (auto&amp; name : payload-&gt;parameters().keys())
-                    parametersObject-&gt;setInteger(name, payload-&gt;parameters().get(name));
</del><ins>+                for (auto&amp; name : payload.parameters.keys())
+                    parametersObject-&gt;setInteger(name, payload.parameters.get(name));
</ins><span class="cx"> 
</span><span class="cx">                 payloadObject-&gt;setObject(parametersString(), parametersObject);
</span><span class="cx">             }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamMediaEndpointh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/MediaEndpoint.h (207951 => 207952)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/MediaEndpoint.h        2016-10-27 07:28:58 UTC (rev 207951)
+++ trunk/Source/WebCore/platform/mediastream/MediaEndpoint.h        2016-10-27 07:31:13 UTC (rev 207952)
</span><span class="lines">@@ -43,11 +43,11 @@
</span><span class="cx"> class MediaEndpoint;
</span><span class="cx"> class MediaEndpointClient;
</span><span class="cx"> class MediaEndpointSessionConfiguration;
</span><del>-class MediaPayload;
</del><ins>+struct MediaPayload;
</ins><span class="cx"> class RealtimeMediaSource;
</span><span class="cx"> 
</span><span class="cx"> typedef std::unique_ptr&lt;MediaEndpoint&gt; (*CreateMediaEndpoint)(MediaEndpointClient&amp;);
</span><del>-typedef Vector&lt;RefPtr&lt;MediaPayload&gt;&gt; MediaPayloadVector;
</del><ins>+typedef Vector&lt;MediaPayload&gt; MediaPayloadVector;
</ins><span class="cx"> typedef HashMap&lt;String, RealtimeMediaSource*&gt; RealtimeMediaSourceMap;
</span><span class="cx"> 
</span><span class="cx"> class MediaEndpoint {
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamMediaPayloadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/MediaPayload.h (207951 => 207952)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/MediaPayload.h        2016-10-27 07:28:58 UTC (rev 207951)
+++ trunk/Source/WebCore/platform/mediastream/MediaPayload.h        2016-10-27 07:31:13 UTC (rev 207952)
</span><span class="lines">@@ -28,90 +28,34 @@
</span><span class="cx">  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</span><span class="cx">  */
</span><span class="cx"> 
</span><del>-#ifndef MediaPayload_h
-#define MediaPayload_h
</del><ins>+#pragma once
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(WEB_RTC)
</span><span class="cx"> 
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><del>-#include &lt;wtf/RefCounted.h&gt;
-#include &lt;wtf/RefPtr.h&gt;
</del><span class="cx"> #include &lt;wtf/text/StringHash.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-class MediaPayload : public RefCounted&lt;MediaPayload&gt; {
</del><ins>+struct MediaPayload {
</ins><span class="cx"> public:
</span><del>-    static RefPtr&lt;MediaPayload&gt; create()
-    {
-        return adoptRef(new MediaPayload());
-    }
-    virtual ~MediaPayload() { }
</del><ins>+    void addParameter(const String&amp; name, unsigned value) { parameters.set(name, value); }
</ins><span class="cx"> 
</span><del>-    unsigned type() const { return m_type; }
-    void setType(unsigned type) { m_type = type; }
</del><ins>+    unsigned type { 0 };
+    String encodingName;
+    unsigned clockRate { 0 };
</ins><span class="cx"> 
</span><del>-    const String&amp; encodingName() const { return m_encodingName; }
-    void setEncodingName(const String &amp; encodingName) { m_encodingName = encodingName; }
-
-    unsigned clockRate() const { return m_clockRate; }
-    void setClockRate(unsigned clockRate) { m_clockRate = clockRate; }
-
-    unsigned channels() const { return m_channels; }
-    void setChannels(unsigned channels) { m_channels = channels; }
-
-    bool ccmfir() const { return m_ccmfir; }
-    void setCcmfir(bool ccmfir) { m_ccmfir = ccmfir; }
-
-    bool nackpli() const { return m_nackpli; }
-    void setNackpli(bool nackpli) { m_nackpli = nackpli; }
-
-    bool nack() const { return m_nack; }
-    void setNack(bool nack) { m_nack = nack; }
-
-    const HashMap&lt;String, unsigned&gt;&amp; parameters() const { return m_parameters; }
-    void addParameter(const String&amp; name, unsigned value) { m_parameters.set(name, value); }
-
-    RefPtr&lt;MediaPayload&gt; clone() const
-    {
-        RefPtr&lt;MediaPayload&gt; copy = create();
-
-        copy-&gt;m_type = m_type;
-        copy-&gt;m_encodingName = String(m_encodingName);
-        copy-&gt;m_clockRate = m_clockRate;
-
-        copy-&gt;m_channels = m_channels;
-
-        copy-&gt;m_ccmfir = m_ccmfir;
-        copy-&gt;m_nackpli = m_nackpli;
-        copy-&gt;m_nack = m_nack;
-
-        for (auto&amp; key : m_parameters.keys())
-            copy-&gt;m_parameters.add(key, m_parameters.get(key));
-
-        return copy;
-    }
-
-private:
-    MediaPayload() { }
-
-    unsigned m_type { 0 };
-    String m_encodingName;
-    unsigned m_clockRate { 0 };
-
</del><span class="cx">     // audio
</span><del>-    unsigned m_channels { 0 };
</del><ins>+    unsigned channels { 0 };
</ins><span class="cx"> 
</span><span class="cx">     // video
</span><del>-    bool m_ccmfir { false };
-    bool m_nackpli { false };
-    bool m_nack { false };
</del><ins>+    bool ccmfir { false };
+    bool nackpli { false };
+    bool nack { false };
</ins><span class="cx"> 
</span><del>-    HashMap&lt;String, unsigned&gt; m_parameters;
</del><ins>+    HashMap&lt;String, unsigned&gt; parameters;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> } // namespace WebCore
</span><span class="cx"> 
</span><span class="cx"> #endif // ENABLE(WEB_RTC)
</span><del>-
-#endif // MediaPayload_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamPeerMediaDescriptionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/PeerMediaDescription.h (207951 => 207952)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/PeerMediaDescription.h        2016-10-27 07:28:58 UTC (rev 207951)
+++ trunk/Source/WebCore/platform/mediastream/PeerMediaDescription.h        2016-10-27 07:31:13 UTC (rev 207952)
</span><span class="lines">@@ -64,10 +64,10 @@
</span><span class="cx">     const String&amp; mid() const { return m_mid; }
</span><span class="cx">     void setMid(const String&amp; mid) { m_mid = mid; }
</span><span class="cx"> 
</span><del>-    const Vector&lt;RefPtr&lt;MediaPayload&gt;&gt;&amp; payloads() const { return m_payloads; }
-    void addPayload(RefPtr&lt;MediaPayload&gt;&amp;&amp; payload) { m_payloads.append(WTFMove(payload)); }
-    void setPayloads(Vector&lt;RefPtr&lt;MediaPayload&gt;&gt;&amp;&amp; payloads) { m_payloads = payloads; }
-    void setPayloads(const Vector&lt;RefPtr&lt;MediaPayload&gt;&gt;&amp; payloads) { m_payloads = payloads; }
</del><ins>+    const Vector&lt;MediaPayload&gt;&amp; payloads() const { return m_payloads; }
+    void addPayload(MediaPayload&amp;&amp; payload) { m_payloads.append(WTFMove(payload)); }
+    void setPayloads(Vector&lt;MediaPayload&gt;&amp;&amp; payloads) { m_payloads = payloads; }
+    void setPayloads(const Vector&lt;MediaPayload&gt;&amp; payloads) { m_payloads = payloads; }
</ins><span class="cx"> 
</span><span class="cx">     bool rtcpMux() const { return m_rtcpMux; }
</span><span class="cx">     void setRtcpMux(bool rtcpMux) { m_rtcpMux = rtcpMux; }
</span><span class="lines">@@ -119,8 +119,7 @@
</span><span class="cx">         copy-&gt;m_mode = String(m_mode);
</span><span class="cx">         copy-&gt;m_mid = String(m_mid);
</span><span class="cx"> 
</span><del>-        for (auto&amp; payload : m_payloads)
-            copy-&gt;m_payloads.append(payload-&gt;clone());
</del><ins>+        copy-&gt;m_payloads = m_payloads;
</ins><span class="cx"> 
</span><span class="cx">         copy-&gt;m_rtcpMux = m_rtcpMux;
</span><span class="cx">         copy-&gt;m_rtcpAddress = String(m_rtcpAddress);
</span><span class="lines">@@ -155,7 +154,7 @@
</span><span class="cx">     String m_mode { &quot;sendrecv&quot; };
</span><span class="cx">     String m_mid;
</span><span class="cx"> 
</span><del>-    Vector&lt;RefPtr&lt;MediaPayload&gt;&gt; m_payloads;
</del><ins>+    Vector&lt;MediaPayload&gt; m_payloads;
</ins><span class="cx"> 
</span><span class="cx">     bool m_rtcpMux { true };
</span><span class="cx">     String m_rtcpAddress;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreamopenwebrtcMediaEndpointOwrcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp (207951 => 207952)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp        2016-10-27 07:28:58 UTC (rev 207951)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp        2016-10-27 07:31:13 UTC (rev 207952)
</span><span class="lines">@@ -110,26 +110,26 @@
</span><span class="cx">     MediaPayloadVector payloads;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: This list should be based on what is available in the platform (bug: http://webkit.org/b/163723)
</span><del>-    RefPtr&lt;MediaPayload&gt; payload = MediaPayload::create();
-    payload-&gt;setType(111);
-    payload-&gt;setEncodingName(&quot;OPUS&quot;);
-    payload-&gt;setClockRate(48000);
-    payload-&gt;setChannels(2);
-    payloads.append(payload);
</del><ins>+    MediaPayload payload1;
+    payload1.type = 111;
+    payload1.encodingName = &quot;OPUS&quot;;
+    payload1.clockRate = 48000;
+    payload1.channels = 2;
+    payloads.append(WTFMove(payload1));
</ins><span class="cx"> 
</span><del>-    payload = MediaPayload::create();
-    payload-&gt;setType(8);
-    payload-&gt;setEncodingName(&quot;PCMA&quot;);
-    payload-&gt;setClockRate(8000);
-    payload-&gt;setChannels(1);
-    payloads.append(payload);
</del><ins>+    MediaPayload payload2;
+    payload2.type = 8;
+    payload2.encodingName = &quot;PCMA&quot;;
+    payload2.clockRate = 8000;
+    payload2.channels = 1;
+    payloads.append(WTFMove(payload2));
</ins><span class="cx"> 
</span><del>-    payload = MediaPayload::create();
-    payload-&gt;setType(0);
-    payload-&gt;setEncodingName(&quot;PCMU&quot;);
-    payload-&gt;setClockRate(8000);
-    payload-&gt;setChannels(1);
-    payloads.append(payload);
</del><ins>+    MediaPayload payload3;
+    payload3.type = 0;
+    payload3.encodingName = &quot;PCMU&quot;;
+    payload3.clockRate = 8000;
+    payload3.channels = 1;
+    payloads.append(WTFMove(payload3));
</ins><span class="cx"> 
</span><span class="cx">     return payloads;
</span><span class="cx"> }
</span><span class="lines">@@ -139,39 +139,40 @@
</span><span class="cx">     MediaPayloadVector payloads;
</span><span class="cx"> 
</span><span class="cx">     // FIXME: This list should be based on what is available in the platform (bug: http://webkit.org/b/163723)
</span><del>-    RefPtr&lt;MediaPayload&gt; payload = MediaPayload::create();
-    payload-&gt;setType(103);
-    payload-&gt;setEncodingName(&quot;H264&quot;);
-    payload-&gt;setClockRate(90000);
-    payload-&gt;setCcmfir(true);
-    payload-&gt;setNackpli(true);
-    payload-&gt;addParameter(&quot;packetizationMode&quot;, 1);
-    payloads.append(payload);
</del><ins>+    MediaPayload payload1;
+    payload1.type = 103;
+    payload1.encodingName = &quot;H264&quot;;
+    payload1.clockRate = 90000;
+    payload1.ccmfir = true;
+    payload1.nackpli = true;
+    payload1.addParameter(&quot;packetizationMode&quot;, 1);
+    payloads.append(WTFMove(payload1));
</ins><span class="cx"> 
</span><del>-    payload = MediaPayload::create();
-    payload-&gt;setType(100);
-    payload-&gt;setEncodingName(&quot;VP8&quot;);
-    payload-&gt;setClockRate(90000);
-    payload-&gt;setCcmfir(true);
-    payload-&gt;setNackpli(true);
-    payload-&gt;setNack(true);
-    payloads.append(payload);
</del><ins>+    MediaPayload payload2;
+    payload2.type = 100;
+    payload2.encodingName = &quot;VP8&quot;;
+    payload2.clockRate = 90000;
+    payload2.ccmfir = true;
+    payload2.nackpli = true;
+    payload2.nack = true;
+    payloads.append(WTFMove(payload2));
</ins><span class="cx"> 
</span><del>-    payload = MediaPayload::create();
-    payload-&gt;setType(120);
-    payload-&gt;setEncodingName(&quot;RTX&quot;);
-    payload-&gt;setClockRate(90000);
-    payload-&gt;addParameter(&quot;apt&quot;, 100);
-    payload-&gt;addParameter(&quot;rtxTime&quot;, 200);
-    payloads.append(payload);
</del><ins>+    MediaPayload payload3;
+    payload3.type = 120;
+    payload3.encodingName = &quot;RTX&quot;;
+    payload3.clockRate = 90000;
+    payload1.addParameter(&quot;apt&quot;, 100);
+    payload1.addParameter(&quot;rtxTime&quot;, 200);
+    payloads.append(WTFMove(payload3));
</ins><span class="cx"> 
</span><span class="cx">     return payloads;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool payloadsContainType(MediaPayloadVector payloads, unsigned payloadType)
</del><ins>+static bool payloadsContainType(const Vector&lt;const MediaPayload*&gt;&amp; payloads, unsigned payloadType)
</ins><span class="cx"> {
</span><del>-    for (auto&amp; payload : payloads) {
-        if (payload-&gt;type() == payloadType)
</del><ins>+    for (auto payload : payloads) {
+        ASSERT(payload);
+        if (payload-&gt;type == payloadType)
</ins><span class="cx">             return true;
</span><span class="cx">     }
</span><span class="cx">     return false;
</span><span class="lines">@@ -179,13 +180,13 @@
</span><span class="cx"> 
</span><span class="cx"> MediaPayloadVector MediaEndpointOwr::filterPayloads(const MediaPayloadVector&amp; remotePayloads, const MediaPayloadVector&amp; defaultPayloads)
</span><span class="cx"> {
</span><del>-    MediaPayloadVector filteredPayloads;
</del><ins>+    Vector&lt;const MediaPayload*&gt; filteredPayloads;
</ins><span class="cx"> 
</span><span class="cx">     for (auto&amp; remotePayload : remotePayloads) {
</span><del>-        MediaPayload* defaultPayload = nullptr;
</del><ins>+        const MediaPayload* defaultPayload = nullptr;
</ins><span class="cx">         for (auto&amp; p : defaultPayloads) {
</span><del>-            if (p-&gt;encodingName() == remotePayload-&gt;encodingName().convertToASCIIUppercase()) {
-                defaultPayload = p.get();
</del><ins>+            if (p.encodingName == remotePayload.encodingName.convertToASCIIUppercase()) {
+                defaultPayload = &amp;p;
</ins><span class="cx">                 break;
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -192,19 +193,19 @@
</span><span class="cx">         if (!defaultPayload)
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        if (defaultPayload-&gt;parameters().contains(&quot;packetizationMode&quot;) &amp;&amp; remotePayload-&gt;parameters().contains(&quot;packetizationMode&quot;)
-            &amp;&amp; (defaultPayload-&gt;parameters().get(&quot;packetizationMode&quot;) != defaultPayload-&gt;parameters().get(&quot;packetizationMode&quot;)))
</del><ins>+        if (defaultPayload-&gt;parameters.contains(&quot;packetizationMode&quot;) &amp;&amp; remotePayload.parameters.contains(&quot;packetizationMode&quot;)
+            &amp;&amp; (defaultPayload-&gt;parameters.get(&quot;packetizationMode&quot;) != defaultPayload-&gt;parameters.get(&quot;packetizationMode&quot;)))
</ins><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        filteredPayloads.append(remotePayload);
</del><ins>+        filteredPayloads.append(&amp;remotePayload);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     MediaPayloadVector filteredAptPayloads;
</span><span class="cx"> 
</span><del>-    for (auto&amp; filteredPayload : filteredPayloads) {
-        if (filteredPayload-&gt;parameters().contains(&quot;apt&quot;) &amp;&amp; (!payloadsContainType(filteredPayloads, filteredPayload-&gt;parameters().get(&quot;apt&quot;))))
</del><ins>+    for (auto filteredPayload : filteredPayloads) {
+        if (filteredPayload-&gt;parameters.contains(&quot;apt&quot;) &amp;&amp; (!payloadsContainType(filteredPayloads, filteredPayload-&gt;parameters.get(&quot;apt&quot;))))
</ins><span class="cx">             continue;
</span><del>-        filteredAptPayloads.append(filteredPayload);
</del><ins>+        filteredAptPayloads.append(*filteredPayload);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     return filteredAptPayloads;
</span><span class="lines">@@ -235,12 +236,12 @@
</span><span class="cx">     return UpdateResult::Success;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static RefPtr&lt;MediaPayload&gt; findRtxPayload(MediaPayloadVector payloads, unsigned apt)
</del><ins>+static const MediaPayload* findRtxPayload(const MediaPayloadVector&amp; payloads, unsigned apt)
</ins><span class="cx"> {
</span><span class="cx">     for (auto&amp; payload : payloads) {
</span><del>-        if (payload-&gt;encodingName().convertToASCIIUppercase() == &quot;RTX&quot; &amp;&amp; payload-&gt;parameters().contains(&quot;apt&quot;)
-            &amp;&amp; (payload-&gt;parameters().get(&quot;apt&quot;) == apt))
-            return payload;
</del><ins>+        if (payload.encodingName.convertToASCIIUppercase() == &quot;RTX&quot; &amp;&amp; payload.parameters.contains(&quot;apt&quot;)
+            &amp;&amp; (payload.parameters.get(&quot;apt&quot;) == apt))
+            return &amp;payload;
</ins><span class="cx">     }
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><span class="lines">@@ -276,10 +277,10 @@
</span><span class="cx">         if (!sendSourceMap.contains(mdesc.mid()))
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        MediaPayload* payload = nullptr;
</del><ins>+        const MediaPayload* payload = nullptr;
</ins><span class="cx">         for (auto&amp; p : mdesc.payloads()) {
</span><del>-            if (p-&gt;encodingName().convertToASCIIUppercase() != &quot;RTX&quot;) {
-                payload = p.get();
</del><ins>+            if (p.encodingName.convertToASCIIUppercase() != &quot;RTX&quot;) {
+                payload = &amp;p;
</ins><span class="cx">                 break;
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -287,19 +288,19 @@
</span><span class="cx">         if (!payload)
</span><span class="cx">             return UpdateResult::Failed;
</span><span class="cx"> 
</span><del>-        RefPtr&lt;MediaPayload&gt; rtxPayload = findRtxPayload(mdesc.payloads(), payload-&gt;type());
-        RealtimeMediaSourceOwr* source = static_cast&lt;RealtimeMediaSourceOwr*&gt;(sendSourceMap.get(mdesc.mid()));
</del><ins>+        auto* rtxPayload = findRtxPayload(mdesc.payloads(), payload-&gt;type);
+        auto* source = static_cast&lt;RealtimeMediaSourceOwr*&gt;(sendSourceMap.get(mdesc.mid()));
</ins><span class="cx"> 
</span><del>-        ASSERT(codecTypes.find(payload-&gt;encodingName().convertToASCIIUppercase()) != notFound);
-        OwrCodecType codecType = static_cast&lt;OwrCodecType&gt;(codecTypes.find(payload-&gt;encodingName().convertToASCIIUppercase()));
</del><ins>+        ASSERT(codecTypes.find(payload-&gt;encodingName.convertToASCIIUppercase()) != notFound);
+        auto codecType = static_cast&lt;OwrCodecType&gt;(codecTypes.find(payload-&gt;encodingName.convertToASCIIUppercase()));
</ins><span class="cx"> 
</span><span class="cx">         OwrPayload* sendPayload;
</span><span class="cx">         if (mdesc.type() == &quot;audio&quot;)
</span><del>-            sendPayload = owr_audio_payload_new(codecType, payload-&gt;type(), payload-&gt;clockRate(), payload-&gt;channels());
</del><ins>+            sendPayload = owr_audio_payload_new(codecType, payload-&gt;type, payload-&gt;clockRate, payload-&gt;channels);
</ins><span class="cx">         else {
</span><del>-            sendPayload = owr_video_payload_new(codecType, payload-&gt;type(), payload-&gt;clockRate(), payload-&gt;ccmfir(), payload-&gt;nackpli());
-            g_object_set(sendPayload, &quot;rtx-payload-type&quot;, rtxPayload ? rtxPayload-&gt;type() : -1,
-                &quot;rtx-time&quot;, rtxPayload &amp;&amp; rtxPayload-&gt;parameters().contains(&quot;rtxTime&quot;) ? rtxPayload-&gt;parameters().get(&quot;rtxTime&quot;) : 0, nullptr);
</del><ins>+            sendPayload = owr_video_payload_new(codecType, payload-&gt;type, payload-&gt;clockRate, payload-&gt;ccmfir, payload-&gt;nackpli);
+            g_object_set(sendPayload, &quot;rtx-payload-type&quot;, rtxPayload ? rtxPayload-&gt;type : -1,
+                &quot;rtx-time&quot;, rtxPayload &amp;&amp; rtxPayload-&gt;parameters.contains(&quot;rtxTime&quot;) ? rtxPayload-&gt;parameters.get(&quot;rtxTime&quot;) : 0, nullptr);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         owr_media_session_set_send_payload(OWR_MEDIA_SESSION(session), sendPayload);
</span><span class="lines">@@ -489,21 +490,21 @@
</span><span class="cx">     g_signal_connect(mediaSession, &quot;on-incoming-source&quot;, G_CALLBACK(gotIncomingSource), this);
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; payload : mediaDescription-&gt;payloads()) {
</span><del>-        if (payload-&gt;encodingName().convertToASCIIUppercase() == &quot;RTX&quot;)
</del><ins>+        if (payload.encodingName.convertToASCIIUppercase() == &quot;RTX&quot;)
</ins><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        RefPtr&lt;MediaPayload&gt; rtxPayload = findRtxPayload(mediaDescription-&gt;payloads(), payload-&gt;type());
</del><ins>+        auto* rtxPayload = findRtxPayload(mediaDescription-&gt;payloads(), payload.type);
</ins><span class="cx"> 
</span><del>-        ASSERT(codecTypes.find(payload-&gt;encodingName()) != notFound);
-        OwrCodecType codecType = static_cast&lt;OwrCodecType&gt;(codecTypes.find(payload-&gt;encodingName().convertToASCIIUppercase()));
</del><ins>+        ASSERT(codecTypes.find(payload.encodingName) != notFound);
+        OwrCodecType codecType = static_cast&lt;OwrCodecType&gt;(codecTypes.find(payload.encodingName.convertToASCIIUppercase()));
</ins><span class="cx"> 
</span><span class="cx">         OwrPayload* receivePayload;
</span><span class="cx">         if (mediaDescription-&gt;type() == &quot;audio&quot;)
</span><del>-            receivePayload = owr_audio_payload_new(codecType, payload-&gt;type(), payload-&gt;clockRate(), payload-&gt;channels());
</del><ins>+            receivePayload = owr_audio_payload_new(codecType, payload.type, payload.clockRate, payload.channels);
</ins><span class="cx">         else {
</span><del>-            receivePayload = owr_video_payload_new(codecType, payload-&gt;type(), payload-&gt;clockRate(), payload-&gt;ccmfir(), payload-&gt;nackpli());
-            g_object_set(receivePayload, &quot;rtx-payload-type&quot;, rtxPayload ? rtxPayload-&gt;type() : -1,
-                &quot;rtx-time&quot;, rtxPayload &amp;&amp; rtxPayload-&gt;parameters().contains(&quot;rtxTime&quot;) ? rtxPayload-&gt;parameters().get(&quot;rtxTime&quot;) : 0, nullptr);
</del><ins>+            receivePayload = owr_video_payload_new(codecType, payload.type, payload.clockRate, payload.ccmfir, payload.nackpli);
+            g_object_set(receivePayload, &quot;rtx-payload-type&quot;, rtxPayload ? rtxPayload-&gt;type : -1,
+                &quot;rtx-time&quot;, rtxPayload &amp;&amp; rtxPayload-&gt;parameters.contains(&quot;rtxTime&quot;) ? rtxPayload-&gt;parameters.get(&quot;rtxTime&quot;) : 0, nullptr);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         owr_media_session_add_receive_payload(mediaSession, receivePayload);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmockMockMediaEndpointcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mock/MockMediaEndpoint.cpp (207951 => 207952)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mock/MockMediaEndpoint.cpp        2016-10-27 07:28:58 UTC (rev 207951)
+++ trunk/Source/WebCore/platform/mock/MockMediaEndpoint.cpp        2016-10-27 07:31:13 UTC (rev 207952)
</span><span class="lines">@@ -74,26 +74,26 @@
</span><span class="cx"> {
</span><span class="cx">     MediaPayloadVector payloads;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;MediaPayload&gt; payload = MediaPayload::create();
-    payload-&gt;setType(111);
-    payload-&gt;setEncodingName(&quot;OPUS&quot;);
-    payload-&gt;setClockRate(48000);
-    payload-&gt;setChannels(2);
-    payloads.append(payload);
</del><ins>+    MediaPayload payload1;
+    payload1.type = 111;
+    payload1.encodingName = &quot;OPUS&quot;;
+    payload1.clockRate = 48000;
+    payload1.channels = 2;
+    payloads.append(WTFMove(payload1));
</ins><span class="cx"> 
</span><del>-    payload = MediaPayload::create();
-    payload-&gt;setType(8);
-    payload-&gt;setEncodingName(&quot;PCMA&quot;);
-    payload-&gt;setClockRate(8000);
-    payload-&gt;setChannels(1);
-    payloads.append(payload);
</del><ins>+    MediaPayload payload2;
+    payload2.type = 8;
+    payload2.encodingName = &quot;PCMA&quot;;
+    payload2.clockRate = 8000;
+    payload2.channels = 1;
+    payloads.append(WTFMove(payload2));
</ins><span class="cx"> 
</span><del>-    payload = MediaPayload::create();
-    payload-&gt;setType(0);
-    payload-&gt;setEncodingName(&quot;PCMU&quot;);
-    payload-&gt;setClockRate(8000);
-    payload-&gt;setChannels(1);
-    payloads.append(payload);
</del><ins>+    MediaPayload payload3;
+    payload3.type = 0;
+    payload3.encodingName = &quot;PCMU&quot;;
+    payload3.clockRate = 8000;
+    payload3.channels = 1;
+    payloads.append(WTFMove(payload3));
</ins><span class="cx"> 
</span><span class="cx">     return payloads;
</span><span class="cx"> }
</span><span class="lines">@@ -102,31 +102,31 @@
</span><span class="cx"> {
</span><span class="cx">     MediaPayloadVector payloads;
</span><span class="cx"> 
</span><del>-    RefPtr&lt;MediaPayload&gt; payload = MediaPayload::create();
-    payload-&gt;setType(103);
-    payload-&gt;setEncodingName(&quot;H264&quot;);
-    payload-&gt;setClockRate(90000);
-    payload-&gt;setCcmfir(true);
-    payload-&gt;setNackpli(true);
-    payload-&gt;addParameter(&quot;packetizationMode&quot;, 1);
-    payloads.append(payload);
</del><ins>+    MediaPayload payload1;
+    payload1.type = 103;
+    payload1.encodingName = &quot;H264&quot;;
+    payload1.clockRate = 90000;
+    payload1.ccmfir = true;
+    payload1.nackpli = true;
+    payload1.addParameter(&quot;packetizationMode&quot;, 1);
+    payloads.append(WTFMove(payload1));
</ins><span class="cx"> 
</span><del>-    payload = MediaPayload::create();
-    payload-&gt;setType(100);
-    payload-&gt;setEncodingName(&quot;VP8&quot;);
-    payload-&gt;setClockRate(90000);
-    payload-&gt;setCcmfir(true);
-    payload-&gt;setNackpli(true);
-    payload-&gt;setNack(true);
-    payloads.append(payload);
</del><ins>+    MediaPayload payload2;
+    payload2.type = 100;
+    payload2.encodingName = &quot;VP8&quot;;
+    payload2.clockRate = 90000;
+    payload2.ccmfir = true;
+    payload2.nackpli = true;
+    payload2.nack = true;
+    payloads.append(WTFMove(payload2));
</ins><span class="cx"> 
</span><del>-    payload = MediaPayload::create();
-    payload-&gt;setType(120);
-    payload-&gt;setEncodingName(&quot;RTX&quot;);
-    payload-&gt;setClockRate(90000);
-    payload-&gt;addParameter(&quot;apt&quot;, 100);
-    payload-&gt;addParameter(&quot;rtxTime&quot;, 200);
-    payloads.append(payload);
</del><ins>+    MediaPayload payload3;
+    payload3.type = 120;
+    payload3.encodingName = &quot;RTX&quot;;
+    payload3.clockRate = 90000;
+    payload3.addParameter(&quot;apt&quot;, 100);
+    payload3.addParameter(&quot;rtxTime&quot;, 200);
+    payloads.append(WTFMove(payload3));
</ins><span class="cx"> 
</span><span class="cx">     return payloads;
</span><span class="cx"> }
</span><span class="lines">@@ -136,10 +136,10 @@
</span><span class="cx">     MediaPayloadVector filteredPayloads;
</span><span class="cx"> 
</span><span class="cx">     for (auto&amp; remotePayload : remotePayloads) {
</span><del>-        MediaPayload* defaultPayload = nullptr;
</del><ins>+        const MediaPayload* defaultPayload = nullptr;
</ins><span class="cx">         for (auto&amp; payload : defaultPayloads) {
</span><del>-            if (payload-&gt;encodingName() == remotePayload-&gt;encodingName().convertToASCIIUppercase()) {
-                defaultPayload = payload.get();
</del><ins>+            if (payload.encodingName == remotePayload.encodingName.convertToASCIIUppercase()) {
+                defaultPayload = &amp;payload;
</ins><span class="cx">                 break;
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="lines">@@ -146,8 +146,8 @@
</span><span class="cx">         if (!defaultPayload)
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><del>-        if (defaultPayload-&gt;parameters().contains(&quot;packetizationMode&quot;) &amp;&amp; remotePayload-&gt;parameters().contains(&quot;packetizationMode&quot;)
-            &amp;&amp; (defaultPayload-&gt;parameters().get(&quot;packetizationMode&quot;) != defaultPayload-&gt;parameters().get(&quot;packetizationMode&quot;)))
</del><ins>+        if (defaultPayload-&gt;parameters.contains(&quot;packetizationMode&quot;) &amp;&amp; remotePayload.parameters.contains(&quot;packetizationMode&quot;)
+            &amp;&amp; (defaultPayload-&gt;parameters.get(&quot;packetizationMode&quot;) != defaultPayload-&gt;parameters.get(&quot;packetizationMode&quot;)))
</ins><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="cx">         filteredPayloads.append(remotePayload);
</span></span></pre>
</div>
</div>

</body>
</html>