WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
70448
compositing/video tests time out on Lion
https://bugs.webkit.org/show_bug.cgi?id=70448
Summary
compositing/video tests time out on Lion
Simon Fraser (smfr)
Reported
2011-10-19 15:57:06 PDT
These two tests time out for me every time I run them on Lion: +compositing/video/video-poster.html expected actual diff pretty diff text pass +compositing/video/video-with-invalid-source.html expected actual diff pretty diff text pass This is in DRT, so WebKit1. The tests also time out when run directly from DRT.
Attachments
Patch
(2.10 KB, patch)
2011-10-19 18:03 PDT
,
Jer Noble
no flags
Details
Formatted Diff
Diff
Patch
(6.44 KB, patch)
2011-10-24 17:17 PDT
,
Jer Noble
simon.fraser
: review+
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Simon Fraser (smfr)
Comment 1
2011-10-19 17:06:33 PDT
Output with media logging turned on: HTMLMediaElement::HTMLMediaElement HTMLMediaElement::removedFromDocument CONSOLE MESSAGE: line 31: event.type load HTMLMediaElement::canPlayType(video/ogg) -> HTMLMediaElement::scheduleLoad HTMLMediaElement::prepareForLoad HTMLMediaElement::cancelPendingEventsAndCallbacks HTMLMediaElement::setPlaybackRate(1.000000) HTMLMediaElement::setShouldDelayLoadEvent(true) HTMLMediaElement::selectMediaResource HTMLMediaElement::loadResource(file:///Volumes/SSData/Development/OSX/webkit/OpenSource/LayoutTests/compositing/resources/video.mp4, ) HTMLMediaElement::loadResource - m_currentSrc -> file:///Volumes/SSData/Development/OSX/webkit/OpenSource/LayoutTests/compositing/resources/video.mp4 MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation(0x10b033760) HTMLMediaElement::mediaPlayerEngineUpdated Layer became composited, count=1 MediaPlayerPrivateAVFoundationObjC::platformLayer(0x10b033760) MediaPlayerPrivateAVFoundation::load(0x10b033760) HTMLMediaElement::setNetworkState(2) - current state is 2 MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL(0x10b033760) MediaPlayerPrivateAVFoundationObjC::checkPlayability(0x10b033760) Layer lost compositing, count=0 HTMLMediaElement::selectMediaResource, using 'src' attribute url MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x10b033760) - notification 11 MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x10b033760) - early return MediaPlayerPrivateAVFoundation::mainThreadCallback(0x10b033760) MediaPlayerPrivateAVFoundation::dispatchNotification(0x10b033760) - dispatching 11 MediaPlayerPrivateAVFoundation::updateStates(0x10b033760) - entering with networkState = 2, readyState = 0 MediaPlayerPrivateAVFoundation::updateStates(0x10b033760) - exiting with networkState = 2, readyState = 0 MediaPlayerPrivateAVFoundation::playabilityKnown(0x10b033760) MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata(0x10b033760) - requesting metadata loading MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x10b033760) - notification 10 MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x10b033760) - early return MediaPlayerPrivateAVFoundation::mainThreadCallback(0x10b033760) MediaPlayerPrivateAVFoundation::dispatchNotification(0x10b033760) - dispatching 10 HTMLMediaElement::mediaPlayerCharacteristicChanged WebCoreAVFMovieObserver:tracksChanged(0x10b033760) - hasVideo = true, hasAudio = false, hasCaptions = false MediaPlayerPrivateAVFoundation:setNaturalSize(0x10b033760) - size = 352 x 288 HTMLMediaElement::mediaPlayerSizeChanged MediaPlayerPrivateAVFoundation::updateStates(0x10b033760) - entering with networkState = 2, readyState = 0 MediaPlayerPrivateAVFoundation::prepareToPlay(0x10b033760) MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem(0x10b033760) MediaPlayerPrivateAVFoundationObjC::createAVPlayer(0x10b033760) HTMLMediaElement::setReadyState(1) - current state is 0, HTMLMediaElement::updatePlayState - shouldBePlaying = false, playerPaused = true MediaPlayerPrivateAVFoundation::updateStates(0x10b033760) - exiting with networkState = 2, readyState = 1 WebCoreAVFMovieObserver:observeValueForKeyPath(0x10b02afa0) - keyPath = tracks MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x10b033760) - notification 2 MediaPlayerPrivateAVFoundation::dispatchNotification(0x10b033760) - dispatching 2 WebCoreAVFMovieObserver:tracksChanged(0x10b033760) - hasVideo = true, hasAudio = false, hasCaptions = false MediaPlayerPrivateAVFoundation:setNaturalSize(0x10b033760) - size = 352 x 288 MediaPlayerPrivateAVFoundation::updateStates(0x10b033760) - entering with networkState = 2, readyState = 1 MediaPlayerPrivateAVFoundation::updateStates(0x10b033760) - exiting with networkState = 2, readyState = 1 WebCoreAVFMovieObserver:observeValueForKeyPath(0x10b02afa0) - keyPath = rate MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x10b033760) - notification 12 MediaPlayerPrivateAVFoundation::dispatchNotification(0x10b033760) - dispatching 12 MediaPlayerPrivateAVFoundation::updateStates(0x10b033760) - entering with networkState = 2, readyState = 1 MediaPlayerPrivateAVFoundation::updateStates(0x10b033760) - exiting with networkState = 2, readyState = 1 HTMLMediaElement::mediaPlayerRateChanged HTMLMediaElement::invalidateCachedTime HTMLMediaElement::invalidateCachedTime WebCoreAVFMovieObserver:observeValueForKeyPath(0x10b02afa0) - keyPath = status MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x10b033760) - notification 3 MediaPlayerPrivateAVFoundation::dispatchNotification(0x10b033760) - dispatching 3 MediaPlayerPrivateAVFoundation::updateStates(0x10b033760) - entering with networkState = 2, readyState = 1 MediaPlayerPrivateAVFoundation::duration(0x10b033760) - caching 0.995000 HTMLMediaElement::setNetworkState(3) - current state is 2 HTMLMediaElement::setReadyState(3) - current state is 1, HTMLMediaElement::setShouldDelayLoadEvent(false) HTMLMediaElement::updatePlayState - shouldBePlaying = false, playerPaused = true MediaPlayerPrivateAVFoundation::updateStates(0x10b033760) - exiting with networkState = 3, readyState = 3 WebCoreAVFMovieObserver:observeValueForKeyPath(0x10b02afa0) - keyPath = presentationSize MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x10b033760) - notification 6 MediaPlayerPrivateAVFoundation::dispatchNotification(0x10b033760) - dispatching 6 MediaPlayerPrivateAVFoundation:setNaturalSize(0x10b033760) - size = 352 x 288 MediaPlayerPrivateAVFoundation::updateStates(0x10b033760) - entering with networkState = 3, readyState = 3 MediaPlayerPrivateAVFoundation::updateStates(0x10b033760) - exiting with networkState = 3, readyState = 3 FAIL: Timed out waiting for notifyDone to be called FAIL: Timed out waiting for notifyDone to be called Content-Type: text/plain A <video> should not have a layer until playback begins. This test can not be run manually, it requires layoutTestController.layerTreeAsText. No src, no poster PASS: wants layers = false, has layers = false #EOF HTMLMediaElement::stop HTMLMediaElement::userCancelledLoad HTMLMediaElement::cancelPendingEventsAndCallbacks HTMLMediaElement::stop HTMLMediaElement::userCancelledLoad HTMLMediaElement::cancelPendingEventsAndCallbacks HTMLMediaElement::~HTMLMediaElement MediaPlayerPrivateAVFoundationObjC::cancelLoad(0x10b033760) MediaPlayerPrivateAVFoundation::tearDownVideoRendering(0x10b033760) MediaPlayerPrivateAVFoundationObjC::platformLayer(0x10b033760) MediaPlayerPrivateAVFoundation::~MediaPlayerPrivateAVFoundation(0x10b033760) Program ended with exit code: 0
Simon Fraser (smfr)
Comment 2
2011-10-19 17:16:45 PDT
The 'canplaythrough' event never comes in.
Simon Fraser (smfr)
Comment 3
2011-10-19 17:24:05 PDT
Looks like a bug in HTMLMediaElement::setReadyState()
Jer Noble
Comment 4
2011-10-19 18:03:13 PDT
Created
attachment 111705
[details]
Patch
Eric Carlson
Comment 5
2011-10-19 18:15:44 PDT
Comment on
attachment 111705
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=111705&action=review
> Source/WebCore/ChangeLog:13 > + AVFoundation will occasionally fill it's playback buffers before collecting enough > + statistical information to answer YES to isLikelyToKeepUp. In this situation, set the > + ready state to HAVE_ENOUGH_DATA, on the presumption that if the playback buffers are > + full, playback will probably not stall.
It would be good to have this comment...
> Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:453 > case MediaPlayerAVPlayerItemStatusPlaybackLikelyToKeepUp: > + case MediaPlayerAVPlayerItemStatusPlaybackBufferFull:
...here as well.
Jer Noble
Comment 6
2011-10-20 00:19:58 PDT
Committed
r97944
: <
http://trac.webkit.org/changeset/97944
>
Simon Fraser (smfr)
Comment 7
2011-10-20 11:25:45 PDT
Still failing for me: HTMLMediaElement::HTMLMediaElement HTMLMediaElement::removedFromDocument HTMLMediaElement::canPlayType(video/ogg) -> HTMLMediaElement::scheduleLoad HTMLMediaElement::prepareForLoad HTMLMediaElement::cancelPendingEventsAndCallbacks HTMLMediaElement::setPlaybackRate(1.000000) HTMLMediaElement::setShouldDelayLoadEvent(true) HTMLMediaElement::selectMediaResource HTMLMediaElement::loadResource(file:///Volumes/SSData/Development/OSX/webkit/OpenSource/LayoutTests/compositing/resources/video.mp4, ) HTMLMediaElement::loadResource - m_currentSrc -> file:///Volumes/SSData/Development/OSX/webkit/OpenSource/LayoutTests/compositing/resources/video.mp4 MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation(0x107c0e5e0) HTMLMediaElement::mediaPlayerEngineUpdated MediaPlayerPrivateAVFoundationObjC::platformLayer(0x107c0e5e0) MediaPlayerPrivateAVFoundation::load(0x107c0e5e0) HTMLMediaElement::setNetworkState(2) - current state is 2 MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL(0x107c0e5e0) MediaPlayerPrivateAVFoundationObjC::checkPlayability(0x107c0e5e0) HTMLMediaElement::selectMediaResource, using 'src' attribute url MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x107c0e5e0) - notification 11 MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x107c0e5e0) - early return MediaPlayerPrivateAVFoundation::mainThreadCallback(0x107c0e5e0) MediaPlayerPrivateAVFoundation::dispatchNotification(0x107c0e5e0) - dispatching 11 MediaPlayerPrivateAVFoundation::updateStates(0x107c0e5e0) - entering with networkState = 2, readyState = 0 MediaPlayerPrivateAVFoundation::updateStates(0x107c0e5e0) - exiting with networkState = 2, readyState = 0 MediaPlayerPrivateAVFoundation::playabilityKnown(0x107c0e5e0) MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata(0x107c0e5e0) - requesting metadata loading MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x107c0e5e0) - notification 10 MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x107c0e5e0) - early return MediaPlayerPrivateAVFoundation::mainThreadCallback(0x107c0e5e0) MediaPlayerPrivateAVFoundation::dispatchNotification(0x107c0e5e0) - dispatching 10 HTMLMediaElement::mediaPlayerCharacteristicChanged WebCoreAVFMovieObserver:tracksChanged(0x107c0e5e0) - hasVideo = true, hasAudio = false, hasCaptions = false MediaPlayerPrivateAVFoundation:setNaturalSize(0x107c0e5e0) - size = 352 x 288 HTMLMediaElement::mediaPlayerSizeChanged MediaPlayerPrivateAVFoundation::updateStates(0x107c0e5e0) - entering with networkState = 2, readyState = 0 MediaPlayerPrivateAVFoundation::prepareToPlay(0x107c0e5e0) MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem(0x107c0e5e0) MediaPlayerPrivateAVFoundationObjC::createAVPlayer(0x107c0e5e0) HTMLMediaElement::setReadyState(1) - current state is 0, HTMLMediaElement::updatePlayState - shouldBePlaying = false, playerPaused = true MediaPlayerPrivateAVFoundation::updateStates(0x107c0e5e0) - exiting with networkState = 2, readyState = 1 WebCoreAVFMovieObserver:observeValueForKeyPath(0x107c0d000) - keyPath = tracks MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x107c0e5e0) - notification 2 MediaPlayerPrivateAVFoundation::dispatchNotification(0x107c0e5e0) - dispatching 2 WebCoreAVFMovieObserver:tracksChanged(0x107c0e5e0) - hasVideo = true, hasAudio = false, hasCaptions = false MediaPlayerPrivateAVFoundation:setNaturalSize(0x107c0e5e0) - size = 352 x 288 MediaPlayerPrivateAVFoundation::updateStates(0x107c0e5e0) - entering with networkState = 2, readyState = 1 MediaPlayerPrivateAVFoundation::updateStates(0x107c0e5e0) - exiting with networkState = 2, readyState = 1 WebCoreAVFMovieObserver:observeValueForKeyPath(0x107c0d000) - keyPath = rate MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x107c0e5e0) - notification 12 MediaPlayerPrivateAVFoundation::dispatchNotification(0x107c0e5e0) - dispatching 12 MediaPlayerPrivateAVFoundation::updateStates(0x107c0e5e0) - entering with networkState = 2, readyState = 1 MediaPlayerPrivateAVFoundation::updateStates(0x107c0e5e0) - exiting with networkState = 2, readyState = 1 HTMLMediaElement::mediaPlayerRateChanged HTMLMediaElement::invalidateCachedTime HTMLMediaElement::invalidateCachedTime WebCoreAVFMovieObserver:observeValueForKeyPath(0x107c0d000) - keyPath = status MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x107c0e5e0) - notification 3 MediaPlayerPrivateAVFoundation::dispatchNotification(0x107c0e5e0) - dispatching 3 MediaPlayerPrivateAVFoundation::updateStates(0x107c0e5e0) - entering with networkState = 2, readyState = 1 MediaPlayerPrivateAVFoundation::duration(0x107c0e5e0) - caching 0.995000 HTMLMediaElement::setNetworkState(3) - current state is 2 HTMLMediaElement::setReadyState(3) - current state is 1, HTMLMediaElement::setShouldDelayLoadEvent(false) HTMLMediaElement::updatePlayState - shouldBePlaying = false, playerPaused = true MediaPlayerPrivateAVFoundation::updateStates(0x107c0e5e0) - exiting with networkState = 3, readyState = 3 WebCoreAVFMovieObserver:observeValueForKeyPath(0x107c0d000) - keyPath = presentationSize MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification(0x107c0e5e0) - notification 6 MediaPlayerPrivateAVFoundation::dispatchNotification(0x107c0e5e0) - dispatching 6 MediaPlayerPrivateAVFoundation:setNaturalSize(0x107c0e5e0) - size = 352 x 288 MediaPlayerPrivateAVFoundation::updateStates(0x107c0e5e0) - entering with networkState = 3, readyState = 3 MediaPlayerPrivateAVFoundation::updateStates(0x107c0e5e0) - exiting with networkState = 3, readyState = 3 FAIL: Timed out waiting for notifyDone to be called FAIL: Timed out waiting for notifyDone to be called Content-Type: text/plain A <video> should not have a layer until playback begins. This test can not be run manually, it requires layoutTestController.layerTreeAsText. No src, no poster PASS: wants layers = false, has layers = false #EOF HTMLMediaElement::stop HTMLMediaElement::userCancelledLoad HTMLMediaElement::cancelPendingEventsAndCallbacks HTMLMediaElement::stop HTMLMediaElement::userCancelledLoad HTMLMediaElement::cancelPendingEventsAndCallbacks HTMLMediaElement::~HTMLMediaElement MediaPlayerPrivateAVFoundationObjC::cancelLoad(0x107c0e5e0) MediaPlayerPrivateAVFoundation::tearDownVideoRendering(0x107c0e5e0) MediaPlayerPrivateAVFoundationObjC::platformLayer(0x107c0e5e0) MediaPlayerPrivateAVFoundation::~MediaPlayerPrivateAVFoundation(0x107c0e5e0)
Jer Noble
Comment 8
2011-10-20 12:49:54 PDT
The poster test begins succeeding when you null out the <video> element's poster attribute; so yes, this patch probably doesn't fix that problem. I'm looking into it more.
Jer Noble
Comment 9
2011-10-24 17:17:11 PDT
Created
attachment 112282
[details]
Patch
Jer Noble
Comment 10
2011-10-25 10:41:22 PDT
Committed
r98359
: <
http://trac.webkit.org/changeset/98359
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug