Changeset 197053 in webkit
- Timestamp:
- Feb 24, 2016 2:23:53 PM (8 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 8 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/CMakeLists.txt
r197049 r197053 2299 2299 platform/graphics/transforms/TranslateTransformOperation.cpp 2300 2300 2301 platform/mediastream/MediaEndpoint.cpp 2302 platform/mediastream/MediaEndpointConfiguration.cpp 2301 2303 platform/mediastream/MediaStreamPrivate.cpp 2302 2304 platform/mediastream/MediaStreamTrackPrivate.cpp -
trunk/Source/WebCore/ChangeLog
r197049 r197053 1 2016-02-24 Adam Bergkvist <adam.bergkvist@ericsson.com> 2 3 WebRTC: Add MediaEndpoint interface (WebRTC backend abstraction) 4 https://bugs.webkit.org/show_bug.cgi?id=150165 5 6 Reviewed by Eric Carlson. 7 8 Add the MediaEndpoint interface along with its companion objects. 9 10 MediaEndpoint interface: A WebRTC platform abstraction that is used to 11 configure how the the WebRTC backend sends and receives. It also abstracts 12 ICE functionality such as generating local candidates and doing 13 checking on remote candidates. The RTCPeerConnection API, and other API 14 objects such as RTCRtpSender/Receiver, live above MediaEndpoint. 15 16 MediaEndpointConfiguration: A settings object used to configure a 17 MediaEndpoint with, for example, ICE helper servers and other polices. 18 A MediaEndpointConfiguration is used to initialize a MediaEndpoint, but 19 can also be used to update settings. 20 21 MediaEndpointSessionConfiguration: An object that describes how the 22 MediaEndpoint should send and receive. Contains PeerMediaDescription, 23 MediaPayload and IceCandidate objects. 24 25 Tests: The MediaEndpoint platform interface has no implementations yet. 26 27 * CMakeLists.txt: 28 * Modules/mediastream/MediaEndpointPeerConnection.cpp: 29 (WebCore::MediaEndpointPeerConnection::gotDtlsFingerprint): 30 (WebCore::MediaEndpointPeerConnection::gotIceCandidate): 31 (WebCore::MediaEndpointPeerConnection::doneGatheringCandidates): 32 (WebCore::MediaEndpointPeerConnection::gotRemoteSource): 33 * Modules/mediastream/MediaEndpointPeerConnection.h: 34 * WebCore.xcodeproj/project.pbxproj: 35 * platform/mediastream/IceCandidate.h: Added. 36 (WebCore::IceCandidate::create): 37 (WebCore::IceCandidate::~IceCandidate): 38 (WebCore::IceCandidate::type): 39 (WebCore::IceCandidate::setType): 40 (WebCore::IceCandidate::foundation): 41 (WebCore::IceCandidate::setFoundation): 42 (WebCore::IceCandidate::componentId): 43 (WebCore::IceCandidate::setComponentId): 44 (WebCore::IceCandidate::transport): 45 (WebCore::IceCandidate::setTransport): 46 (WebCore::IceCandidate::priority): 47 (WebCore::IceCandidate::setPriority): 48 (WebCore::IceCandidate::address): 49 (WebCore::IceCandidate::setAddress): 50 (WebCore::IceCandidate::port): 51 (WebCore::IceCandidate::setPort): 52 (WebCore::IceCandidate::tcpType): 53 (WebCore::IceCandidate::setTcpType): 54 (WebCore::IceCandidate::relatedAddress): 55 (WebCore::IceCandidate::setRelatedAddress): 56 (WebCore::IceCandidate::relatedPort): 57 (WebCore::IceCandidate::setRelatedPort): 58 (WebCore::IceCandidate::clone): 59 (WebCore::IceCandidate::IceCandidate): 60 * platform/mediastream/MediaEndpoint.cpp: Added. 61 (WebCore::createMediaEndpoint): 62 * platform/mediastream/MediaEndpoint.h: Added. 63 (WebCore::MediaEndpointClient::~MediaEndpointClient): 64 (WebCore::MediaEndpoint::~MediaEndpoint): 65 * platform/mediastream/MediaEndpointConfiguration.cpp: Added. 66 (WebCore::IceServerInfo::IceServerInfo): 67 (WebCore::MediaEndpointConfiguration::MediaEndpointConfiguration): 68 * platform/mediastream/MediaEndpointConfiguration.h: Added. 69 (WebCore::IceServerInfo::create): 70 (WebCore::IceServerInfo::~IceServerInfo): 71 (WebCore::IceServerInfo::urls): 72 (WebCore::IceServerInfo::credential): 73 (WebCore::IceServerInfo::username): 74 (WebCore::MediaEndpointConfiguration::create): 75 (WebCore::MediaEndpointConfiguration::iceServers): 76 (WebCore::MediaEndpointConfiguration::iceTransportPolicy): 77 (WebCore::MediaEndpointConfiguration::bundlePolicy): 78 * platform/mediastream/MediaEndpointSessionConfiguration.h: Added. 79 (WebCore::MediaEndpointSessionConfiguration::create): 80 (WebCore::MediaEndpointSessionConfiguration::~MediaEndpointSessionConfiguration): 81 (WebCore::MediaEndpointSessionConfiguration::sessionId): 82 (WebCore::MediaEndpointSessionConfiguration::setSessionId): 83 (WebCore::MediaEndpointSessionConfiguration::sessionVersion): 84 (WebCore::MediaEndpointSessionConfiguration::setSessionVersion): 85 (WebCore::MediaEndpointSessionConfiguration::mediaDescriptions): 86 (WebCore::MediaEndpointSessionConfiguration::addMediaDescription): 87 (WebCore::MediaEndpointSessionConfiguration::clone): 88 (WebCore::MediaEndpointSessionConfiguration::MediaEndpointSessionConfiguration): 89 * platform/mediastream/MediaPayload.h: Added. 90 (WebCore::MediaPayload::create): 91 (WebCore::MediaPayload::~MediaPayload): 92 (WebCore::MediaPayload::type): 93 (WebCore::MediaPayload::setType): 94 (WebCore::MediaPayload::encodingName): 95 (WebCore::MediaPayload::setEncodingName): 96 (WebCore::MediaPayload::clockRate): 97 (WebCore::MediaPayload::setClockRate): 98 (WebCore::MediaPayload::channels): 99 (WebCore::MediaPayload::setChannels): 100 (WebCore::MediaPayload::ccmfir): 101 (WebCore::MediaPayload::setCcmfir): 102 (WebCore::MediaPayload::nackpli): 103 (WebCore::MediaPayload::setNackpli): 104 (WebCore::MediaPayload::nack): 105 (WebCore::MediaPayload::setNack): 106 (WebCore::MediaPayload::parameters): 107 (WebCore::MediaPayload::addParameter): 108 (WebCore::MediaPayload::clone): 109 (WebCore::MediaPayload::MediaPayload): 110 * platform/mediastream/PeerMediaDescription.h: Added. 111 (WebCore::PeerMediaDescription::create): 112 (WebCore::PeerMediaDescription::~PeerMediaDescription): 113 (WebCore::PeerMediaDescription::type): 114 (WebCore::PeerMediaDescription::setType): 115 (WebCore::PeerMediaDescription::port): 116 (WebCore::PeerMediaDescription::setPort): 117 (WebCore::PeerMediaDescription::address): 118 (WebCore::PeerMediaDescription::setAddress): 119 (WebCore::PeerMediaDescription::mode): 120 (WebCore::PeerMediaDescription::setMode): 121 (WebCore::PeerMediaDescription::payloads): 122 (WebCore::PeerMediaDescription::addPayload): 123 (WebCore::PeerMediaDescription::setPayloads): 124 (WebCore::PeerMediaDescription::rtcpMux): 125 (WebCore::PeerMediaDescription::setRtcpMux): 126 (WebCore::PeerMediaDescription::rtcpAddress): 127 (WebCore::PeerMediaDescription::setRtcpAddress): 128 (WebCore::PeerMediaDescription::rtcpPort): 129 (WebCore::PeerMediaDescription::setRtcpPort): 130 (WebCore::PeerMediaDescription::mediaStreamId): 131 (WebCore::PeerMediaDescription::setMediaStreamId): 132 (WebCore::PeerMediaDescription::mediaStreamTrackId): 133 (WebCore::PeerMediaDescription::setMediaStreamTrackId): 134 (WebCore::PeerMediaDescription::dtlsSetup): 135 (WebCore::PeerMediaDescription::setDtlsSetup): 136 (WebCore::PeerMediaDescription::dtlsFingerprintHashFunction): 137 (WebCore::PeerMediaDescription::setDtlsFingerprintHashFunction): 138 (WebCore::PeerMediaDescription::dtlsFingerprint): 139 (WebCore::PeerMediaDescription::setDtlsFingerprint): 140 (WebCore::PeerMediaDescription::cname): 141 (WebCore::PeerMediaDescription::setCname): 142 (WebCore::PeerMediaDescription::ssrcs): 143 (WebCore::PeerMediaDescription::addSsrc): 144 (WebCore::PeerMediaDescription::clearSsrcs): 145 (WebCore::PeerMediaDescription::iceUfrag): 146 (WebCore::PeerMediaDescription::setIceUfrag): 147 (WebCore::PeerMediaDescription::icePassword): 148 (WebCore::PeerMediaDescription::setIcePassword): 149 (WebCore::PeerMediaDescription::iceCandidates): 150 (WebCore::PeerMediaDescription::addIceCandidate): 151 (WebCore::PeerMediaDescription::source): 152 (WebCore::PeerMediaDescription::setSource): 153 (WebCore::PeerMediaDescription::clone): 154 (WebCore::PeerMediaDescription::PeerMediaDescription): 155 1 156 2016-02-24 Youenn Fablet <youenn.fablet@crf.canon.fr> 2 157 -
trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp
r194968 r197053 36 36 #include "DOMError.h" 37 37 #include "JSDOMError.h" 38 #include <wtf/MainThread.h> 38 39 39 40 namespace WebCore { … … 175 176 } 176 177 178 void MediaEndpointPeerConnection::gotDtlsFingerprint(const String& fingerprint, const String& fingerprintFunction) 179 { 180 ASSERT(isMainThread()); 181 182 UNUSED_PARAM(fingerprint); 183 UNUSED_PARAM(fingerprintFunction); 184 185 notImplemented(); 186 } 187 188 void MediaEndpointPeerConnection::gotIceCandidate(unsigned mdescIndex, RefPtr<IceCandidate>&& candidate) 189 { 190 ASSERT(isMainThread()); 191 192 UNUSED_PARAM(mdescIndex); 193 UNUSED_PARAM(candidate); 194 195 notImplemented(); 196 } 197 198 void MediaEndpointPeerConnection::doneGatheringCandidates(unsigned mdescIndex) 199 { 200 ASSERT(isMainThread()); 201 202 UNUSED_PARAM(mdescIndex); 203 204 notImplemented(); 205 } 206 207 void MediaEndpointPeerConnection::gotRemoteSource(unsigned mdescIndex, RefPtr<RealtimeMediaSource>&& source) 208 { 209 ASSERT(isMainThread()); 210 211 UNUSED_PARAM(mdescIndex); 212 UNUSED_PARAM(source); 213 214 notImplemented(); 215 } 216 177 217 } // namespace WebCore 178 218 -
trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.h
r194968 r197053 34 34 #if ENABLE(MEDIA_STREAM) 35 35 36 #include "MediaEndpoint.h" 36 37 #include "NotImplemented.h" 37 38 #include "PeerConnectionBackend.h" … … 43 44 class MediaStreamTrack; 44 45 45 class MediaEndpointPeerConnection : public PeerConnectionBackend {46 class MediaEndpointPeerConnection : public PeerConnectionBackend, public MediaEndpointClient { 46 47 public: 47 48 MediaEndpointPeerConnection(PeerConnectionBackendClient*); … … 72 73 void markAsNeedingNegotiation() override; 73 74 void clearNegotiationNeededState() override { notImplemented(); }; 75 76 private: 77 // MediaEndpointClient 78 virtual void gotDtlsFingerprint(const String& fingerprint, const String& fingerprintFunction) override; 79 virtual void gotIceCandidate(unsigned mdescIndex, RefPtr<IceCandidate>&&) override; 80 virtual void doneGatheringCandidates(unsigned mdescIndex) override; 81 virtual void gotRemoteSource(unsigned mdescIndex, RefPtr<RealtimeMediaSource>&&) override; 74 82 }; 75 83 -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r197049 r197053 2428 2428 5EA725D51ACABD5700EAD17B /* NavigatorMediaDevices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EA725CA1ACABCB500EAD17B /* NavigatorMediaDevices.cpp */; }; 2429 2429 5EA725D61ACABD5700EAD17B /* NavigatorMediaDevices.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EA725CB1ACABCB500EAD17B /* NavigatorMediaDevices.h */; }; 2430 5EBB89311C7777FF00C65D41 /* MediaPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EBB892F1C7777D000C65D41 /* MediaPayload.h */; }; 2431 5EBB89321C77782300C65D41 /* MediaEndpointSessionConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EBB892E1C7777D000C65D41 /* MediaEndpointSessionConfiguration.h */; }; 2432 5EBB89331C77782900C65D41 /* IceCandidate.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EBB89301C7777E100C65D41 /* IceCandidate.h */; }; 2433 5EBB89341C77782900C65D41 /* MediaEndpoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EBB892A1C7777D000C65D41 /* MediaEndpoint.cpp */; }; 2434 5EBB89351C77782900C65D41 /* MediaEndpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EBB892B1C7777D000C65D41 /* MediaEndpoint.h */; }; 2435 5EBB89361C77782900C65D41 /* MediaEndpointConfiguration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EBB892C1C7777D000C65D41 /* MediaEndpointConfiguration.cpp */; }; 2436 5EBB89371C77782900C65D41 /* MediaEndpointConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EBB892D1C7777D000C65D41 /* MediaEndpointConfiguration.h */; }; 2437 5EBB89391C77C39900C65D41 /* PeerMediaDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EBB89381C77BDA400C65D41 /* PeerMediaDescription.h */; }; 2430 2438 5F2DBBE9178E3C8100141486 /* CertificateInfoMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5F2DBBE7178E332D00141486 /* CertificateInfoMac.mm */; }; 2431 2439 5FA904CA178E61F5004C8A2D /* CertificateInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F2DBBE8178E336900141486 /* CertificateInfo.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 10004 10012 5EA725CE1ACABCD900EAD17B /* MediaDevices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaDevices.h; sourceTree = "<group>"; }; 10005 10013 5EA725CF1ACABCD900EAD17B /* MediaDevices.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaDevices.idl; sourceTree = "<group>"; }; 10014 5EBB892A1C7777D000C65D41 /* MediaEndpoint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaEndpoint.cpp; sourceTree = "<group>"; }; 10015 5EBB892B1C7777D000C65D41 /* MediaEndpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaEndpoint.h; sourceTree = "<group>"; }; 10016 5EBB892C1C7777D000C65D41 /* MediaEndpointConfiguration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaEndpointConfiguration.cpp; sourceTree = "<group>"; }; 10017 5EBB892D1C7777D000C65D41 /* MediaEndpointConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaEndpointConfiguration.h; sourceTree = "<group>"; }; 10018 5EBB892E1C7777D000C65D41 /* MediaEndpointSessionConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaEndpointSessionConfiguration.h; sourceTree = "<group>"; }; 10019 5EBB892F1C7777D000C65D41 /* MediaPayload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaPayload.h; sourceTree = "<group>"; }; 10020 5EBB89301C7777E100C65D41 /* IceCandidate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IceCandidate.h; sourceTree = "<group>"; }; 10021 5EBB89381C77BDA400C65D41 /* PeerMediaDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PeerMediaDescription.h; sourceTree = "<group>"; }; 10006 10022 5F2DBBE7178E332D00141486 /* CertificateInfoMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CertificateInfoMac.mm; sourceTree = "<group>"; }; 10007 10023 5F2DBBE8178E336900141486 /* CertificateInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CertificateInfo.h; sourceTree = "<group>"; }; … … 15460 15476 0729B14D17CFCCA0004F1D60 /* mac */, 15461 15477 07D6A4F61BF2307D00174146 /* AudioTrackPrivateMediaStream.h */, 15478 5EBB89301C7777E100C65D41 /* IceCandidate.h */, 15462 15479 07221B9917CF0AD400848E51 /* MediaConstraints.h */, 15480 5EBB892A1C7777D000C65D41 /* MediaEndpoint.cpp */, 15481 5EBB892B1C7777D000C65D41 /* MediaEndpoint.h */, 15482 5EBB892C1C7777D000C65D41 /* MediaEndpointConfiguration.cpp */, 15483 5EBB892D1C7777D000C65D41 /* MediaEndpointConfiguration.h */, 15484 5EBB892E1C7777D000C65D41 /* MediaEndpointSessionConfiguration.h */, 15485 5EBB892F1C7777D000C65D41 /* MediaPayload.h */, 15463 15486 070F549717F12F6B00169E04 /* MediaStreamConstraintsValidationClient.h */, 15464 15487 07221BA017CF0AD400848E51 /* MediaStreamCreationClient.h */, … … 15468 15491 07FFDE67181AED420072D409 /* MediaStreamTrackPrivate.h */, 15469 15492 076306E217E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h */, 15493 5EBB89381C77BDA400C65D41 /* PeerMediaDescription.h */, 15470 15494 4A4F656B1AA997F100E38CDD /* RealtimeMediaSource.cpp */, 15471 15495 4A4F656C1AA997F100E38CDD /* RealtimeMediaSource.h */, … … 25252 25276 9392F14C0AD1861B00691BD4 /* CounterNode.h in Headers */, 25253 25277 D0B0556809C6700100307E43 /* CreateLinkCommand.h in Headers */, 25278 5EBB89321C77782300C65D41 /* MediaEndpointSessionConfiguration.h in Headers */, 25254 25279 514C766E0CE923A1007EF3CD /* Credential.h in Headers */, 25255 25280 3792917A1985EF3900F4B661 /* CredentialBase.h in Headers */, … … 26032 26057 9746AF2414F4DDE6003E7A70 /* Geolocation.h in Headers */, 26033 26058 9746AF2514F4DDE6003E7A71 /* GeolocationClient.h in Headers */, 26059 5EBB89391C77C39900C65D41 /* PeerMediaDescription.h in Headers */, 26034 26060 9746AF2714F4DDE6003E7A70 /* GeolocationController.h in Headers */, 26035 26061 9746AF2814F4DDE6003E7A70 /* GeolocationError.h in Headers */, … … 26260 26286 5185FC991BB4C4E80012898F /* IDBKeyPath.h in Headers */, 26261 26287 5185FC9B1BB4C4E80012898F /* IDBKeyRange.h in Headers */, 26288 5EBB89351C77782900C65D41 /* MediaEndpoint.h in Headers */, 26262 26289 5185FC9E1BB4C4E80012898F /* IDBKeyRangeData.h in Headers */, 26263 26290 5185FCA01BB4C4E80012898F /* IDBObjectStore.h in Headers */, … … 27002 27029 E4916FF7195DF6A0005AB349 /* LayerFlushThrottleState.h in Headers */, 27003 27030 580371641A66F1D300BAF519 /* LayerFragment.h in Headers */, 27031 5EBB89331C77782900C65D41 /* IceCandidate.h in Headers */, 27004 27032 7AA3A6A0194B59B6001CBD24 /* LayerPool.h in Headers */, 27005 27033 931D72F615FE695300C4C07E /* LayoutMilestones.h in Headers */, … … 28049 28077 B2A1F2AB0CEF0ABF00442F6A /* SVGFontElement.h in Headers */, 28050 28078 B2227A150D00BF220071B782 /* SVGFontFaceElement.h in Headers */, 28079 5EBB89311C7777FF00C65D41 /* MediaPayload.h in Headers */, 28051 28080 B2227A180D00BF220071B782 /* SVGFontFaceFormatElement.h in Headers */, 28052 28081 B2227A1B0D00BF220071B782 /* SVGFontFaceNameElement.h in Headers */, … … 28359 28388 7CE683471921821500F4D928 /* UserMessageHandlerDescriptorTypes.h in Headers */, 28360 28389 7C73FB08191EF417007DE061 /* UserMessageHandlersNamespace.h in Headers */, 28390 5EBB89371C77782900C65D41 /* MediaEndpointConfiguration.h in Headers */, 28361 28391 BCA2B061105047600043BD1C /* UserScript.h in Headers */, 28362 28392 BCA2B08B10505BCD0043BD1C /* UserScriptTypes.h in Headers */, … … 31367 31397 931CBD10161A44E900E4C874 /* ScrollingStateTree.cpp in Sources */, 31368 31398 1AF62F2514DAFE9E0041556C /* ScrollingThread.cpp in Sources */, 31399 5EBB89361C77782900C65D41 /* MediaEndpointConfiguration.cpp in Sources */, 31369 31400 1AF62F2414DAFE910041556C /* ScrollingThreadMac.mm in Sources */, 31370 31401 1AAADDA314DB409F00AF64B3 /* ScrollingTree.cpp in Sources */, … … 31536 31567 7E8FADC4199A95B100714968 /* SubresourceLoaderCocoa.mm in Sources */, 31537 31568 E1FF8F5F1807442100132674 /* SubtleCrypto.cpp in Sources */, 31569 5EBB89341C77782900C65D41 /* MediaEndpoint.cpp in Sources */, 31538 31570 93B2D8180F9920EE006AE6B2 /* SuddenTermination.mm in Sources */, 31539 31571 572A7F231C6E5A66009C6149 /* SimulatedClick.cpp in Sources */,
Note: See TracChangeset
for help on using the changeset viewer.