### class func startService(provider:) Source: https://developer.apple.com/documentation/coremediaio/cmioextensionprovider/startservice%28provider%3A%29 Starts the system extension for the provided CMIOExtensionProvider. ```APIDOC ## class func startService(provider:) ### Description Starts the system extension. ### Method Class Method ### Parameters #### Path Parameters - **provider** (CMIOExtensionProvider) - Required - A provider to start. ### Request Example CMIOExtensionProvider.startService(provider: myProvider) ``` -------------------------------- ### Start Stream - CMIODeviceStartStream Source: https://developer.apple.com/documentation/coremediaio/cmiodeviceprocessrs422command%28_%3A_%3A%29 Related function to start a media stream for a Core Media I/O device. ```swift func CMIODeviceStartStream(CMIODeviceID, CMIOStreamID) -> OSStatus ``` -------------------------------- ### CMIOExtensionProvider Class Methods Source: https://developer.apple.com/documentation/coremediaio/cmioextensionprovider Methods for initializing, starting, and stopping the extension provider service. ```APIDOC ## init(source:clientQueue:) ### Description Creates an extension provider with the specified source and dispatch queue. ### Parameters - **source** (any CMIOExtensionProviderSource) - Required - The source for the provider. - **clientQueue** (dispatch_queue_t?) - Optional - The dispatch queue on which the system performs client operations. ## class func startService(provider:) ### Description Starts the system extension. ### Parameters - **provider** (CMIOExtensionProvider) - Required - The provider instance to start. ## class func stopService(provider:) ### Description Stops the system extension. ### Parameters - **provider** (CMIOExtensionProvider) - Required - The provider instance to stop. ``` -------------------------------- ### Start a Core Media I/O Stream Source: https://developer.apple.com/documentation/coremediaio/cmiodevicestartstream%28_%3A_%3A%29 Initiates a stream for the specified device and stream IDs. ```Swift func CMIODeviceStartStream( _ deviceID: CMIODeviceID, _ streamID: CMIOStreamID ) -> OSStatus ``` -------------------------------- ### startStream() Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstreamsource/stopstream%28%29 Starts the stream of media data. ```APIDOC ## startStream() ### Description Starts the stream of media data. ### Method Instance Method ### Signature `func startStream() throws` ``` -------------------------------- ### Start a system extension with CMIOExtensionProvider Source: https://developer.apple.com/documentation/coremediaio/cmioextensionprovider/startservice%28provider%3A%29 Initiates the system extension using the provided CMIOExtensionProvider instance. Available on macOS 12.3+ and Mac Catalyst 15.4+. ```swift class func startService(provider: CMIOExtensionProvider) ``` -------------------------------- ### Get kCMIOStreamPropertyStartingChannel Source: https://developer.apple.com/documentation/coremediaio/kcmiostreampropertystartingchannel This constant represents the starting channel for a stream. It is a read-only property. ```swift var kCMIOStreamPropertyStartingChannel: Int { get } ``` -------------------------------- ### Authorize Stream Start Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstreamsource/startstream%28%29 Determine if an application is permitted to use this stream before starting it. This is a required method for stream management. ```swift func authorizedToStartStream(for: CMIOExtensionClient) -> Bool ``` -------------------------------- ### startStream() Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstreamsource/startstream%28%29 Starts the stream of media data for the CMIOExtensionStreamSource. ```APIDOC ## startStream() ### Description Starts the stream of media data. ### Method Instance Method ### Request Example func startStream() throws ``` -------------------------------- ### Configure entitlements for a camera extension Source: https://developer.apple.com/documentation/coremediaio/creating-a-camera-extension-with-core-media-i-o An example of an entitlements file for a host app, including the required system extension and app group capabilities. ```xml com.apple.security.app-sandbox com.apple.developer.system-extension.install com.apple.security.application-groups $(TeamIdentifierPrefix)com.example.CustomCamera ``` -------------------------------- ### Start Media Stream Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstreamsource/startstream%28%29 Call this method to begin the stream of media data. Available on Mac Catalyst 15.4+ and macOS 12.3+. ```swift func startStream() throws ``` -------------------------------- ### CMIODeviceStartStream(_:_:) Function Source: https://developer.apple.com/documentation/coremediaio/cmiodevicestartstream%28_%3A_%3A%29 Starts a media stream for a specified device. This function is available on Mac Catalyst and macOS. ```APIDOC ## CMIODeviceStartStream(_:_:) ### Description Starts a media stream for a specified device. ### Method Not applicable (this is a function signature). ### Endpoint Not applicable (this is a function signature). ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```swift func CMIODeviceStartStream( _ deviceID: CMIODeviceID, _ streamID: CMIOStreamID ) -> OSStatus ``` ### Response #### Success Response (OSStatus = 0) Indicates the stream was started successfully. #### Response Example ``` 0 // Represents a successful OSStatus ``` ### Availability Mac Catalyst 13.1+ macOS 10.7+ ``` -------------------------------- ### Authorize a client to start a stream Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstreamsource/authorizedtostartstream%28for%3A%29 Implement this method to control access to media streams by validating the provided CMIOExtensionClient. ```swift func authorizedToStartStream(for client: CMIOExtensionClient) -> Bool ``` -------------------------------- ### Stream Management Methods Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstreamsource/authorizedtostartstream%28for%3A%29 Methods for starting and stopping the stream of media data. ```APIDOC ## startStream() ### Description Starts the stream of media data. ## stopStream() ### Description Stops the stream of media data. ``` -------------------------------- ### Get Device Model Property Source: https://developer.apple.com/documentation/coremediaio/cmioextensionproperty/devicecanbedefaultoutputdevice A property key for retrieving the device model information. ```swift static let deviceModel: CMIOExtensionProperty ``` -------------------------------- ### Initializer: init(mGetSMPTETimeProc:mRefCon:) Source: https://developer.apple.com/documentation/coremediaio/cmiodevicesmptetimecallback/init%28mgetsmptetimeproc%3Amrefcon%3A%29 Initializes Core Media I/O with a callback function to retrieve SMPTE time and a reference constant. ```APIDOC ## init(mGetSMPTETimeProc:mRefCon:) ### Description Initializes the Core Media I/O with a provided callback function for SMPTE time retrieval and a reference constant. ### Method Initializer ### Endpoint N/A (This is an initializer, not a network endpoint) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```swift init( mGetSMPTETimeProc: CMIODeviceGetSMPTETimeProc!, mRefCon: UnsafeMutableRawPointer! ) ``` ### Response #### Success Response (N/A) N/A (Initializers do not return values in the traditional sense, they configure the object). #### Response Example N/A ``` -------------------------------- ### init(dictionary:) Source: https://developer.apple.com/documentation/coremediaio/cmioextensiondeviceproperties/init%28dictionary%3A%29 Initializes a new properties object for a Core Media I/O device using a provided dictionary of property states. ```APIDOC ## init(dictionary:) ### Description Creates a properties object with a dictionary of property states. ### Parameters #### Request Body - **propertiesDictionary** ([CMIOExtensionProperty : CMIOExtensionPropertyState]) - Required - The dictionary of properties and their states. ### Request Example init(dictionary: [propertyKey: propertyState]) ``` -------------------------------- ### init() Initializer Source: https://developer.apple.com/documentation/coremediaio/cmiostreamscheduledoutputnotificationprocandrefcon/init%28%29 Documentation for the init() method used in Core Media I/O. ```APIDOC ## init() ### Description Initializes a new instance of the object within the Core Media I/O framework. ### Availability - Mac Catalyst 13.1+ - macOS 10.8+ ### Syntax ``` init() ``` ``` -------------------------------- ### Get and Set Frame Duration Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstreamproperties/frameduration-4rnl9 Use this property to get or set the duration of a frame. The key for this property is `streamFrameDuration`. ```swift @nonobjc var frameDuration: CMTime? { get set } ``` -------------------------------- ### init(source:clientQueue:) Source: https://developer.apple.com/documentation/coremediaio/cmioextensionprovider/init%28source%3Aclientqueue%3A%29 Initializes a new CMIOExtensionProvider instance with a source and an optional client dispatch queue. ```APIDOC ## init(source:clientQueue:) ### Description Creates an extension provider with the specified source and dispatch queue. ### Parameters - **source** (any CMIOExtensionProviderSource) - Required - An extension-specific object that conforms to the CMIOExtensionProviderSource protocol. - **clientQueue** (dispatch_queue_t?) - Optional - A client dispatch queue, or nil to use the default queue. ### Request Example init(source: mySource, clientQueue: myQueue) ``` -------------------------------- ### Get kCMIOFeatureControlPropertyNativeRange Source: https://developer.apple.com/documentation/coremediaio/kcmiofeaturecontrolpropertynativerange Use this constant to get the native range of a feature control property. Available on Mac Catalyst 13.0+ and macOS 10.7+. ```swift var kCMIOFeatureControlPropertyNativeRange: Int { get } ``` -------------------------------- ### mCommand Instance Property Source: https://developer.apple.com/documentation/coremediaio/cmiodeviceavccommand/mcommand The mCommand property represents an UnsafeMutablePointer and is available on Mac Catalyst starting from version 13.1 and macOS starting from version 10.7. ```APIDOC ## Instance Property: mCommand ### Description Represents an UnsafeMutablePointer. ### Availability Mac Catalyst 13.1+
macOS 10.7+ ### Declaration ```swift var mCommand: UnsafeMutablePointer! ``` ``` -------------------------------- ### CMIOObjectPropertyAddress init() Source: https://developer.apple.com/documentation/coremediaio/cmioobjectpropertyaddress/init%28%29 Initializes a new CMIOObjectPropertyAddress instance. ```APIDOC ## init() ### Description Initializes a new CMIOObjectPropertyAddress instance. ### Availability - Mac Catalyst 13.1+ - macOS 10.7+ ``` -------------------------------- ### kCMIOObjectPropertyElementWildcard Source: https://developer.apple.com/documentation/coremediaio/kcmioobjectpropertyelementwildcard The kCMIOObjectPropertyElementWildcard is a global constant used in Core Media I/O operations. It is available on Mac Catalyst starting from version 13.0 and on macOS starting from version 10.7. ```APIDOC ## Global Variable: kCMIOObjectPropertyElementWildcard ### Description Represents a wildcard for an element property in Core Media I/O. ### Availability - Mac Catalyst: 13.0+ - macOS: 10.7+ ### Declaration ```swift var kCMIOObjectPropertyElementWildcard: UInt32 { get } ``` ### See Also - `kCMIOObjectPropertyScopeWildcard` - `kCMIOObjectPropertySelectorWildcard` ``` -------------------------------- ### init() Source: https://developer.apple.com/documentation/coremediaio/cmiodevicesmptetimecallback/init%28%29 Initializes a new instance of the CMIODeviceSMPTETimeCallback. ```APIDOC ## init() ### Description Initializes a new CMIODeviceSMPTETimeCallback instance. ### Availability - Mac Catalyst 13.1+ - macOS 10.7+ ### Request Example ``` init() ``` ``` -------------------------------- ### kCMIOHardwarePropertyAllowWirelessScreenCaptureDevices Source: https://developer.apple.com/documentation/coremediaio/kcmiohardwarepropertyallowwirelessscreencapturedevices This constant is used to check if wireless screen capture devices are allowed. It is available on Mac Catalyst starting from version 13.0 and macOS starting from version 10.13. ```APIDOC ## Global Variable # kCMIOHardwarePropertyAllowWirelessScreenCaptureDevices Mac Catalyst 13.0+ macOS 10.13+ ```swift var kCMIOHardwarePropertyAllowWirelessScreenCaptureDevices: Int { get } ``` ### See Also #### Constants - `var kCMIOHardwarePropertyScreenCaptureDevices: Int` - `var kCMIOHardwarePropertyDefaultInputDevice: Int` - `var kCMIOHardwarePropertyDefaultOutputDevice: Int` - `var kCMIOHardwarePropertyDeviceForUID: Int` - `var kCMIOHardwarePropertyDevices: Int` - `var kCMIOHardwarePropertyIsInitingOrExiting: Int` - `var kCMIOHardwarePropertyPlugInForBundleID: Int` - `var kCMIOHardwarePropertyProcessIsMain: Int` - `var kCMIOHardwarePropertyProcessIsMaster: Int` (Deprecated) - `var kCMIOHardwarePropertySleepingIsAllowed: Int` - `var kCMIOHardwarePropertySuspendedBySystem: Int` - `var kCMIOHardwarePropertyUnloadingIsAllowed: Int` - `var kCMIOHardwarePropertyUserSessionIsActiveOrHeadless: Int` ``` -------------------------------- ### Initialize Core Media I/O Source: https://developer.apple.com/documentation/coremediaio/cmiodeviceavccommand/init%28%29 Use this method to initialize Core Media I/O. Available on Mac Catalyst 13.1+ and macOS 10.7+. ```swift init() ``` -------------------------------- ### CMIODevicePropertyID Type Alias Source: https://developer.apple.com/documentation/coremediaio/cmiodevicepropertyid Defines the CMIODevicePropertyID type alias, which is an alias for CMIOObjectPropertySelector. This is available on Mac Catalyst starting from version 13.0 and macOS starting from version 10.7. ```APIDOC ## Type Alias: CMIODevicePropertyID ### Description `CMIODevicePropertyID` is a type alias for `CMIOObjectPropertySelector`. It is used to identify properties of Core Media I/O objects, such as devices. ### Availability - Mac Catalyst: 13.0+ - macOS: 10.7+ ### Definition ```swift typealias CMIODevicePropertyID = CMIOObjectPropertySelector ``` ### See Also #### Data Types - `typealias CMIOClassID` - `typealias CMIOControlID` - `typealias CMIODeviceGetSMPTETimeProc` - `typealias CMIODeviceID` - `typealias CMIODeviceStreamQueueAlteredProc` - `typealias CMIOHardwarePropertyID` - `typealias CMIOObjectID` - `typealias CMIOObjectPropertyElement` - `typealias CMIOObjectPropertyListenerBlock` - `typealias CMIOObjectPropertyListenerProc` - `typealias CMIOObjectPropertyScope` - `typealias CMIOObjectPropertySelector` - `typealias CMIOStreamID` - `typealias CMIOStreamScheduledOutputNotificationProc` - `struct CMIOExtensionProperty` ``` -------------------------------- ### init() Source: https://developer.apple.com/documentation/coremediaio/cmiodevicestreamconfiguration/init%28%29 Initializes a new CMIODeviceStreamConfiguration instance. ```APIDOC ## init() ### Description Initializes a new CMIODeviceStreamConfiguration instance. ### Endpoint CMIODeviceStreamConfiguration.init() ### Availability - Mac Catalyst 13.1+ - macOS 10.7+ ``` -------------------------------- ### mResponseLength Instance Property Source: https://developer.apple.com/documentation/coremediaio/cmiodeviceavccommand/mresponselength The mResponseLength property is an instance property of type UInt32. It is available on Mac Catalyst starting from version 13.1 and on macOS starting from version 10.7. ```APIDOC ## mResponseLength Instance Property ### Description This property represents the response length as an unsigned 32-bit integer. ### Availability - Mac Catalyst: 13.1+ - macOS: 10.7+ ### Declaration ```swift var mResponseLength: UInt32 ``` ``` -------------------------------- ### kCMIODevicePropertyLocationExternalDevice Constant Source: https://developer.apple.com/documentation/coremediaio/kcmiodevicepropertylocationexternaldevice This constant represents the location of an external device for Core Media I/O. It is available on Mac Catalyst starting from version 13.0 and macOS starting from version 10.13. ```APIDOC ## Global Variable ### `kCMIODevicePropertyLocationExternalDevice` Mac Catalyst 13.0+ macOS 10.13+ ```swift var kCMIODevicePropertyLocationExternalDevice: Int { get } ``` ### See Also #### Constants - `var kCMIODevicePropertyLocationBuiltInDisplay: Int` - `var kCMIODevicePropertyLocationExternalDisplay: Int` - `var kCMIODevicePropertyLocationExternalWirelessDevice: Int` - `var kCMIODevicePropertyLocationUnknown: Int` ``` -------------------------------- ### init() Source: https://developer.apple.com/documentation/coremediaio/cmiodeviceavccommand/init%28%29 Initializes a new instance of the CMIODeviceAVCCommand class. ```APIDOC ## init() ### Description Initializes a new instance of the CMIODeviceAVCCommand class. ### Availability - Mac Catalyst 13.1+ - macOS 10.7+ ### Syntax ```init()``` ``` -------------------------------- ### kCMIOObjectPropertySelectorWildcard Source: https://developer.apple.com/documentation/coremediaio/kcmioobjectpropertyselectorwildcard The kCMIOObjectPropertySelectorWildcard is a global variable used as a wildcard selector for Core Media I/O properties. It is available on Mac Catalyst starting from version 13.0 and on macOS starting from version 10.12. ```APIDOC ## Global Variable: kCMIOObjectPropertySelectorWildcard ### Description Represents a wildcard selector for Core Media I/O properties. ### Availability - Mac Catalyst: 13.0+ - macOS: 10.12+ ### Declaration ```swift var kCMIOObjectPropertySelectorWildcard: UInt32 { get } ``` ### See Also - `kCMIOObjectPropertyElementWildcard` - `kCMIOObjectPropertyScopeWildcard` ``` -------------------------------- ### init(localizedName:deviceID:source:) Source: https://developer.apple.com/documentation/coremediaio/cmioextensiondevice/init%28localizedname%3Adeviceid%3Asource%3A%29 Initializes a new CMIOExtensionDevice instance with a localized name, unique identifier, and source object. ```APIDOC ## init(localizedName:deviceID:source:) ### Description Creates an extension device for use within the Core Media I/O framework. ### Parameters - **localizedName** (String) - Required - A localized name for the device. - **deviceID** (UUID) - Required - A universally unique device identifier value. - **source** (any CMIOExtensionDeviceSource) - Required - An extension-specific object that conforms to the CMIOExtensionDeviceSource protocol. ### Request Example ```swift let device = CMIOExtensionDevice( localizedName: "My Camera", deviceID: UUID(), source: myDeviceSource ) ``` ``` -------------------------------- ### Instance Method: providerProperties(forProperties:) Source: https://developer.apple.com/documentation/coremediaio/cmioextensionprovidersource/providerproperties%28forproperties%3A%29 Gets the state of provider properties. This method is available on Mac Catalyst 15.4+ and macOS 12.3+. ```APIDOC ## Instance Method: providerProperties(forProperties:) ### Description Gets the state of provider properties. ### Method `func providerProperties(forProperties properties: Set) throws -> CMIOExtensionProviderProperties` ### Endpoint N/A (Instance Method) ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```swift // No direct request body for this method, parameters are passed in the function call. // Example of calling the function: let propertiesToGet: Set = [.someProperty, .anotherProperty] try let providerProperties = try yourProviderExtensionInstance.providerProperties(forProperties: propertiesToGet) ``` ### Response #### Success Response (200) - **CMIOExtensionProviderProperties** (type) - A provider properties object that contains the state of the requested properties. #### Response Example ```json { "example": "{\"someProperty\": \"someValue\", \"anotherProperty\": 123}" } ``` ### See Also - Configuring Properties - `var availableProperties: Set` - `func setProviderProperties(CMIOExtensionProviderProperties) throws` ``` -------------------------------- ### kCMIODeckStatePlaySlow Constant Source: https://developer.apple.com/documentation/coremediaio/kcmiodeckstateplayslow The kCMIODeckStatePlaySlow constant represents the deck state for playing video in slow motion. It is available on Mac Catalyst starting from version 13.0 and macOS starting from version 10.12. ```APIDOC ## Global Variable ### kCMIODeckStatePlaySlow Mac Catalyst 13.0+ macOS 10.12+ ```swift var kCMIODeckStatePlaySlow: Int { get } ``` ### See Also #### Constants - `var kCMIODeckStateFastForward: Int` - `var kCMIODeckStateFastRewind: Int` - `var kCMIODeckStatePause: Int` - `var kCMIODeckStatePlay: Int` - `var kCMIODeckStatePlayReverse: Int` - `var kCMIODeckStateReverseSlow: Int` - `var kCMIODeckStateStop: Int` ``` -------------------------------- ### Initialize CMIOExtensionProvider Source: https://developer.apple.com/documentation/coremediaio/cmioextensionprovider/init%28source%3Aclientqueue%3A%29 Creates an extension provider with the specified source and dispatch queue. Available on Mac Catalyst 15.4+ and macOS 12.3+. ```swift init( source: any CMIOExtensionProviderSource, clientQueue: dispatch_queue_t? ) ``` -------------------------------- ### kCMIODeckStatePause Constant Source: https://developer.apple.com/documentation/coremediaio/kcmiodeckstatepause The kCMIODeckStatePause constant represents the paused state of a deck in Core Media I/O. It is available on Mac Catalyst starting from version 13.0 and macOS starting from version 10.7. ```APIDOC ## Global Variable ### kCMIODeckStatePause Mac Catalyst 13.0+ macOS 10.7+ ```swift var kCMIODeckStatePause: Int { get } ``` ## See Also ### Constants * `var kCMIODeckStateFastForward: Int` * `var kCMIODeckStateFastRewind: Int` * `var kCMIODeckStatePlay: Int` * `var kCMIODeckStatePlayReverse: Int` * `var kCMIODeckStatePlaySlow: Int` * `var kCMIODeckStateReverseSlow: Int` * `var kCMIODeckStateStop: Int` ``` -------------------------------- ### init(formatDescription:maxFrameDuration:minFrameDuration:validFrameDurations:) Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstreamformat/init%28formatdescription%3Amaxframeduration%3Aminframeduration%3Avalidframedurations%3A%29 Creates a stream format with a format description and frame durations. ```APIDOC ## init(formatDescription:maxFrameDuration:minFrameDuration:validFrameDurations:) ### Description Creates a stream format with a format description and frame durations. ### Parameters - **formatDescription** (CMFormatDescription) - The format of the samples that a stream delivers. - **maxFrameDuration** (CMTime) - The maximum frame duration the stream supports. - **minFrameDuration** (CMTime) - The minimum frame duration the stream supports. - **validFrameDurations** ([CMTime]?) - A discrete set of supported frame durations. ### Request Example @nonobjc convenience init( formatDescription: CMFormatDescription, maxFrameDuration: CMTime, minFrameDuration: CMTime, validFrameDurations: [CMTime]? ) ``` -------------------------------- ### kCMIOObjectSystemObject Global Variable Source: https://developer.apple.com/documentation/coremediaio/kcmioobjectsystemobject The kCMIOObjectSystemObject is a global variable representing the system object in Core Media I/O. It is available on Mac Catalyst starting from version 13.0 and on macOS starting from version 10.12. ```APIDOC ## Global Variable: kCMIOObjectSystemObject ### Description Represents the system object within the Core Media I/O framework. ### Availability - Mac Catalyst: 13.0+ - macOS: 10.12+ ### Declaration ```swift var kCMIOObjectSystemObject: Int { get } ``` ### See Also - `kCMIOSystemObjectClassID`: A related constant for the system object class ID. ``` -------------------------------- ### Initializer: init(scheduledOutputNotificationProc:scheduledOutputNotificationRefCon:) Source: https://developer.apple.com/documentation/coremediaio/cmiostreamscheduledoutputnotificationprocandrefcon/init%28scheduledoutputnotificationproc%3Ascheduledoutputnotificationrefcon%3A%29 Initializes a scheduled output notification for a Core Media I/O stream. ```APIDOC ## init(scheduledOutputNotificationProc:scheduledOutputNotificationRefCon:) ### Description Initializes a new scheduled output notification instance for Core Media I/O streams. ### Parameters - **scheduledOutputNotificationProc** (CMIOStreamScheduledOutputNotificationProc!) - Required - The callback function to be invoked for scheduled output notifications. - **scheduledOutputNotificationRefCon** (UnsafeMutableRawPointer!) - Required - A reference constant to be passed to the notification procedure. ### Request Example init( scheduledOutputNotificationProc: myNotificationProc, scheduledOutputNotificationRefCon: myRefCon ) ``` -------------------------------- ### kCMIOObjectPropertyOwner Constant Source: https://developer.apple.com/documentation/coremediaio/kcmioobjectpropertyowner The kCMIOObjectPropertyOwner constant represents the property that identifies the owner of a Core Media I/O object. It is available on Mac Catalyst starting from version 13.0 and on macOS starting from version 10.12. ```APIDOC ## Global Variable # kCMIOObjectPropertyOwner Mac Catalyst 13.0+ macOS 10.12+ ```swift var kCMIOObjectPropertyOwner: Int { get } ``` ### See Also #### Constants * `var kCMIOObjectPropertyClass: Int` * `var kCMIOObjectPropertyCreator: Int` * `var kCMIOObjectPropertyElementCategoryName: Int` * `var kCMIOObjectPropertyElementName: Int` * `var kCMIOObjectPropertyElementNumberName: Int` * `var kCMIOObjectPropertyListenerAdded: Int` * `var kCMIOObjectPropertyListenerRemoved: Int` * `var kCMIOObjectPropertyManufacturer: Int` * `var kCMIOObjectPropertyName: Int` * `var kCMIOObjectPropertyOwnedObjects: Int` ``` -------------------------------- ### Instance Property: mElement Source: https://developer.apple.com/documentation/coremediaio/cmioobjectpropertyaddress/melement The mElement property represents a property element within Core Media I/O. It is available on Mac Catalyst starting from version 13.1 and on macOS starting from version 10.7. ```APIDOC ## Instance Property: mElement ### Description Represents a property element in Core Media I/O. ### Availability Mac Catalyst 13.1+ macOS 10.7+ ### Declaration ```swift var mElement: CMIOObjectPropertyElement ``` ``` -------------------------------- ### Instance Property: mScope Source: https://developer.apple.com/documentation/coremediaio/cmioobjectpropertyaddress/mscope The `mScope` property represents the property scope for a Core Media I/O object. It is available on Mac Catalyst starting from version 13.1 and on macOS starting from version 10.7. ```APIDOC ## Instance Property: mScope ### Description Represents the property scope for a Core Media I/O object. ### Availability Mac Catalyst 13.1+ macOS 10.7+ ### Type ```swift var mScope: CMIOObjectPropertyScope ``` ``` -------------------------------- ### mResponseUsed Instance Property Source: https://developer.apple.com/documentation/coremediaio/cmiodevicers422command/mresponseused The mResponseUsed property is an unsigned 32-bit integer that indicates whether a response was used. It is available on Mac Catalyst starting from version 13.1 and on macOS starting from version 10.7. ```APIDOC ## Instance Property: mResponseUsed ### Description Indicates whether a response was used. This is a read-only property. ### Availability - Mac Catalyst: 13.1+ - macOS: 10.7+ ### Type `UInt32` ### Declaration ```swift var mResponseUsed: UInt32 ``` ``` -------------------------------- ### Initializer: init(mSelector:mScope:mElement:) Source: https://developer.apple.com/documentation/coremediaio/cmioobjectpropertyaddress/init%28mselector%3Amscope%3Amelement%3A%29 Initializes a new CMIOObjectPropertyAddress instance with the specified selector, scope, and element. ```APIDOC ## Initializer: init(mSelector:mScope:mElement:) ### Description Initializes a new CMIOObjectPropertyAddress structure with the provided selector, scope, and element identifiers. ### Parameters - **mSelector** (CMIOObjectPropertySelector) - Required - The selector for the property. - **mScope** (CMIOObjectPropertyScope) - Required - The scope of the property. - **mElement** (CMIOObjectPropertyElement) - Required - The element of the property. ### Availability - Mac Catalyst 13.1+ - macOS 10.7+ ``` -------------------------------- ### Instance Property: mResponseUsed Source: https://developer.apple.com/documentation/coremediaio/cmiodeviceavccommand/mresponseused The mResponseUsed property is an unsigned 32-bit integer that indicates whether a response has been used. It is available on Mac Catalyst starting from version 13.1 and on macOS starting from version 10.7. ```APIDOC ## Instance Property: mResponseUsed ### Description Indicates whether a response has been used. ### Availability Mac Catalyst 13.1+ macOS 10.7+ ### Type `UInt32` ### Declaration ```swift var mResponseUsed: UInt32 ``` ``` -------------------------------- ### Activate a System Extension Source: https://developer.apple.com/documentation/coremediaio/creating-a-camera-extension-with-core-media-i-o Submit an activation request using the extension's bundle identifier to register it with the system. ```swift // The bundle identifier of your extension. let identifier = "com.example.apple-samplecode.CustomCamera.CameraExtension" // Submit an activation request. let activationRequest = OSSystemExtensionRequest.activationRequest(forExtensionWithIdentifier: identifier, queue: .main) activationRequest.delegate = self OSSystemExtensionManager.shared.submitRequest(activationRequest) ``` -------------------------------- ### Initialize CMIOExtensionProviderProperties Source: https://developer.apple.com/documentation/coremediaio/cmioextensionproviderproperties Creates a provider properties object with the specified properties. Use this initializer to set up the initial state of provider properties. ```swift init(dictionary: [CMIOExtensionProperty : CMIOExtensionPropertyState]) ``` -------------------------------- ### kCMIOBooleanControlClassID Global Variable Source: https://developer.apple.com/documentation/coremediaio/kcmiobooleancontrolclassid This global variable represents the class ID for boolean controls in Core Media I/O. It is available on Mac Catalyst starting from version 13.0 and on macOS starting from version 10.7. ```APIDOC ## Global Variable: kCMIOBooleanControlClassID ### Description Represents the class ID for boolean controls in Core Media I/O. ### Availability - Mac Catalyst: 13.0+ - macOS: 10.7+ ### Type `Int` ### Declaration ```swift var kCMIOBooleanControlClassID: Int { get } ``` ### See Also - `kCMIOControlClassID` - `kCMIOFeatureControlClassID` - `kCMIOSelectorControlClassID` ``` -------------------------------- ### init(sequenceNumber:hostTimeInNanoseconds:) Source: https://developer.apple.com/documentation/coremediaio/cmioextensionscheduledoutput/init%28sequencenumber%3Ahosttimeinnanoseconds%3A%29 Initializes a new scheduled output object with a specific sequence number and host time. ```APIDOC ## init(sequenceNumber:hostTimeInNanoseconds:) ### Description Creates a scheduled output object for Core Media I/O extensions. ### Parameters - **sequenceNumber** (UInt64) - Required - The buffer sequence number that was output. - **hostTimeInNanoseconds** (UInt64) - Required - The host time in nanoseconds when the buffer was output. ### Request Example ```swift let scheduledOutput = CMIOExtensionScheduledOutput(sequenceNumber: 1, hostTimeInNanoseconds: 1000000000) ``` ``` -------------------------------- ### kCMIOFocusControlClassID Global Variable Source: https://developer.apple.com/documentation/coremediaio/kcmiofocuscontrolclassid The kCMIOFocusControlClassID is a global variable representing a class identifier for focus control within Core Media I/O. It is available on Mac Catalyst starting from version 13.0 and on macOS starting from version 10.12. ```APIDOC ## Global Variable: kCMIOFocusControlClassID ### Description Represents the class identifier for focus control in Core Media I/O. ### Availability * Mac Catalyst: 13.0+ * macOS: 10.12+ ### Declaration ```swift var kCMIOFocusControlClassID: Int { get } ``` ### See Also #### Constants * `var kCMIOBacklightCompensationControlClassID: Int` * `var kCMIOBlackLevelControlClassID: Int` * `var kCMIOBrightnessControlClassID: Int` * `var kCMIOContrastControlClassID: Int` * `var kCMIOExposureControlClassID: Int` * `var kCMIOGainControlClassID: Int` * `var kCMIOGammaControlClassID: Int` * `var kCMIOHueControlClassID: Int` * `var kCMIOIrisControlClassID: Int` * `var kCMIOMotionDetectionControlClassID: Int` * `var kCMIOMotionDetectionControlClassID: Int` * `var kCMIONoiseReductionControlClassID: Int` * `var kCMIOOpticalFilterControlClassID: Int` * `var kCMIOOpticalFilterControlClassID: Int` * `var kCMIOPanControlClassID: Int` * `var kCMIOPowerLineFrequencyControlClassID: Int` * `var kCMIOPowerLineFrequencyControlClassID: Int` * `var kCMIOPresetControlClassID: Int` * `var kCMIOPresetControlClassID: Int` * `var kCMIOSaturationControlClassID: Int` * `var kCMIOSharpnessControlClassID: Int` * `var kCMIOSharpnessControlClassID: Int` * `var kCMIOWhiteBalanceControlClassID: Int` * `var kCMIOWhiteBalanceControlClassID: Int` ``` -------------------------------- ### kCMIODataSourceControlClassID Constant Source: https://developer.apple.com/documentation/coremediaio/kcmiodatasourcecontrolclassid The kCMIODataSourceControlClassID is a global variable representing a class ID for data source controls within Core Media I/O. It is available on Mac Catalyst starting from version 13.0 and macOS starting from version 10.12. ```APIDOC ## Global Variable: kCMIODataSourceControlClassID ### Description Represents a class ID for data source controls in Core Media I/O. ### Availability * Mac Catalyst 13.0+ * macOS 10.12+ ### Declaration ```swift var kCMIODataSourceControlClassID: Int { get } ``` ### See Also * `kCMIODataDestinationControlClassID`: Another related constant. ``` -------------------------------- ### Initialize CMIOExtensionDevice Source: https://developer.apple.com/documentation/coremediaio/cmioextensiondevice/init%28localizedname%3Adeviceid%3Alegacydeviceid%3Asource%3A%29 Convenience initializer for creating an extension device without a legacy identifier. ```swift convenience init(localizedName: String, deviceID: UUID, source: any CMIOExtensionDeviceSource) ``` -------------------------------- ### Initializer - init() Source: https://developer.apple.com/documentation/coremediaio/cmiostreamdeck/init%28%29 The init() function is used to initialize Core Media I/O. It is available on Mac Catalyst 13.1+ and macOS 10.7+. ```APIDOC ## Initializer - init() ### Description Initializes Core Media I/O. ### Method Initializer ### Endpoint N/A ### Parameters None ### Request Example ``` init() ``` ### Response N/A ### Platform Availability Mac Catalyst 13.1+ macOS 10.7+ ``` -------------------------------- ### Get Property Data Size - CMIOObjectGetPropertyDataSize Source: https://developer.apple.com/documentation/coremediaio/cmioobjectgetpropertydatasize%28_%3A_%3A_%3A_%3A_%3A%29 Use this function to get the size of property data before retrieving it. Ensure the object ID, property address, and qualifier data are correctly specified. Available on Mac Catalyst 13.1+ and macOS 10.7+. ```swift func CMIOObjectGetPropertyDataSize( _ objectID: CMIOObjectID, _ address: UnsafePointer!, _ qualifierDataSize: UInt32, _ qualifierData: UnsafeRawPointer!, _ dataSize: UnsafeMutablePointer! ) -> OSStatus ``` -------------------------------- ### init(rawValue:) Source: https://developer.apple.com/documentation/coremediaio/cmioextensionproperty/init%28rawvalue%3A%29 Initializes a new CMIOExtensionProperty instance using a raw string value. ```APIDOC ## init(rawValue:) ### Description Creates a property with a raw string value. ### Parameters #### Parameters - **rawValue** (String) - Required - A raw string value. ### Request Example init(rawValue: "example_property_key") ``` -------------------------------- ### Initialize Core Media I/O Object Source: https://developer.apple.com/documentation/coremediaio/cmioobjectpropertyaddress/init%28mselector%3Amscope%3Amelement%3A%29 Use this initializer to create a Core Media I/O object with specific property details. Available on Mac Catalyst 13.1+ and macOS 10.7+. ```swift init( mSelector: CMIOObjectPropertySelector, mScope: CMIOObjectPropertyScope, mElement: CMIOObjectPropertyElement ) ``` -------------------------------- ### init(value:) Source: https://developer.apple.com/documentation/coremediaio/cmioextensionpropertystate/init%28value%3A%29 Initializes a new CMIOExtensionPropertyState instance with a specified value. ```APIDOC ## init(value:) ### Description Creates a property state with a value. The system supports the following value types: NSDictionary, NSArray, NSString, NSData, and NSNumber. ### Method Initializer ### Parameters #### Parameters - **value** (ObjectType?) - Optional - The value to associate with the property state. ### Request Example convenience init(value: ObjectType?) ``` -------------------------------- ### kCMIOObjectPropertyElementName Source: https://developer.apple.com/documentation/coremediaio/kcmioobjectpropertyelementname Represents the property to get the element's name. ```APIDOC ## Global Variable ### kCMIOObjectPropertyElementName Mac Catalyst 13.0+macOS 10.7+ ```swift var kCMIOObjectPropertyElementName: Int { get } ``` ### Description This constant is used to retrieve the name of a Core Media I/O object element. ``` -------------------------------- ### init(localizedName:streamID:direction:customClockConfiguration:source:) Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstream/init%28localizedname%3Astreamid%3Adirection%3Acustomclockconfiguration%3Asource%3A%29 Creates a stream that uses a custom clock configuration. ```APIDOC ## init(localizedName:streamID:direction:customClockConfiguration:source:) ### Description Creates a stream that uses a custom clock configuration. ### Parameters - **localizedName** (String) - A localized name for the stream. - **streamID** (UUID) - A universally unique identifier for the stream. - **direction** (CMIOExtensionStream.Direction) - The direction of the source, which indicates if it produces or consumes samples. - **customClockConfiguration** (CMIOExtensionStreamCustomClockConfiguration) - A custom clock configuration for the stream to use. - **source** (any CMIOExtensionStreamSource) - The stream source object. ``` -------------------------------- ### GET devices Source: https://developer.apple.com/documentation/coremediaio/cmioextensionprovider/devices Retrieves the list of connected devices from the provider. ```APIDOC ## GET devices ### Description An array of connected devices managed by the provider. ### Endpoint devices ### Response - **devices** (Array) - An array of connected devices. ``` -------------------------------- ### GET streamingClients Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstream/streamingclients Retrieves the list of clients currently connected to the stream. ```APIDOC ## GET streamingClients ### Description Returns an array of clients currently connected to the CMIOExtensionStream. This property is key-value observable. ### Endpoint CMIOExtensionStream.streamingClients ### Response - **streamingClients** (Array) - An array of clients of the stream. ### Availability - Mac Catalyst 15.4+ - macOS 12.3+ ``` -------------------------------- ### Initialize CMIOExtensionDeviceProperties with a Dictionary Source: https://developer.apple.com/documentation/coremediaio/cmioextensiondeviceproperties/init%28dictionary%3A%29 Creates a properties object using a dictionary that maps CMIOExtensionProperty keys to their corresponding CMIOExtensionPropertyState values. Requires Mac Catalyst 15.4+ or macOS 12.3+. ```swift init(dictionary propertiesDictionary: [CMIOExtensionProperty : CMIOExtensionPropertyState]) ``` -------------------------------- ### GET availableProperties Source: https://developer.apple.com/documentation/coremediaio/cmioextensiondevicesource/availableproperties Retrieves the set of available properties provided by a CMIOExtensionDeviceSource. ```APIDOC ## GET availableProperties ### Description A set of available properties that a device provides. ### Availability - Mac Catalyst 15.4+ - macOS 12.3+ ### Property Definition `var availableProperties: Set { get }` ### Discussion Don’t change the state of this property during the life cycle of the associated device. ``` -------------------------------- ### Initialize CMIODeviceSMPTETimeCallback Source: https://developer.apple.com/documentation/coremediaio/cmiodevicesmptetimecallback/init%28mgetsmptetimeproc%3Amrefcon%3A%29 Initializes the callback structure with a procedure to retrieve SMPTE time and a reference pointer. ```swift init( mGetSMPTETimeProc: CMIODeviceGetSMPTETimeProc!, mRefCon: UnsafeMutableRawPointer! ) ``` -------------------------------- ### GET CMIOExtensionStreamFormat.formatDescription Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstreamformat/formatdescription Retrieves the format description for a stream's media samples. ```APIDOC ## GET CMIOExtensionStreamFormat.formatDescription ### Description A description of the format of the stream’s media samples. ### Endpoint CMIOExtensionStreamFormat.formatDescription ### Response - **formatDescription** (CMFormatDescription) - A description of the format of the stream’s media samples. ``` -------------------------------- ### setDeviceProperties(_:) Source: https://developer.apple.com/documentation/coremediaio/cmioextensiondevicesource/setdeviceproperties%28_%3A%29 Sets the state of device properties for a Core Media I/O extension device. ```APIDOC ## setDeviceProperties(_:) ### Description Sets the state of device properties. ### Method Instance Method ### Parameters #### Parameters - **deviceProperties** (CMIOExtensionDeviceProperties) - Required - A properties object that contains the updated device state. ### Discussion If you implement this method in Swift and an error occurs, throw an error and pass more detailed information regarding the property or properties that failed in the error that you throw. If you implement this method in Objective-C and an error occurs, pass more detailed information regarding the property or properties that failed in the localizedDescription property of NSError. ``` -------------------------------- ### Initialize Scheduled Output Object Source: https://developer.apple.com/documentation/coremediaio/cmioextensionscheduledoutput/init%28sequencenumber%3Ahosttimeinnanoseconds%3A%29 Use this initializer to create a scheduled output object. It requires the buffer sequence number and the host time in nanoseconds when the buffer was output. ```swift init( sequenceNumber: UInt64, hostTimeInNanoseconds: UInt64 ) ``` -------------------------------- ### GET minFrameDuration Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstreamformat/minframeduration Retrieves the minimum frame duration supported by a CMIOExtensionStreamFormat stream. ```APIDOC ## GET minFrameDuration ### Description The minimum frame duration a stream supports. ### Availability - Mac Catalyst 15.4+ - macOS 12.3+ ### Property Definition ```swift var minFrameDuration: CMTime { get } ``` ``` -------------------------------- ### Create CMIOExtensionDevice Source: https://developer.apple.com/documentation/coremediaio/cmioextensiondevice/init%28localizedname%3Adeviceid%3Asource%3A%29 Use this initializer to create an extension device. Requires a localized name, a UUID for the device ID, and an object conforming to CMIOExtensionDeviceSource. ```swift convenience init( localizedName: String, deviceID: UUID, source: any CMIOExtensionDeviceSource ) ``` -------------------------------- ### GET CMIOExtensionStream.localizedName Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstream/localizedname Retrieves the localized name for a specific media stream instance. ```APIDOC ## GET CMIOExtensionStream.localizedName ### Description A localized name for the stream. ### Availability - Mac Catalyst 15.4+ - macOS 12.3+ ### Property Definition `var localizedName: String { get }` ``` -------------------------------- ### Get Stream Direction Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstream/direction-swift.property Access the data-flow direction of a stream. This property is read-only. ```swift var direction: CMIOExtensionStream.Direction { get } ``` -------------------------------- ### Initialize CMIODeviceAVCCommand Source: https://developer.apple.com/documentation/coremediaio/cmiodeviceavccommand/init%28mcommand%3Amcommandlength%3Amresponse%3Amresponselength%3Amresponseused%3A%29 Initializes a new AVC command structure with pointers to command and response buffers and their respective lengths. ```swift init( mCommand: UnsafeMutablePointer!, mCommandLength: UInt32, mResponse: UnsafeMutablePointer!, mResponseLength: UInt32, mResponseUsed: UInt32 ) ``` -------------------------------- ### consumeSampleBuffer(from:) async throws Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstream/consumesamplebuffer%28from%3Acompletionhandler%3A%29 Consumes a sample buffer from a client asynchronously. ```APIDOC ## Instance Method consumeSampleBuffer(from:) async throws ### Description Consumes a sample buffer from a client asynchronously. ### Method `async throws` ### Endpoint N/A (Instance Method) ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) - **sampleBuffer** (CMSampleBuffer) - The consumed sample buffer. - **sequenceNumber** (UInt64) - The sequence number of the consumed sample. - **discontinuity** (CMIOExtensionStream.DiscontinuityFlags) - A flag indicating stream discontinuity. - **hasMoreSampleBuffers** (Bool) - Indicates if more sample buffers are available. #### Response Example ```json { "sampleBuffer": { /* CMSampleBuffer details */ }, "sequenceNumber": 12345, "discontinuity": "none", "hasMoreSampleBuffers": true } ``` ### Parameters `client` (CMIOExtensionClient) - The client with a sample to process. ``` -------------------------------- ### GET streams Source: https://developer.apple.com/documentation/coremediaio/cmioextensiondevice/streams Retrieves the array of media streams currently attached to the CMIOExtensionDevice. ```APIDOC ## GET streams ### Description Returns an array of media streams attached to the device. This property is not key-value observable. ### Endpoint CMIOExtensionDevice.streams ### Response - **streams** (Array) - An array of media streams attached to this device. ``` -------------------------------- ### Initializer: init(mStatus:mState:mState2:) Source: https://developer.apple.com/documentation/coremediaio/cmiostreamdeck/init%28mstatus%3Amstate%3Amstate2%3A%29 This initializer sets up a new instance of CMIOStreamDeck with the specified status and state values. It is available on Mac Catalyst 13.1+ and macOS 10.7+. ```APIDOC ## Initializer: init(mStatus:mState:mState2:) ### Description Initializes a new instance of CMIOStreamDeck with the provided status and state information. ### Availability - Mac Catalyst 13.1+ - macOS 10.7+ ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Parameters - **mStatus** (UInt32) - Required - The initial status value. - **mState** (UInt32) - Required - The initial state value. - **mState2** (UInt32) - Required - The second initial state value. ### Request Example ```swift let streamDeck = CMIOStreamDeck.init(mStatus: 0, mState: 1, mState2: 2) ``` ### Response #### Success Response (200) N/A for initializers. #### Response Example N/A for initializers. ``` -------------------------------- ### GET getTimeCallMinimumInterval Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstreamcustomclockconfiguration/gettimecallminimuminterval Retrieves the minimum call time interval for a custom clock configuration. ```APIDOC ## GET getTimeCallMinimumInterval ### Description A minimum call time interval for the clock. If you query the clock for its current time more often than this interval, the system returns an interpolated value. ### Method GET ### Endpoint CMIOExtensionStreamCustomClockConfiguration.getTimeCallMinimumInterval ### Response - **getTimeCallMinimumInterval** (CMTime) - The minimum call time interval for the clock. ``` -------------------------------- ### Initialize CMIOExtensionStreamFormat Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstreamformat/init%28formatdescription%3Amaxframeduration%3Aminframeduration%3Avalidframedurations%3A%29 Creates a new stream format instance using a format description and specified frame duration limits. ```swift @nonobjc convenience init( formatDescription: CMFormatDescription, maxFrameDuration: CMTime, minFrameDuration: CMTime, validFrameDurations: [CMTime]? ) ``` -------------------------------- ### Get hostTimeInNanoseconds Source: https://developer.apple.com/documentation/coremediaio/cmioextensionscheduledoutput/hosttimeinnanoseconds Retrieve the host time in nanoseconds when the buffer was output. This property is read-only. ```swift var hostTimeInNanoseconds: UInt64 { get } ``` -------------------------------- ### Get and Set Provider Manufacturer Source: https://developer.apple.com/documentation/coremediaio/cmioextensionproviderproperties/manufacturer Access the provider manufacturer. The key for this property is `providerManufacturer`. ```swift var manufacturer: String? { get set } ``` -------------------------------- ### Get Stream Frame Duration Property Source: https://developer.apple.com/documentation/coremediaio/cmioextensionproperty/streamsinkbufferqueuesize Retrieve the property key for the frame duration. ```swift static let streamFrameDuration: CMIOExtensionProperty ``` -------------------------------- ### consumeSampleBuffer(from:completionHandler:) Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstream/consumesamplebuffer%28from%3Acompletionhandler%3A%29 Consumes a sample buffer from a client using a completion handler. ```APIDOC ## Instance Method consumeSampleBuffer(from:completionHandler:) ### Description Consumes a sample buffer from a client. ### Method `func` ### Endpoint N/A (Instance Method) ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) N/A (Completion Handler based) #### Response Example N/A ### Parameters `client` (CMIOExtensionClient) - The client with a sample to process. `completionHandler` (@escaping @Sendable (CMSampleBuffer?, UInt64, CMIOExtensionStream.DiscontinuityFlags, Bool, (any Error)?) -> Void) - A callback the system invokes with the following data: `sampleBuffer` (CMSampleBuffer?) - A sample buffer that contains the media sample to consume, or `nil` if an error occurs. `sampleBufferSequenceNumber` (UInt64) - The sequence number of the current sample. `discontinuity` (CMIOExtensionStream.DiscontinuityFlags) - A flag that indicates if there’s a discontinuity in the stream. `hasMoreSampleBuffers` (Bool) - A Boolean value that indicates whether there are more buffers available. `error` ((any Error)?) - An optional error. If an error occurs, it contains the details of the failure. ``` -------------------------------- ### Get kCMIOTemperatureControlClassID Source: https://developer.apple.com/documentation/coremediaio/kcmiotemperaturecontrolclassid Access the kCMIOTemperatureControlClassID constant. Available on macOS 10.7+ and Mac Catalyst 13.0+. ```swift var kCMIOTemperatureControlClassID: Int { get } ``` -------------------------------- ### Initialize CMIOExtensionStreamCustomClockConfiguration Source: https://developer.apple.com/documentation/coremediaio/cmioextensionstreamcustomclockconfiguration/init%28clockname%3Asourceidentifier%3Agettimecallminimuminterval%3Anumberofeventsforratesmoothing%3Anumberofaveragesforratesmoothing%3A%29 Creates a new custom clock configuration instance with specified timing and smoothing parameters. ```swift init( clockName: String, sourceIdentifier: UUID, getTimeCallMinimumInterval: CMTime, numberOfEventsForRateSmoothing: UInt32, numberOfAveragesForRateSmoothing: UInt32 ) ```