Closed Bug 1218299 Opened 9 years ago Closed 9 years ago

Intermittent test_play_twice.html | vp9.webm checking readyState - got 4, expected 2

Categories

(Core :: Audio/Video, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1220512

People

(Reporter: cbook, Unassigned)

References

()

Details

(Keywords: intermittent-failure)

https://treeherder.mozilla.org/logviewer.html#?job_id=16229828&repo=mozilla-inbound

 17:11:44     INFO -  44287 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_play_twice.html | vp9.webm checking readyState - got 4, expected 2
 17:11:44     INFO -      SimpleTest.is@SimpleTest/SimpleTest.js:267:5
 17:11:44     INFO -      startTest/checkEnded</<@dom/media/test/test_play_twice.html:49:5
 17:11:44     INFO -      EventListener.handleEvent*startTest@dom/media/test/test_play_twice.html:83:3
 17:11:44     INFO -      MediaTestManager/this.nextTest@dom/media/test/manifest.js:1492:7
 17:11:44     INFO -      MediaTestManager/this.finished@dom/media/test/manifest.js:1471:7
 17:11:44     INFO -      finish@dom/media/test/test_play_twice.html:34:5
 17:11:44     INFO -      mayFinish@dom/media/test/test_play_twice.html:39:7
 17:11:44     INFO -      startTest/checkEnded</<@dom/media/test/test_play_twice.html:56:7
 17:11:44     INFO -      EventListener.handleEvent*startTest@dom/media/test/test_play_twice.html:83:3
 17:11:44     INFO -      MediaTestManager/this.nextTest@dom/media/test/manifest.js:1492:7
 17:11:44     INFO -      MediaTestManager/this.finished@dom/media/test/manifest.js:1471:7
 17:11:44     INFO -      EventListener.handleEvent*startTest@dom/media/test/test_play_twice.html:83:3
 17:11:44     INFO -      EventListener.handleEvent*startTest@dom/media/test/test_play_twice.html:83:3
 17:11:44     INFO -      Async*MediaTestManager/this.runTests@dom/media/test
Hi Benjamin,
Please check this bug. Thanks.
Flags: needinfo?(bechen)
Coud be a consequence to bug 1217304?

Before bug 1217304 we could have fired loadeddata before any frames were actually decoded: it was racy.

We now delay changing the readyState, until a frame has been decoded.

We now do:
  if (NextFrameStatus() != MediaDecoderOwner::NEXT_FRAME_AVAILABLE) {
    LOG(LogLevel::Debug, ("MediaElement %p UpdateReadyStateInternal() "
                          "Next frame not available", this));
    if (mFirstFrameLoaded) {
      ChangeReadyState(nsIDOMHTMLMediaElement::HAVE_CURRENT_DATA);
    }

if the element is now ended, and *before* FirstFrameLoaded was called. we won't reset the readyState to HAVE_CURRENT_DATA.

I'm not sure how that could happen however. Like we would reach ended mode before FirstFrameLoaded() was called?

The test itself is suspicious however, why would we be in HAVE_CURRENT_DATA when "ended" has been fired?
If we're ended, we're past the current data, there's nothing more to play.
JW, what do you think?
Flags: needinfo?(jwwang)
(In reply to Jean-Yves Avenard [:jya] from comment #2)
> The test itself is suspicious however, why would we be in HAVE_CURRENT_DATA
> when "ended" has been fired?
> If we're ended, we're past the current data, there's nothing more to play.
> JW, what do you think?

No, it is not suspicious. When we reach 'ended', we should have at least 'HAVE_METADATA'. And since there is no future data at the end, so the only state to be is 'HAVE_CURRENT_DATA'.
Flags: needinfo?(jwwang)
With bug 1217304, we will never go above HAVE_CURRENT_DATA until FirstFrameLoaded is called. If the element ends before FirstFrameLoaded is called, it is impossible for readyState to be 4 which is HAVE_ENOUGH_DATA.
This isn't the scenario I was thinking about:

we have readyState = HAVE_ENOUGH_DATA, reach ended.

In UpdateReadyStateInternal() the test:   if (NextFrameStatus() != MediaDecoderOwner::NEXT_FRAME_AVAILABLE) {
 would be true and we then reach ChangeReadyState(nsIDOMHTMLMediaElement::HAVE_CURRENT_DATA);

However, now with the test checking that FirstFrameLoaded was called; we do not reach this stage should mFirstFrameLoaded is false.
We can't never reach HAVE_ENOUGH_DATA when mFirstFrameLoaded is false with bug 1217304.
ah yes good point..

so bug 1217304 can't be the cause of this bug
https://bugzilla.mozilla.org/show_bug.cgi?id=832768#c797
2024 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_playback.html | huge-id3.mp3 checking readyState - got 4, expected 2
See bug 1220512 comment 1.
Status: NEW → RESOLVED
Closed: 9 years ago
Flags: needinfo?(bechen)
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.