Bug 224960

Summary: Canvas capture stream should always emit its first frame.
Product: WebKit Reporter: Jean-Yves Avenard [:jya] <jean-yves.avenard>
Component: WebRTCAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: webkit-bug-importer, youennf
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=220972

Description Jean-Yves Avenard [:jya] 2021-04-22 17:06:48 PDT
Seen in bug 220972.

The test video-vp8-videorange.html added draw into a canvas and create a MediaStream that is passed to a RTCPeerConnection.

The remote RTCPeerConnection's MediaStream is then set as source for a video element we then wait for the video element's play promise to be resolved to continue.

The play promise won't be resolved unless you continuously update the canvas.

It appears that MediaPlayerPrivateMediaStreamAVFObjC::updateReadyState() will not move past HAVE_METADATA if the canvas emitted its frame before the video element was setup.
Comment 1 Radar WebKit Bug Importer 2021-04-26 09:23:08 PDT
<rdar://problem/77160576>