Index: Source/modules/mediastream/MediaStream.cpp |
diff --git a/Source/modules/mediastream/MediaStream.cpp b/Source/modules/mediastream/MediaStream.cpp |
index a4600f169ad397c979507a1a7aaea6ab622711a2..ecf4c19f3daae8e7524190b303406ee99c6cd3f6 100644 |
--- a/Source/modules/mediastream/MediaStream.cpp |
+++ b/Source/modules/mediastream/MediaStream.cpp |
@@ -167,7 +167,7 @@ void MediaStream::addTrack(PassRefPtr<MediaStreamTrack> prpTrack, ExceptionCode& |
MediaStreamCenter::instance().didAddMediaStreamTrack(m_descriptor.get(), newTrack->component()); |
} |
-void MediaStream::removeTrack(PassRefPtr<MediaStreamTrack> prpTrack , ExceptionCode& ec) |
+void MediaStream::removeTrack(PassRefPtr<MediaStreamTrack> prpTrack, ExceptionCode& ec) |
{ |
if (ended()) { |
ec = INVALID_STATE_ERR; |
@@ -280,9 +280,11 @@ void MediaStream::addRemoteTrack(MediaStreamComponent* component) |
RefPtr<MediaStreamTrack> track = MediaStreamTrack::create(scriptExecutionContext(), component); |
switch (component->source()->type()) { |
case MediaStreamSource::TypeAudio: |
+ m_descriptor->addAudioComponent(component); |
m_audioTracks.append(track); |
break; |
case MediaStreamSource::TypeVideo: |
+ m_descriptor->addVideoComponent(component); |
m_videoTracks.append(track); |
break; |
} |
@@ -315,6 +317,15 @@ void MediaStream::removeRemoteTrack(MediaStreamComponent* component) |
if (index == notFound) |
return; |
+ switch (component->source()->type()) { |
+ case MediaStreamSource::TypeAudio: |
+ m_descriptor->removeAudioComponent(component); |
+ break; |
+ case MediaStreamSource::TypeVideo: |
+ m_descriptor->removeAudioComponent(component); |
+ break; |
+ } |
+ |
RefPtr<MediaStreamTrack> track = (*tracks)[index]; |
tracks->remove(index); |
scheduleDispatchEvent(MediaStreamTrackEvent::create(eventNames().removetrackEvent, false, false, track)); |