Source code

Revision control

Copy as Markdown

Other Tools

From: Andreas Pehrson <apehrson@mozilla.com>
Date: Wed, 28 Aug 2024 07:50:00 +0000
Subject: Bug 1915082 - From ScreenCapturerSck request frames in sRGB
colorspace. r=webrtc-reviewers,ng
The desktop capture path has no colorspace handling for RGB, and libyuv assumes
sRGB by default. ScreenCaptureKit returns frames in the display's colorspace
unless told otherwise. On modern macs this is 'Display P3' and will render
inaccurately when interpreted as sRGB.
---
modules/desktop_capture/mac/screen_capturer_sck.mm | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/desktop_capture/mac/screen_capturer_sck.mm b/modules/desktop_capture/mac/screen_capturer_sck.mm
index a16a74d451..a7fdfb1012 100644
--- a/modules/desktop_capture/mac/screen_capturer_sck.mm
+++ b/modules/desktop_capture/mac/screen_capturer_sck.mm
@@ -245,6 +245,7 @@ void ScreenCapturerSck::OnShareableContentCreated(SCShareableContent* content) {
excludingWindows:@[]];
SCStreamConfiguration* config = [[SCStreamConfiguration alloc] init];
config.pixelFormat = kCVPixelFormatType_32BGRA;
+ config.colorSpaceName = kCGColorSpaceSRGB;
config.showsCursor = capture_options_.prefer_cursor_embedded();
config.width = filter.contentRect.size.width * filter.pointPixelScale;
config.height = filter.contentRect.size.height * filter.pointPixelScale;