Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 46a4e69cafac4513de5b44023e0e9084f15c5c14
https://github.com/WebKit/WebKit/commit/46a4e69cafac4513de5b44023e0e9084f15c5c14
Author: Eric Carlson <[email protected]>
Date: 2024-12-14 (Sat, 14 Dec 2024)
Changed paths:
M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h
M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm
Log Message:
-----------
getUserMedia video track getSettings() returns stale value for torch and
whiteBalanceMode constraints
https://bugs.webkit.org/show_bug.cgi?id=280970
rdar://137870391
Reviewed by Youenn Fablet.
Torch and whiteBalanceMode changes are applied asynchronously so
`track.settings` will
return the incorrect value if read after constraints are applied but before the
device
setting is applied. To fix this, we return the most recent value set if
track.settings
is requested while an update is pending, and return the actual device settings
otherwise.
Tested manually.
* Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h:
* Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::settingsDidChange): Set
`m_settingsChangesPending` before
calling `scheduleDeferredTask`, clear it after changing device settings.
(WebCore::AVVideoCaptureSource::settings): Return the currently cached value
for torch
and/or whiteBalanceMode if a change is pending, return the device setting
otherwise.
(WebCore::AVVideoCaptureSource::applyFrameRateAndZoomWithPreset): Set
`m_settingsChangesPending`
before calling `scheduleDeferredTask`, clear it after changing device settings.
(WebCore::AVVideoCaptureSource::updateWhiteBalanceMode): Clear
m_currentSettings after
changing device settings to force a refresh the next time settings are queried.
(WebCore::AVVideoCaptureSource::updateTorch): Ditto.
Canonical link: https://commits.webkit.org/287845@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