Title: [276497] trunk/Source
Revision
276497
Author
[email protected]
Date
2021-04-23 07:32:36 -0700 (Fri, 23 Apr 2021)

Log 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):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (276496 => 276497)


--- trunk/Source/WebCore/ChangeLog	2021-04-23 14:07:46 UTC (rev 276496)
+++ trunk/Source/WebCore/ChangeLog	2021-04-23 14:32:36 UTC (rev 276497)
@@ -1,3 +1,18 @@
+2021-04-23  Youenn Fablet  <[email protected]>
+
+        Handle rotation correctly in WebRTC GPUProcess rendering pipeline
+        https://bugs.webkit.org/show_bug.cgi?id=224927
+        <rdar://76915991>
+
+        Reviewed by Eric Carlson.
+
+        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):
+
 2021-04-23  Philippe Normand  <[email protected]>
 
         Unreviewed, GStreamer follow-up after r276493

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h (276496 => 276497)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h	2021-04-23 14:07:46 UTC (rev 276496)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h	2021-04-23 14:32:36 UTC (rev 276497)
@@ -60,6 +60,7 @@
 
     enum class ShouldUpdateRootLayer { No, Yes };
     void updateRootLayerBoundsAndPosition(CGRect, MediaSample::VideoRotation, ShouldUpdateRootLayer);
+    void updateRootLayerAffineTransform(CGAffineTransform);
 
     void initialize(bool hideRootLayer, IntSize, CompletionHandler<void(bool didSucceed)>&&) final;
     bool didFail() const final;

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm (276496 => 276497)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm	2021-04-23 14:07:46 UTC (rev 276496)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm	2021-04-23 14:32:36 UTC (rev 276497)
@@ -248,6 +248,13 @@
     return m_rootLayer.get().bounds;
 }
 
+void LocalSampleBufferDisplayLayer::updateRootLayerAffineTransform(CGAffineTransform transform)
+{
+    runWithoutAnimations([&] {
+        m_rootLayer.get().affineTransform = transform;
+    });
+}
+
 void LocalSampleBufferDisplayLayer::updateAffineTransform(CGAffineTransform transform)
 {
     runWithoutAnimations([&] {

Modified: trunk/Source/WebKit/ChangeLog (276496 => 276497)


--- trunk/Source/WebKit/ChangeLog	2021-04-23 14:07:46 UTC (rev 276496)
+++ trunk/Source/WebKit/ChangeLog	2021-04-23 14:32:36 UTC (rev 276497)
@@ -1,3 +1,16 @@
+2021-04-23  Youenn Fablet  <[email protected]>
+
+        Handle rotation correctly in WebRTC GPUProcess rendering pipeline
+        https://bugs.webkit.org/show_bug.cgi?id=224927
+        <rdar://76915991>
+
+        Reviewed by Eric Carlson.
+
+        Instead of updating the inner layer, update the root layer.
+
+        * GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
+        (WebKit::RemoteSampleBufferDisplayLayer::updateAffineTransform):
+
 2021-04-23  Carlos Garcia Campos  <[email protected]>
 
         [GTK] Implement PageClient::makeViewBlank()

Modified: trunk/Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp (276496 => 276497)


--- trunk/Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp	2021-04-23 14:07:46 UTC (rev 276496)
+++ trunk/Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp	2021-04-23 14:32:36 UTC (rev 276497)
@@ -78,7 +78,7 @@
 
 void RemoteSampleBufferDisplayLayer::updateAffineTransform(CGAffineTransform transform)
 {
-    m_sampleBufferDisplayLayer->updateAffineTransform(transform);
+    m_sampleBufferDisplayLayer->updateRootLayerAffineTransform(transform);
 }
 
 void RemoteSampleBufferDisplayLayer::updateBoundsAndPosition(CGRect bounds, WebCore::MediaSample::VideoRotation rotation)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to