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