Title: [234300] branches/safari-606-branch/Source/WebCore
Revision
234300
Author
[email protected]
Date
2018-07-26 23:02:07 -0700 (Thu, 26 Jul 2018)

Log Message

Cherry-pick r234051. rdar://problem/42451584

    First Auto-PiP from Fullscreen too small & animation blocks
    https://bugs.webkit.org/show_bug.cgi?id=187745
    <rdar://problem/42316583>

    Reviewed by Jon Lee.

    1) When Auto-PiPing, we don't have the luxury of setting up the fullscreen state
    ahead of time; we get notified that PiP has already started. The area of the code
    which does this just-in-time setup needs to set the video layer's frame so that the
    transform within the PiP window is correct.

    2) We generate a placeholder image when going into fullscreen, but we need to do
    so synchronously. Create the AVPlayerItemVideoOutput up front at AVPlayerItem creation
    time wherever AVPIVO is available.

    * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
    (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
    * platform/ios/VideoFullscreenInterfaceAVKit.mm:
    (VideoFullscreenInterfaceAVKit::doSetup):

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234051 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-606-branch/Source/WebCore/ChangeLog (234299 => 234300)


--- branches/safari-606-branch/Source/WebCore/ChangeLog	2018-07-27 06:02:05 UTC (rev 234299)
+++ branches/safari-606-branch/Source/WebCore/ChangeLog	2018-07-27 06:02:07 UTC (rev 234300)
@@ -1,5 +1,54 @@
 2018-07-26  Babak Shafiei  <[email protected]>
 
+        Cherry-pick r234051. rdar://problem/42451584
+
+    First Auto-PiP from Fullscreen too small & animation blocks
+    https://bugs.webkit.org/show_bug.cgi?id=187745
+    <rdar://problem/42316583>
+    
+    Reviewed by Jon Lee.
+    
+    1) When Auto-PiPing, we don't have the luxury of setting up the fullscreen state
+    ahead of time; we get notified that PiP has already started. The area of the code
+    which does this just-in-time setup needs to set the video layer's frame so that the
+    transform within the PiP window is correct.
+    
+    2) We generate a placeholder image when going into fullscreen, but we need to do
+    so synchronously. Create the AVPlayerItemVideoOutput up front at AVPlayerItem creation
+    time wherever AVPIVO is available.
+    
+    * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+    (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
+    * platform/ios/VideoFullscreenInterfaceAVKit.mm:
+    (VideoFullscreenInterfaceAVKit::doSetup):
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@234051 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2018-07-20  Jer Noble  <[email protected]>
+
+            First Auto-PiP from Fullscreen too small & animation blocks
+            https://bugs.webkit.org/show_bug.cgi?id=187745
+            <rdar://problem/42316583>
+
+            Reviewed by Jon Lee.
+
+            1) When Auto-PiPing, we don't have the luxury of setting up the fullscreen state
+            ahead of time; we get notified that PiP has already started. The area of the code
+            which does this just-in-time setup needs to set the video layer's frame so that the
+            transform within the PiP window is correct.
+
+            2) We generate a placeholder image when going into fullscreen, but we need to do
+            so synchronously. Create the AVPlayerItemVideoOutput up front at AVPlayerItem creation
+            time wherever AVPIVO is available.
+
+            * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+            (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
+            * platform/ios/VideoFullscreenInterfaceAVKit.mm:
+            (VideoFullscreenInterfaceAVKit::doSetup):
+
+2018-07-26  Babak Shafiei  <[email protected]>
+
         Cherry-pick r234044. rdar://problem/42433225
 
     REGRESSION(r233969): ASSERT in -[WebAVPlayerLayer setVideoGravity:]

Modified: branches/safari-606-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (234299 => 234300)


--- branches/safari-606-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm	2018-07-27 06:02:05 UTC (rev 234299)
+++ branches/safari-606-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm	2018-07-27 06:02:07 UTC (rev 234300)
@@ -1096,7 +1096,7 @@
     }
 #endif
 
-#if PLATFORM(WATCHOS)
+#if HAVE(AVFOUNDATION_VIDEO_OUTPUT)
     createVideoOutput();
 #endif
 

Modified: branches/safari-606-branch/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm (234299 => 234300)


--- branches/safari-606-branch/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm	2018-07-27 06:02:05 UTC (rev 234299)
+++ branches/safari-606-branch/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm	2018-07-27 06:02:07 UTC (rev 234300)
@@ -1668,9 +1668,12 @@
 
     WebAVPlayerLayer *playerLayer = (WebAVPlayerLayer *)[m_playerLayerView playerLayer];
 
-    [playerLayer setModelVideoLayerFrame:CGRectMake(0, 0, m_inlineRect.width(), m_inlineRect.height())];
+    auto modelVideoLayerFrame = CGRectMake(0, 0, m_inlineRect.width(), m_inlineRect.height());
+    [playerLayer setModelVideoLayerFrame:modelVideoLayerFrame];
     [playerLayer setVideoDimensions:[playerController() contentDimensions]];
     playerLayer.fullscreenInterface = this;
+    if (m_videoFullscreenModel)
+        m_videoFullscreenModel->setVideoLayerFrame(modelVideoLayerFrame);
 
     if (!m_playerViewController)
         m_playerViewController = adoptNS([[WebAVPlayerViewController alloc] initWithFullscreenInterface:this]);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to