void MediaStreamCenter::stopLocalMediaStream(const WebMediaStream& webStream) { MediaStreamDescriptor* stream = webStream; MediaStreamDescriptorClient* client = stream->client(); if (client) client->streamEnded(); else stream->setEnded(); }
void RTCPeerConnection::didRemoveRemoteStream(const blink::WebMediaStream& remoteStream) { ASSERT(executionContext()->isContextThread()); MediaStreamDescriptor* streamDescriptor = remoteStream; ASSERT(streamDescriptor->client()); RefPtr<MediaStream> stream = static_cast<MediaStream*>(streamDescriptor->client()); stream->streamEnded(); if (m_signalingState == SignalingStateClosed) return; size_t pos = m_remoteStreams.find(stream); ASSERT(pos != kNotFound); m_remoteStreams.remove(pos); scheduleDispatchEvent(MediaStreamEvent::create(EventTypeNames::removestream, false, false, stream.release())); }