[webkit-changes] [WebKit/WebKit] f8df16: [Cocoa] MediaCapabilities spatial rendering checks...

Eric Carlson noreply at github.com
Mon Dec 4 13:09:17 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f8df1646f208282f5b000bf105beebd2e536a798
      https://github.com/WebKit/WebKit/commit/f8df1646f208282f5b000bf105beebd2e536a798
  Author: Eric Carlson <eric.carlson at apple.com>
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
    M Source/WebCore/PAL/pal/cf/AudioToolboxSoftLink.cpp
    M Source/WebCore/PAL/pal/cf/AudioToolboxSoftLink.h
    M Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.h
    M Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.h
    M Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.mm
    M Source/WebCore/PAL/pal/spi/cocoa/AudioToolboxSPI.h
    M Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp
    M Source/WebCore/platform/audio/PlatformMediaSessionManager.h
    M Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.h
    M Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm
    M Source/WebCore/platform/audio/ios/MediaSessionHelperIOS.h
    M Source/WebCore/platform/audio/ios/MediaSessionHelperIOS.mm
    M Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.h
    M Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm
    M Source/WebCore/platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp
    M Source/WebKit/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp
    M Source/WebKit/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.h
    M Source/WebKit/Shared/mac/MediaFormatReader/CoreMediaWrapped.cpp
    M Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp
    M Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.h
    M Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.messages.in

  Log Message:
  -----------
  [Cocoa] MediaCapabilities spatial rendering checks fail on capable HW with built-in sound output
https://bugs.webkit.org/show_bug.cgi?id=265614
rdar://114214068

Reviewed by Jer Noble.

On macOS, use SPI got get spatial audio preferences to see if spatial audio playback is
supported. On iOS, switch from using the shared audio presentation output context to
AVAudioSession, which makes it possible to see if the currently audio route has a port
that supports spatial playback.

* Source/WebCore/PAL/pal/cf/AudioToolboxSoftLink.cpp:
* Source/WebCore/PAL/pal/cf/AudioToolboxSoftLink.h:
* Source/WebCore/PAL/pal/cf/CoreMediaSoftLink.h:
* Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.h:
* Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.mm:
* Source/WebCore/PAL/pal/spi/cocoa/AudioToolboxSPI.h:
* Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::setSupportsSpatialAudioPlayback):
(WebCore::PlatformMediaSessionManager::supportsSpatialAudioPlaybackForConfiguration):
* Source/WebCore/platform/audio/PlatformMediaSessionManager.h:
(WebCore::PlatformMediaSessionManager::supportsSpatialAudioPlayback):
* Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.h:
* Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):
(WebCore::MediaSessionManagerCocoa::updateSessionState):
(WebCore::MediaSessionManagerCocoa::supportsSpatialAudioPlaybackForConfiguration):
* Source/WebCore/platform/audio/ios/MediaSessionHelperIOS.h:
* Source/WebCore/platform/audio/ios/MediaSessionHelperIOS.mm:
(MediaSessionHelper::activeAudioRouteSupportsSpatialPlaybackDidChange):
(MediaSessionHelper::updateActiveAudioRouteSupportsSpatialPlayback):
(MediaSessionHelper::setActiveAudioRouteSupportsSpatialPlayback):
(-[WebMediaSessionHelper initWithCallback:]):
(-[WebMediaSessionHelper spatialPlaybackCapabilitiesChanged:]):
* Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.h:
* Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::activeAudioRouteSupportsSpatialPlaybackDidChange):
(WebCore::MediaSessionManagerCocoa::supportsSpatialAudioPlaybackForConfiguration):
* Source/WebCore/platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:
(WebCore::computeMediaCapabilitiesInfo):
* Source/WebKit/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp:
(WebKit::RemoteMediaSessionHelperProxy::activeAudioRouteSupportsSpatialPlaybackDidChange):
* Source/WebKit/GPUProcess/media/ios/RemoteMediaSessionHelperProxy.h:
* Source/WebKit/Shared/mac/MediaFormatReader/CoreMediaWrapped.cpp:
(WebKit::wrapperVTable):
* Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:
(WebKit::RemoteMediaSessionHelper::activeAudioRouteSupportsSpatialPlaybackDidChange):
* Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.h:
* Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.messages.in:

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




More information about the webkit-changes mailing list