void CameraPreviewMediaStream::RemoveVideoOutput(VideoFrameContainer* aContainer) { MutexAutoLock lock(mMutex); RemoveVideoOutputImpl(aContainer); if (!mVideoOutputs.IsEmpty()) { return; } mIsConsumed = false; for (uint32_t j = 0; j < mListeners.Length(); ++j) { MediaStreamListener* l = mListeners[j]; l->NotifyConsumptionChanged(mFakeMediaStreamGraph, MediaStreamListener::NOT_CONSUMED); } }
void CameraPreviewMediaStream::AddVideoOutput(VideoFrameContainer* aContainer) { MutexAutoLock lock(mMutex); nsRefPtr<VideoFrameContainer> container = aContainer; AddVideoOutputImpl(container.forget()); if (mVideoOutputs.Length() > 1) { return; } mIsConsumed = true; for (uint32_t j = 0; j < mListeners.Length(); ++j) { MediaStreamListener* l = mListeners[j]; l->NotifyConsumptionChanged(mFakeMediaStreamGraph, MediaStreamListener::CONSUMED); } }