Title: [275662] trunk/Source/WebCore
Revision
275662
Author
[email protected]
Date
2021-04-08 11:17:31 -0700 (Thu, 08 Apr 2021)

Log Message

Broken transition when video player with MediaStream changes size
https://bugs.webkit.org/show_bug.cgi?id=224161
<rdar://problem/76366061>

Reviewed by Eric Carlson.

In case of animation that changes the root layer bounds, we need to synchronously update
the buffer layer as well.

Manually tested.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::rootLayerBoundsDidChange):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (275661 => 275662)


--- trunk/Source/WebCore/ChangeLog	2021-04-08 18:15:05 UTC (rev 275661)
+++ trunk/Source/WebCore/ChangeLog	2021-04-08 18:17:31 UTC (rev 275662)
@@ -1,3 +1,19 @@
+2021-04-08  Youenn Fablet  <[email protected]>
+
+        Broken transition when video player with MediaStream changes size
+        https://bugs.webkit.org/show_bug.cgi?id=224161
+        <rdar://problem/76366061>
+
+        Reviewed by Eric Carlson.
+
+        In case of animation that changes the root layer bounds, we need to synchronously update
+        the buffer layer as well.
+
+        Manually tested.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::rootLayerBoundsDidChange):
+
 2021-04-08  Simon Fraser  <[email protected]>
 
         Compact GraphicsContextState

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm (275661 => 275662)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm	2021-04-08 18:15:05 UTC (rev 275661)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm	2021-04-08 18:17:31 UTC (rev 275662)
@@ -1048,7 +1048,9 @@
 
 void MediaPlayerPrivateMediaStreamAVFObjC::rootLayerBoundsDidChange()
 {
-    m_shouldUpdateDisplayLayer = true;
+    auto locker = holdLock(m_sampleBufferDisplayLayerLock);
+    if (m_sampleBufferDisplayLayer)
+        m_sampleBufferDisplayLayer->updateBoundsAndPosition(m_sampleBufferDisplayLayer->rootLayer().bounds, m_videoRotation);
 }
 
 WTFLogChannel& MediaPlayerPrivateMediaStreamAVFObjC::logChannel() const
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to