Bug 211945

Summary: Feature Request: Implement HTMLVideoElement.requestVideoFrameCallback()
Product: WebKit Reporter: Thomas Steiner <tomac>
Component: MediaAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: chi187, chrisguttandin, eric.carlson, glefebvr, jer.noble, juberti, kkinnunen, oren.me, pnormand, simon.fraser, webkit-bug-importer, will.morgan
Priority: P2 Keywords: InRadar
Version: Safari Technology Preview   
Hardware: Unspecified   
OS: Unspecified   

Description Thomas Steiner 2020-05-15 02:22:17 PDT
HTMLVideoElement.requestVideoFrameCallback() allows web authors to register a callback which runs in the rendering steps when a new video frame is sent to the compositor. This is intended to allow web authors to do efficient per-video-frame processing of video, such as video processing and painting to a canvas, video analysis, or synchronization with external audio sources. This API has support from Mozilla (https://mozilla.github.io/standards-positions/#requestVideoFrameCallback) and is already implemented in Chromium.

Specification: https://wicg.github.io/video-rvfc/
Comment 1 Radar WebKit Bug Importer 2020-05-15 12:23:50 PDT
<rdar://problem/63284373>
Comment 2 Will Morgan 2020-12-08 06:41:42 PST
This would really help synchronise WebGL UIs dependent on a video feed showing the device camera, or a webcam. Being able to link the requested frame rate from the camera and only render when a new frame is available would be good to maximise performance and battery life.

Render accuracy for our apps on Chrome has improved since adopting the API, and it would be great to see it on Safari/Webkit, too.