<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: 15.4.0 -",
    "macOS: 12.3.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreMediaIO",
  "identifier" : "/documentation/CoreMediaIO/CMIOExtensionDeviceSource",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Core Media I/O"
    ],
    "preciseIdentifier" : "c:objc(pl)CMIOExtensionDeviceSource"
  },
  "title" : "CMIOExtensionDeviceSource"
}
-->

# CMIOExtensionDeviceSource

A protocol for objects that act as device sources.

```
protocol CMIOExtensionDeviceSource : NSObjectProtocol
```

## Overview

Create a class that adopts this protocol to configure device properties.

## Topics

### Managing Properties

[`availableProperties`](/documentation/CoreMediaIO/CMIOExtensionDeviceSource/availableProperties)

A set of available properties that a device provides.

[`deviceProperties(forProperties:)`](/documentation/CoreMediaIO/CMIOExtensionDeviceSource/deviceProperties(forProperties:))

Retrieves the state of device properties.

[`setDeviceProperties(_:)`](/documentation/CoreMediaIO/CMIOExtensionDeviceSource/setDeviceProperties(_:))

Sets the state of device properties.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)