Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4187f71b1153e0f79384580df9abd135e04a37e1
      
https://github.com/WebKit/WebKit/commit/4187f71b1153e0f79384580df9abd135e04a37e1
  Author: Jean-Yves Avenard <[email protected]>
  Date:   2025-08-15 (Fri, 15 Aug 2025)

  Changed paths:
    M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h
    M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm
    M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h
    M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm

  Log Message:
  -----------
  [visionOS] Transition from fullscreen to dock isn't as smooth as it could be
https://bugs.webkit.org/show_bug.cgi?id=297377
rdar://158274410

Reviewed by Andy Estes.

Adopt VideoMediaSampleRenderer::changeRenderer in MediaPlayerPrivateWebM

We no longer need to stage an AVSBDL or AVSBVR through an intermediary
VideoMediaSampleRenderer when going in or out of dock mode. We can simply
change from one to another without losing the currently displayed frame
and without performing an internal seek.

Ensuring a much smoother fullscreen animation, while simplifying the code.

For now we only adopt changeRenderer for WebM. MSE player will be done in
a follow-up change.

Manually tested on device.

* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm:
 - Remove StagedLayer and StagedVideoRenderer state, we can directly switch
   between Layer from/to VideoRenderer.
 - As the VideoMediaSampleRenderer enqueues samples on another thread 
concurrently
   it is important to delay the destruction of the AVSBDL or the AVSBVR until
   after the change of renderer has completed.
* Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm:
 - Stop propagating error using NSNotificationCenter, there's a dedicated 
callback for that and webm only ever use a decompression session
 - VideoMediaSampleRenderer::changeRenderer API
 - Clarify with assertion on which thread a renderer getter method can be 
called.

Canonical link: https://commits.webkit.org/298745@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to