[webkit-changes] [WebKit/WebKit] ec2913: MediaPlayerPrivateMediaStreamAVFObjC needs to stop...
Per Arne Vollan
noreply at github.com
Wed Mar 15 13:26:03 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ec2913e079230d38595455a183367ed339e14592
https://github.com/WebKit/WebKit/commit/ec2913e079230d38595455a183367ed339e14592
Author: Per Arne Vollan <pvollan at apple.com>
Date: 2023-03-15 (Wed, 15 Mar 2023)
Changed paths:
M LayoutTests/platform/ios/TestExpectations
M Source/WebCore/platform/graphics/avfoundation/SampleBufferDisplayLayer.h
M Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h
M Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm
M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h
M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm
M Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp
M Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h
M Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in
M Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp
M Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h
Log Message:
-----------
MediaPlayerPrivateMediaStreamAVFObjC needs to stop double-hosting layers
https://bugs.webkit.org/show_bug.cgi?id=253761
rdar://106576224
Reviewed by Youenn Fablet and Brent Fulgham.
MediaPlayerPrivateMediaStreamAVFObjC needs to stop double-hosting layers to allow for CARenderServer blocking.
This patch overrides layerHostingContextID() for MediaPlayerPrivateMediaStreamAVFObjC, which will use the
hosting context ID from SampleBufferDisplayLayer. SampleBufferDisplayLayer receives this context ID from the
GPU process. Additionally, setVideoInlineSizeFenced() is overridden to set the size of the
SampleBufferDisplayLayer. When EWS was processing this patch, I saw timeouts of the test
fast/mediastream/getUserMedia-to-canvas-2.html on iOS simulator. I have not been able to reproduce this
locally. I marked the test as flaky, and filed https://bugs.webkit.org/show_bug.cgi?id=253959 to investigate
this further.
LayoutTests/platform/ios/TestExpectations:
* Source/WebCore/platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
(WebCore::SampleBufferDisplayLayer::hostingContextID const):
* Source/WebCore/platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
* Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
* Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
(WebCore::LocalSampleBufferDisplayLayer::updateBoundsAndPosition):
* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::hostingContextID const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVideoInlineSizeFenced):
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
(WebKit::RemoteSampleBufferDisplayLayer::updateBoundsAndPosition):
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:
* Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
(WebKit::SampleBufferDisplayLayer::updateBoundsAndPosition):
* Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
Canonical link: https://commits.webkit.org/261709@main
More information about the webkit-changes
mailing list