Bug 1361336 - part2: Prevent AudioStream::ResetDefaultDevice() from being called before stream is started; r=cpearce
--- a/dom/media/AudioStream.cpp
+++ b/dom/media/AudioStream.cpp
@@ -473,16 +473,21 @@ AudioStream::Shutdown()
mState = SHUTDOWN;
}
void
AudioStream::ResetDefaultDevice()
{
MonitorAutoLock mon(mMonitor);
+ if (mState != STARTED && mState != STOPPED) {
+ return;
+ }
+
+ MOZ_ASSERT(mCubebStream);
auto r = InvokeCubeb(cubeb_stream_reset_default_device);
if (!(r == CUBEB_OK || r == CUBEB_ERROR_NOT_SUPPORTED)) {
mState = ERRORED;
}
}
int64_t
AudioStream::GetPosition()