NEW302514
[MSE] MediaSourcePrivate's mediaPlayerReadyState calculation should transition to HAVE_CURRENT_DATA only once video frame has displayed
https://bugs.webkit.org/show_bug.cgi?id=302514
Summary [MSE] MediaSourcePrivate's mediaPlayerReadyState calculation should transitio...
Jean-Yves Avenard [:jya]
Reported 2025-11-13 22:10:55 PST
The MSE spec currently defines the value of the HTMLMediaElements's readyState to be based on what data is buffered. It takes no account if a frame is actually displayed or not. Both WebKit's MSE platform player implementation: MediaPlayerPrivateMediaSourceAVFObjC and MediaPlayerPrivateGStreamerMSE will not transition to HAVE_CURRENT_DATA until a video frame is being displayed. This behaviour isn't per spec but has been found to be required to guarantee various tests to pass consistently. For example, a common testing pattern is to seek at a particular time and perform a reftest. So both MSE's MediaPlayerPrivate will not fire the seeked event until a frame has been displayed (GStreamer's didPreroll() and AVFoundation's hasFirstFrameAvailable) With bug 302242 we want the MediaSourcePrivate to become the reference when calculating the MediaPlayer's readyState. As such, to maintain equivalence on how MediaPlayerPrivateMediaSourceAVFObjC and MediaPlayerPrivateGStreamerMSE behave, we must now take into account if a frame is being displayed or not.
Attachments
Radar WebKit Bug Importer
Comment 1 2025-11-13 22:11:01 PST
Jean-Yves Avenard [:jya]
Comment 2 2025-11-13 22:31:06 PST
Note You need to log in before you can comment on or make changes to this bug.