commit | bf85c38fb360040c0a6f303a97a03b5929f57011 | [log] [tgz] |
---|---|---|
author | Andreas Pehrson <apehrson@mozilla.com> | Mon Oct 07 13:10:52 2024 |
committer | WebRTC LUCI CQ <webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Apr 22 12:50:29 2025 |
tree | da8824b2be9eeb9b4f118575f35f94a67b27c34a | |
parent | 3ae6eceeb7fc43d71df50ed4ff7e5229822a54ca [diff] |
Integrate ScreenCapturerSck with SCContentSharingPicker This patch at a high level does the following: - Hooks CreateGenericCapturer to create a ScreenCapturerSck with SCContentSharingPicker if allowed by options and runtime checks (macOS 14). It allows both single display and multiple windows picker modes. - Creates a new SckPickerHandle singleton class that manages the number of active pickers, and sets the `active` flag on the shared system picker. It also generates a unique SourceId for each capturer, since the source of a capturer that uses the picker isn't constant and therefore cannot be shared across multiple clients. - Hooks up SCContentSharingPickerObserver callbacks to expose a permanent error in case of an error or picker cancellation. The API for the generic capturer is as any other desktop capture backend: - GetSourceList() and SelectSource() works as normal but don't do anything useful. - Start() displays the picker and makes CaptureFrame() start returning temporary errors. - On selection, capture starts and CaptureFrame() starts returning frames. - On cancelling the picker, or if there's an error, CaptureFrame() starts returning permanent errors. Bug: webrtc:367915807 Change-Id: I75cd78897f2e7c9702a5f5683d21ee1a7ea914d5 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/365094 Reviewed-by: Johannes Kron <kron@webrtc.org> Reviewed-by: Alexander Cooper <alcooper@chromium.org> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> Commit-Queue: Andreas Pehrson <apehrson@mozilla.com> Cr-Commit-Position: refs/heads/main@{#44426}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
See here for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.