mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 09:45:41 +00:00
Bug 1503132 when graph time has not advanced, only ensure another iteration if rendering r=padenot
Depends on D10164 Differential Revision: https://phabricator.services.mozilla.com/D10165 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
a39a706827
commit
8de2b7d0e5
@ -1348,14 +1348,16 @@ MediaStreamGraphImpl::UpdateGraph(GraphTime aEndBlockingDecisions)
|
||||
stream->mStartBlocking = mStateComputedTime;
|
||||
}
|
||||
|
||||
// The loop is woken up so soon that IterationEnd() barely advances and we
|
||||
// end up having aEndBlockingDecision == mStateComputedTime.
|
||||
// Since stream blocking is computed in the interval of
|
||||
// [mStateComputedTime, aEndBlockingDecision), it won't be computed at all.
|
||||
// We should ensure next iteration so that pending blocking changes will be
|
||||
// computed in next loop.
|
||||
// If the loop is woken up so soon that IterationEnd() barely advances or
|
||||
// if an offline graph is not currently rendering, we end up having
|
||||
// aEndBlockingDecisions == mStateComputedTime.
|
||||
// Since the process interval [mStateComputedTime, aEndBlockingDecision) is
|
||||
// empty, Process() will not find any unblocked stream and so will not
|
||||
// ensure another iteration. If the graph should be rendering, then ensure
|
||||
// another iteration to render.
|
||||
if (ensureNextIteration ||
|
||||
aEndBlockingDecisions == mStateComputedTime) {
|
||||
(aEndBlockingDecisions == mStateComputedTime &&
|
||||
mStateComputedTime < mEndTime)) {
|
||||
EnsureNextIteration();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user