NS_IMETHOD Run() { NS_ASSERTION(NS_IsMainThread(), "main thread only"); DOMMediaStream* stream = mListener->GetStream(); if (!stream) { return NS_OK; } nsRefPtr<MediaStreamTrack> track; if (mEvents & MediaStreamListener::TRACK_EVENT_CREATED) { track = stream->BindDOMTrack(mID, mType); if (!track) { stream->CreateDOMTrack(mID, mType); track = stream->BindDOMTrack(mID, mType); } stream->NotifyMediaStreamTrackCreated(track); } else { track = stream->GetDOMTrackFor(mID); } if (mEvents & MediaStreamListener::TRACK_EVENT_ENDED) { if (track) { track->NotifyEnded(); stream->NotifyMediaStreamTrackEnded(track); } else { NS_ERROR("track ended but not found"); } } return NS_OK; }
NS_IMETHOD Run() { NS_ASSERTION(NS_IsMainThread(), "main thread only"); DOMMediaStream* stream = mListener->GetStream(); if (!stream) { return NS_OK; } nsRefPtr<MediaStreamTrack> track; if (mEvents & MediaStreamListener::TRACK_EVENT_CREATED) { track = stream->CreateDOMTrack(mID, mType); } else { track = stream->GetDOMTrackFor(mID); } if (mEvents & MediaStreamListener::TRACK_EVENT_ENDED) { track->NotifyEnded(); } return NS_OK; }