Changeset 207897 in webkit
- Timestamp:
- Oct 26, 2016 7:49:48 AM (8 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r207896 r207897 1 2016-10-26 Youenn Fablet <youennf@gmail.com> 2 3 IceCandidate does not need to be refcounted 4 https://bugs.webkit.org/show_bug.cgi?id=163944 5 6 Reviewed by Eric Carlson. 7 8 No change of behavior. 9 10 Simplifying IceCandidate class into a simple structure, no longer refcounted. 11 Updated call sites accordingly. 12 Updated SDP parsing of candidates to return a Variant instead of having both a return and an out parameter. 13 14 * Modules/mediastream/MediaEndpointPeerConnection.cpp: 15 (WebCore::MediaEndpointPeerConnection::addIceCandidateTask): 16 (WebCore::MediaEndpointPeerConnection::gotIceCandidate): 17 * Modules/mediastream/MediaEndpointPeerConnection.h: 18 * Modules/mediastream/SDPProcessor.cpp: 19 (WebCore::createCandidateObject): 20 (WebCore::createCandidate): 21 (WebCore::iceCandidateFromJSON): 22 (WebCore::configurationToJSON): 23 (WebCore::SDPProcessor::parseCandidateLine): 24 * Modules/mediastream/SDPProcessor.h: 25 (WebCore::SDPProcessor::ParsingResult::parsingStatus): 26 (WebCore::SDPProcessor::ParsingResult::candidate): 27 * platform/mediastream/IceCandidate.h: 28 * platform/mediastream/MediaEndpoint.cpp: 29 * platform/mediastream/MediaEndpoint.h: 30 * platform/mediastream/PeerMediaDescription.h: 31 (WebCore::PeerMediaDescription::iceCandidates): 32 (WebCore::PeerMediaDescription::addIceCandidate): 33 (WebCore::PeerMediaDescription::clone): 34 * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp: 35 (WebCore::MediaEndpointOwr::updateSendConfiguration): 36 (WebCore::MediaEndpointOwr::addRemoteCandidate): 37 (WebCore::MediaEndpointOwr::dispatchNewIceCandidate): 38 (WebCore::MediaEndpointOwr::internalAddRemoteCandidate): 39 * platform/mediastream/openwebrtc/MediaEndpointOwr.h: 40 * platform/mock/MockMediaEndpoint.cpp: 41 (WebCore::MockMediaEndpoint::addRemoteCandidate): 42 (WebCore::MockMediaEndpoint::dispatchFakeIceCandidates): 43 * platform/mock/MockMediaEndpoint.h: 44 1 45 2016-10-26 Andreas Kling <akling@apple.com> 2 46 -
trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp
r207818 r207897 677 677 } 678 678 679 RefPtr<IceCandidate> candidate; 680 SDPProcessor::Result result = m_sdpProcessor->parseCandidateLine(rtcCandidate.candidate(), candidate); 681 if (result != SDPProcessor::Result::Success) { 682 if (result == SDPProcessor::Result::ParseError) 679 auto result = m_sdpProcessor->parseCandidateLine(rtcCandidate.candidate()); 680 if (result.parsingStatus() != SDPProcessor::Result::Success) { 681 if (result.parsingStatus() == SDPProcessor::Result::ParseError) 683 682 promise.reject(OperationError, "Invalid candidate content"); 684 683 else … … 687 686 } 688 687 689 targetMediaDescription->addIceCandidate(candidate.copyRef()); 690 691 m_mediaEndpoint->addRemoteCandidate(*candidate, targetMediaDescription->mid(), targetMediaDescription->iceUfrag(), 692 targetMediaDescription->icePassword()); 688 m_mediaEndpoint->addRemoteCandidate(result.candidate(), targetMediaDescription->mid(), targetMediaDescription->iceUfrag(), targetMediaDescription->icePassword()); 689 690 targetMediaDescription->addIceCandidate(WTFMove(result.candidate())); 693 691 694 692 promise.resolve(nullptr); … … 836 834 } 837 835 838 void MediaEndpointPeerConnection::gotIceCandidate(const String& mid, RefPtr<IceCandidate>&& candidate)836 void MediaEndpointPeerConnection::gotIceCandidate(const String& mid, IceCandidate&& candidate) 839 837 { 840 838 ASSERT(isMainThread()); … … 851 849 ASSERT(mediaDescriptionIndex != notFound); 852 850 853 PeerMediaDescription& mediaDescription = *mediaDescriptions[mediaDescriptionIndex];854 mediaDescription.addIceCandidate(candidate.copyRef());855 856 851 String candidateLine; 857 SDPProcessor::Result result = m_sdpProcessor->generateCandidateLine(*candidate, candidateLine);852 auto result = m_sdpProcessor->generateCandidateLine(candidate, candidateLine); 858 853 if (result != SDPProcessor::Result::Success) { 859 854 LOG_ERROR("SDPProcessor internal error"); … … 861 856 } 862 857 863 RefPtr<RTCIceCandidate> iceCandidate = RTCIceCandidate::create(candidateLine, mid, mediaDescriptionIndex); 864 865 m_client->fireEvent(RTCIceCandidateEvent::create(false, false, WTFMove(iceCandidate))); 858 auto& mediaDescription = mediaDescriptions[mediaDescriptionIndex]; 859 ASSERT(mediaDescription); 860 mediaDescription->addIceCandidate(WTFMove(candidate)); 861 862 m_client->fireEvent(RTCIceCandidateEvent::create(false, false, RTCIceCandidate::create(candidateLine, mid, mediaDescriptionIndex))); 866 863 } 867 864 -
trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.h
r207762 r207897 109 109 // MediaEndpointClient 110 110 void gotDtlsFingerprint(const String& fingerprint, const String& fingerprintFunction) override; 111 void gotIceCandidate(const String& mid, RefPtr<IceCandidate>&&) override;111 void gotIceCandidate(const String& mid, IceCandidate&&) override; 112 112 void doneGatheringCandidates(const String& mid) override; 113 113 void iceTransportStateChanged(const String& mid, MediaEndpoint::IceTransportState) override; -
trunk/Source/WebCore/Modules/mediastream/SDPProcessor.cpp
r205569 r207897 112 112 RefPtr<InspectorObject> candidateObject = InspectorObject::create(); 113 113 114 candidateObject->setString(typeString(), candidate.type ());115 candidateObject->setString(foundationString(), candidate.foundation ());116 candidateObject->setInteger(componentIdString(), candidate.componentId ());117 candidateObject->setString(transportString(), candidate.transport ());118 candidateObject->setInteger(priorityString(), candidate.priority ());119 candidateObject->setString(addressString(), candidate.address ());120 candidateObject->setInteger(portString(), candidate.port ());121 if (!candidate.tcpType ().isEmpty())122 candidateObject->setString(tcpTypeString(), candidate.tcpType ());123 if (candidate.type ().convertToASCIIUppercase() != "HOST") {124 candidateObject->setString(relatedAddressString(), candidate.relatedAddress ());125 candidateObject->setInteger(relatedPortString(), candidate.relatedPort ());114 candidateObject->setString(typeString(), candidate.type); 115 candidateObject->setString(foundationString(), candidate.foundation); 116 candidateObject->setInteger(componentIdString(), candidate.componentId); 117 candidateObject->setString(transportString(), candidate.transport); 118 candidateObject->setInteger(priorityString(), candidate.priority); 119 candidateObject->setString(addressString(), candidate.address); 120 candidateObject->setInteger(portString(), candidate.port); 121 if (!candidate.tcpType.isEmpty()) 122 candidateObject->setString(tcpTypeString(), candidate.tcpType); 123 if (candidate.type.convertToASCIIUppercase() != "HOST") { 124 candidateObject->setString(relatedAddressString(), candidate.relatedAddress); 125 candidateObject->setInteger(relatedPortString(), candidate.relatedPort); 126 126 } 127 127 … … 129 129 } 130 130 131 static RefPtr<IceCandidate>createCandidate(const InspectorObject& candidateObject)132 { 133 RefPtr<IceCandidate> candidate = IceCandidate::create();131 static IceCandidate createCandidate(const InspectorObject& candidateObject) 132 { 133 IceCandidate candidate; 134 134 String stringValue; 135 135 unsigned intValue; 136 136 137 137 if (candidateObject.getString(typeString(), stringValue)) 138 candidate ->setType(stringValue);138 candidate.type = stringValue; 139 139 140 140 if (candidateObject.getString(foundationString(), stringValue)) 141 candidate ->setFoundation(stringValue);141 candidate.foundation = stringValue; 142 142 143 143 if (candidateObject.getInteger(componentIdString(), intValue)) 144 candidate ->setComponentId(intValue);144 candidate.componentId = intValue; 145 145 146 146 if (candidateObject.getString(transportString(), stringValue)) 147 candidate ->setTransport(stringValue);147 candidate.transport = stringValue; 148 148 149 149 if (candidateObject.getInteger(priorityString(), intValue)) 150 candidate ->setPriority(intValue);150 candidate.priority = intValue; 151 151 152 152 if (candidateObject.getString(addressString(), stringValue)) 153 candidate ->setAddress(stringValue);153 candidate.address = stringValue; 154 154 155 155 if (candidateObject.getInteger(portString(), intValue)) 156 candidate ->setPort(intValue);156 candidate.port = intValue; 157 157 158 158 if (candidateObject.getString(tcpTypeString(), stringValue)) 159 candidate ->setTcpType(stringValue);159 candidate.tcpType = stringValue; 160 160 161 161 if (candidateObject.getString(relatedAddressString(), stringValue)) 162 candidate ->setRelatedAddress(stringValue);162 candidate.relatedAddress = stringValue; 163 163 164 164 if (candidateObject.getInteger(relatedPortString(), intValue)) 165 candidate ->setRelatedPort(intValue);165 candidate.relatedPort = intValue; 166 166 167 167 return candidate; … … 328 328 } 329 329 330 static RefPtr<IceCandidate> iceCandidateFromJSON(const String& json)330 static Optional<IceCandidate> iceCandidateFromJSON(const String& json) 331 331 { 332 332 RefPtr<InspectorValue> value; 333 333 if (!InspectorValue::parseJSON(json, value)) 334 return nullptr;334 return Nullopt; 335 335 336 336 RefPtr<InspectorObject> candidateObject; 337 337 if (!value->asObject(candidateObject)) 338 return nullptr;338 return Nullopt; 339 339 340 340 return createCandidate(*candidateObject); … … 416 416 RefPtr<InspectorArray> candidatesArray = InspectorArray::create(); 417 417 418 for ( RefPtr<IceCandidate>candidate : mediaDescription->iceCandidates())419 candidatesArray->pushObject(createCandidateObject( *candidate));418 for (auto& candidate : mediaDescription->iceCandidates()) 419 candidatesArray->pushObject(createCandidateObject(candidate)); 420 420 421 421 iceObject->setArray(candidatesString(), candidatesArray); … … 471 471 } 472 472 473 SDPProcessor:: Result SDPProcessor::parseCandidateLine(const String& candidateLine, RefPtr<IceCandidate>& outCandidate) const473 SDPProcessor::ParsingResult SDPProcessor::parseCandidateLine(const String& candidateLine) const 474 474 { 475 475 String scriptOutput; 476 476 if (!callScript("parseCandidateLine", candidateLine, scriptOutput)) 477 return Result::InternalError;477 return { Result::InternalError }; 478 478 479 479 if (scriptOutput == "ParseError") 480 return Result::ParseError;481 482 RefPtr<IceCandidate>candidate = iceCandidateFromJSON(scriptOutput);480 return { Result::ParseError }; 481 482 auto candidate = iceCandidateFromJSON(scriptOutput); 483 483 if (!candidate) 484 return Result::InternalError; 485 486 outCandidate = candidate; 487 return Result::Success; 484 return { Result::InternalError }; 485 return { WTFMove(candidate.value()) }; 488 486 } 489 487 -
trunk/Source/WebCore/Modules/mediastream/SDPProcessor.h
r199007 r207897 38 38 #include "MediaEndpointSessionConfiguration.h" 39 39 #include <wtf/RefPtr.h> 40 #include <wtf/Variant.h> 40 41 #include <wtf/text/WTFString.h> 41 42 … … 59 60 60 61 Result generateCandidateLine(const IceCandidate&, String& outCandidateLine) const; 61 Result parseCandidateLine(const String& candidateLine, RefPtr<IceCandidate>&) const; 62 63 struct ParsingResult { 64 Variant<IceCandidate, Result> result; 65 66 Result parsingStatus() const { return WTF::holds_alternative<IceCandidate>(result) ? Result::Success : WTF::get<SDPProcessor::Result>(result); } 67 IceCandidate& candidate() { return WTF::get<IceCandidate>(result); } 68 }; 69 ParsingResult parseCandidateLine(const String& candidateLine) const; 62 70 63 71 private: -
trunk/Source/WebCore/platform/mediastream/IceCandidate.h
r198492 r207897 29 29 */ 30 30 31 #ifndef IceCandidate_h 32 #define IceCandidate_h 31 #pragma once 33 32 34 33 #if ENABLE(WEB_RTC) 35 34 36 #include <wtf/RefCounted.h>37 #include <wtf/RefPtr.h>38 35 #include <wtf/text/WTFString.h> 39 36 40 37 namespace WebCore { 41 38 42 class IceCandidate : public RefCounted<IceCandidate> { 43 public: 44 static RefPtr<IceCandidate> create() 45 { 46 return adoptRef(new IceCandidate()); 47 } 48 virtual ~IceCandidate() { } 39 struct IceCandidate { 40 String type; 41 String foundation; 42 unsigned componentId { 0 }; 43 String transport; 44 unsigned long priority { 0 }; 45 String address; 46 unsigned port { 0 }; 47 String tcpType; 48 String relatedAddress; 49 unsigned relatedPort { 0 }; 49 50 50 const String& type() const { return m_type; } 51 void setType(const String& type) { m_type = type; } 52 53 const String& foundation() const { return m_foundation; } 54 void setFoundation(const String& foundation) { m_foundation = foundation; } 55 56 unsigned componentId() const { return m_componentId; } 57 void setComponentId(unsigned componentId) { m_componentId = componentId; } 58 59 const String& transport() const { return m_transport; } 60 void setTransport(const String& transport) { m_transport = transport; } 61 62 int priority() const { return m_priority; } 63 void setPriority(int priority) { m_priority = priority; } 64 65 const String& address() const { return m_address; } 66 void setAddress(const String& address) { m_address = address; } 67 68 unsigned port() const { return m_port; } 69 void setPort(unsigned port) { m_port = port; } 70 71 const String& tcpType() const { return m_tcpType; } 72 void setTcpType(const String& tcpType) { m_tcpType = tcpType; } 73 74 const String& relatedAddress() const { return m_relatedAddress; } 75 void setRelatedAddress(const String& relatedAddress) { m_relatedAddress = relatedAddress; } 76 77 unsigned relatedPort() const { return m_relatedPort; } 78 void setRelatedPort(unsigned relatedPort) { m_relatedPort = relatedPort; } 79 80 RefPtr<IceCandidate> clone() const 81 { 82 RefPtr<IceCandidate> copy = create(); 83 84 copy->m_type = String(m_type); 85 copy->m_foundation = String(m_foundation); 86 copy->m_componentId = m_componentId; 87 copy->m_transport = String(m_transport); 88 copy->m_priority = m_priority; 89 copy->m_address = String(m_address); 90 copy->m_port = m_port; 91 copy->m_tcpType = String(m_tcpType); 92 copy->m_relatedAddress = String(m_relatedAddress); 93 copy->m_relatedPort = m_relatedPort; 94 95 return copy; 96 } 97 98 private: 99 IceCandidate() { } 100 101 String m_type; 102 String m_foundation; 103 unsigned m_componentId { 0 }; 104 String m_transport; 105 int m_priority { 0 }; 106 String m_address; 107 unsigned m_port { 0 }; 108 String m_tcpType; 109 String m_relatedAddress; 110 unsigned m_relatedPort { 0 }; 51 IceCandidate() = default; 52 IceCandidate(String&& type, String&& foundation, unsigned componentId, String&& transport, unsigned long priority, String&& address, unsigned port, String&& tcpType, String&& relatedAddress, unsigned relatedPort) 53 : type(WTFMove(type)) 54 , foundation(WTFMove(foundation)) 55 , componentId(componentId) 56 , transport(WTFMove(transport)) 57 , priority(priority) 58 , address(WTFMove(address)) 59 , port(port) 60 , tcpType(WTFMove(tcpType)) 61 , relatedAddress(WTFMove(relatedAddress)) 62 , relatedPort(relatedPort) 63 { } 111 64 }; 112 65 … … 114 67 115 68 #endif // ENABLE(WEB_RTC) 116 117 #endif // IceCandidate_h -
trunk/Source/WebCore/platform/mediastream/MediaEndpoint.cpp
r207818 r207897 68 68 UpdateResult updateSendConfiguration(MediaEndpointSessionConfiguration*, const RealtimeMediaSourceMap&, bool) override { return UpdateResult::Failed; } 69 69 70 void addRemoteCandidate( IceCandidate&, const String&, const String&, const String&) override { }70 void addRemoteCandidate(const IceCandidate&, const String&, const String&, const String&) override { } 71 71 72 72 Ref<RealtimeMediaSource> createMutedRemoteSource(const String&, RealtimeMediaSource::Type) override { return EmptyRealtimeMediaSource::create(); } -
trunk/Source/WebCore/platform/mediastream/MediaEndpoint.h
r207818 r207897 40 40 namespace WebCore { 41 41 42 classIceCandidate;42 struct IceCandidate; 43 43 class MediaEndpoint; 44 44 class MediaEndpointClient; … … 74 74 virtual UpdateResult updateSendConfiguration(MediaEndpointSessionConfiguration*, const RealtimeMediaSourceMap&, bool isInitiator) = 0; 75 75 76 virtual void addRemoteCandidate( IceCandidate&, const String& mid, const String& ufrag, const String& password) = 0;76 virtual void addRemoteCandidate(const IceCandidate&, const String& mid, const String& ufrag, const String& password) = 0; 77 77 78 78 virtual Ref<RealtimeMediaSource> createMutedRemoteSource(const String& mid, RealtimeMediaSource::Type) = 0; … … 88 88 public: 89 89 virtual void gotDtlsFingerprint(const String& fingerprint, const String& fingerprintFunction) = 0; 90 virtual void gotIceCandidate(const String& mid, RefPtr<IceCandidate>&&) = 0;90 virtual void gotIceCandidate(const String& mid, IceCandidate&&) = 0; 91 91 virtual void doneGatheringCandidates(const String& mid) = 0; 92 92 virtual void iceTransportStateChanged(const String& mid, MediaEndpoint::IceTransportState) = 0; -
trunk/Source/WebCore/platform/mediastream/PeerMediaDescription.h
r206908 r207897 107 107 void setIcePassword(const String& icePassword) { m_icePassword = icePassword; } 108 108 109 const Vector< RefPtr<IceCandidate>>& iceCandidates() const { return m_iceCandidates; }110 void addIceCandidate( RefPtr<IceCandidate>&& candidate) { m_iceCandidates.append(WTFMove(candidate)); }109 const Vector<IceCandidate>& iceCandidates() const { return m_iceCandidates; } 110 void addIceCandidate(IceCandidate&& candidate) { m_iceCandidates.append(WTFMove(candidate)); } 111 111 112 112 RefPtr<PeerMediaDescription> clone() const … … 142 142 copy->m_icePassword = String(m_icePassword); 143 143 144 for (auto& candidate : m_iceCandidates) 145 copy->m_iceCandidates.append(candidate->clone()); 144 copy->m_iceCandidates = m_iceCandidates; 146 145 147 146 return copy; … … 175 174 String m_iceUfrag; 176 175 String m_icePassword; 177 Vector< RefPtr<IceCandidate>> m_iceCandidates;176 Vector<IceCandidate> m_iceCandidates; 178 177 }; 179 178 -
trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.cpp
r207818 r207897 268 268 if (mdesc.iceCandidates().size()) { 269 269 for (auto& candidate : mdesc.iceCandidates()) 270 internalAddRemoteCandidate(session, *candidate, mdesc.iceUfrag(), mdesc.icePassword());270 internalAddRemoteCandidate(session, candidate, mdesc.iceUfrag(), mdesc.icePassword()); 271 271 } 272 272 … … 312 312 } 313 313 314 void MediaEndpointOwr::addRemoteCandidate( IceCandidate& candidate, const String& mid, const String& ufrag, const String& password)314 void MediaEndpointOwr::addRemoteCandidate(const IceCandidate& candidate, const String& mid, const String& ufrag, const String& password) 315 315 { 316 316 for (auto& transceiver : m_transceivers) { … … 395 395 } 396 396 397 void MediaEndpointOwr::dispatchNewIceCandidate(const String& mid, RefPtr<IceCandidate>&& iceCandidate)397 void MediaEndpointOwr::dispatchNewIceCandidate(const String& mid, IceCandidate&& iceCandidate) 398 398 { 399 399 m_client.gotIceCandidate(mid, WTFMove(iceCandidate)); … … 591 591 } 592 592 593 void MediaEndpointOwr::internalAddRemoteCandidate(OwrSession* session, IceCandidate& candidate, const String& ufrag, const String& password)593 void MediaEndpointOwr::internalAddRemoteCandidate(OwrSession* session, const IceCandidate& candidate, const String& ufrag, const String& password) 594 594 { 595 595 gboolean rtcpMux; 596 596 g_object_get(session, "rtcp-mux", &rtcpMux, nullptr); 597 597 598 if (rtcpMux && candidate.componentId ()== OWR_COMPONENT_TYPE_RTCP)598 if (rtcpMux && candidate.componentId == OWR_COMPONENT_TYPE_RTCP) 599 599 return; 600 600 601 ASSERT(candidateTypes.find(candidate.type ()) != notFound);602 603 OwrCandidateType candidateType = static_cast<OwrCandidateType>(candidateTypes.find(candidate.type ()));604 OwrComponentType componentId = static_cast<OwrComponentType>(candidate.componentId ());601 ASSERT(candidateTypes.find(candidate.type) != notFound); 602 603 OwrCandidateType candidateType = static_cast<OwrCandidateType>(candidateTypes.find(candidate.type)); 604 OwrComponentType componentId = static_cast<OwrComponentType>(candidate.componentId); 605 605 OwrTransportType transportType; 606 606 607 if (candidate.transport ().convertToASCIIUppercase() == "UDP")607 if (candidate.transport.convertToASCIIUppercase() == "UDP") 608 608 transportType = OWR_TRANSPORT_TYPE_UDP; 609 609 else { 610 ASSERT(candidateTcpTypes.find(candidate.tcpType ()) != notFound);611 transportType = static_cast<OwrTransportType>(candidateTcpTypes.find(candidate.tcpType ()));610 ASSERT(candidateTcpTypes.find(candidate.tcpType) != notFound); 611 transportType = static_cast<OwrTransportType>(candidateTcpTypes.find(candidate.tcpType)); 612 612 } 613 613 614 614 OwrCandidate* owrCandidate = owr_candidate_new(candidateType, componentId); 615 615 g_object_set(owrCandidate, "transport-type", transportType, 616 "address", candidate.address ().ascii().data(),617 "port", candidate.port (),618 "base-address", candidate.relatedAddress ().ascii().data(),619 "base-port", candidate.relatedPort (),620 "priority", candidate.priority (),621 "foundation", candidate.foundation ().ascii().data(),616 "address", candidate.address.ascii().data(), 617 "port", candidate.port, 618 "base-address", candidate.relatedAddress.ascii().data(), 619 "base-port", candidate.relatedPort, 620 "priority", candidate.priority, 621 "foundation", candidate.foundation.ascii().data(), 622 622 "ufrag", ufrag.ascii().data(), 623 623 "password", password.ascii().data(), … … 653 653 ASSERT(transportType >= 0 && transportType < candidateTcpTypes.size()); 654 654 655 RefPtr<IceCandidate> iceCandidate = IceCandidate::create();656 iceCandidate ->setType(candidateTypes[candidateType]);657 iceCandidate ->setFoundation(foundation);658 iceCandidate ->setComponentId(componentId);659 iceCandidate ->setPriority(priority);660 iceCandidate ->setAddress(address);661 iceCandidate ->setPort(port ? port : candidateDefaultPort);655 IceCandidate iceCandidate; 656 iceCandidate.type = candidateTypes[candidateType]; 657 iceCandidate.foundation = foundation; 658 iceCandidate.componentId = componentId; 659 iceCandidate.priority = priority; 660 iceCandidate.address = address; 661 iceCandidate.port = port ? port : candidateDefaultPort; 662 662 663 663 if (transportType == OWR_TRANSPORT_TYPE_UDP) 664 iceCandidate ->setTransport("UDP");664 iceCandidate.transport = "UDP"; 665 665 else { 666 iceCandidate ->setTransport("TCP");667 iceCandidate ->setTcpType(candidateTcpTypes[transportType]);666 iceCandidate.transport = "TCP"; 667 iceCandidate.tcpType = candidateTcpTypes[transportType]; 668 668 } 669 669 670 670 if (candidateType != OWR_CANDIDATE_TYPE_HOST) { 671 iceCandidate ->setRelatedAddress(relatedAddress);672 iceCandidate ->setRelatedPort(relatedPort ? relatedPort : candidateDefaultPort);671 iceCandidate.relatedAddress = relatedAddress; 672 iceCandidate.relatedPort = relatedPort ? relatedPort : candidateDefaultPort; 673 673 } 674 674 -
trunk/Source/WebCore/platform/mediastream/openwebrtc/MediaEndpointOwr.h
r207818 r207897 93 93 UpdateResult updateSendConfiguration(MediaEndpointSessionConfiguration*, const RealtimeMediaSourceMap&, bool isInitiator) override; 94 94 95 void addRemoteCandidate( IceCandidate&, const String& mid, const String& ufrag, const String& password) override;95 void addRemoteCandidate(const IceCandidate&, const String& mid, const String& ufrag, const String& password) override; 96 96 97 97 Ref<RealtimeMediaSource> createMutedRemoteSource(const String& mid, RealtimeMediaSource::Type) override; … … 105 105 OwrTransceiver* matchTransceiverByMid(const String& mid) const; 106 106 107 void dispatchNewIceCandidate(const String& mid, RefPtr<IceCandidate>&&);107 void dispatchNewIceCandidate(const String& mid, IceCandidate&&); 108 108 void dispatchGatheringDone(const String& mid); 109 109 void processIceTransportStateChange(OwrSession*); … … 124 124 125 125 void ensureTransportAgentAndTransceivers(bool isInitiator, const Vector<TransceiverConfig>&); 126 void internalAddRemoteCandidate(OwrSession*, IceCandidate&, const String& ufrag, const String& password);126 void internalAddRemoteCandidate(OwrSession*, const IceCandidate&, const String& ufrag, const String& password); 127 127 128 128 Optional<MediaEndpointConfiguration> m_configuration; -
trunk/Source/WebCore/platform/mock/MockMediaEndpoint.cpp
r207818 r207897 174 174 } 175 175 176 void MockMediaEndpoint::addRemoteCandidate( IceCandidate& candidate, const String& mid, const String& ufrag, const String& password)176 void MockMediaEndpoint::addRemoteCandidate(const IceCandidate& candidate, const String& mid, const String& ufrag, const String& password) 177 177 { 178 178 UNUSED_PARAM(candidate); … … 233 233 void MockMediaEndpoint::dispatchFakeIceCandidates() 234 234 { 235 RefPtr<IceCandidate> iceCandidate = IceCandidate::create(); 236 iceCandidate->setType("host"); 237 iceCandidate->setFoundation("1"); 238 iceCandidate->setComponentId(1); 239 iceCandidate->setPriority(2013266431); 240 iceCandidate->setAddress("192.168.0.100"); 241 iceCandidate->setPort(38838); 242 iceCandidate->setTransport("UDP"); 243 m_fakeIceCandidates.append(WTFMove(iceCandidate)); 244 245 iceCandidate = IceCandidate::create(); 246 iceCandidate->setType("host"); 247 iceCandidate->setFoundation("2"); 248 iceCandidate->setComponentId(1); 249 iceCandidate->setPriority(1019216383); 250 iceCandidate->setAddress("192.168.0.100"); 251 iceCandidate->setPort(9); 252 iceCandidate->setTransport("TCP"); 253 iceCandidate->setTcpType("active"); 254 m_fakeIceCandidates.append(WTFMove(iceCandidate)); 255 256 iceCandidate = IceCandidate::create(); 257 iceCandidate->setType("srflx"); 258 iceCandidate->setFoundation("3"); 259 iceCandidate->setComponentId(1); 260 iceCandidate->setPriority(1677722111); 261 iceCandidate->setAddress("172.18.0.1"); 262 iceCandidate->setPort(47989); 263 iceCandidate->setTransport("UDP"); 264 iceCandidate->setRelatedAddress("192.168.0.100"); 265 iceCandidate->setRelatedPort(47989); 266 m_fakeIceCandidates.append(WTFMove(iceCandidate)); 235 m_fakeIceCandidates.append({ "host", "1", 1, "UDP", 2013266431, "192.168.0.100", 38838, { }, { }, 0 }); 236 m_fakeIceCandidates.append({ "host", "2", 1, "TCP", 1019216383, "192.168.0.100", 9, "active", { }, 0 }); 237 m_fakeIceCandidates.append({ "srflx", "3", 1, "UDP", 1677722111, "172.18.0.1", 47989, { }, "192.168.0.100", 47989 }); 267 238 268 239 // Reverse order to use takeLast() while keeping the above order -
trunk/Source/WebCore/platform/mock/MockMediaEndpoint.h
r207818 r207897 56 56 UpdateResult updateSendConfiguration(MediaEndpointSessionConfiguration*, const RealtimeMediaSourceMap&, bool isInitiator) final; 57 57 58 void addRemoteCandidate( IceCandidate&, const String& mid, const String& ufrag, const String& password) final;58 void addRemoteCandidate(const IceCandidate&, const String& mid, const String& ufrag, const String& password) final; 59 59 60 60 Ref<RealtimeMediaSource> createMutedRemoteSource(const String& mid, RealtimeMediaSource::Type) final; … … 82 82 HashMap<String, RefPtr<RealtimeMediaSource>> m_mutedRemoteSources; 83 83 84 Vector< RefPtr<IceCandidate>> m_fakeIceCandidates;84 Vector<IceCandidate> m_fakeIceCandidates; 85 85 Timer m_iceCandidateTimer; 86 86
Note: See TracChangeset
for help on using the changeset viewer.