Skip to content

ScreenCaptureKit macOS xcode13.3 beta1

Alex Soto edited this page Jan 27, 2022 · 1 revision

#ScreenCaptureKit.framework

diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCError.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCError.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCError.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCError.h	2022-01-17 00:22:24.000000000 -0500
@@ -0,0 +1,30 @@
+//
+//  SCError.h
+//  ScreenCaptureKit
+//
+//  Copyright © 2021 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+typedef NS_ENUM (NSInteger, SCStreamErrorCode) {
+    SCStreamErrorUserDeclined = -3801,                           // The user did not allow TCCs to start capture
+    SCStreamErrorFailedToStart = -3802,                          // The stream failed to start
+    SCStreamErrorEntitlements = -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
+    SCStreamErrorFailedToStartCaptureStack = -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
+};
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h	2022-01-25 12:58:33.000000000 -0500
@@ -0,0 +1,144 @@
+//
+//  SCShareableContent.h
+//  SCShareableContent
+//
+//  Copyright © 2021 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <CoreGraphics/CGWindow.h>
+#import <CoreGraphics/CGDirectDisplay.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+API_AVAILABLE(macos(12.3))
+@interface SCRunningApplication : NSObject
+/*!
+ @abstract bundleIdentifier the bundleIdentifier for the SCRunningApplication
+ */
+@property (readonly) NSString *bundleIdentifier;
+
+/*!
+ @abstract applicationName the application name for the SCRunningApplication
+ */
+@property (readonly) NSString *applicationName;
+
+/*!
+ @abstract processID the SCRunningApplication
+ */
+@property (readonly) pid_t processID;
+- (instancetype)init NS_UNAVAILABLE;
+@end
+
+API_AVAILABLE(macos(12.3))
+@interface SCWindow : NSObject
+/*!
+ @abstract windowID the CGWindowID for the SCWindow
+ */
+@property (readonly) CGWindowID windowID;
+
+/*!
+ @abstract frame the CGRect for the SCWindow
+ */
+@property (readonly) CGRect frame;
+
+/*!
+ @abstract title the window title for the SCWindow
+ */
+@property (readonly, nullable) NSString *title;
+
+/*!
+ @abstract windowLayer the window layer for the SCWindow
+ */
+@property (readonly) NSInteger windowLayer;
+
+/*!
+ @abstract owningApplication is the SCRunningApplication that owns this SCWindow
+ */
+@property (readonly, nullable) SCRunningApplication *owningApplication;
+
+/*!
+ @abstract onScreen the bool property denoting of the SCWindow is on the screen
+ */
+@property (readonly, getter=isOnScreen) BOOL onScreen;
+- (instancetype)init NS_UNAVAILABLE;
+@end
+
+API_AVAILABLE(macos(12.3))
+@interface SCDisplay : NSObject
+/*!
+ @abstract displayId the CGDirectDisplayID for the SCDisplay
+ */
+@property (readonly) CGDirectDisplayID displayID;
+
+/*!
+ @abstract width the width, in points, for the SCDisplay
+ */
+@property (readonly) NSInteger width;
+
+/*!
+ @abstract height the height, in points, for the SCDisplay
+ */
+@property (readonly) NSInteger height;
+
+/*!
+ @abstract frame the CGRect frame for the SCDisplay
+ */
+@property (readonly) CGRect frame;
+- (instancetype)init NS_UNAVAILABLE;
+@end
+
+API_AVAILABLE(macos(12.3))
+@interface SCShareableContent : NSObject
+/*!
+@abstract getShareableContentWithCompletionHandler:completionHandler
+@param completionHandler the call back that will hand you back a SCShareableContent object
+@discussion this method will create a SCShareableContent object that is called on the supplied queue. The SCShareableContent will contain the windows, displays and applications that are available to capture
+*/
++ (void)getShareableContentWithCompletionHandler:(void(^)(SCShareableContent * _Nullable shareableContent, NSError * _Nullable error))completionHandler;
+
+/*!
+@abstract getShareableContentExcludingDesktopWindows:onScreenWindowsOnly:completionHandler
+@param excludeDesktopWindows a BOOL indicating if we should exclude desktop windows
+@param onScreenWindowsOnly filter only windows that are on screen
+@param completionHandler the call back that will hand you back a SCShareableContent object
+@discussion this method will create a SCShareableContent object that is called on the supplied queue. The SCShareableContent will contain the windows, displays and applications that are available to capture
+*/
++ (void)getShareableContentExcludingDesktopWindows:(BOOL)excludeDesktopWindows onScreenWindowsOnly:(BOOL)onScreenWindowsOnly completionHandler:(void(^)(SCShareableContent * _Nullable shareableContent, NSError * _Nullable error))completionHandler;
+
+/*!
+@abstract getShareableContentExcludingDesktopWindows:onScreenWindowsOnlyBelowWindow:completionHandler
+@param excludeDesktopWindows a BOOL indicating if we should exclude desktop windows
+@param window filter only windows below this SCWindow
+@param completionHandler the call back that will hand you back a SCShareableContent object
+@discussion this method will create a SCShareableContent object that is called on the supplied queue. The SCShareableContent will contain the windows, displays and applications that are available to capture
+*/
++ (void)getShareableContentExcludingDesktopWindows:(BOOL)excludeDesktopWindows onScreenWindowsOnlyBelowWindow:(SCWindow *)window completionHandler:(void(^)(SCShareableContent * _Nullable shareableContent, NSError * _Nullable error))completionHandler;
+
+/*!
+@abstract getShareableContentExcludingDesktopWindows:onScreenWindowsOnlyAboveWindow:completionHandler
+@param excludeDesktopWindows a BOOL indicating if we should exclude desktop windows
+@param window filter only windows above this SCWindow
+@param completionHandler the call back that will hand you back a SCShareableContent object
+@discussion this method will create a SCShareableContent object that is called on the supplied queue. The SCShareableContent will contain the windows, displays and applications that are available to capture
+*/
++ (void)getShareableContentExcludingDesktopWindows:(BOOL)excludeDesktopWindows onScreenWindowsOnlyAboveWindow:(SCWindow *)window completionHandler:(void(^)(SCShareableContent * _Nullable shareableContent, NSError * _Nullable error))completionHandler;
+
+/*!
+ @abstract windows SCShareableContent property that contains all the sharable SCWindows
+ */
+@property (readonly) NSArray<SCWindow *> *windows;
+
+/*!
+ @abstract displays SCShareableContent property that contains all the sharable SCDisplays
+ */
+@property (readonly) NSArray<SCDisplay *> *displays;
+
+/*!
+ @abstract applications SCShareableContent property that contains all the sharable SCRunningApplications
+ */
+@property (readonly) NSArray<SCRunningApplication *> *applications;
+- (instancetype)init NS_UNAVAILABLE;
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h	2022-01-25 12:58:33.000000000 -0500
@@ -0,0 +1,277 @@
+//
+// SCStream.h
+// ScreenCaptureKit
+//
+//  Copyright © 2021 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <AppKit/AppKit.h>
+#import <ScreenCaptureKit/SCShareableContent.h>
+#import <CoreMedia/CMSampleBuffer.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*!
+ @typedef SCFrameStatus
+ @abstract SCStream status.
+ @constant SCFrameStatusFrameComplete new frame was generated.
+ @constant SCFrameStatusFrameIdle new frame was not generated because the display did not change.
+ @constant SCFrameStatusFrameBlank new frame was not generated because the display has gone blank.
+ @constant SCFrameStatusFrameSuspended new frame was not generated because updates haves been suspended
+ @constant SCFrameStatusFrameStarted new frame that is indicated as the first frame sent after the stream has started.
+ @constant SCFrameStatusFrameStopped the stream was stopped.
+*/
+typedef NS_ENUM(NSInteger, SCFrameStatus) {
+    SCFrameStatusFrameComplete,
+    SCFrameStatusFrameIdle,
+    SCFrameStatusFrameBlank,
+    SCFrameStatusFrameSuspended,
+    SCFrameStatusFrameStarted,
+    SCFrameStatusFrameStopped
+};
+
+/*!
+ @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.
+*/
+API_AVAILABLE(macos(12.3))
+@interface SCContentFilter : NSObject
+/*!
+ @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.
+*/
+- (instancetype)initWithDesktopIndependentWindow:(SCWindow *)window;
+
+/*!
+ @abstract initWithDisplay:excludingWindows
+ @param display the SCDisplay you wish to capture
+ @param excluded the SCWindow(s) you wish to exclude from the passed in SCDisplay
+ @discussion this method will create a SCContentFilter that captures the SCDisplay, excluding the passed in excluded SCWindow(s)
+*/
+- (instancetype)initWithDisplay:(SCDisplay *)display excludingWindows:(nullable NSArray<SCWindow *>*)excluded;
+
+/*!
+ @abstract initWithDisplay:includingWindows
+ @param display the SCDisplay you wish to capture
+ @param includedWindows a set of SCWindows you wish to capture
+ @discussion this method will create a SCContentFilter that captures a group of SCWindows
+*/
+- (instancetype)initWithDisplay:(SCDisplay *)display includingWindows:(NSArray<SCWindow *>*)includedWindows;
+
+/*!
+ @abstract initWithDisplay:includingApplications:exceptingWindows
+ @param display the SCDisplay you wish to capture
+ @param applications the NSSet of SCRunningApplications that you wish to capture
+ @param exceptingWindows the NSSet of SCWindows that you wish to be an exception to the filter
+ @discussion This method creates a SCContentFilter that captures all windows owned by the passed in SCRunningApplications. Any windows that are an exception to the filter will not be shown if their owning application is in the provided list and will be shown otherwise.
+*/
+- (instancetype)initWithDisplay:(SCDisplay *)display includingApplications:(NSArray<SCRunningApplication *>*)applications exceptingWindows:(nullable NSArray<SCWindow *>*)exceptingWindows;
+
+/*!
+ @abstract initWithDisplay:excludingApplications:exceptingWindows
+ @param display the SCDisplay you wish to capture
+ @param applications the NSSet of SCRunningApplications that you do not wish to capture
+ @param exceptingWindows the NSSet of SCWindows that you wish to be an exception to the filter
+ @discussion This method creates a SCContentFilter that captures all windows not owned by the passed in SCRunningApplications. Any windows that are an exception to the filter will be shown if their owning application is in the provided list and will not be shown otherwise.
+*/
+- (instancetype)initWithDisplay:(SCDisplay *)display excludingApplications:(NSArray<SCRunningApplication *>*)applications exceptingWindows:(nullable NSArray<SCWindow *>*)exceptingWindows;
+
+@end
+
+/*!
+ @abstract SCStreamConfiguration
+ @discussion SCStreamConfiguration is an object that encapsulates the SCStream properties such as output width, height, pixelformat and others.
+*/
+API_AVAILABLE(macos(12.3))
+@interface SCStreamConfiguration : NSObject
+/*!
+ @abstract SCStreamProperty for output width as measured as points
+ */
+@property(nonatomic, assign) size_t width;
+
+/*!
+ @abstract SCStreamProperty for output height as measured as points
+ */
+@property(nonatomic, assign) size_t height;
+
+/*!
+ @abstract SCStreamProperty that specifies the desired minimum time in seconds between frame updates, allowing you to throttle the rate at which updates are received. The default value is 0, meaning that updates are not throttled.
+ */
+@property(nonatomic, assign) float minimumFrameTime;
+
+/*!
+ @abstract SCStreamProperty for output pixel format. Supported pixel formats are:
+ 'BGRA': Packed Little Endian ARGB8888
+ 'l10r': Packed Little Endian ARGB2101010
+ '420v': 2-plane "video" range YCbCr 4:2:0
+ '420f': 2-plane "full" range YCbCr 4:2:0
+ See https://developer.apple.com/documentation/coregraphics/1455170-cgdisplaystreamcreate
+ */
+@property(nonatomic, assign) OSType pixelFormat;
+
+/*!
+ @abstract SCStreamProperty for output to be always scaled to fit into the provided width and height. For use for independent window capture. When true, the output scales up and down. When false, the output only scales down.
+ */
+@property(nonatomic, assign) BOOL scalesToFit;
+
+/*!
+ @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.
+ */
+@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
+ */
+@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 points in the surface’s coordinate system. Not used for independent window capture
+ */
+@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.
+ */
+@property(nonatomic, assign) NSUInteger queueDepth;
+
+/*!
+ @abstract SCStreamProperty that specifies the YCbCr matrix applied to the output surface.  The value must be one of the strings specified in https://developer.apple.com/documentation/coregraphics/quartz_display_services/display_stream_ycbcr_to_rgb_conversion_matrix_options. Should only be used if your pixel format is 420v or 420f.
+ */
+@property(nonatomic, assign) CFStringRef colorMatrix;
+
+/*!
+ @abstract SCStreamProperty that specifies the color space of the output buffer.  If not set the output buffer uses the same color space as the display. The value must be one of the strings specified in
+ https://developer.apple.com/documentation/coregraphics/cgcolorspace/color_space_names.
+ */
+@property(nonatomic, assign) CFStringRef colorSpaceName;
+/*!
+ @abstract Creates an SCStreamConfiguration with default values for all properties.
+ */
+- (instancetype)init;
+@end
+
+/*!
+ @abstract SCStream
+ @discussion SCStream is the object that takes in an SCContentFilter and sets up a contentstream that gives the calling application back the screen captures based on the contentfilter and settings
+*/
+API_AVAILABLE(macos(12.3))
+@protocol SCStreamDelegate;
+
+API_AVAILABLE(macos(12.3))
+typedef NSString * SCStreamFrameInfo NS_TYPED_ENUM;
+/*!
+ @key SCStreamFrameInfoStatusKey
+ @abstract The key for the CFDictionary attached to the CMSampleBuffer that denotes the frames SCFrameStatus
+ */
+extern SCStreamFrameInfo const SCStreamFrameInfoStatusKey API_AVAILABLE(macos(12.3));
+
+/*!
+ @key SCStreamFrameInfoDisplayTimeKey
+ @abstract The key for the CFDictionary attached to the CMSampleBuffer for the mach absolute time when the event occurred. For a frame event, this is when the frame was displayed by the window server.
+ */
+extern SCStreamFrameInfo const SCStreamFrameInfoDisplayTimeKey API_AVAILABLE(macos(12.3));
+
+/*!
+ @key SCStreamFrameInfoScaleFactorKey
+ @abstract The key for the CFDictionary attached to the CMSampleBuffer for the display resolution associated with the frame. Display resolution is the pixel to point scaling factor. It should be in the range of [1, 4].
+ */
+extern SCStreamFrameInfo const SCStreamFrameInfoScaleFactorKey API_AVAILABLE(macos(12.3));
+
+/*!
+ @key SCStreamFrameInfoContentScaleKey
+ @abstract The key for the CFDictionary attached to the CMSampleBuffer for the content scale associated with the frame. Content scale is the scaling factor from original content size to its size in surface.
+ */
+extern SCStreamFrameInfo const SCStreamFrameInfoContentScaleKey API_AVAILABLE(macos(12.3));
+
+/*!
+ @key SCStreamFrameInfoContentRectKey
+ @abstract The key for the CFDictionary attached to the CMSampleBuffer for the content rect associated with the frame. Content rect is the size and location of content in points in surface.
+ */
+extern SCStreamFrameInfo const SCStreamFrameInfoContentRectKey API_AVAILABLE(macos(12.3));
+
+/*!
+ @key SCStreamFrameInfoDirtyRects
+ @abstract The key for the CFDictionary attached to the CMSampleBuffer for an array of rectangles that is the union of both rectangles that were redrawn and rectangles that were moved. This is an array of CGRect in NSValue.
+ */
+extern SCStreamFrameInfo const SCStreamFrameInfoDirtyRectsKey API_AVAILABLE(macos(12.3));
+
+API_AVAILABLE(macos(12.3))
+@interface SCStream : NSObject
+- (instancetype)init NS_UNAVAILABLE;
+/*!
+ @abstract initWithFilter:captureOutputProperties:delegate:
+ @param contentFilter the requested content filter to be captured
+ @param streamConfig the requested stream configuration to be applied to the SCStream
+ @param delegate the SCStream delegate object
+ @discussion this method create a SCStream object that has the particular output settings for the content stream
+*/
+- (instancetype)initWithFilter:(SCContentFilter *)contentFilter captureOutputProperties:(SCStreamConfiguration *)streamConfig delegate:(id<SCStreamDelegate> _Nullable)delegate;
+
+/*!
+ @abstract updateContentFilter:completionHandler:
+ @param contentFilter the requested content filter to be updated
+ @param completionHandler the handler to be called when the function completes
+ @discussion this method will update the content filter for a content stream. A completion handler will be called when the update is complete with an error denoting if the update has failed.
+*/
+- (void)updateContentFilter:(SCContentFilter *)contentFilter completionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler;
+
+/*!
+ @abstract updateContentFilter:completionHandler:
+ @param streamConfig the requested content filter to be updated
+ @param completionHandler the handler to be called when the function completes
+ @discussion this method will update the stream configuration for a content stream. A completion handler will be called when the update is complete with an error denoting if the update has failed.
+*/
+- (void)updateStreamConfiguration:(SCStreamConfiguration *)streamConfig completionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler;
+
+/*!
+ @abstract startCaptureWithFrameHandler:completionHandler:
+ @param frameHandler he requested stream configuration to be applied to the SCStream
+ @param completionHandler the handler to be called when the function completes
+ @discussion this method starts the content stream. The handler will be called when the content stream start has completed with an error denoting if the start has failed.
+*/
+- (void)startCaptureWithFrameHandler:(void (^)(SCStream *stream, CMSampleBufferRef sampleBuffer))frameHandler completionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler;
+
+/*!
+ @abstract stopWithCompletionHandler:
+ @param completionHandler the handler to be called when the function completes
+ @discussion this method stops the content stream. The handler will be called when the content stream stop has completed with an error denoting if the stop has failed.
+*/
+- (void)stopWithCompletionHandler:(nullable void (^)(NSError *_Nullable error))completionHandler;
+
+@end
+
+/*!
+ @typedef SCStreamBufferFrameAvailableHandler
+ @abstract Content stream frame available handler block.
+ @param stream the SCStream that this handler is being called for
+ @param sampleBuffer the CMSampleBufferRef for the captured frame contents.
+ */
+API_AVAILABLE(macos(12.3))
+typedef void (^SCStreamBufferFrameAvailableHandler)(SCStream *stream, CMSampleBufferRef sampleBuffer);
+
+/*!
+ @abstract SCStreamDelegate
+ @discussion SCStreamDelegate is the object that adheres to the SCStream delegate call backs
+*/
+API_AVAILABLE(macos(12.3))
+@protocol SCStreamDelegate <NSObject>
+@optional
+
+/*!
+ @abstract stream:didStopStreamWithError:
+ @param stream the SCStream object
+ @param error the error denoted by the stopping of the stream
+ @discussion notifies the delegate that the stream has stopped and the error associated with it
+*/
+- (void)stream:(SCStream *)stream didStopWithError:(NSError *)error;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/ScreenCaptureKit.h /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/ScreenCaptureKit.h
--- /Applications/Xcode_13.2.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/ScreenCaptureKit.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_13.3.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/ScreenCaptureKit.h	2022-01-17 00:22:24.000000000 -0500
@@ -0,0 +1,23 @@
+//
+//  ScreenCaptureKit.h
+//  ScreenCaptureKit
+//
+//  Created by Johnny Trenh on 9/29/21.
+//  Copyright © 2021 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <TargetConditionals.h>
+#import <ScreenCaptureKit/SCStream.h>
+#import <ScreenCaptureKit/SCShareableContent.h>
+#import <ScreenCaptureKit/SCError.h>
+
+//! Project version number for ScreenCaptureKit.
+FOUNDATION_EXPORT double ScreenCaptureKitVersionNumber;
+
+//! Project version string for ScreenCaptureKit.
+FOUNDATION_EXPORT const unsigned char ScreenCaptureKitVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import <ScreenCaptureKit/PublicHeader.h>
+
+
Clone this wiki locally