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