Changeset 202624 in webkit
- Timestamp:
- Jun 29, 2016 9:10:44 AM (8 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r202620 r202624 1 2016-06-29 Adam Bergkvist <adam.bergkvist@ericsson.com> 2 3 REGRESSION(r202337) [WebRTC] Crash when loading html5test.com 4 https://bugs.webkit.org/show_bug.cgi?id=159145 5 6 Reviewed by Eric Carlson. 7 8 MediaEndpointPeerConnection uses an implementation of the MediaEndpoint interface to 9 interact with the port's WebRTC backend. A mock (MockMediaEndpoint) is used for testing. 10 This change adds an "empty" MediaEndpoint implementation that simplifies the case when a 11 port builds and tests with MediaEndpointPeerConnection/MockMediaEndpoint, but doesn't have 12 a "real" MediaEndpoint implementation yet (to use with MiniBrowser). 13 14 * Modules/mediastream/MediaEndpointPeerConnection.cpp: 15 (WebCore::MediaEndpointPeerConnection::MediaEndpointPeerConnection): 16 * platform/mediastream/MediaEndpoint.cpp: 17 (WebCore::EmptyRealtimeMediaSource::create): 18 (WebCore::EmptyRealtimeMediaSource::EmptyRealtimeMediaSource): 19 (WebCore::EmptyMediaEndpoint::EmptyMediaEndpoint): 20 (WebCore::createMediaEndpoint): 21 1 22 2016-06-29 Alejandro G. Castro <alex@igalia.com> 2 23 -
trunk/Source/WebCore/Modules/mediastream/MediaEndpointPeerConnection.cpp
r202439 r202624 71 71 MediaEndpointPeerConnection::MediaEndpointPeerConnection(PeerConnectionBackendClient* client) 72 72 : m_client(client) 73 , m_mediaEndpoint(MediaEndpoint::create(*this)) 73 74 , m_sdpProcessor(std::unique_ptr<SDPProcessor>(new SDPProcessor(m_client->scriptExecutionContext()))) 74 75 , m_cname(randomString(16)) … … 76 77 , m_icePassword(randomString(22)) 77 78 { 78 m_mediaEndpoint = MediaEndpoint::create(*this);79 79 ASSERT(m_mediaEndpoint); 80 80 -
trunk/Source/WebCore/platform/mediastream/MediaEndpoint.cpp
r198492 r202624 34 34 #include "MediaEndpoint.h" 35 35 36 #include "MediaPayload.h" 37 #include "RealtimeMediaSource.h" 38 36 39 namespace WebCore { 37 40 38 static std::unique_ptr<MediaEndpoint> createMediaEndpoint(MediaEndpointClient&) 41 class EmptyRealtimeMediaSource : public RealtimeMediaSource { 42 public: 43 static Ref<EmptyRealtimeMediaSource> create() { return adoptRef(*new EmptyRealtimeMediaSource()); } 44 45 RefPtr<RealtimeMediaSourceCapabilities> capabilities() override { return nullptr; } 46 const RealtimeMediaSourceSettings& settings() override { return m_sourceSettings; } 47 48 private: 49 EmptyRealtimeMediaSource() 50 : RealtimeMediaSource(emptyString(), RealtimeMediaSource::None, emptyString()) 51 { } 52 53 RealtimeMediaSourceSettings m_sourceSettings; 54 }; 55 56 class EmptyMediaEndpoint : public MediaEndpoint { 57 public: 58 EmptyMediaEndpoint(MediaEndpointClient&) { } 59 60 void setConfiguration(RefPtr<MediaEndpointConfiguration>&&) override { } 61 62 void generateDtlsInfo() override { } 63 MediaPayloadVector getDefaultAudioPayloads() override { return MediaPayloadVector(); } 64 MediaPayloadVector getDefaultVideoPayloads() override { return MediaPayloadVector(); } 65 MediaPayloadVector filterPayloads(const MediaPayloadVector&, const MediaPayloadVector&) override { return MediaPayloadVector(); } 66 67 UpdateResult updateReceiveConfiguration(MediaEndpointSessionConfiguration*, bool) override { return UpdateResult::Failed; } 68 UpdateResult updateSendConfiguration(MediaEndpointSessionConfiguration*, const RealtimeMediaSourceMap&, bool) override { return UpdateResult::Failed; } 69 70 void addRemoteCandidate(IceCandidate&, const String&, const String&, const String&) override { } 71 72 Ref<RealtimeMediaSource> createMutedRemoteSource(const String&, RealtimeMediaSource::Type) override { return EmptyRealtimeMediaSource::create(); } 73 void replaceSendSource(RealtimeMediaSource&, const String&) override { } 74 75 void stop() override { } 76 }; 77 78 static std::unique_ptr<MediaEndpoint> createMediaEndpoint(MediaEndpointClient& client) 39 79 { 40 return nullptr;80 return std::make_unique<EmptyMediaEndpoint>(client); 41 81 } 42 82
Note: See TracChangeset
for help on using the changeset viewer.