Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 747f80b0591ceda287ec87a45cb512c39e05444c https://github.com/WebKit/WebKit/commit/747f80b0591ceda287ec87a45cb512c39e05444c Author: Jean-Yves Avenard <j...@apple.com> Date: 2024-02-26 (Mon, 26 Feb 2024)
Changed paths: A LayoutTests/media/media-source/media-source-canplaythrough-withfuturegap-expected.txt A LayoutTests/media/media-source/media-source-canplaythrough-withfuturegap.html M LayoutTests/media/media-source/media-source-webm-append-buffer-after-abort-expected.txt M LayoutTests/media/media-source/media-source-webm-append-buffer-after-abort.html M LayoutTests/media/video-test.js M Source/WebCore/Modules/mediasource/ManagedMediaSource.cpp M Source/WebCore/Modules/mediasource/ManagedMediaSource.h M Source/WebCore/Modules/mediasource/MediaSource.cpp M Source/WebCore/Modules/mediasource/MediaSource.h M Source/WebCore/Modules/mediasource/SourceBuffer.cpp M Source/WebCore/Modules/mediasource/SourceBuffer.h M Source/WebCore/platform/graphics/SourceBufferPrivate.cpp Log Message: ----------- MSE player will have readyState oscillate between readyState HAVE_CURRENT_DATA and HAVE_ENOUGH_DATA https://bugs.webkit.org/show_bug.cgi?id=270050 rdar://123597692 Reviewed by Eric Carlson. 272762@main incorrectly assumed that if we had buffered data 3s in the future, the media could always be played through, ignoring any potential gap ahead which would have stalled playback. Since following 272762@main, the SourceBuffer no longer monitors its own append rate there's no need to have the SourceBuffer check for its own buffered range, the MediaSource has more information about it which accounts for different gaps between SourceBuffer. We use the isBuffered() function that was before only used for ManagedMediaSource to determine the level of buffered data ahead of currentTime and move it to MediaSource. * LayoutTests/media/media-source/media-source-canplaythrough-withfuturegap-expected.txt: Added. * LayoutTests/media/media-source/media-source-canplaythrough-withfuturegap.html: Added. * LayoutTests/media/media-source/media-source-webm-append-buffer-after-abort-expected.txt: * LayoutTests/media/media-source/media-source-webm-append-buffer-after-abort.html: The test was invalid. It assumed that canplaythrough would be fired if we only added 2s of data. There's no specs stating as such. Only should the MediaSource be ended would it guarantee that the readyState moved to HAVE_ENOUGH_DATA while being paused. Correct and amend the test. * LayoutTests/media/video-test.js: Add testExpectedEventuallySilent. Sometimes the order in which events are fired is not deterministic. We don't want to log them to prevent expectations failure, but we need to check the event is received. (testExpectedEventually): (testExpectedEventuallyWhileRunningBetweenTests): * Source/WebCore/Modules/mediasource/ManagedMediaSource.cpp: (WebCore::ManagedMediaSource::isBuffered const): Deleted. * Source/WebCore/Modules/mediasource/ManagedMediaSource.h: * Source/WebCore/Modules/mediasource/MediaSource.cpp: (WebCore::MediaSource::isBuffered const): (WebCore::MediaSource::monitorSourceBuffers): * Source/WebCore/Modules/mediasource/MediaSource.h: * Source/WebCore/Modules/mediasource/SourceBuffer.cpp: (WebCore::SourceBuffer::canPlayThroughRange): Deleted. * Source/WebCore/Modules/mediasource/SourceBuffer.h: * Source/WebCore/platform/graphics/SourceBufferPrivate.cpp: (WebCore::SourceBufferPrivate::processMediaSample): Canonical link: https://commits.webkit.org/275348@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes