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

Reply via email to