Bug 211945

Summary: Implement HTMLVideoElement.requestVideoFrameCallback()
Product: WebKit Reporter: Thomas Steiner <tomac>
Component: MediaAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Enhancement CC: chi187, chrisguttandin, eric.carlson, glefebvr, graouts, jer.noble, juberti, kkinnunen, oren.me, pnormand, simon.fraser, webkit-bug-importer, will.morgan, youennf
Priority: P2 Keywords: InRadar
Version: Safari Technology Preview   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 231803, 231945, 233185, 233186, 233306    
Bug Blocks:    

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.
Comment 3 Thomas Steiner 2022-02-19 10:53:20 PST
This has landed. Thank you!