⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 276497 in webkit


Ignore:
Timestamp:
Apr 23, 2021, 7:32:36 AM (5 years ago)
Author:
youenn@apple.com
Message:

Handle rotation correctly in WebRTC GPUProcess rendering pipeline
https://bugs.webkit.org/show_bug.cgi?id=224927
<rdar://76915991>

Reviewed by Eric Carlson.

Source/WebCore:

Add a routine to update the affine transformn of the root layer.
Manually tested.

  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:

(WebCore::LocalSampleBufferDisplayLayer::updateRootLayerAffineTransform):

Source/WebKit:

Instead of updating the inner layer, update the root layer.

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:

(WebKit::RemoteSampleBufferDisplayLayer::updateAffineTransform):

Location:
trunk/Source
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r276495 r276497  
     12021-04-23  Youenn Fablet  <youenn@apple.com>
     2
     3        Handle rotation correctly in WebRTC GPUProcess rendering pipeline
     4        https://bugs.webkit.org/show_bug.cgi?id=224927
     5        <rdar://76915991>
     6
     7        Reviewed by Eric Carlson.
     8
     9        Add a routine to update the affine transformn of the root layer.
     10        Manually tested.
     11
     12        * platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
     13        * platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
     14        (WebCore::LocalSampleBufferDisplayLayer::updateRootLayerAffineTransform):
     15
    1162021-04-23  Philippe Normand  <pnormand@igalia.com>
    217
  • trunk/Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h

    r264312 r276497  
    6161    enum class ShouldUpdateRootLayer { No, Yes };
    6262    void updateRootLayerBoundsAndPosition(CGRect, MediaSample::VideoRotation, ShouldUpdateRootLayer);
     63    void updateRootLayerAffineTransform(CGAffineTransform);
    6364
    6465    void initialize(bool hideRootLayer, IntSize, CompletionHandler<void(bool didSucceed)>&&) final;
  • trunk/Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm

    r274306 r276497  
    249249}
    250250
     251void LocalSampleBufferDisplayLayer::updateRootLayerAffineTransform(CGAffineTransform transform)
     252{
     253    runWithoutAnimations([&] {
     254        m_rootLayer.get().affineTransform = transform;
     255    });
     256}
     257
    251258void LocalSampleBufferDisplayLayer::updateAffineTransform(CGAffineTransform transform)
    252259{
  • trunk/Source/WebKit/ChangeLog

    r276490 r276497  
     12021-04-23  Youenn Fablet  <youenn@apple.com>
     2
     3        Handle rotation correctly in WebRTC GPUProcess rendering pipeline
     4        https://bugs.webkit.org/show_bug.cgi?id=224927
     5        <rdar://76915991>
     6
     7        Reviewed by Eric Carlson.
     8
     9        Instead of updating the inner layer, update the root layer.
     10
     11        * GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
     12        (WebKit::RemoteSampleBufferDisplayLayer::updateAffineTransform):
     13
    1142021-04-23  Carlos Garcia Campos  <cgarcia@igalia.com>
    215
  • trunk/Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp

    r264312 r276497  
    7979void RemoteSampleBufferDisplayLayer::updateAffineTransform(CGAffineTransform transform)
    8080{
    81     m_sampleBufferDisplayLayer->updateAffineTransform(transform);
     81    m_sampleBufferDisplayLayer->updateRootLayerAffineTransform(transform);
    8282}
    8383
Note: See TracChangeset for help on using the changeset viewer.