Closed Bug 1010206 Opened 11 years ago Closed 11 years ago

test layout/reftests/webm-video/bug686957.html is racy when using async-video

Categories

(Core :: Graphics: Layers, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla32

People

(Reporter: nical, Assigned: nical)

References

Details

Attachments

(1 file)

With async-video, delivering frames to the compositor asynchronous with respect to the main thread's transaction. As a result, it is not guaranteed that a video frame will be composited in the composition that follows a seek (although in most cases it will, because async-video tends to deliver frames faster than main-thread transaction can. The reftest bug686957.html seeks and takes a screenshot asap using setTimout(..., 0); which intermittently fails on Windows with async-video. giving 15ms instead of 0 in setTimeout (completely arbitray value) makes the test always pass (in theory the ImageBridgeChild thread could still catch a cold and we have no absolute guarantee that the frame will be delivered in time for the screenshot, since there is no synchronizaion between async video frames and the rest of the world, but in practice it seems good enough).
try push with the fix + OMTC + async-video: https://tbpl.mozilla.org/?tree=Try&rev=289959cb0a8f (we are only interested in the win7 reftests here, the other one is for another bug. It used to failed 40% of the time.
Comment on attachment 8422388 [details] [diff] [review] Use a 15ms timeout to make the screenshot less likely to race with async-video Review of attachment 8422388 [details] [diff] [review]: ----------------------------------------------------------------- We need this to land the Windows OMTC work (which we want to land asap), so asking Paul for an express-review :)
Attachment #8422388 - Flags: review?(cajbir.bugzilla) → review?(paul)
Comment on attachment 8422388 [details] [diff] [review] Use a 15ms timeout to make the screenshot less likely to race with async-video Review of attachment 8422388 [details] [diff] [review]: ----------------------------------------------------------------- ::: layout/reftests/webm-video/bug686957.html @@ +5,5 @@ > <video src="frames.webm" > preload="auto" > id="v" > onloadedmetadata="document.getElementById('v').currentTime=document.getElementById('v').duration" > + onseeked="setTimeout(function(){document.documentElement.className = '';}, 15);" This is terrible but was also not guaranteed to work in the first place. Throw in a comment about the fact that if this fail, we need to increase the timeout as another terrible workaround. Also, we should find a way of making this not racy, for example by looking at the frame painted count, which is available from content. Open a bug about that in Video/Audio, please. r+ anyways because this should not block OMTC Windows.
Attachment #8422388 - Flags: review?(paul) → review+
This patch had the misfortune of landing in the middle of a large bustage pileup on inbound that led to me having to revert to a last-good cset in lieu of waiting 3-4 hours for green instead. Unfortunately, that means this was backed out along with the others. If this was confirmed green on Try, it can re-land at your convenience. https://hg.mozilla.org/integration/mozilla-inbound/rev/eb2a6f7785a2
Blocks: 1011614
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla32
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: