Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: d3327c9d179d467d23ec50a3c934923310e07779
      
https://github.com/WebKit/WebKit/commit/d3327c9d179d467d23ec50a3c934923310e07779
  Author: Phinehas Fuachie <[email protected]>
  Date:   2026-08-06 (Thu, 06 Aug 2026)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/CMakeLists.txt
    M Source/WebCore/DerivedSources-input.xcfilelist
    M Source/WebCore/DerivedSources.make
    M Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp
    M Source/WebCore/Modules/mediacontrols/MediaControlsHost.h
    M Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl
    M Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js
    M Source/WebCore/Modules/modern-media-controls/js-files
    A 
Source/WebCore/Modules/modern-media-controls/media/spatial-video-support.js

  Log Message:
  -----------
  Spatial/projected video rendering in macOS and iOS media controls 
(experimental)
https://bugs.webkit.org/show_bug.cgi?id=319971
rdar://182894970

Reviewed by Andy Estes.

Add an experimental renderer that displays projected/spatial (APMP) video — 
360°/180°
equirectangular, fisheye, and parametric wide-FOV — on a WebGL mesh inside the 
media controls,
letting the viewer drag to look around. Gated behind the SpatialVideoRendering 
feature flag
(preview, off by default).

The renderer is a MediaControllerSupport subclass. It uses a WebGL2 context so 
the non-power-of-two
video frame can be mipmapped (with anisotropic filtering) to avoid shimmer in 
minified regions,
uploads frames via requestVideoFrameCallback so that work tracks the decoded 
frame rate rather than
the display refresh, and feathers the content's outer edge so non-360 
projections blend out instead
of ending on a hard boundary.

The projection kind and horizontal field of view are read from the parsed 
ImmersiveVideoMetadata
via a MediaControlsHost accessor rather than the public VideoTrackConfiguration 
JS API, so enabling
the feature does not expose the Track Configuration API to web content. An 
x-webkit-spatial
attribute (360 | 180 | fisheye | wfov) remains as an explicit override for 
content without
immersive metadata.

Canonical link: https://commits.webkit.org/318691@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to