Changeset 194918 in webkit
- Timestamp:
- Jan 12, 2016 12:20:13 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r194917 r194918 1 2016-01-12 Adam Bergkvist <adam.bergkvist@ericsson.com> 2 3 WebRTC: Update RTCPeerConnection.add/removeTrack() and add test 4 https://bugs.webkit.org/show_bug.cgi?id=153010 5 6 Reviewed by Eric Carlson. 7 8 Add test for RTCPeerConnection.add/removeTrack() (currently not covered by other tests). 9 This test also covers some of the functionality of RTCRtpSender. 10 11 * fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt: Added. 12 * fast/mediastream/RTCPeerConnection-add-removeTrack.html: Added. 13 1 14 2016-01-12 Jiewen Tan <jiewen_tan@apple.com> 2 15 -
trunk/Source/WebCore/ChangeLog
r194905 r194918 1 2016-01-12 Adam Bergkvist <adam.bergkvist@ericsson.com> 2 3 WebRTC: Update RTCPeerConnection.add/removeTrack() and add test 4 https://bugs.webkit.org/show_bug.cgi?id=153010 5 6 Reviewed by Eric Carlson. 7 8 RTCPeerConnection.add/removeTrack() are not fully spec compliant yet, since that would 9 require support for RTCRtpTransceiver which is a new work-in-progress feature. Use 10 Vector, instead of map, for senders and receivers since nothing is removed from these 11 sets anymore. 12 13 Test: fast/mediastream/RTCPeerConnection-add-removeTrack.html 14 15 * Modules/mediastream/RTCPeerConnection.cpp: 16 (WebCore::RTCPeerConnection::addTrack): 17 (WebCore::RTCPeerConnection::removeTrack): 18 (WebCore::RTCPeerConnection::queuedCreateOffer): Deleted. 19 * Modules/mediastream/RTCPeerConnection.h: 20 * Modules/mediastream/RTCRtpSender.cpp: 21 (WebCore::RTCRtpSender::RTCRtpSender): 22 * Modules/mediastream/RTCRtpSender.h: 23 (WebCore::RTCRtpSender::create): 24 (WebCore::RTCRtpSender::mediaStreamIds): 25 1 26 2016-01-12 Brady Eidson <beidson@apple.com> 2 27 -
trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
r194496 r194918 50 50 #include "RTCIceCandidateEvent.h" 51 51 #include "RTCOfferAnswerOptions.h" 52 #include "RTCRtpReceiver.h"53 #include "RTCRtpSender.h"54 52 #include "RTCSessionDescription.h" 55 53 #include "RTCTrackEvent.h" … … 105 103 } 106 104 107 Vector<RefPtr<RTCRtpSender>> RTCPeerConnection::getSenders() const108 {109 Vector<RefPtr<RTCRtpSender>> senders;110 senders.reserveCapacity(m_senderSet.size());111 copyValuesToVector(m_senderSet, senders);112 113 return senders;114 }115 116 Vector<RefPtr<RTCRtpReceiver>> RTCPeerConnection::getReceivers() const117 {118 Vector<RefPtr<RTCRtpReceiver>> receivers;119 receivers.reserveCapacity(m_receiverSet.size());120 copyValuesToVector(m_receiverSet, receivers);121 122 return receivers;123 }124 125 105 RefPtr<RTCRtpSender> RTCPeerConnection::addTrack(RefPtr<MediaStreamTrack>&& track, Vector<MediaStream*> streams, ExceptionCode& ec) 126 106 { … … 141 121 } 142 122 143 if (m_senderSet.contains(track->id())) { 144 // FIXME: Spec says InvalidParameter 145 ec = INVALID_MODIFICATION_ERR; 146 return nullptr; 147 } 148 149 const String& trackId = track->id(); 150 RefPtr<RTCRtpSender> sender = RTCRtpSender::create(WTFMove(track), streams[0]->id()); 151 m_senderSet.add(trackId, sender); 123 for (auto& sender : m_senderSet) { 124 if (sender->track()->id() == track->id()) { 125 // FIXME: Spec says InvalidParameter 126 ec = INVALID_MODIFICATION_ERR; 127 return nullptr; 128 } 129 } 130 131 Vector<String> mediaStreamIds; 132 for (auto stream : streams) 133 mediaStreamIds.append(stream->id()); 134 135 RefPtr<RTCRtpSender> sender = RTCRtpSender::create(WTFMove(track), WTFMove(mediaStreamIds)); 136 m_senderSet.append(sender); 152 137 153 138 m_backend->markAsNeedingNegotiation(); … … 168 153 } 169 154 170 if (!m_senderSet. remove(sender->track()->id()))155 if (!m_senderSet.contains(sender)) 171 156 return; 172 157 -
trunk/Source/WebCore/Modules/mediastream/RTCPeerConnection.h
r192848 r194918 42 42 #include "JSMediaStream.h" 43 43 #include "PeerConnectionBackend.h" 44 #include "RTCRtpReceiver.h" 45 #include "RTCRtpSender.h" 44 46 #include "ScriptWrappable.h" 45 47 #include <wtf/HashMap.h> … … 55 57 class RTCIceCandidate; 56 58 class RTCPeerConnectionErrorCallback; 57 class RTCRtpReceiver;58 class RTCRtpSender;59 59 class RTCSessionDescription; 60 60 class RTCStatsCallback; … … 65 65 ~RTCPeerConnection(); 66 66 67 Vector<RefPtr<RTCRtpSender>> getSenders() const override ;68 Vector<RefPtr<RTCRtpReceiver>> getReceivers() const ;67 Vector<RefPtr<RTCRtpSender>> getSenders() const override { return m_senderSet; } 68 Vector<RefPtr<RTCRtpReceiver>> getReceivers() const { return m_receiverSet; } 69 69 70 70 RefPtr<RTCRtpSender> addTrack(RefPtr<MediaStreamTrack>&&, Vector<MediaStream*>, ExceptionCode&); … … 136 136 PeerConnectionStates::IceConnectionState m_iceConnectionState; 137 137 138 HashMap<String,RefPtr<RTCRtpSender>> m_senderSet;139 HashMap<String,RefPtr<RTCRtpReceiver>> m_receiverSet;138 Vector<RefPtr<RTCRtpSender>> m_senderSet; 139 Vector<RefPtr<RTCRtpReceiver>> m_receiverSet; 140 140 141 141 Vector<RefPtr<RTCDataChannel>> m_dataChannels; -
trunk/Source/WebCore/Modules/mediastream/RTCRtpSender.cpp
r194496 r194918 36 36 namespace WebCore { 37 37 38 RTCRtpSender::RTCRtpSender(RefPtr<MediaStreamTrack>&& track, const String& mediaStreamId)38 RTCRtpSender::RTCRtpSender(RefPtr<MediaStreamTrack>&& track, Vector<String>&& mediaStreamIds) 39 39 : RTCRtpSenderReceiverBase(WTFMove(track)) 40 , m_mediaStreamId (mediaStreamId)40 , m_mediaStreamIds(WTFMove(mediaStreamIds)) 41 41 { 42 42 } -
trunk/Source/WebCore/Modules/mediastream/RTCRtpSender.h
r194496 r194918 41 41 class RTCRtpSender : public RTCRtpSenderReceiverBase { 42 42 public: 43 static Ref<RTCRtpSender> create(RefPtr<MediaStreamTrack>&& track, const String& mediaStreamId)43 static Ref<RTCRtpSender> create(RefPtr<MediaStreamTrack>&& track, Vector<String>&& mediaStreamIds) 44 44 { 45 return adoptRef(*new RTCRtpSender(WTFMove(track), mediaStreamId));45 return adoptRef(*new RTCRtpSender(WTFMove(track), WTFMove(mediaStreamIds))); 46 46 } 47 47 48 const String& mediaStreamId() const { return m_mediaStreamId; }48 const Vector<String>& mediaStreamIds() const { return m_mediaStreamIds; } 49 49 50 50 private: 51 RTCRtpSender(RefPtr<MediaStreamTrack>&&, const String& mediaStreamId);51 RTCRtpSender(RefPtr<MediaStreamTrack>&&, Vector<String>&& mediaStreamIds); 52 52 53 String m_mediaStreamId;53 Vector<String> m_mediaStreamIds; 54 54 }; 55 55
Note: See TracChangeset
for help on using the changeset viewer.