Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fcbb7a1f693fb471274776914171257eb48e08de https://github.com/WebKit/WebKit/commit/fcbb7a1f693fb471274776914171257eb48e08de Author: Andy Estes <aes...@apple.com> Date: 2024-02-15 (Thu, 15 Feb 2024)
Changed paths: M Source/WTF/wtf/Forward.h M Source/WebCore/Headers.cmake M Source/WebCore/SourcesCocoa.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj A Source/WebCore/platform/VideoReceiverEndpoint.h M Source/WebCore/platform/cocoa/PlaybackSessionModel.h M Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.h M Source/WebCore/platform/graphics/MediaPlayer.h M Source/WebCore/platform/graphics/MediaPlayerPrivate.h M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h A Source/WebCore/platform/graphics/cocoa/MediaPlayerCocoa.mm M Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm M Source/WebCore/platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.h M Source/WebCore/platform/mediastream/mac/ScreenCaptureKitSharingSessionManager.mm M Source/WebKit/GPUProcess/EntryPoint/Cocoa/XPCService/GPUServiceEntryPoint.mm M Source/WebKit/GPUProcess/GPUProcess.cpp M Source/WebKit/GPUProcess/GPUProcess.h M Source/WebKit/Platform/ios/PlaybackSessionInterfaceLMK.mm A Source/WebKit/Platform/ios/VideoReceiverEndpointMessage.h A Source/WebKit/Platform/ios/VideoReceiverEndpointMessage.mm A Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCEndpointMessages.h A Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCEndpointMessages.mm M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.h M Source/WebKit/SourcesCocoa.txt M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.h M Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Source/WebKit/WebKitSwift/LinearMediaKit/LinearMediaPlayer.swift M Source/WebKit/WebKitSwift/LinearMediaKit/WKSLinearMediaPlayer.h R Source/WebKit/WebProcess/cocoa/HandleXPCEndpointMessages.h R Source/WebKit/WebProcess/cocoa/HandleXPCEndpointMessages.mm Log Message: ----------- [Cocoa] Plumb a video receiver endpoint from LinearMediaPlayer to MediaPlayerPrivate https://bugs.webkit.org/show_bug.cgi?id=269490 rdar://123028396 Reviewed by Jer Noble. To support entity-based rendering in LinearMediaPlayer, we must pass a video receiver endpoint from LinearMediaPlayer to MediaPlayerPrivate so that it can be added as a target to AVPlayers and AVSampleBufferVideoRenderers in the GPU process. This PR adds that plumbing (but saves actually attaching the endpoint to AVFoundation objects for a later PR). Note that a video receiver endpoint object contains an xpc_endpoint_t, which is not a type we can serialize in CoreIPC. Like we do for other xpc_endpoint_ts, this PR sends it directly over the XPC connection from the UI process to the GPU process. * Source/WTF/wtf/Forward.h: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/platform/cocoa/PlaybackSessionModel.h: * Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.h: * Source/WebCore/platform/cocoa/PlaybackSessionModelMediaElement.mm: (WebCore::PlaybackSessionModelMediaElement::setVideoReceiverEndpoint): * Source/WebCore/platform/graphics/MediaPlayer.h: * Source/WebCore/platform/graphics/MediaPlayerPrivate.h: (WebCore::MediaPlayerPrivateInterface::setVideoReceiverEndpoint): * Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: * Source/WebCore/platform/ios/VideoReceiverEndpoint.h: Renamed from Source/WebKit/WebProcess/cocoa/HandleXPCEndpointMessages.mm. * Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm: * Source/WebKit/GPUProcess/EntryPoint/Cocoa/XPCService/GPUServiceEntryPoint.mm: (WebKit::initializeAuxiliaryProcess<GPUProcess>): Deleted. * Source/WebKit/GPUProcess/GPUProcess.cpp: (WebKit::GPUProcess::GPUProcess): (WebKit::GPUProcess::singleton): * Source/WebKit/GPUProcess/GPUProcess.h: * Source/WebKit/Platform/ios/PlaybackSessionInterfaceLMK.mm: (-[WKLinearMediaPlayerDelegate linearMediaPlayer:setVideoReceiverEndpoint:]): * Source/WebKit/Platform/ios/VideoReceiverEndpointMessage.h: Added. (WebKit::VideoReceiverEndpointMessage::messageName): (WebKit::VideoReceiverEndpointMessage::processIdentifier const): (WebKit::VideoReceiverEndpointMessage::playerIdentifier const): (WebKit::VideoReceiverEndpointMessage::endpoint const): * Source/WebKit/Platform/ios/VideoReceiverEndpointMessage.mm: Added. (WebKit::VideoReceiverEndpointMessage::VideoReceiverEndpointMessage): (WebKit::VideoReceiverEndpointMessage::decode): (WebKit::VideoReceiverEndpointMessage::encode const): * Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCEndpointMessages.h: Renamed from Source/WebKit/WebProcess/cocoa/HandleXPCEndpointMessages.h. * Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCEndpointMessages.mm: Renamed from Source/WebKit/WebProcess/cocoa/HandleXPCEndpointMessages.mm. (WebKit::handleLaunchServiceDatabaseMessage): (WebKit::handleVideoReceiverEndpointMessage): (WebKit::handleXPCEndpointMessage): * Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm: (WebKit::XPCServiceEventHandler): * Source/WebKit/SourcesCocoa.txt: * Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.h: * Source/WebKit/UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: (WebKit::PlaybackSessionModelContext::setVideoReceiverEndpoint): (WebKit::PlaybackSessionManagerProxy::setVideoReceiverEndpoint): * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Source/WebKit/WebKitSwift/LinearMediaKit/LinearMediaPlayer.swift: (WKSLinearMediaPlayer.setVideoReceiverEndpoint(_:)): * Source/WebKit/WebKitSwift/LinearMediaKit/WKSLinearMediaPlayer.h: Canonical link: https://commits.webkit.org/274801@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes