Skip to content

ScreenCaptureKit macOS xcode15.0 b1

Haritha Mohan edited this page Sep 7, 2023 · 3 revisions

#ScreenCaptureKit.framework https://github.com/xamarin/xamarin-macios/pull/18965

diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCContentSharingPicker.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCContentSharingPicker.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCContentSharingPicker.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCContentSharingPicker.h	2023-05-31 23:24:05
@@ -0,0 +1,161 @@
+//
+//  SCContentSharingPicker.h
+//  ScreenCaptureKit
+//
+//  Copyright © 2022 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <ScreenCaptureKit/ScreenCaptureKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+/*!
+ @typedef SCContentSharingPickerMode
+ @abstract SCContentSharingPickerModeSingleWindow picker mode for single window selection
+ @constant SCContentSharingPickerModeMultipleWindows picker mode for multiple window selection
+ @constant SCContentSharingPickerModeSingleApplication picker mode for application selection
+ @constant SCContentSharingPickerModeSingleDisplay picker mode for full display selection
+*/
+typedef NS_OPTIONS(NSUInteger, SCContentSharingPickerMode) {
+    SCContentSharingPickerModeSingleWindow          = 1 << 0,
+    SCContentSharingPickerModeMultipleWindows       = 1 << 1,
+    SCContentSharingPickerModeSingleApplication     = 1 << 2,
+    SCContentSharingPickerModeMultipleApplications  = 1 << 3,
+    SCContentSharingPickerModeSingleDisplay         = 1 << 4
+} API_AVAILABLE(macos(14.0));
+
+@protocol SCContentSharingPickerObserver;
+
+/*!
+ @abstract SCContentSharingPickerConfiguration
+ @discussion SCContentSharingPickerConfiguration is an object which can optionally be set on the SCContentSharingPicker for customized configuration.
+*/
+API_AVAILABLE(macos(14.0))
+@interface SCContentSharingPickerConfiguration : NSObject
+/*!
+ @abstract allowedPickerModes Limits the type of selections available to the user when the picker is presented. Default is 0, no excluded picking modes
+ */
+@property (nonatomic, assign) SCContentSharingPickerMode allowedPickerModes;
+
+/*!
+ @abstract excludedWindowIDs Excludes CGWindowIDs for picking
+ */
+@property (nonatomic, strong) NSArray<NSNumber *> *excludedWindowIDs;
+
+/*!
+ @abstract excludedBundleIDs Excludes bundle IDs for picking
+ */
+@property (nonatomic, strong) NSArray<NSString *> *excludedBundleIDs;
+
+/*!
+ @abstract allowsChangingSelectedContent Controls if the user can make updates to the content filter after the initial selection. Defaults is YES.
+ */
+@property (nonatomic, assign) BOOL allowsChangingSelectedContent;
+
+@end
+
+/*!
+ @abstract SCContentSharingPicker
+ @discussion SCContentSharingPicker is an object created by client applications to opt-in to Control Center's content picker
+*/
+API_AVAILABLE(macos(14.0))
+@interface SCContentSharingPicker : NSObject
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+/*!
+ @abstract sharedPicker the singleton shared picker for the application
+ */
+@property (class, readonly) SCContentSharingPicker *sharedPicker;
+
+/*!
+ @abstract defaultConfiguration for the content sharing picker, if nil, a default configuration will be created. If a stream does not have a configuration, the default configuration will be used.
+ */
+@property (nonatomic, nullable, copy) SCContentSharingPickerConfiguration *defaultConfiguration;
+
+/*!
+ @abstract maximumStreamCount An integer value that, if set, limits when Control Center will show the UI to present a picker with no associated stream. If set to 0, Control Center will never ever show UI to present a picker without an associated stream.
+ */
+@property (nonatomic, nullable, strong) NSNumber *maximumStreamCount;
+
+/*!
+ @abstract active A picker needs to be marked as active for its UI to appear. If `startPickingContent` is called and the picker is not marked as active, the picker will not appear.
+ */
+@property (nonatomic, assign, getter=isActive) BOOL active;
+
+/*!
+ @abstract addObserver:
+ @param observer the observer object that adheres to SCContentSharingPickerObserver protocol
+ @discussion Adds an observer object that will receive the results of user interaction with a displayed picker
+*/
+- (void)addObserver:(id<SCContentSharingPickerObserver>)observer;
+
+/*!
+ @abstract removeObserver:
+ @param observer the observer object that adheres to SCContentSharingPickerObserver protocol
+ @discussion Removes an observer object that will receive the results of user interaction with a displayed picker
+*/
+- (void)removeObserver:(id<SCContentSharingPickerObserver>)observer;
+
+/*!
+ @abstract setConfiguration:forStream:
+ @param pickerConfig configuration for the picker
+ @param stream stream for optional picking configuration
+ @discussion Sets optional configuration for the picker for a specific stream. If this is not set, the stream will use the defaultConfiguration instead
+*/
+- (void)setConfiguration:(nullable SCContentSharingPickerConfiguration *)pickerConfig forStream:(SCStream *)stream;
+
+/*!
+ @abstract present
+ @discussion show content sharing picker to get content for updating a new stream
+*/
+- (void)present;
+
+/*!
+ @abstract presentPickerForStream:
+ @param stream the stream to update
+ @discussion show content sharing picker with an existing stream
+*/
+- (void)presentPickerForStream:(SCStream *)stream;
+
+/*!
+ @abstract presentPickerForStream:usingContentStyle:
+ @param stream the stream that the picker will display
+ @param contentStyle the mode in which picking should start
+ @discussion Takes a person straight into picking particular windows or displays
+*/
+- (void)presentPickerForStream:(SCStream *)stream usingContentStyle:(SCShareableContentStyle)contentStyle;
+@end
+
+/*!
+ @abstract SCContentSharingPickerObserver
+ @discussion SCContentSharingPickerObserver the protocol that is used to inform client when the picker did make selection or cancel
+*/
+API_AVAILABLE(macos(14.0))
+@protocol SCContentSharingPickerObserver <NSObject>
+/*!
+ @abstract contentSharingPicker:didCancelforStream:
+ @param picker the SCContentSharingPicker object
+ @param stream the optional associated stream for this picker
+ @discussion the observer callback method when the picker has been canceled with no selection.
+*/
+- (void)contentSharingPicker:(SCContentSharingPicker *)picker didCancelForStream:(nullable SCStream *)stream;
+
+/*!
+ @abstract contentSharingPicker:didUpdateWithFilter:forStream:
+ @param picker the SCContentSharingPicker object
+ @param filter the updated filter
+ @param stream the updated stream
+ @discussion the observer callback method when the user has finished updating content for a stream
+*/
+- (void)contentSharingPicker:(SCContentSharingPicker *)picker didUpdateWithFilter:(SCContentFilter *)filter forStream:(nullable SCStream *)stream;
+
+/*!
+ @abstract contentSharingPickerStartDidFailWithError:
+ @param error the error denoted for the failure to start picker
+ @discussion the observer callback method when the picker was asked to start but failed to do so.
+*/
+- (void)contentSharingPickerStartDidFailWithError:(NSError *)error;
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCError.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCError.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCError.h	2023-03-09 19:09:44
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCError.h	2023-05-31 23:24:05
@@ -10,25 +10,25 @@
 
 NS_ASSUME_NONNULL_BEGIN
 typedef NS_ERROR_ENUM (SCStreamErrorDomain, SCStreamErrorCode) {
-    SCStreamErrorUserDeclined = -3801,                           // The user chose not to authorize capture
-    SCStreamErrorFailedToStart = -3802,                          // The stream failed to start
-    SCStreamErrorMissingEntitlements = -3803,                    // The stream failed due to missing entitlements
-    SCStreamErrorFailedApplicationConnectionInvalid = -3804,     // Failed during recording application connection invalid
-    SCStreamErrorFailedApplicationConnectionInterrupted = -3805, // Failed during recording appliation connection interrupted
-    SCStreamErrorFailedNoMatchingApplicationContext = -3806,     // Failed during recording context id does not match application
-    SCStreamErrorAttemptToStartStreamState = -3807,              // Failed due to attempting to start a stream thats already in a recording state
-    SCStreamErrorAttemptToStopStreamState = -3808,               // Failed due to attempting to stop a stream thats already in a recording state
-    SCStreamErrorAttemptToUpdateFilterState = -3809,             // Failed due to attempting to update the filter on a stream
-    SCStreamErrorAttemptToConfigState = -3810,                   // Failed due to attempting to update stream config on a stream
-    SCStreamErrorInternalError = -3811,                          // Failed to start due to video/audio capture failure
-    SCStreamErrorInvalidParameter = -3812,                       // Failed due to invalid parameter
-    SCStreamErrorNoWindowList = -3813,                           // Failed due to no window list
-    SCStreamErrorNoDisplayList = -3814,                          // Failed due to no display list
-    SCStreamErrorNoCaptureSource = -3815,                        // Failed due to no display or window list to capture
-    SCStreamErrorRemovingStream = -3816,                         // Failed to remove stream
-    SCStreamErrorUserStopped = -3817,                            // The stream was stopped by the user
+    SCStreamErrorUserDeclined API_AVAILABLE(macos(12.3)) = -3801,                           // The user chose not to authorize capture
+    SCStreamErrorFailedToStart API_AVAILABLE(macos(12.3)) = -3802,                          // The stream failed to start
+    SCStreamErrorMissingEntitlements API_AVAILABLE(macos(12.3)) = -3803,                    // The stream failed due to missing entitlements
+    SCStreamErrorFailedApplicationConnectionInvalid API_AVAILABLE(macos(12.3)) = -3804,     // Failed during recording application connection invalid
+    SCStreamErrorFailedApplicationConnectionInterrupted API_AVAILABLE(macos(12.3)) = -3805, // Failed during recording appliation connection interrupted
+    SCStreamErrorFailedNoMatchingApplicationContext API_AVAILABLE(macos(12.3)) = -3806,     // Failed during recording context id does not match application
+    SCStreamErrorAttemptToStartStreamState API_AVAILABLE(macos(12.3)) = -3807,              // Failed due to attempting to start a stream thats already in a recording state
+    SCStreamErrorAttemptToStopStreamState API_AVAILABLE(macos(12.3)) = -3808,               // Failed due to attempting to stop a stream thats already in a recording state
+    SCStreamErrorAttemptToUpdateFilterState API_AVAILABLE(macos(12.3)) = -3809,             // Failed due to attempting to update the filter on a stream
+    SCStreamErrorAttemptToConfigState API_AVAILABLE(macos(12.3)) = -3810,                   // Failed due to attempting to update stream config on a stream
+    SCStreamErrorInternalError API_AVAILABLE(macos(12.3)) = -3811,                          // Failed to start due to video/audio capture failure
+    SCStreamErrorInvalidParameter API_AVAILABLE(macos(12.3)) = -3812,                       // Failed due to invalid parameter
+    SCStreamErrorNoWindowList API_AVAILABLE(macos(12.3)) = -3813,                           // Failed due to no window list
+    SCStreamErrorNoDisplayList API_AVAILABLE(macos(12.3)) = -3814,                          // Failed due to no display list
+    SCStreamErrorNoCaptureSource API_AVAILABLE(macos(12.3)) = -3815,                        // Failed due to no display or window list to capture
+    SCStreamErrorRemovingStream API_AVAILABLE(macos(12.3)) = -3816,                         // Failed to remove stream
+    SCStreamErrorUserStopped API_AVAILABLE(macos(12.3)) = -3817,                            // The stream was stopped by the user
     SCStreamErrorFailedToStartAudioCapture API_AVAILABLE(macos(13.0)) = -3818, // The stream failed to start audio
-    SCStreamErrorFailedToStopAudioCapture API_AVAILABLE(macos(13.0)) = -3819   // The stream failed to stop audio
+    SCStreamErrorFailedToStopAudioCapture API_AVAILABLE(macos(13.0)) = -3819,   // The stream failed to stop audio
 };
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCScreenshotManager.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCScreenshotManager.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCScreenshotManager.h	1969-12-31 19:00:00
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCScreenshotManager.h	2023-05-31 23:24:05
@@ -0,0 +1,36 @@
+//
+//  SCScreenshotManager.h
+//  ScreenCaptureKit
+//
+//  Copyright © 2023 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <ScreenCaptureKit/ScreenCaptureKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+API_AVAILABLE(macos(14.0))
+@interface SCScreenshotManager : NSObject
+- (instancetype)init API_UNAVAILABLE(ios, tvos, macCatalyst, macos);
+/*!
+ @abstract captureSampleBufferWithFilter:configuration:completionHandler:
+ @param contentFilter is the filter containing the content to take a screenshot of
+ @param config is the stream configuration containing information on how to format the screenshot
+ @param completionHandler is the handler that will deliver the screenshot to the user
+ @discussion this method takes a screenshot using the filter and configuration passed in and returns it as a CMSampleBuffer
+*/
++ (void)captureSampleBufferWithFilter:(SCContentFilter *)contentFilter configuration:(SCStreamConfiguration *)config completionHandler:(nullable void (^)(CMSampleBufferRef _Nullable sampleBuffer, NSError *_Nullable error))completionHandler NS_SWIFT_NAME(captureSampleBuffer(contentFilter:configuration:completionHandler:)) API_AVAILABLE(macos(14.0));
+
+/*!
+ @abstract captureImageWithFilter:configuration:completionHandler:
+ @param contentFilter is the filter containing the content to take a screenshot of
+ @param config is the stream configuration containing information on how to format the screenshot
+ @param completionHandler is the handler that will deliver the screenshot to the user
+ @discussion this method takes a screenshot using the filter and configuration passed in and returns it as a CGImage in BGRA format
+*/
++ (void)captureImageWithFilter:(SCContentFilter *)contentFilter configuration:(SCStreamConfiguration *)config completionHandler:(nullable void (^)(CGImageRef _Nullable sampleBuffer, NSError *_Nullable error))completionHandler NS_SWIFT_NAME(captureImage(contentFilter:configuration:completionHandler:)) API_AVAILABLE(macos(14.0));
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h	2023-03-09 19:09:44
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h	2023-05-31 23:24:05
@@ -11,6 +11,23 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
+@class SCContentFilter;
+
+/*!
+ @typedef SCShareableContentStyle
+ @abstract Defines the type of content being shared
+ @constant SCShareableContentStyleNone content not specified
+ @constant SCShareableContentStyleWindow window bound content stream
+ @constant SCShareableContentStyleDisplay display bound content stream
+*/
+typedef NS_ENUM(NSInteger, SCShareableContentStyle) {
+    SCShareableContentStyleNone,
+    SCShareableContentStyleWindow,
+    SCShareableContentStyleDisplay,
+    SCShareableContentStyleApplication
+};
+
+
 API_AVAILABLE(macos(12.3))
 @interface SCRunningApplication : NSObject
 /*!
@@ -96,6 +113,29 @@
 + (instancetype)new NS_UNAVAILABLE;
 @end
 
+/*!
+ @abstract SCShareableContentInfo
+ @discussion SCShareableContentInformation is an object that has information about the content of the stream
+*/
+API_AVAILABLE(macos(14.0))
+@interface SCShareableContentInfo : NSObject
+/*!
+ @abstract style of stream
+ */
+@property (nonatomic, readonly) SCShareableContentStyle style;
+
+/*!
+ @abstract Pixel to points scaling factor
+ */
+@property (nonatomic, readonly) float pointPixelScale;
+
+/*!
+ @abstract Size and location of content in points
+ */
+@property (nonatomic, readonly) CGRect contentRect;
+
+@end
+
 API_AVAILABLE(macos(12.3))
 @interface SCShareableContent : NSObject
 /*!
@@ -133,6 +173,13 @@
 + (void)getShareableContentExcludingDesktopWindows:(BOOL)excludeDesktopWindows onScreenWindowsOnlyAboveWindow:(SCWindow *)window completionHandler:(void(^)(SCShareableContent * _Nullable shareableContent, NSError * _Nullable error))completionHandler;
 
 /*!
+@abstract infoForFilter:
+@param filter content filter to translate to content details
+@discussion this method will create a SCShareableContentInformation object given a filter
+*/
++ (SCShareableContentInfo *)infoForFilter:(nonnull SCContentFilter *)filter API_AVAILABLE(macos(14.0));
+
+/*!
  @abstract windows SCShareableContent property that contains all the sharable SCWindows
  */
 @property (readonly) NSArray<SCWindow *> *windows;
@@ -148,6 +195,6 @@
 @property (readonly) NSArray<SCRunningApplication *> *applications;
 - (instancetype)init NS_UNAVAILABLE;
 + (instancetype)new NS_UNAVAILABLE;
-@end
 
+@end
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h	2023-03-09 19:09:44
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h	2023-05-31 23:24:05
@@ -46,7 +46,23 @@
     SCFrameStatusStopped
 };
 
+/*!
+ @typedef SCStreamType
+ @abstract SCStreamTypeWindow window stream
+ @constant SCStreamTypeDisplay display stream
+*/
+// To be deprecated, will use SCShareableContentStyle
+typedef NS_ENUM(NSInteger, SCStreamType) {
+    SCStreamTypeWindow,
+    SCStreamTypeDisplay
+};
 
+typedef NS_ENUM(NSInteger, SCCaptureResolutionType) {
+    SCCaptureResolutionAutomatic,
+    SCCaptureResolutionBest,
+    SCCaptureResolutionNominal
+};
+
 /*!
  @abstract SCContentFilter
  @discussion SCContentFilter is a object that determines the exact content to be captured in the SCStream. It can be filtered through displays, windows, excluded windows or applications.
@@ -54,6 +70,25 @@
 API_AVAILABLE(macos(12.3))
 @interface SCContentFilter : NSObject
 /*!
+ @abstract streamType type of stream
+ */
+// To be deprecated
+@property(nonatomic, readonly) SCStreamType streamType;
+
+/*!
+ @abstract style of stream
+ */
+@property (nonatomic, readonly) SCShareableContentStyle style;
+/*!
+ @abstract Pixel to points scaling factor
+ */
+@property (nonatomic, readonly) float pointPixelScale;
+
+/*!
+ @abstract Size and location of content in points
+ */
+@property (nonatomic, readonly) CGRect contentRect;
+/*!
  @abstract initWithDesktopIndependentWindow:
  @param window the independent SCWindow you wish to capture
  @discussion this method will create a SCContentFilter that captures just the independent window passed in.
@@ -133,27 +168,37 @@
 @property(nonatomic, assign) BOOL scalesToFit;
 
 /*!
+ @abstract SCStreamProperty that specifies whether the  stream preserves the aspect ratio of the source pixel data. By default the aspect ratio is preserved.
+ */
+@property(nonatomic, assign) BOOL preservesAspectRatio API_AVAILABLE(macos(14.0));
+
+/*!
+ @abstract SCStreamProperty the name of the stream 
+ */
+@property(nonatomic, strong, nullable) NSString *streamName API_AVAILABLE(macos(14.0));
+
+/*!
  @abstract SCStreamProperty that specifies whether the cursor should appear in the stream.  By default the cursor is visible.
  */
 @property(nonatomic, assign) BOOL showsCursor;
 
 /*!
- @abstract SCStreamProperty for background color. By default the background color is clear.
+ @abstract SCStreamProperty for background color. By default the background color is white.
  */
 @property(nonatomic, assign) CGColorRef backgroundColor;
 
 /*!
- @abstract SCStreamProperty that specifies that the display stream only samples a subset of the display’s framebuffer.  if not set, then the entire display is streamed. The rectangle is specified in points in the display’s logical coordinate system. Not used for independent window capture
+ @abstract SCStreamProperty that specifies that the stream only samples a subset of the frame input. For display streams, if not set, then the entire display is streamed. For independent window streams, if not set, then the entire window is streamed. The rectangle is specified in points in the display’s logical coordinate system.
  */
 @property(nonatomic, assign) CGRect sourceRect;
 
 /*!
- @abstract SCStreamProperty that specifies that the display stream outputs the frame data into a subset of the output IOSurface object.  If not set then the entire output surface is used. The rectangle is specified in pixels in the surface’s coordinate system. Not used for independent window capture
+ @abstract SCStreamProperty that specifies that the stream outputs the frame data into a subset of the output IOSurface object. For both display streams and independent window streams, if not set, then the entire output surface is used. The rectangle is specified in pixels in the display's coordinate system.
  */
 @property(nonatomic, assign) CGRect destinationRect;
 
 /*!
- @abstract SCStreamProperty that specifies the number of frames to keep in the queue.  If not set the default value is 3 frames.  Specifying more frames uses more memory, but may allow you to process frame data without stalling the display stream and should not exceed 8 frames.
+ @abstract SCStreamProperty that specifies the number of frames to keep in the queue.  If not set the default value is 8 frames.  Specifying more frames uses more memory, but may allow you to process frame data without stalling the display stream and should not exceed 8 frames.
  */
 @property(nonatomic, assign) NSInteger queueDepth;
 
@@ -188,6 +233,41 @@
  */
 @property(nonatomic, assign) BOOL excludesCurrentProcessAudio API_AVAILABLE(macos(13.0));
 
+/*!
+ @abstract SCStreamProperty to ignore framing on windows in the display sharing case (will ignore shadows).
+ */
+@property(nonatomic, assign) BOOL ignoreShadowsDisplay API_AVAILABLE(macos(14.0));
+
+/*!
+ @abstract SCStreamProperty to ignore framing on windows in the single window sharing case (will ignore shadows).
+ */
+@property(nonatomic, assign) BOOL ignoreShadowsSingleWindow API_AVAILABLE(macos(14.0));
+
+/*!
+ @abstract captureResolution Choose between automatic, best, and nominal.
+ */
+@property(nonatomic, assign) SCCaptureResolutionType captureResolution API_AVAILABLE(macos(14.0));
+
+/*!
+ @abstract SCStreamProperty to capture only the shadows of windows.
+ */
+@property(nonatomic, assign) BOOL capturesShadowsOnly API_AVAILABLE(macos(14.0));
+
+/*!
+ @abstract SCStreamProperty to ensure partially transparent areas on windows are backed by a solid white color so that the resulting image is fully opaque.
+ */
+@property(nonatomic, assign) BOOL shouldBeOpaque API_AVAILABLE(macos(14.0));
+
+/*!
+ @abstract SCStreamProperty to ignore framing on windows in the display sharing case (will ignore shadows).
+ */
+@property(nonatomic, assign) BOOL ignoreGlobalClipDisplay API_AVAILABLE(macos(14.0));
+
+/*!
+ @abstract SCStreamProperty to ignore framing on windows in the single window sharing case (will ignore shadows).
+ */
+@property(nonatomic, assign) BOOL ignoreGlobalClipSingleWindow API_AVAILABLE(macos(14.0));
+
 @end
 
 /*!
@@ -339,6 +419,22 @@
 */
 - (void)stream:(SCStream *)stream didStopWithError:(NSError *)error;
 
+/*!
+ @abstract outputVideoEffectDidStartForStream:
+ @param stream the SCStream object
+ @discussion notifies the delegate that the stream's overlay video effect has started.
+*/
+- (void)outputVideoEffectDidStartForStream:(SCStream *)stream API_AVAILABLE(macos(14.0));
+
+/*!
+ @abstract stream:outputVideoEffectDidStart:
+ @param stream the SCStream object
+ @discussion notifies the delegate that the stream's overlay video  effect has stopped.
+*/
+- (void)outputVideoEffectDidStopForStream:(SCStream *)stream API_AVAILABLE(macos(14.0));
+
 @end
+
+
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/ScreenCaptureKit.h /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/ScreenCaptureKit.h
--- /Applications/Xcode_14.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/ScreenCaptureKit.h	2023-03-04 17:07:57
+++ /Applications/Xcode_15.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/ScreenCaptureKit.h	2023-05-31 23:24:04
@@ -10,6 +10,8 @@
 #import <ScreenCaptureKit/SCStream.h>
 #import <ScreenCaptureKit/SCShareableContent.h>
 #import <ScreenCaptureKit/SCError.h>
+#import <ScreenCaptureKit/SCContentSharingPicker.h>
+#import <ScreenCaptureKit/SCScreenshotManager.h>
 
 
 
Clone this wiki locally