[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