Disable the use of CGDisplayStreamCreate() for desktop capture on Sonoma
CGDisplayStreamCreate is an deprecated API. It was believed that the use of it was disabled on Sonoma through the setting allow_iosurface = false [1], which causes the thumbnails to be created by the API CGDisplayCreateImage. This API is not marked as deprecated at the moment. However, although the thumbnails are created through CGDisplayCreateImage, CGDisplayStreamCreate() is still called and runs in the background. This makes the capture chip appear. No capture chip appears if this CL is landed and the ScreenCaptureKit thumbnail capturer is enabled, --enable-features="ScreenCaptureKitMac,ScreenCaptureKitStreamPickerSonoma,ThumbnailCapturerMac:capture_mode/sc_screenshot_manager" [1] https://chromium-review.googlesource.com/c/chromium/src/+/4892397 Bug: chromium:1486851 Change-Id: I3422efffc57dcb3e8965f19a5eca7f2a95d62da1 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/334721 Reviewed-by: Mark Foltz <mfoltz@chromium.org> Commit-Queue: Johannes Kron <kron@webrtc.org> Cr-Commit-Position: refs/heads/main@{#41563}
This commit is contained in:
parent
7d637a9788
commit
fb99c6ebb5
@ -46,6 +46,8 @@ class DesktopFrameProvider {
|
||||
// Expected to be called before stopping the CGDisplayStreamRef streams.
|
||||
void Release();
|
||||
|
||||
bool allow_iosurface() const { return allow_iosurface_; }
|
||||
|
||||
private:
|
||||
SequenceChecker thread_checker_;
|
||||
const bool allow_iosurface_;
|
||||
|
||||
@ -439,6 +439,10 @@ void ScreenCapturerMac::ScreenConfigurationChanged() {
|
||||
|
||||
bool ScreenCapturerMac::RegisterRefreshAndMoveHandlers() {
|
||||
RTC_DCHECK(thread_checker_.IsCurrent());
|
||||
if (!desktop_frame_provider_.allow_iosurface()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
desktop_config_ = desktop_config_monitor_->desktop_configuration();
|
||||
for (const auto& config : desktop_config_.displays) {
|
||||
size_t pixel_width = config.pixel_bounds.width();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user