author | Wes Kocher <wkocher@mozilla.com> |
Wed, 30 Aug 2017 12:13:01 -0700 | |
changeset 377823 | f8e18499448edab80c1e6a0083b573a3e323975e |
parent 377822 | 043653ff777987f0b881fcefe15610b796e1e3a0 |
child 377824 | c0332f371039d2f10cd3a201caa5d9ce81c21805 |
push id | 94338 |
push user | kwierso@gmail.com |
push date | Thu, 31 Aug 2017 02:58:58 +0000 |
treeherder | mozilla-inbound@9ca18987dabb [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | backout |
bugs | 1335029, 1185192 |
milestone | 57.0a1 |
backs out | be5d0598f77d0e1cf2ee1a6955a7f8958f4914a3 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/dom/media/MediaStreamGraph.cpp +++ b/dom/media/MediaStreamGraph.cpp @@ -4010,32 +4010,20 @@ MediaStreamGraphImpl::ApplyAudioContextO driver = new SystemClockDriver(this); MonitorAutoLock lock(mMonitor); CurrentDriver()->SwitchAtNextIteration(driver); } // We are closing or suspending an AudioContext, but we just got resumed. // Queue the operation on the next driver so that the ordering is // preserved. } else if (!audioTrackPresent && switching) { - MOZ_ASSERT(nextDriver->AsAudioCallbackDriver() || - nextDriver->AsSystemClockDriver()->IsFallback()); - if (nextDriver->AsAudioCallbackDriver()) { - nextDriver->AsAudioCallbackDriver()-> - EnqueueStreamAndPromiseForOperation(aDestinationStream, aPromise, - aOperation); - } - // If this is not an AudioCallbackDriver, this means we failed opening an - // AudioCallbackDriver in the past, and we're constantly trying to re-open - // an new audio stream, but are running this graph that has an audio track - // off a SystemClockDriver for now to keep things moving. This is the - // case where we're trying to switch an an system driver (because suspend - // or close have been called on an AudioContext, or we've closed the - // page), but we're already running one. We can just resolve the promise - // now: we're already running off a system thread. - AudioContextOperationCompleted(aDestinationStream, aPromise, aOperation); + MOZ_ASSERT(nextDriver->AsAudioCallbackDriver()); + nextDriver->AsAudioCallbackDriver()-> + EnqueueStreamAndPromiseForOperation(aDestinationStream, aPromise, + aOperation); } else { // We are closing or suspending an AudioContext, but something else is // using the audio stream, we can resolve the promise now. AudioContextOperationCompleted(aDestinationStream, aPromise, aOperation); } } }