-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[macOS] REGRESSION(275831@main): Netflix can error out while scrubbing #27791
[macOS] REGRESSION(275831@main): Netflix can error out while scrubbing #27791
Conversation
EWS run on previous version of this PR (hash 34342ce) |
@@ -508,6 +508,12 @@ void MediaPlayerPrivateRemote::seeked(MediaTimeUpdateData&& timeData) | |||
m_currentTimeEstimator.setTime(timeData); | |||
if (auto player = m_player.get()) | |||
player->seeked(timeData.currentTime); | |||
#if ENABLE(MEDIA_SOURCE) | |||
// This message may well have been handled by the MediaSource object before | |||
// theis message, which would result in the wrong |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: this
// This message may well have been handled by the MediaSource object before | ||
// theis message, which would result in the wrong | ||
if (m_mediaSourcePrivate) | ||
return m_mediaSourcePrivate->seeked(timeData.currentTime); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be:
if (RefPtr mediaSourcePrivate = m_mediaSourcePrivate)
return mediaSourcePrivate->seeked(timeData.currentTime);
34342ce
to
02a26a1
Compare
EWS run on current version of this PR (hash 02a26a1) |
https://bugs.webkit.org/show_bug.cgi?id=273306 rdar://126654352 Reviewed by Eric Carlson. A race condition can occur where the MediaSource object in the WebContent process does not check the buffered ranges for the new currentTime after a seek, which leads to the readyState remaining at HAVE_METADATA, and the seeked event failing to fire. Ensure that the MediaSource checks its buffered ranges after a seek by adding an explicit "seeked()" method to MediaSourcePrivateClient to be used when a seek completes in a MediaPlayerPrivate, to notify the MediaSource to revalidate its buffered ranges. To avaid adding a new race condition, call this new "seeked()" method from MediaPlayerPrivateRemote, rather than from MediaSourcePrivateRemote, to ensure that the "official" time is fully updated before the MediaSource monitiors its source buffers. * Source/WebCore/Modules/mediasource/MediaSource.cpp: (WebCore::MediaSource::failedToCreateRenderer): (WebCore::MediaSource::seeked): * Source/WebCore/Modules/mediasource/MediaSource.h: * Source/WebCore/platform/graphics/MediaSourcePrivate.cpp: (WebCore::MediaSourcePrivate::seeked): * Source/WebCore/platform/graphics/MediaSourcePrivate.h: * Source/WebCore/platform/graphics/MediaSourcePrivateClient.h: * Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h: * Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: (WebCore::MediaSourcePrivateAVFObjC::seeked): * Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.h: * Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::seeked): Canonical link: https://commits.webkit.org/278060@main
02a26a1
to
c7be93f
Compare
Committed 278060@main (c7be93f): https://commits.webkit.org/278060@main Reviewed commits have been landed. Closing PR #27791 and removing active labels. |
c7be93f
02a26a1
π wpeπ§ͺ wpe-wk2π§ͺ api-wpeπ§ͺ mac-AS-debug-wk2π§ͺ gtk-wk2π§ͺ api-gtkπ watch