Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c21f430ed4929c698367a082cdd08db61a7178c0
https://github.com/WebKit/WebKit/commit/c21f430ed4929c698367a082cdd08db61a7178c0
Author: Phinehas Fuachie <[email protected]>
Date: 2026-09-30 (Wed, 30 Sep 2026)
Changed paths:
M
Source/WebCore/Modules/modern-media-controls/media/spatial-video-support.js
Log Message:
-----------
Spatial video renderer cannot display equi-angular cubemap video
(experimental)
https://bugs.webkit.org/show_bug.cgi?id=325735
rdar://188761220
Reviewed by Andy Estes.
Equi-angular cubemap is how 360 video is commonly delivered rather than
authored -- YouTube has
served its 360 catalog as EAC since 2017 -- but the renderer had no projection
value to declare it
and no mesh to draw it, so a page serving EAC got no renderer at all.
Add x-webkit-projection="eac" and "equiangularcubemap", drawn by a tessellated
cube whose per-vertex
texture coordinates carry the equi-angular remap, so the fragment shader is
unchanged. Each face is
its own grid, which keeps triangles from straddling atlas tiles, and each
tile's coordinates are inset
by half a texel. The face layout was verified against ffmpeg v360=equirect:eac
output over two sources
and two atlas sizes, and by cube-edge continuity.
Container metadata deliberately does not select this projection. Nothing
produces
VideoProjectionMetadataKind::EquiAngularCubemap, and auto-engaging on cubemap
content would draw over
pages such as YouTube that already render 360 themselves in their own canvas.
Cap TEXTURE_MAX_LEVEL while this projection is active so the per-frame
generateMipmap cannot blend
neighbouring cube faces into each other at coarse mipmap levels.
* Source/WebCore/Modules/modern-media-controls/media/spatial-video-support.js:
(SpatialVideoSupport.prototype._initGL):
(SpatialVideoSupport.prototype._buildMesh):
(SpatialVideoSupport.prototype._applyMipmapLimit):
(SpatialVideoSupport.prototype._maximumMipmapLevel):
(SpatialVideoSupport.prototype._makeEquiAngularCubemap):
(equiAngularCubemapDirection):
(rotateUnitSquare):
Canonical link: https://commits.webkit.org/322316@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications