Changeset 155434 in webkit
- Timestamp:
- Sep 10, 2013 6:30:10 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r155429 r155434 1 2013-09-10 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> 2 3 MediaStream API: Enhance MediaStreamDescriptor add/remove component 4 https://bugs.webkit.org/show_bug.cgi?id=120874 5 6 Merge blink https://chromium.googlesource.com/chromium/blink/+/67fcacf13ce922a762d7a1c6fb9e1b8e51e662ea 7 8 Reviewed by Eric Carlson. 9 10 No new tests needed. 11 12 * Modules/mediastream/MediaStream.cpp: 13 (WebCore::MediaStream::addTrack): 14 (WebCore::MediaStream::removeTrack): 15 (WebCore::MediaStream::addRemoteTrack): 16 (WebCore::MediaStream::removeRemoteTrack): 17 * platform/mediastream/MediaStreamDescriptor.h: 18 (WebCore::MediaStreamDescriptor::addRemoteTrack): 19 (WebCore::MediaStreamDescriptor::removeRemoteTrack): 20 (WebCore::MediaStreamDescriptor::addComponent): 21 (WebCore::MediaStreamDescriptor::removeComponent): 22 1 23 2013-09-10 Andreas Kling <akling@apple.com> 2 24 -
trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp
r155362 r155434 156 156 switch (component->source()->type()) { 157 157 case MediaStreamSource::TypeAudio: 158 m_descriptor->addAudioComponent(component.release());159 158 m_audioTracks.append(newTrack); 160 159 break; 161 160 case MediaStreamSource::TypeVideo: 162 m_descriptor->addVideoComponent(component.release());163 161 m_videoTracks.append(newTrack); 164 162 break; 165 163 } 166 164 165 m_descriptor->addComponent(component.release()); 167 166 MediaStreamCenter::instance().didAddMediaStreamTrack(m_descriptor.get(), newTrack->component()); 168 167 } … … 182 181 RefPtr<MediaStreamTrack> track = prpTrack; 183 182 183 size_t pos = notFound; 184 184 switch (track->component()->source()->type()) { 185 case MediaStreamSource::TypeAudio: {186 size_tpos = m_audioTracks.find(track);187 if (pos != notFound) {185 case MediaStreamSource::TypeAudio: 186 pos = m_audioTracks.find(track); 187 if (pos != notFound) 188 188 m_audioTracks.remove(pos); 189 m_descriptor->removeAudioComponent(track->component()); 190 } 191 break; 192 } 193 case MediaStreamSource::TypeVideo: { 194 size_t pos = m_videoTracks.find(track); 195 if (pos != notFound) { 189 break; 190 case MediaStreamSource::TypeVideo: 191 pos = m_videoTracks.find(track); 192 if (pos != notFound) 196 193 m_videoTracks.remove(pos); 197 m_descriptor->removeVideoComponent(track->component()); 198 } 199 break; 200 } 201 } 194 break; 195 } 196 197 if (pos == notFound) 198 return; 199 200 m_descriptor->removeComponent(track->component()); 202 201 203 202 if (!m_audioTracks.size() && !m_videoTracks.size()) … … 281 280 switch (component->source()->type()) { 282 281 case MediaStreamSource::TypeAudio: 283 m_descriptor->addAudioComponent(component);284 282 m_audioTracks.append(track); 285 283 break; 286 284 case MediaStreamSource::TypeVideo: 287 m_descriptor->addVideoComponent(component);288 285 m_videoTracks.append(track); 289 286 break; 290 287 } 288 m_descriptor->addComponent(component); 291 289 292 290 scheduleDispatchEvent(MediaStreamTrackEvent::create(eventNames().addtrackEvent, false, false, track)); … … 318 316 return; 319 317 320 switch (component->source()->type()) { 321 case MediaStreamSource::TypeAudio: 322 m_descriptor->removeAudioComponent(component); 323 break; 324 case MediaStreamSource::TypeVideo: 325 m_descriptor->removeAudioComponent(component); 326 break; 327 } 318 m_descriptor->removeComponent(component); 328 319 329 320 RefPtr<MediaStreamTrack> track = (*tracks)[index]; -
trunk/Source/WebCore/platform/mediastream/MediaStreamDescriptor.h
r155382 r155434 75 75 unsigned numberOfAudioComponents() const { return m_audioComponents.size(); } 76 76 MediaStreamComponent* audioComponent(unsigned index) const { return m_audioComponents[index].get(); } 77 void addAudioComponent(PassRefPtr<MediaStreamComponent> component) { m_audioComponents.append(component); }78 void removeAudioComponent(MediaStreamComponent* component)79 {80 size_t pos = m_audioComponents.find(component);81 if (pos != notFound)82 m_audioComponents.remove(pos);83 }84 77 85 78 void addRemoteTrack(MediaStreamComponent* component) … … 87 80 if (m_client) 88 81 m_client->addRemoteTrack(component); 82 else 83 addComponent(component); 89 84 } 90 85 … … 93 88 if (m_client) 94 89 m_client->removeRemoteTrack(component); 90 else 91 removeComponent(component); 95 92 } 96 93 97 94 unsigned numberOfVideoComponents() const { return m_videoComponents.size(); } 98 95 MediaStreamComponent* videoComponent(unsigned index) const { return m_videoComponents[index].get(); } 99 void addVideoComponent(PassRefPtr<MediaStreamComponent> component) { m_videoComponents.append(component); } 100 void removeVideoComponent(MediaStreamComponent*component)96 97 void addComponent(PassRefPtr<MediaStreamComponent> component) 101 98 { 102 size_t pos = m_videoComponents.find(component); 103 if (pos != notFound) 104 m_videoComponents.remove(pos); 99 switch (component->source()->type()) { 100 case MediaStreamSource::TypeAudio: 101 if (m_audioComponents.find(component) == notFound) 102 m_audioComponents.append(component); 103 break; 104 case MediaStreamSource::TypeVideo: 105 if (m_videoComponents.find(component) == notFound) 106 m_videoComponents.append(component); 107 break; 108 } 109 } 110 111 void removeComponent(PassRefPtr<MediaStreamComponent> component) 112 { 113 size_t pos = notFound; 114 switch (component->source()->type()) { 115 case MediaStreamSource::TypeAudio: 116 pos = m_audioComponents.find(component); 117 if (pos != notFound) 118 m_audioComponents.remove(pos); 119 break; 120 case MediaStreamSource::TypeVideo: 121 pos = m_videoComponents.find(component); 122 if (pos != notFound) 123 m_videoComponents.remove(pos); 124 break; 125 } 105 126 } 106 127
Note: See TracChangeset
for help on using the changeset viewer.