Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a538d16e607844ee32de2443f414d1dfa9ddc718
      
https://github.com/WebKit/WebKit/commit/a538d16e607844ee32de2443f414d1dfa9ddc718
  Author: Jean-Yves Avenard <[email protected]>
  Date:   2025-10-25 (Sat, 25 Oct 2025)

  Changed paths:
    M Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.h
    M Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.mm

  Log Message:
  -----------
  [visionOS] We do not need to teardown the inline layer when going into 
docking mode
https://bugs.webkit.org/show_bug.cgi?id=301442
rdar://163362289

Reviewed by Jer Noble.

To speed up the transition between figVideoTarget and AVSampleBufferDisplayLayer
we do not tear-down the AVSampleBufferDisplayLayer, instead we only remove it
from the synchronizer.
When we exit docking mode, we directly re-use this AVSBDL and start enqueueing
frame directly into it. This allows to reduce slightly the motion-hiccup
happening when exiting docking.

Additionally, in 302104@main we used a timer to determine when to release
the AVSampleBufferVideoRenderer holding the figVideoTarget.
Instead we use the signal from the UI process indicating that we have fully
exited docking, and the figVideoTarget is no longer visible.

Manually tested, testing infrastructure doesn't entering/exiting docking mode.
* Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.h:
* Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.mm:
(WebCore::AudioVideoRendererAVFObjC::isInFullscreenOrPictureInPictureChanged):
(WebCore::AudioVideoRendererAVFObjC::destroyAudioRenderer):
(WebCore::AudioVideoRendererAVFObjC::ensureLayer):
(WebCore::AudioVideoRendererAVFObjC::destroyLayer):
(WebCore::AudioVideoRendererAVFObjC::ensureVideoRenderer):
(WebCore::AudioVideoRendererAVFObjC::destroyVideoRenderer):
(WebCore::AudioVideoRendererAVFObjC::destroyExpiringVideoRenderersIfNeeded):
(WebCore::AudioVideoRendererAVFObjC::configureLayerOrVideoRenderer):
(WebCore::AudioVideoRendererAVFObjC::stageVideoRenderer):
(WebCore::AudioVideoRendererAVFObjC::removeRendererFromSynchronizerIfNeeded):
(WebCore::AudioVideoRendererAVFObjC::destroyVideoLayerIfNeeded): Deleted.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to