Title: [208043] trunk/Source/WebCore
Revision
208043
Author
commit-qu...@webkit.org
Date
2016-10-28 04:14:51 -0700 (Fri, 28 Oct 2016)

Log Message

PeerMediaDescription does not need to be refcounted
https://bugs.webkit.org/show_bug.cgi?id=164059

Patch by Youenn Fablet <you...@apple.com> on 2016-10-28
Reviewed by Darin Adler.

No change of behavior.

* Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::createOfferTask):
(WebCore::MediaEndpointPeerConnection::createAnswerTask):
(WebCore::createSourceMap):
(WebCore::MediaEndpointPeerConnection::setLocalDescriptionTask):
(WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask):
(WebCore::MediaEndpointPeerConnection::addIceCandidateTask):
(WebCore::MediaEndpointPeerConnection::gotIceCandidate):
* Modules/mediastream/MediaEndpointPeerConnection.h:
* Modules/mediastream/SDPProcessor.cpp:
(WebCore::configurationFromJSON):
(WebCore::configurationToJSON):
(WebCore::SDPProcessor::generateCandidateLine):
(WebCore::SDPProcessor::parseCandidateLine):
* platform/mediastream/IceCandidate.h:
* platform/mediastream/MediaEndpointSessionConfiguration.h:
(WebCore::MediaEndpointSessionConfiguration::mediaDescriptions):
(WebCore::MediaEndpointSessionConfiguration::addMediaDescription):
(WebCore::MediaEndpointSessionConfiguration::clone):
* platform/mediastream/PeerMediaDescription.h:
(WebCore::PeerMediaDescription::addPayload):
(WebCore::PeerMediaDescription::addSsrc):
(WebCore::PeerMediaDescription::clearSsrcs):
(WebCore::PeerMediaDescription::addIceCandidate):
(WebCore::PeerMediaDescription::create): Deleted.
(WebCore::PeerMediaDescription::~PeerMediaDescription): Deleted.
(WebCore::PeerMediaDescription::type): Deleted.
(WebCore::PeerMediaDescription::setType): Deleted.
(WebCore::PeerMediaDescription::port): Deleted.
(WebCore::PeerMediaDescription::setPort): Deleted.
(WebCore::PeerMediaDescription::address): Deleted.
(WebCore::PeerMediaDescription::setAddress): Deleted.
(WebCore::PeerMediaDescription::mode): Deleted.
(WebCore::PeerMediaDescription::setMode): Deleted.
(WebCore::PeerMediaDescription::mid): Deleted.
(WebCore::PeerMediaDescription::setMid): Deleted.
(WebCore::PeerMediaDescription::payloads): Deleted.
(WebCore::PeerMediaDescription::setPayloads): Deleted.
(WebCore::PeerMediaDescription::rtcpMux): Deleted.
(WebCore::PeerMediaDescription::setRtcpMux): Deleted.
(WebCore::PeerMediaDescription::rtcpAddress): Deleted.
(WebCore::PeerMediaDescription::setRtcpAddress): Deleted.
(WebCore::PeerMediaDescription::rtcpPort): Deleted.
(WebCore::PeerMediaDescription::setRtcpPort): Deleted.
(WebCore::PeerMediaDescription::mediaStreamId): Deleted.
(WebCore::PeerMediaDescription::setMediaStreamId): Deleted.
(WebCore::PeerMediaDescription::mediaStreamTrackId): Deleted.
(WebCore::PeerMediaDescription::setMediaStreamTrackId): Deleted.
(WebCore::PeerMediaDescription::dtlsSetup): Deleted.
(WebCore::PeerMediaDescription::setDtlsSetup): Deleted.
(WebCore::PeerMediaDescription::dtlsFingerprintHashFunction): Deleted.
(WebCore::PeerMediaDescription::setDtlsFingerprintHashFunction): Deleted.
(WebCore::PeerMediaDescription::dtlsFingerprint): Deleted.
(WebCore::PeerMediaDescription::setDtlsFingerprint): Deleted.
(WebCore::PeerMediaDescription::cname): Deleted.
(WebCore::PeerMediaDescription::setCname): Deleted.
(WebCore::PeerMediaDescription::ssrcs): Deleted.
(WebCore::PeerMediaDescription::iceUfrag): Deleted.
(WebCore::PeerMediaDescription::setIceUfrag): Deleted.
(WebCore::PeerMediaDescription::icePassword): Deleted.
(WebCore::PeerMediaDescription::setIcePassword): Deleted.
(WebCore::PeerMediaDescription::iceCandidates): Deleted.
(WebCore::PeerMediaDescription::clone): Deleted.
(WebCore::PeerMediaDescription::PeerMediaDescription): Deleted.
* platform/mediastream/mac/MediaEndpointMac.cpp:
(WebCore::MediaEndpointMac::addRemoteCandidate):
(WebCore::MediaEndpointMac::OnIceCandidate):
* platform/mediastream/mac/MediaEndpointMac.h:
* platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
(WebCore::MediaEndpointOwr::updateSendConfiguration):
* platform/mediastream/openwebrtc/MediaEndpointOwr.h:
* platform/mock/MockMediaEndpoint.cpp:
(WebCore::MockMediaEndpoint::updateConfigurationMids):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (208042 => 208043)


--- trunk/Source/WebCore/ChangeLog	2016-10-28 09:40:44 UTC (rev 208042)
+++ trunk/Source/WebCore/ChangeLog	2016-10-28 11:14:51 UTC (rev 208043)
@@ -1,3 +1,86 @@
+2016-10-28  Youenn Fablet  <you...@apple.com>
+
+        PeerMediaDescription does not need to be refcounted
+        https://bugs.webkit.org/show_bug.cgi?id=164059
+
+        Reviewed by Darin Adler.
+
+        No change of behavior.
+
+        * Modules/mediastream/MediaEndpointPeerConnection.cpp:
+        (WebCore::MediaEndpointPeerConnection::createOfferTask):
+        (WebCore::MediaEndpointPeerConnection::createAnswerTask):
+        (WebCore::createSourceMap):
+        (WebCore::MediaEndpointPeerConnection::setLocalDescriptionTask):
+        (WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask):
+        (WebCore::MediaEndpointPeerConnection::addIceCandidateTask):
+        (WebCore::MediaEndpointPeerConnection::gotIceCandidate):
+        * Modules/mediastream/MediaEndpointPeerConnection.h:
+        * Modules/mediastream/SDPProcessor.cpp:
+        (WebCore::configurationFromJSON):
+        (WebCore::configurationToJSON):
+        (WebCore::SDPProcessor::generateCandidateLine):
+        (WebCore::SDPProcessor::parseCandidateLine):
+        * platform/mediastream/IceCandidate.h:
+        * platform/mediastream/MediaEndpointSessionConfiguration.h:
+        (WebCore::MediaEndpointSessionConfiguration::mediaDescriptions):
+        (WebCore::MediaEndpointSessionConfiguration::addMediaDescription):
+        (WebCore::MediaEndpointSessionConfiguration::clone):
+        * platform/mediastream/PeerMediaDescription.h:
+        (WebCore::PeerMediaDescription::addPayload):
+        (WebCore::PeerMediaDescription::addSsrc):
+        (WebCore::PeerMediaDescription::clearSsrcs):
+        (WebCore::PeerMediaDescription::addIceCandidate):
+        (WebCore::PeerMediaDescription::create): Deleted.
+        (WebCore::PeerMediaDescription::~PeerMediaDescription): Deleted.
+        (WebCore::PeerMediaDescription::type): Deleted.
+        (WebCore::PeerMediaDescription::setType): Deleted.
+        (WebCore::PeerMediaDescription::port): Deleted.
+        (WebCore::PeerMediaDescription::setPort): Deleted.
+        (WebCore::PeerMediaDescription::address): Deleted.
+        (WebCore::PeerMediaDescription::setAddress): Deleted.
+        (WebCore::PeerMediaDescription::mode): Deleted.
+        (WebCore::PeerMediaDescription::setMode): Deleted.
+        (WebCore::PeerMediaDescription::mid): Deleted.
+        (WebCore::PeerMediaDescription::setMid): Deleted.
+        (WebCore::PeerMediaDescription::payloads): Deleted.
+        (WebCore::PeerMediaDescription::setPayloads): Deleted.
+        (WebCore::PeerMediaDescription::rtcpMux): Deleted.
+        (WebCore::PeerMediaDescription::setRtcpMux): Deleted.
+        (WebCore::PeerMediaDescription::rtcpAddress): Deleted.
+        (WebCore::PeerMediaDescription::setRtcpAddress): Deleted.
+        (WebCore::PeerMediaDescription::rtcpPort): Deleted.
+        (WebCore::PeerMediaDescription::setRtcpPort): Deleted.
+        (WebCore::PeerMediaDescription::mediaStreamId): Deleted.
+        (WebCore::PeerMediaDescription::setMediaStreamId): Deleted.
+        (WebCore::PeerMediaDescription::mediaStreamTrackId): Deleted.
+        (WebCore::PeerMediaDescription::setMediaStreamTrackId): Deleted.
+        (WebCore::PeerMediaDescription::dtlsSetup): Deleted.
+        (WebCore::PeerMediaDescription::setDtlsSetup): Deleted.
+        (WebCore::PeerMediaDescription::dtlsFingerprintHashFunction): Deleted.
+        (WebCore::PeerMediaDescription::setDtlsFingerprintHashFunction): Deleted.
+        (WebCore::PeerMediaDescription::dtlsFingerprint): Deleted.
+        (WebCore::PeerMediaDescription::setDtlsFingerprint): Deleted.
+        (WebCore::PeerMediaDescription::cname): Deleted.
+        (WebCore::PeerMediaDescription::setCname): Deleted.
+        (WebCore::PeerMediaDescription::ssrcs): Deleted.
+        (WebCore::PeerMediaDescription::iceUfrag): Deleted.
+        (WebCore::PeerMediaDescription::setIceUfrag): Deleted.
+        (WebCore::PeerMediaDescription::icePassword): Deleted.
+        (WebCore::PeerMediaDescription::setIcePassword): Deleted.
+        (WebCore::PeerMediaDescription::iceCandidates): Deleted.
+        (WebCore::PeerMediaDescription::clone): Deleted.
+        (WebCore::PeerMediaDescription::PeerMediaDescription): Deleted.
+        * platform/mediastream/mac/MediaEndpointMac.cpp:
+        (WebCore::MediaEndpointMac::addRemoteCandidate):
+        (WebCore::MediaEndpointMac::OnIceCandidate):
+        * platform/mediastream/mac/MediaEndpointMac.h:
+        * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
+        (WebCore::MediaEndpointOwr::updateSendConfiguration):
+        * platform/mediastream/openwebrtc/MediaEndpointOwr.h:
+        * platform/mock/MockMediaEndpoint.cpp:
+        (WebCore::MockMediaEndpoint::updateConfigurationMids):
+
 2016-10-28  Antoine Quint  <grao...@apple.com>
 
         [Modern Media Controls] Media Controller: scrubbing support

Modified: trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp (208042 => 208043)


--- trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp	2016-10-28 09:40:44 UTC (rev 208042)
+++ trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp	2016-10-28 11:14:51 UTC (rev 208043)
@@ -160,21 +160,21 @@
 
     // Remove any transceiver objects from transceivers that can be matched to an existing media description.
     for (auto& mediaDescription : configurationSnapshot->mediaDescriptions()) {
-        if (!mediaDescription->port()) {
+        if (!mediaDescription.port) {
             // This media description should be recycled.
             continue;
         }
 
-        RTCRtpTransceiver* transceiver = matchTransceiverByMid(transceivers, mediaDescription->mid());
+        RTCRtpTransceiver* transceiver = matchTransceiverByMid(transceivers, mediaDescription.mid);
         if (!transceiver)
             continue;
 
-        mediaDescription->setMode(transceiver->directionString());
+        mediaDescription.mode = transceiver->directionString();
         if (transceiver->hasSendingDirection()) {
             RTCRtpSender& sender = *transceiver->sender();
 
-            mediaDescription->setMediaStreamId(sender.mediaStreamIds()[0]);
-            mediaDescription->setMediaStreamTrackId(sender.trackId());
+            mediaDescription.mediaStreamId = sender.mediaStreamIds()[0];
+            mediaDescription.mediaStreamTrackId = sender.trackId();
         }
 
         transceivers.removeFirst(transceiver);
@@ -182,23 +182,23 @@
 
     // Add media descriptions for remaining transceivers.
     for (auto& transceiver : transceivers) {
-        RefPtr<PeerMediaDescription> mediaDescription = PeerMediaDescription::create();
+        PeerMediaDescription mediaDescription;
         RTCRtpSender& sender = *transceiver->sender();
 
-        mediaDescription->setMode(transceiver->directionString());
-        mediaDescription->setMid(transceiver->provisionalMid());
-        mediaDescription->setMediaStreamId(sender.mediaStreamIds()[0]);
-        mediaDescription->setType(sender.trackKind());
-        mediaDescription->setPayloads(sender.trackKind() == "audio" ? m_defaultAudioPayloads : m_defaultVideoPayloads);
-        mediaDescription->setDtlsFingerprintHashFunction(m_dtlsFingerprintFunction);
-        mediaDescription->setDtlsFingerprint(m_dtlsFingerprint);
-        mediaDescription->setCname(m_cname);
-        mediaDescription->addSsrc(cryptographicallyRandomNumber());
-        mediaDescription->setIceUfrag(m_iceUfrag);
-        mediaDescription->setIcePassword(m_icePassword);
+        mediaDescription.mode = transceiver->directionString();
+        mediaDescription.mid = transceiver->provisionalMid();
+        mediaDescription.mediaStreamId = sender.mediaStreamIds()[0];
+        mediaDescription.type = sender.trackKind();
+        mediaDescription.payloads = sender.trackKind() == "audio" ? m_defaultAudioPayloads : m_defaultVideoPayloads;
+        mediaDescription.dtlsFingerprintHashFunction = m_dtlsFingerprintFunction;
+        mediaDescription.dtlsFingerprint = m_dtlsFingerprint;
+        mediaDescription.cname = m_cname;
+        mediaDescription.addSsrc(cryptographicallyRandomNumber());
+        mediaDescription.iceUfrag = m_iceUfrag;
+        mediaDescription.icePassword = m_icePassword;
 
         if (sender.track())
-            mediaDescription->setMediaStreamTrackId(sender.trackId());
+            mediaDescription.mediaStreamTrackId = sender.trackId();
 
         configurationSnapshot->addMediaDescription(WTFMove(mediaDescription));
     }
@@ -233,12 +233,12 @@
     configurationSnapshot->setSessionVersion(m_sdpAnswerSessionVersion++);
 
     auto transceivers = RtpTransceiverVector(m_client->getTransceivers());
-    const MediaDescriptionVector& remoteMediaDescriptions = internalRemoteDescription()->configuration()->mediaDescriptions();
+    auto& remoteMediaDescriptions = internalRemoteDescription()->configuration()->mediaDescriptions();
 
     for (unsigned i = 0; i < remoteMediaDescriptions.size(); ++i) {
-        PeerMediaDescription& remoteMediaDescription = *remoteMediaDescriptions[i];
+        auto& remoteMediaDescription = remoteMediaDescriptions[i];
 
-        RTCRtpTransceiver* transceiver = matchTransceiverByMid(transceivers, remoteMediaDescription.mid());
+        auto* transceiver = matchTransceiverByMid(transceivers, remoteMediaDescription.mid);
         if (!transceiver) {
             LOG_ERROR("Could not find a matching transceiver for remote description while creating answer");
             continue;
@@ -245,39 +245,39 @@
         }
 
         if (i >= configurationSnapshot->mediaDescriptions().size()) {
-            auto newMediaDescription = PeerMediaDescription::create();
+            PeerMediaDescription newMediaDescription;
 
             RTCRtpSender& sender = *transceiver->sender();
             if (sender.track()) {
                 if (sender.mediaStreamIds().size())
-                    newMediaDescription->setMediaStreamId(sender.mediaStreamIds()[0]);
-                newMediaDescription->setMediaStreamTrackId(sender.trackId());
-                newMediaDescription->addSsrc(cryptographicallyRandomNumber());
+                    newMediaDescription.mediaStreamId = sender.mediaStreamIds()[0];
+                newMediaDescription.mediaStreamTrackId = sender.trackId();
+                newMediaDescription.addSsrc(cryptographicallyRandomNumber());
             }
 
-            newMediaDescription->setMode(transceiver->directionString());
-            newMediaDescription->setType(remoteMediaDescription.type());
-            newMediaDescription->setMid(remoteMediaDescription.mid());
-            newMediaDescription->setDtlsSetup(remoteMediaDescription.dtlsSetup() == "active" ? "passive" : "active");
-            newMediaDescription->setDtlsFingerprintHashFunction(m_dtlsFingerprintFunction);
-            newMediaDescription->setDtlsFingerprint(m_dtlsFingerprint);
-            newMediaDescription->setCname(m_cname);
-            newMediaDescription->setIceUfrag(m_iceUfrag);
-            newMediaDescription->setIcePassword(m_icePassword);
+            newMediaDescription.mode = transceiver->directionString();
+            newMediaDescription.type = remoteMediaDescription.type;
+            newMediaDescription.mid = remoteMediaDescription.mid;
+            newMediaDescription.dtlsSetup = remoteMediaDescription.dtlsSetup == "active" ? "passive" : "active";
+            newMediaDescription.dtlsFingerprintHashFunction = m_dtlsFingerprintFunction;
+            newMediaDescription.dtlsFingerprint = m_dtlsFingerprint;
+            newMediaDescription.cname = m_cname;
+            newMediaDescription.iceUfrag = m_iceUfrag;
+            newMediaDescription.icePassword = m_icePassword;
 
             configurationSnapshot->addMediaDescription(WTFMove(newMediaDescription));
         }
 
-        PeerMediaDescription& localMediaDescription = *configurationSnapshot->mediaDescriptions()[i];
+        PeerMediaDescription& localMediaDescription = configurationSnapshot->mediaDescriptions()[i];
 
-        localMediaDescription.setPayloads(remoteMediaDescription.payloads());
-        localMediaDescription.setRtcpMux(remoteMediaDescription.rtcpMux());
+        localMediaDescription.payloads = remoteMediaDescription.payloads;
+        localMediaDescription.rtcpMux = remoteMediaDescription.rtcpMux;
 
-        if (!localMediaDescription.ssrcs().size())
+        if (!localMediaDescription.ssrcs.size())
             localMediaDescription.addSsrc(cryptographicallyRandomNumber());
 
-        if (localMediaDescription.dtlsSetup() == "actpass")
-            localMediaDescription.setDtlsSetup("passive");
+        if (localMediaDescription.dtlsSetup == "actpass")
+            localMediaDescription.dtlsSetup = "passive";
 
         transceivers.removeFirst(transceiver);
     }
@@ -295,11 +295,11 @@
     RealtimeMediaSourceMap sourceMap;
 
     for (unsigned i = 0; i < remoteMediaDescriptions.size() && i < localMediaDescriptionCount; ++i) {
-        PeerMediaDescription& remoteMediaDescription = *remoteMediaDescriptions[i];
-        if (remoteMediaDescription.type() != "audio" && remoteMediaDescription.type() != "video")
+        auto& remoteMediaDescription = remoteMediaDescriptions[i];
+        if (remoteMediaDescription.type != "audio" && remoteMediaDescription.type != "video")
             continue;
 
-        RTCRtpTransceiver* transceiver = matchTransceiverByMid(transceivers, remoteMediaDescription.mid());
+        RTCRtpTransceiver* transceiver = matchTransceiverByMid(transceivers, remoteMediaDescription.mid);
         if (transceiver) {
             if (transceiver->hasSendingDirection() && transceiver->sender()->track())
                 sourceMap.set(transceiver->mid(), &transceiver->sender()->track()->source());
@@ -359,11 +359,9 @@
         }
 
         // Associate media descriptions with transceivers (set provisional mid to 'final' mid).
-        for (unsigned i = previousNumberOfMediaDescriptions; i < mediaDescriptions.size(); ++i) {
-            PeerMediaDescription& mediaDescription = *mediaDescriptions[i];
-
+        for (auto& mediaDescription : mediaDescriptions) {
             RTCRtpTransceiver* transceiver = matchTransceiver(transceivers, [&mediaDescription] (RTCRtpTransceiver& current) {
-                return current.provisionalMid() == mediaDescription.mid();
+                return current.provisionalMid() == mediaDescription.mid;
             });
             if (transceiver)
                 transceiver->setMid(transceiver->provisionalMid());
@@ -464,13 +462,12 @@
         return;
     }
 
-    const MediaDescriptionVector& mediaDescriptions = newDescription->configuration()->mediaDescriptions();
+    auto& mediaDescriptions = newDescription->configuration()->mediaDescriptions();
     for (auto& mediaDescription : mediaDescriptions) {
-        if (mediaDescription->type() != "audio" && mediaDescription->type() != "video")
+        if (mediaDescription.type != "audio" && mediaDescription.type != "video")
             continue;
 
-        mediaDescription->setPayloads(m_mediaEndpoint->filterPayloads(mediaDescription->payloads(),
-            mediaDescription->type() == "audio" ? m_defaultAudioPayloads : m_defaultVideoPayloads));
+        mediaDescription.payloads = m_mediaEndpoint->filterPayloads(mediaDescription.payloads, mediaDescription.type == "audio" ? m_defaultAudioPayloads : m_defaultVideoPayloads);
     }
 
     bool isInitiator = newDescription->type() == RTCSessionDescription::SdpType::Answer;
@@ -488,32 +485,32 @@
     // One legacy MediaStreamEvent will be fired for every new MediaStream created as this remote description is set.
     Vector<RefPtr<MediaStreamEvent>> legacyMediaStreamEvents;
 
-    for (auto mediaDescription : mediaDescriptions) {
-        RTCRtpTransceiver* transceiver = matchTransceiverByMid(transceivers, mediaDescription->mid());
+    for (auto& mediaDescription : mediaDescriptions) {
+        RTCRtpTransceiver* transceiver = matchTransceiverByMid(transceivers, mediaDescription.mid);
         if (!transceiver) {
             bool receiveOnlyFlag = false;
 
-            if (mediaDescription->mode() == "sendrecv" || mediaDescription->mode() == "recvonly") {
+            if (mediaDescription.mode == "sendrecv" || mediaDescription.mode == "recvonly") {
                 // Try to match an existing transceiver.
                 transceiver = matchTransceiver(transceivers, [&mediaDescription] (RTCRtpTransceiver& current) {
-                    return !current.stopped() && current.mid().isNull() && current.sender()->trackKind() == mediaDescription->type();
+                    return !current.stopped() && current.mid().isNull() && current.sender()->trackKind() == mediaDescription.type;
                 });
 
                 if (transceiver) {
                     // This transceiver was created locally with a provisional mid. Its real mid will now be set by the remote
                     // description so we need to update the mid of the transceiver's muted source to preserve the association.
-                    transceiver->setMid(mediaDescription->mid());
-                    m_mediaEndpoint->replaceMutedRemoteSourceMid(transceiver->provisionalMid(), mediaDescription->mid());
+                    transceiver->setMid(mediaDescription.mid);
+                    m_mediaEndpoint->replaceMutedRemoteSourceMid(transceiver->provisionalMid(), mediaDescription.mid);
                 } else
                     receiveOnlyFlag = true;
             }
 
             if (!transceiver) {
-                auto sender = RTCRtpSender::create(mediaDescription->type(), Vector<String>(), m_client->senderClient());
-                auto receiver = createReceiver(mediaDescription->mid(), mediaDescription->type(), mediaDescription->mediaStreamTrackId());
+                auto sender = RTCRtpSender::create(mediaDescription.type, Vector<String>(), m_client->senderClient());
+                auto receiver = createReceiver(mediaDescription.mid, mediaDescription.type, mediaDescription.mediaStreamTrackId);
 
                 auto newTransceiver = RTCRtpTransceiver::create(WTFMove(sender), WTFMove(receiver));
-                newTransceiver->setMid(mediaDescription->mid());
+                newTransceiver->setMid(mediaDescription.mid);
                 if (receiveOnlyFlag)
                     newTransceiver->disableSendingDirection();
 
@@ -522,7 +519,7 @@
             }
         }
 
-        if (mediaDescription->mode() == "sendrecv" || mediaDescription->mode() == "sendonly") {
+        if (mediaDescription.mode == "sendrecv" || mediaDescription.mode == "sendonly") {
             RTCRtpReceiver& receiver = *transceiver->receiver();
             if (receiver.isDispatched())
                 continue;
@@ -529,8 +526,8 @@
             receiver.setDispatched(true);
 
             Vector<String> mediaStreamIds;
-            if (!mediaDescription->mediaStreamId().isEmpty())
-                mediaStreamIds.append(mediaDescription->mediaStreamId());
+            if (!mediaDescription.mediaStreamId.isEmpty())
+                mediaStreamIds.append(mediaDescription.mediaStreamId);
 
             // A remote track can be associated with 0..* MediaStreams. We create a new stream for
             // a track in case of an unrecognized stream id, or just add the track if the stream
@@ -646,7 +643,7 @@
         return;
     }
 
-    const MediaDescriptionVector& remoteMediaDescriptions = internalRemoteDescription()->configuration()->mediaDescriptions();
+    auto& remoteMediaDescriptions = internalRemoteDescription()->configuration()->mediaDescriptions();
     PeerMediaDescription* targetMediaDescription = nullptr;
 
     // When identifying the target media description, sdpMid takes precedence over sdpMLineIndex
@@ -654,8 +651,8 @@
     if (!rtcCandidate.sdpMid().isNull()) {
         const String& mid = rtcCandidate.sdpMid();
         for (auto& description : remoteMediaDescriptions) {
-            if (description->mid() == mid) {
-                targetMediaDescription = description.get();
+            if (description.mid == mid) {
+                targetMediaDescription = &description;
                 break;
             }
         }
@@ -670,7 +667,7 @@
             promise.reject(OperationError, "sdpMLineIndex is out of range");
             return;
         }
-        targetMediaDescription = remoteMediaDescriptions[sdpMLineIndex].get();
+        targetMediaDescription = &remoteMediaDescriptions[sdpMLineIndex];
     } else {
         ASSERT_NOT_REACHED();
         return;
@@ -685,7 +682,8 @@
         return;
     }
 
-    m_mediaEndpoint->addRemoteCandidate(result.candidate(), targetMediaDescription->mid(), targetMediaDescription->iceUfrag(), targetMediaDescription->icePassword());
+    ASSERT(targetMediaDescription);
+    m_mediaEndpoint->addRemoteCandidate(result.candidate(), targetMediaDescription->mid, targetMediaDescription->iceUfrag, targetMediaDescription->icePassword);
 
     targetMediaDescription->addIceCandidate(WTFMove(result.candidate()));
 
@@ -837,11 +835,11 @@
 {
     ASSERT(isMainThread());
 
-    const MediaDescriptionVector& mediaDescriptions = internalLocalDescription()->configuration()->mediaDescriptions();
+    auto& mediaDescriptions = internalLocalDescription()->configuration()->mediaDescriptions();
     size_t mediaDescriptionIndex = notFound;
 
     for (size_t i = 0; i < mediaDescriptions.size(); ++i) {
-        if (mediaDescriptions[i]->mid() == mid) {
+        if (mediaDescriptions[i].mid == mid) {
             mediaDescriptionIndex = i;
             break;
         }
@@ -855,9 +853,7 @@
         return;
     }
 
-    auto& mediaDescription = mediaDescriptions[mediaDescriptionIndex];
-    ASSERT(mediaDescription);
-    mediaDescription->addIceCandidate(WTFMove(candidate));
+    mediaDescriptions[mediaDescriptionIndex].addIceCandidate(WTFMove(candidate));
 
     m_client->fireEvent(RTCIceCandidateEvent::create(false, false, RTCIceCandidate::create(candidateLine, mid, mediaDescriptionIndex)));
 }

Modified: trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.h (208042 => 208043)


--- trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.h	2016-10-28 09:40:44 UTC (rev 208042)
+++ trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.h	2016-10-28 11:14:51 UTC (rev 208043)
@@ -43,13 +43,14 @@
 
 class MediaStream;
 class MediaStreamTrack;
-class PeerMediaDescription;
 class SDPProcessor;
 
-typedef Vector<RefPtr<PeerMediaDescription>> MediaDescriptionVector;
-typedef Vector<RefPtr<RTCRtpSender>> RtpSenderVector;
-typedef Vector<RefPtr<RTCRtpTransceiver>> RtpTransceiverVector;
+struct PeerMediaDescription;
 
+using MediaDescriptionVector = Vector<PeerMediaDescription>;
+using RtpSenderVector = Vector<RefPtr<RTCRtpSender>>;
+using RtpTransceiverVector = Vector<RefPtr<RTCRtpTransceiver>>;
+
 class MediaEndpointPeerConnection : public PeerConnectionBackend, public MediaEndpointClient {
 public:
     MediaEndpointPeerConnection(PeerConnectionBackendClient*);

Modified: trunk/Source/WebCore/Modules/mediastream/SDPProcessor.cpp (208042 => 208043)


--- trunk/Source/WebCore/Modules/mediastream/SDPProcessor.cpp	2016-10-28 09:40:44 UTC (rev 208042)
+++ trunk/Source/WebCore/Modules/mediastream/SDPProcessor.cpp	2016-10-28 11:14:51 UTC (rev 208043)
@@ -199,22 +199,22 @@
         RefPtr<InspectorObject> mediaDescriptionObject = InspectorObject::create();
         mediaDescriptionsArray->get(i)->asObject(mediaDescriptionObject);
 
-        RefPtr<PeerMediaDescription> mediaDescription = PeerMediaDescription::create();
+        PeerMediaDescription mediaDescription;
 
         if (mediaDescriptionObject->getString(typeString(), stringValue))
-            mediaDescription->setType(stringValue);
+            mediaDescription.type = stringValue;
 
         if (mediaDescriptionObject->getInteger(portString(), intValue))
-            mediaDescription->setPort(intValue);
+            mediaDescription.port = intValue;
 
         if (mediaDescriptionObject->getString(addressString(), stringValue))
-            mediaDescription->setAddress(stringValue);
+            mediaDescription.address = stringValue;
 
         if (mediaDescriptionObject->getString(modeString(), stringValue))
-            mediaDescription->setMode(stringValue);
+            mediaDescription.mode = stringValue;
 
         if (mediaDescriptionObject->getString(midString(), stringValue))
-            mediaDescription->setMid(stringValue);
+            mediaDescription.mid = stringValue;
 
         RefPtr<InspectorArray> payloadsArray = InspectorArray::create();
         mediaDescriptionObject->getArray(payloadsString(), payloadsArray);
@@ -258,37 +258,37 @@
                     payload.addParameter("rtxTime", intValue);
             }
 
-            mediaDescription->addPayload(WTFMove(payload));
+            mediaDescription.addPayload(WTFMove(payload));
         }
 
         RefPtr<InspectorObject> rtcpObject = InspectorObject::create();
         if (mediaDescriptionObject->getObject(rtcpString(), rtcpObject)) {
             if (rtcpObject->getBoolean(muxString(), boolValue))
-                mediaDescription->setRtcpMux(boolValue);
+                mediaDescription.rtcpMux = boolValue;
 
             if (rtcpObject->getString(rtcpAddressString(), stringValue))
-                mediaDescription->setRtcpAddress(stringValue);
+                mediaDescription.rtcpAddress = stringValue;
 
             if (rtcpObject->getInteger(rtcpPortString(), intValue))
-                mediaDescription->setRtcpPort(intValue);
+                mediaDescription.rtcpPort = intValue;
         }
 
         if (mediaDescriptionObject->getString(mediaStreamIdString(), stringValue))
-            mediaDescription->setMediaStreamId(stringValue);
+            mediaDescription.mediaStreamId = stringValue;
 
         if (mediaDescriptionObject->getString(mediaStreamTrackIdString(), stringValue))
-            mediaDescription->setMediaStreamTrackId(stringValue);
+            mediaDescription.mediaStreamTrackId = stringValue;
 
         RefPtr<InspectorObject> dtlsObject = InspectorObject::create();
         if (mediaDescriptionObject->getObject(dtlsString(), dtlsObject)) {
             if (dtlsObject->getString(setupString(), stringValue))
-                mediaDescription->setDtlsSetup(stringValue);
+                mediaDescription.dtlsSetup = stringValue;
 
             if (dtlsObject->getString(fingerprintHashFunctionString(), stringValue))
-                mediaDescription->setDtlsFingerprintHashFunction(stringValue);
+                mediaDescription.dtlsFingerprintHashFunction = stringValue;
 
             if (dtlsObject->getString(fingerprintString(), stringValue))
-                mediaDescription->setDtlsFingerprint(stringValue);
+                mediaDescription.dtlsFingerprint = stringValue;
         }
 
         RefPtr<InspectorArray> ssrcsArray = InspectorArray::create();
@@ -296,19 +296,19 @@
 
         for (unsigned j = 0; j < ssrcsArray->length(); ++j) {
             ssrcsArray->get(j)->asInteger(intValue);
-            mediaDescription->addSsrc(intValue);
+            mediaDescription.addSsrc(intValue);
         }
 
         if (mediaDescriptionObject->getString(cnameString(), stringValue))
-            mediaDescription->setCname(stringValue);
+            mediaDescription.cname = stringValue;
 
         RefPtr<InspectorObject> iceObject = InspectorObject::create();
         if (mediaDescriptionObject->getObject(iceString(), iceObject)) {
             if (iceObject->getString(ufragString(), stringValue))
-                mediaDescription->setIceUfrag(stringValue);
+                mediaDescription.iceUfrag = stringValue;
 
             if (iceObject->getString(passwordString(), stringValue))
-                mediaDescription->setIcePassword(stringValue);
+                mediaDescription.icePassword = stringValue;
 
             RefPtr<InspectorArray> candidatesArray = InspectorArray::create();
             iceObject->getArray(candidatesString(), candidatesArray);
@@ -317,7 +317,7 @@
                 RefPtr<InspectorObject> candidateObject = InspectorObject::create();
                 candidatesArray->get(j)->asObject(candidateObject);
 
-                mediaDescription->addIceCandidate(createCandidate(*candidateObject));
+                mediaDescription.addIceCandidate(createCandidate(*candidateObject));
             }
         }
 
@@ -351,18 +351,18 @@
 
     RefPtr<InspectorArray> mediaDescriptionsArray = InspectorArray::create();
 
-    for (const RefPtr<PeerMediaDescription>& mediaDescription : configuration.mediaDescriptions()) {
+    for (const auto& mediaDescription : configuration.mediaDescriptions()) {
         RefPtr<InspectorObject> mediaDescriptionObject = InspectorObject::create();
 
-        mediaDescriptionObject->setString(typeString(), mediaDescription->type());
-        mediaDescriptionObject->setInteger(portString(), mediaDescription->port());
-        mediaDescriptionObject->setString(addressString(), mediaDescription->address());
-        mediaDescriptionObject->setString(modeString(), mediaDescription->mode());
-        mediaDescriptionObject->setString(midString(), mediaDescription->mid());
+        mediaDescriptionObject->setString(typeString(), mediaDescription.type);
+        mediaDescriptionObject->setInteger(portString(), mediaDescription.port);
+        mediaDescriptionObject->setString(addressString(), mediaDescription.address);
+        mediaDescriptionObject->setString(modeString(), mediaDescription.mode);
+        mediaDescriptionObject->setString(midString(), mediaDescription.mid);
 
         RefPtr<InspectorArray> payloadsArray = InspectorArray::create();
 
-        for (auto& payload : mediaDescription->payloads()) {
+        for (auto& payload : mediaDescription.payloads) {
             RefPtr<InspectorObject> payloadObject = InspectorObject::create();
 
             payloadObject->setInteger(typeString(), payload.type);
@@ -387,35 +387,35 @@
         mediaDescriptionObject->setArray(payloadsString(), payloadsArray);
 
         RefPtr<InspectorObject> rtcpObject = InspectorObject::create();
-        rtcpObject->setBoolean(muxString(), mediaDescription->rtcpMux());
-        rtcpObject->setString(addressString(), mediaDescription->rtcpAddress());
-        rtcpObject->setInteger(portString(), mediaDescription->rtcpPort());
+        rtcpObject->setBoolean(muxString(), mediaDescription.rtcpMux);
+        rtcpObject->setString(addressString(), mediaDescription.rtcpAddress);
+        rtcpObject->setInteger(portString(), mediaDescription.rtcpPort);
         mediaDescriptionObject->setObject(rtcpString(), rtcpObject);
 
-        mediaDescriptionObject->setString(mediaStreamIdString(), mediaDescription->mediaStreamId());
-        mediaDescriptionObject->setString(mediaStreamTrackIdString(), mediaDescription->mediaStreamTrackId());
+        mediaDescriptionObject->setString(mediaStreamIdString(), mediaDescription.mediaStreamId);
+        mediaDescriptionObject->setString(mediaStreamTrackIdString(), mediaDescription.mediaStreamTrackId);
 
         RefPtr<InspectorObject> dtlsObject = InspectorObject::create();
-        dtlsObject->setString(setupString(), mediaDescription->dtlsSetup());
-        dtlsObject->setString(fingerprintHashFunctionString(), mediaDescription->dtlsFingerprintHashFunction());
-        dtlsObject->setString(fingerprintString(), mediaDescription->dtlsFingerprint());
+        dtlsObject->setString(setupString(), mediaDescription.dtlsSetup);
+        dtlsObject->setString(fingerprintHashFunctionString(), mediaDescription.dtlsFingerprintHashFunction);
+        dtlsObject->setString(fingerprintString(), mediaDescription.dtlsFingerprint);
         mediaDescriptionObject->setObject(dtlsString(), dtlsObject);
 
         RefPtr<InspectorArray> ssrcsArray = InspectorArray::create();
 
-        for (auto ssrc : mediaDescription->ssrcs())
+        for (auto ssrc : mediaDescription.ssrcs)
             ssrcsArray->pushDouble(ssrc);
         mediaDescriptionObject->setArray(ssrcsString(), ssrcsArray);
 
-        mediaDescriptionObject->setString(cnameString(), mediaDescription->cname());
+        mediaDescriptionObject->setString(cnameString(), mediaDescription.cname);
 
         RefPtr<InspectorObject> iceObject = InspectorObject::create();
-        iceObject->setString(ufragString(), mediaDescription->iceUfrag());
-        iceObject->setString(passwordString(), mediaDescription->icePassword());
+        iceObject->setString(ufragString(), mediaDescription.iceUfrag);
+        iceObject->setString(passwordString(), mediaDescription.icePassword);
 
         RefPtr<InspectorArray> candidatesArray = InspectorArray::create();
 
-        for (auto& candidate : mediaDescription->iceCandidates())
+        for (auto& candidate : mediaDescription.iceCandidates)
             candidatesArray->pushObject(createCandidateObject(candidate));
 
         iceObject->setArray(candidatesString(), candidatesArray);

Modified: trunk/Source/WebCore/platform/mediastream/MediaEndpointSessionConfiguration.h (208042 => 208043)


--- trunk/Source/WebCore/platform/mediastream/MediaEndpointSessionConfiguration.h	2016-10-28 09:40:44 UTC (rev 208042)
+++ trunk/Source/WebCore/platform/mediastream/MediaEndpointSessionConfiguration.h	2016-10-28 11:14:51 UTC (rev 208043)
@@ -52,8 +52,9 @@
     unsigned sessionVersion() const { return m_sessionVersion; }
     void setSessionVersion(unsigned sessionVersion) { m_sessionVersion = sessionVersion; }
 
-    const Vector<RefPtr<PeerMediaDescription>>& mediaDescriptions() const { return m_mediaDescriptions; }
-    void addMediaDescription(RefPtr<PeerMediaDescription>&& description) { m_mediaDescriptions.append(WTFMove(description)); }
+    Vector<PeerMediaDescription>& mediaDescriptions() { return m_mediaDescriptions; }
+    const Vector<PeerMediaDescription>& mediaDescriptions() const { return m_mediaDescriptions; }
+    void addMediaDescription(PeerMediaDescription&& description) { m_mediaDescriptions.append(WTFMove(description)); }
 
     RefPtr<MediaEndpointSessionConfiguration> clone() const
     {
@@ -60,10 +61,8 @@
         RefPtr<MediaEndpointSessionConfiguration> copy = create();
         copy->m_sessionId = m_sessionId;
         copy->m_sessionVersion = m_sessionVersion;
+        copy->m_mediaDescriptions = m_mediaDescriptions;
 
-        for (auto& mdesc : m_mediaDescriptions)
-            copy->m_mediaDescriptions.append(mdesc->clone());
-
         return copy;
     }
 
@@ -77,7 +76,7 @@
     uint64_t m_sessionId;
     unsigned m_sessionVersion { 0 };
 
-    Vector<RefPtr<PeerMediaDescription>> m_mediaDescriptions;
+    Vector<PeerMediaDescription> m_mediaDescriptions;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/platform/mediastream/PeerMediaDescription.h (208042 => 208043)


--- trunk/Source/WebCore/platform/mediastream/PeerMediaDescription.h	2016-10-28 09:40:44 UTC (rev 208042)
+++ trunk/Source/WebCore/platform/mediastream/PeerMediaDescription.h	2016-10-28 11:14:51 UTC (rev 208043)
@@ -28,8 +28,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef PeerMediaDescription_h
-#define PeerMediaDescription_h
+#pragma once
 
 #if ENABLE(WEB_RTC)
 
@@ -36,147 +35,43 @@
 #include "IceCandidate.h"
 #include "MediaPayload.h"
 #include "RealtimeMediaSource.h"
-#include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
 
 namespace WebCore {
 
-class PeerMediaDescription : public RefCounted<PeerMediaDescription> {
-public:
-    static RefPtr<PeerMediaDescription> create()
-    {
-        return adoptRef(new PeerMediaDescription());
-    }
-    virtual ~PeerMediaDescription() { }
+struct PeerMediaDescription {
+    void addPayload(MediaPayload&& payload) { payloads.append(WTFMove(payload)); }
+    void addSsrc(unsigned ssrc) { ssrcs.append(ssrc); }
+    void clearSsrcs() { ssrcs.clear(); }
+    void addIceCandidate(IceCandidate&& candidate) { iceCandidates.append(WTFMove(candidate)); }
 
-    const String& type() const { return m_type; }
-    void setType(const String& type) { m_type = type; }
+    String type;
+    unsigned short port { 9 };
+    String address { "0.0.0.0" };
+    String mode { ASCIILiteral { "sendrecv" } };
+    String mid;
 
-    unsigned short port() const { return m_port; }
-    void setPort(unsigned short port) { m_port = port; }
+    Vector<MediaPayload> payloads;
 
-    const String& address() const { return m_address; }
-    void setAddress(const String& address) { m_address = address; }
+    bool rtcpMux { true };
+    String rtcpAddress;
+    unsigned short rtcpPort { 0 };
 
-    const String& mode() const { return m_mode; }
-    void setMode(const String& mode) { m_mode = mode; }
+    String mediaStreamId;
+    String mediaStreamTrackId;
 
-    const String& mid() const { return m_mid; }
-    void setMid(const String& mid) { m_mid = mid; }
+    String dtlsSetup { "actpass" };
+    String dtlsFingerprintHashFunction;
+    String dtlsFingerprint;
 
-    const Vector<MediaPayload>& payloads() const { return m_payloads; }
-    void addPayload(MediaPayload&& payload) { m_payloads.append(WTFMove(payload)); }
-    void setPayloads(Vector<MediaPayload>&& payloads) { m_payloads = payloads; }
-    void setPayloads(const Vector<MediaPayload>& payloads) { m_payloads = payloads; }
+    Vector<unsigned> ssrcs;
+    String cname;
 
-    bool rtcpMux() const { return m_rtcpMux; }
-    void setRtcpMux(bool rtcpMux) { m_rtcpMux = rtcpMux; }
-
-    const String& rtcpAddress() const { return m_rtcpAddress; }
-    void setRtcpAddress(const String& rtcpAddress) { m_rtcpAddress = rtcpAddress; }
-
-    unsigned short rtcpPort() const { return m_rtcpPort; }
-    void setRtcpPort(unsigned short rtcpPort) { m_rtcpPort = rtcpPort; }
-
-    const String& mediaStreamId() const { return m_mediaStreamId; }
-    void setMediaStreamId(const String& mediaStreamId) { m_mediaStreamId = mediaStreamId; }
-
-    const String& mediaStreamTrackId() const { return m_mediaStreamTrackId; }
-    void setMediaStreamTrackId(const String& mediaStreamTrackId) { m_mediaStreamTrackId = mediaStreamTrackId; }
-
-    const String& dtlsSetup() const { return m_dtlsSetup; }
-    void setDtlsSetup(const String& dtlsSetup) { m_dtlsSetup = dtlsSetup; }
-
-    const String& dtlsFingerprintHashFunction() const { return m_dtlsFingerprintHashFunction; }
-    void setDtlsFingerprintHashFunction(const String& dtlsFingerprintHashFunction) { m_dtlsFingerprintHashFunction = dtlsFingerprintHashFunction; }
-
-    const String& dtlsFingerprint() const { return m_dtlsFingerprint; }
-    void setDtlsFingerprint(const String& dtlsFingerprint) { m_dtlsFingerprint = dtlsFingerprint; }
-
-    const String& cname() const { return m_cname; }
-    void setCname(const String& cname) { m_cname = cname; }
-
-    const Vector<unsigned>& ssrcs() const { return m_ssrcs; }
-    void addSsrc(unsigned ssrc) { m_ssrcs.append(ssrc); }
-    void clearSsrcs() { m_ssrcs.clear(); }
-
-    const String& iceUfrag() const { return m_iceUfrag; }
-    void setIceUfrag(const String& iceUfrag) { m_iceUfrag = iceUfrag; }
-
-    const String& icePassword() const { return m_icePassword; }
-    void setIcePassword(const String& icePassword) { m_icePassword = icePassword; }
-
-    const Vector<IceCandidate>& iceCandidates() const { return m_iceCandidates; }
-    void addIceCandidate(IceCandidate&& candidate) { m_iceCandidates.append(WTFMove(candidate)); }
-
-    RefPtr<PeerMediaDescription> clone() const
-    {
-        RefPtr<PeerMediaDescription> copy = create();
-
-        copy->m_type = String(m_type);
-        copy->m_port = m_port;
-        copy->m_address = String(m_address);
-        copy->m_mode = String(m_mode);
-        copy->m_mid = String(m_mid);
-
-        copy->m_payloads = m_payloads;
-
-        copy->m_rtcpMux = m_rtcpMux;
-        copy->m_rtcpAddress = String(m_rtcpAddress);
-        copy->m_rtcpPort = m_rtcpPort;
-
-        copy->m_mediaStreamId = String(m_mediaStreamId);
-        copy->m_mediaStreamTrackId = String(m_mediaStreamTrackId);
-
-        copy->m_dtlsSetup = String(m_dtlsSetup);
-        copy->m_dtlsFingerprintHashFunction = String(m_dtlsFingerprintHashFunction);
-        copy->m_dtlsFingerprint = String(m_dtlsFingerprint);
-
-        for (auto ssrc : m_ssrcs)
-            copy->m_ssrcs.append(ssrc);
-
-        copy->m_cname = String(m_cname);
-
-        copy->m_iceUfrag = String(m_iceUfrag);
-        copy->m_icePassword = String(m_icePassword);
-
-        copy->m_iceCandidates = m_iceCandidates;
-
-        return copy;
-    }
-
-private:
-    PeerMediaDescription() { }
-
-    String m_type;
-    unsigned short m_port { 9 };
-    String m_address { "0.0.0.0" };
-    String m_mode { "sendrecv" };
-    String m_mid;
-
-    Vector<MediaPayload> m_payloads;
-
-    bool m_rtcpMux { true };
-    String m_rtcpAddress;
-    unsigned short m_rtcpPort { 0 };
-
-    String m_mediaStreamId;
-    String m_mediaStreamTrackId;
-
-    String m_dtlsSetup { "actpass" };
-    String m_dtlsFingerprintHashFunction;
-    String m_dtlsFingerprint;
-
-    Vector<unsigned> m_ssrcs;
-    String m_cname;
-
-    String m_iceUfrag;
-    String m_icePassword;
-    Vector<IceCandidate> m_iceCandidates;
+    String iceUfrag;
+    String icePassword;
+    Vector<IceCandidate> iceCandidates;
 };
 
 } // namespace WebCore
 
 #endif // ENABLE(WEB_RTC)
-
-#endif // PeerMediaDescription_h

Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp (208042 => 208043)


--- trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp	2016-10-28 09:40:44 UTC (rev 208042)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp	2016-10-28 11:14:51 UTC (rev 208043)
@@ -217,8 +217,8 @@
     for (unsigned i = m_transceivers.size(); i < configuration->mediaDescriptions().size(); ++i) {
         TransceiverConfig config;
         config.type = SessionTypeMedia;
-        config.isDtlsClient = configuration->mediaDescriptions()[i]->dtlsSetup() == "active";
-        config.mid = configuration->mediaDescriptions()[i]->mid();
+        config.isDtlsClient = configuration->mediaDescriptions()[i].dtlsSetup == "active";
+        config.mid = configuration->mediaDescriptions()[i].mid;
         transceiverConfigs.append(WTFMove(config));
     }
 
@@ -227,7 +227,7 @@
     // Prepare the new sessions.
     for (unsigned i = m_numberOfReceivePreparedSessions; i < m_transceivers.size(); ++i) {
         OwrSession* session = m_transceivers[i]->session();
-        prepareMediaSession(OWR_MEDIA_SESSION(session), configuration->mediaDescriptions()[i].get(), isInitiator);
+        prepareMediaSession(OWR_MEDIA_SESSION(session), &configuration->mediaDescriptions()[i], isInitiator);
         owr_transport_agent_add_session(m_transportAgent, session);
     }
 
@@ -252,8 +252,8 @@
     for (unsigned i = m_transceivers.size(); i < configuration->mediaDescriptions().size(); ++i) {
         TransceiverConfig config;
         config.type = SessionTypeMedia;
-        config.isDtlsClient = configuration->mediaDescriptions()[i]->dtlsSetup() != "active";
-        config.mid = configuration->mediaDescriptions()[i]->mid();
+        config.isDtlsClient = configuration->mediaDescriptions()[i].dtlsSetup != "active";
+        config.mid = configuration->mediaDescriptions()[i].mid;
         transceiverConfigs.append(WTFMove(config));
     }
 
@@ -260,25 +260,25 @@
     ensureTransportAgentAndTransceivers(isInitiator, transceiverConfigs);
 
     for (unsigned i = 0; i < m_transceivers.size(); ++i) {
-        OwrSession* session = m_transceivers[i]->session();
-        PeerMediaDescription& mdesc = *configuration->mediaDescriptions()[i];
+        auto* session = m_transceivers[i]->session();
+        auto& mdesc = configuration->mediaDescriptions()[i];
 
-        if (mdesc.type() == "audio" || mdesc.type() == "video")
-            g_object_set(session, "rtcp-mux", mdesc.rtcpMux(), nullptr);
+        if (mdesc.type == "audio" || mdesc.type == "video")
+            g_object_set(session, "rtcp-mux", mdesc.rtcpMux, nullptr);
 
-        if (mdesc.iceCandidates().size()) {
-            for (auto& candidate : mdesc.iceCandidates())
-                internalAddRemoteCandidate(session, candidate, mdesc.iceUfrag(), mdesc.icePassword());
+        if (mdesc.iceCandidates.size()) {
+            for (auto& candidate : mdesc.iceCandidates)
+                internalAddRemoteCandidate(session, candidate, mdesc.iceUfrag, mdesc.icePassword);
         }
 
         if (i < m_numberOfSendPreparedSessions)
             continue;
 
-        if (!sendSourceMap.contains(mdesc.mid()))
+        if (!sendSourceMap.contains(mdesc.mid))
             continue;
 
         const MediaPayload* payload = nullptr;
-        for (auto& p : mdesc.payloads()) {
+        for (auto& p : mdesc.payloads) {
             if (p.encodingName.convertToASCIIUppercase() != "RTX") {
                 payload = &p;
                 break;
@@ -288,14 +288,14 @@
         if (!payload)
             return UpdateResult::Failed;
 
-        auto* rtxPayload = findRtxPayload(mdesc.payloads(), payload->type);
-        auto* source = static_cast<RealtimeMediaSourceOwr*>(sendSourceMap.get(mdesc.mid()));
+        auto* rtxPayload = findRtxPayload(mdesc.payloads, payload->type);
+        auto* source = static_cast<RealtimeMediaSourceOwr*>(sendSourceMap.get(mdesc.mid));
 
         ASSERT(codecTypes.find(payload->encodingName.convertToASCIIUppercase()) != notFound);
         auto codecType = static_cast<OwrCodecType>(codecTypes.find(payload->encodingName.convertToASCIIUppercase()));
 
         OwrPayload* sendPayload;
-        if (mdesc.type() == "audio")
+        if (mdesc.type == "audio")
             sendPayload = owr_audio_payload_new(codecType, payload->type, payload->clockRate, payload->channels);
         else {
             sendPayload = owr_video_payload_new(codecType, payload->type, payload->clockRate, payload->ccmfir, payload->nackpli);
@@ -466,8 +466,8 @@
 
 void MediaEndpointOwr::prepareSession(OwrSession* session, PeerMediaDescription* mediaDescription)
 {
-    g_object_set_data_full(G_OBJECT(session), "ice-ufrag", g_strdup(mediaDescription->iceUfrag().ascii().data()), g_free);
-    g_object_set_data_full(G_OBJECT(session), "ice-password", g_strdup(mediaDescription->icePassword().ascii().data()), g_free);
+    g_object_set_data_full(G_OBJECT(session), "ice-ufrag", g_strdup(mediaDescription->iceUfrag.ascii().data()), g_free);
+    g_object_set_data_full(G_OBJECT(session), "ice-password", g_strdup(mediaDescription->icePassword.ascii().data()), g_free);
 
     g_signal_connect(session, "on-new-candidate", G_CALLBACK(gotCandidate), this);
     g_signal_connect(session, "on-candidate-gathering-done", G_CALLBACK(candidateGatheringDone), this);
@@ -478,28 +478,28 @@
 {
     prepareSession(OWR_SESSION(mediaSession), mediaDescription);
 
-    bool useRtcpMux = !isInitiator && mediaDescription->rtcpMux();
+    bool useRtcpMux = !isInitiator && mediaDescription->rtcpMux;
     g_object_set(mediaSession, "rtcp-mux", useRtcpMux, nullptr);
 
-    if (!mediaDescription->cname().isEmpty() && mediaDescription->ssrcs().size()) {
-        g_object_set(mediaSession, "cname", mediaDescription->cname().ascii().data(),
-            "send-ssrc", mediaDescription->ssrcs()[0],
+    if (!mediaDescription->cname.isEmpty() && mediaDescription->ssrcs.size()) {
+        g_object_set(mediaSession, "cname", mediaDescription->cname.ascii().data(),
+            "send-ssrc", mediaDescription->ssrcs[0],
             nullptr);
     }
 
     g_signal_connect(mediaSession, "on-incoming-source", G_CALLBACK(gotIncomingSource), this);
 
-    for (auto& payload : mediaDescription->payloads()) {
+    for (auto& payload : mediaDescription->payloads) {
         if (payload.encodingName.convertToASCIIUppercase() == "RTX")
             continue;
 
-        auto* rtxPayload = findRtxPayload(mediaDescription->payloads(), payload.type);
+        auto* rtxPayload = findRtxPayload(mediaDescription->payloads, payload.type);
 
         ASSERT(codecTypes.find(payload.encodingName) != notFound);
         OwrCodecType codecType = static_cast<OwrCodecType>(codecTypes.find(payload.encodingName.convertToASCIIUppercase()));
 
         OwrPayload* receivePayload;
-        if (mediaDescription->type() == "audio")
+        if (mediaDescription->type == "audio")
             receivePayload = owr_audio_payload_new(codecType, payload.type, payload.clockRate, payload.channels);
         else {
             receivePayload = owr_video_payload_new(codecType, payload.type, payload.clockRate, payload.ccmfir, payload.nackpli);

Modified: trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.h (208042 => 208043)


--- trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.h	2016-10-28 09:40:44 UTC (rev 208042)
+++ trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.h	2016-10-28 11:14:51 UTC (rev 208043)
@@ -43,10 +43,11 @@
 
 namespace WebCore {
 
-class PeerMediaDescription;
 class RealtimeMediaSourceOwr;
 class RTCConfigurationPrivate;
 
+struct PeerMediaDescription;
+
 class OwrTransceiver : public RefCounted<OwrTransceiver> {
 public:
     static Ref<OwrTransceiver> create(const String& mid, OwrSession* session)

Modified: trunk/Source/WebCore/platform/mock/MockMediaEndpoint.cpp (208042 => 208043)


--- trunk/Source/WebCore/platform/mock/MockMediaEndpoint.cpp	2016-10-28 09:40:44 UTC (rev 208042)
+++ trunk/Source/WebCore/platform/mock/MockMediaEndpoint.cpp	2016-10-28 11:14:51 UTC (rev 208043)
@@ -225,8 +225,8 @@
 void MockMediaEndpoint::updateConfigurationMids(const MediaEndpointSessionConfiguration& configuration)
 {
     Vector<String> mids;
-    for (const RefPtr<PeerMediaDescription>& mediaDescription : configuration.mediaDescriptions())
-        mids.append(mediaDescription->mid());
+    for (auto& mediaDescription : configuration.mediaDescriptions())
+        mids.append(mediaDescription.mid);
     m_mids.swap(mids);
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to