Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c0688ab80d7ca38e2a2ddc6bb411b357ccb46a4a
https://github.com/WebKit/WebKit/commit/c0688ab80d7ca38e2a2ddc6bb411b357ccb46a4a
Author: Jean-Yves Avenard <[email protected]>
Date: 2025-06-30 (Mon, 30 Jun 2025)
Changed paths:
A LayoutTests/media/media-source/content/test-spatial-manifest.json
A LayoutTests/media/media-source/content/test-spatial.mp4
A
LayoutTests/media/media-source/media-source-paint-stereo-to-canvas-expected.txt
A LayoutTests/media/media-source/media-source-paint-stereo-to-canvas.html
M LayoutTests/platform/mac/TestExpectations
M Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.cpp
M Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.h
M Source/WebCore/html/HTMLMediaElement.cpp
M Source/WebCore/html/HTMLMediaElement.h
M Source/WebCore/platform/cocoa/VideoToolboxSoftLink.cpp
M Source/WebCore/platform/cocoa/VideoToolboxSoftLink.h
M Source/WebCore/platform/graphics/MediaPlayerEnums.h
M
Source/WebCore/platform/graphics/avfoundation/FormatDescriptionUtilities.cpp
M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h
M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm
M Source/WebCore/platform/graphics/cocoa/WebCoreDecompressionSession.h
M Source/WebCore/platform/graphics/cocoa/WebCoreDecompressionSession.mm
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/Internals.h
M Source/WebCore/testing/Internals.idl
M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
Log Message:
-----------
[Cocoa] Adopt
VTDecompressionSessionDecodeFrameWithMultiImageCapableOutputHandler to decode
stereo images
https://bugs.webkit.org/show_bug.cgi?id=295143
rdar://154516073
Reviewed by Jer Noble.
In 296748@main we fixed a regression caused by 295444@main. The change was
a simple temporary workaround to disable MediaSourcePrefersDecompressionSession
for spatial or immersive videos as WebCoreDecompressionSession didn't
decode stereo images. We now use the
VTDecompressionSessionDecodeFrameWithMultiImageCapableOutputHandler
method instead which can handle both images in CMSampleBuffer to decode.
We add support for decoding multi-images (stereo) samples and readback of
such images.
As such, we can revert 296748@main which is no longer needed.
We make WebCoreDecompression's WorkQueue a singleton. It simplifies the code
a bit and this workqueue carries very little load as all the object it uses
already
use their own workqueues.
Spatial portal manually tested on visionOS.
Added test to verify decoding and readback when playing a spatial video in
stereo mode.
* LayoutTests/media/media-source/content/test-spatial-manifest.json: Added.
* LayoutTests/media/media-source/content/test-spatial.mp4: Added.
*
LayoutTests/media/media-source/media-source-paint-stereo-to-canvas-expected.txt:
Added.
* LayoutTests/media/media-source/media-source-paint-stereo-to-canvas.html:
Added.
* Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.cpp: Adding dynamically linked
methods
* Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.h:
* Source/WebCore/platform/cocoa/VideoToolboxSoftLink.cpp: Adding dynamically
linked methods
* Source/WebCore/platform/cocoa/VideoToolboxSoftLink.h:
* Source/WebCore/platform/graphics/avfoundation/FormatDescriptionUtilities.cpp:
(WebCore::spatialVideoMetadataFromFormatDescription): Remove canLoad method for
symbols that will always be found.
* Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm:
(WebCore::VideoMediaSampleRenderer::enqueueSample): Revert 296748@main as it's
no longer needed.
(WebCore::VideoMediaSampleRenderer::decodeNextSampleIfNeeded):
(WebCore::VideoMediaSampleRenderer::imageForSample const): Handle multi-images
sample
(WebCore::VideoMediaSampleRenderer::assignResourceOwner): Amend to assign all
multi-images sample's IOSurfaces
Canonical link: https://commits.webkit.org/296854@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes