Bug 236755 - [compat] seeked event should be fired once the current frame has been displayed.
Summary: [compat] seeked event should be fired once the current frame has been displayed.
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: Other
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2022-02-16 23:04 PST by Jean-Yves Avenard [:jya]
Modified: 2022-02-16 23:40 PST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jean-Yves Avenard [:jya] 2022-02-16 23:04:07 PST
Consider the following page:

```
<html>
<script>
    async function init()
    {
        let canvas = document.getElementsByTagName('canvas')[0];
        let ms = new MediaSource();
        let v = document.createElement("video");
        v.src = URL.createObjectURL(ms);
        await once(ms, 'sourceopen');
        let videosb = ms.addSourceBuffer("video/webm; codecs=vp8");
        v.currentTime = 1.0;
        await Promise.all([fetchAndLoad(videosb, 'content/test-vp8-hiddenframes', [''], '.webm') , once(v, 'loadedmetadata'), once(v, 'seeked')]);
        canvas.width = v.videoWidth;
        canvas.height = v.videoHeight;
        let ctx = canvas.getContext("2d");
        ctx.drawImage(v, 0, 0);
    }
</script>
<body onload="init();">
<canvas/>
</body>
```

This will create a video element, attach media source, seek to 1s and wait for the seek to complete to then copy the video frame to the canvas.

With Firefox and Chrome, the frame display in the canvas is the video frame at t=1s as expected

However, in Safari, the frame displayed is of t=0s. 
This makes it difficult to create reftest for checking bug 236754 as you can't ever guarantee which frame is currently displayed on screen.
Comment 1 Radar WebKit Bug Importer 2022-02-16 23:04:26 PST
<rdar://problem/89070387>