Bug 1295352 - Use mState in MediaEngineTabVideoSource. r=jesup

MozReview-Commit-ID: 1zZlMXAqpo7

--HG--
extra : rebase_source : be6dadad9f7059a01f5e96d90232275407b80412
extra : intermediate-source : f3dae14842ecbc89f405095c20faa6834ed10a04
extra : source : 65f1bf3e9dec44ffd6c10a2b1a895ef936ba2d8b
This commit is contained in:
Andreas Pehrson 2016-08-25 12:25:06 +02:00
parent 3633aa0676
commit d0bbc5938c

View File

@ -149,6 +149,12 @@ MediaEngineTabVideoSource::Allocate(const dom::MediaTrackConstraints& aConstrain
mWindowId = aConstraints.mBrowserWindow.WasPassed() ?
aConstraints.mBrowserWindow.Value() : -1;
*aOutHandle = nullptr;
{
MonitorAutoLock mon(mMonitor);
mState = kAllocated;
}
return Restart(nullptr, aConstraints, aPrefs, aDeviceId, aOutBadConstraint);
}
@ -187,6 +193,10 @@ nsresult
MediaEngineTabVideoSource::Deallocate(AllocationHandle* aHandle)
{
MOZ_ASSERT(!aHandle);
{
MonitorAutoLock mon(mMonitor);
mState = kReleased;
}
return NS_OK;
}
@ -202,6 +212,11 @@ MediaEngineTabVideoSource::Start(SourceMediaStream* aStream, TrackID aID,
NS_DispatchToMainThread(runnable);
aStream->AddTrack(aID, 0, new VideoSegment());
{
MonitorAutoLock mon(mMonitor);
mState = kStarted;
}
return NS_OK;
}
@ -338,7 +353,8 @@ MediaEngineTabVideoSource::Draw() {
}
nsresult
MediaEngineTabVideoSource::Stop(mozilla::SourceMediaStream*, mozilla::TrackID)
MediaEngineTabVideoSource::Stop(mozilla::SourceMediaStream* aSource,
mozilla::TrackID aID)
{
// If mBlackedoutWindow is true, we may be running
// despite mWindow == nullptr.
@ -347,6 +363,12 @@ MediaEngineTabVideoSource::Stop(mozilla::SourceMediaStream*, mozilla::TrackID)
}
NS_DispatchToMainThread(new StopRunnable(this));
{
MonitorAutoLock mon(mMonitor);
mState = kStopped;
aSource->EndTrack(aID);
}
return NS_OK;
}