### 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
)
```