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

Reply via email to