---
title: CMIOExtensionDevice
framework: coremediaio
role: symbol
role_heading: Class
path: coremediaio/cmioextensiondevice
---

# CMIOExtensionDevice

An object that represents a physical or virtual device.

## Declaration

```swift
class CMIOExtensionDevice
```

## Mentioned in

Creating a camera extension with Core Media I/O

## Overview

Overview A device provides one or more streams of media data to a CMIOExtensionProvider.

## Topics

### Creating a Device

- [init(localizedName:deviceID:source:)](coremediaio/cmioextensiondevice/init(localizedname:deviceid:source:).md)
- [init(localizedName:deviceID:legacyDeviceID:source:)](coremediaio/cmioextensiondevice/init(localizedname:deviceid:legacydeviceid:source:).md)

### Identifying a Device

- [localizedName](coremediaio/cmioextensiondevice/localizedname.md)
- [deviceID](coremediaio/cmioextensiondevice/deviceid.md)
- [legacyDeviceID](coremediaio/cmioextensiondevice/legacydeviceid.md)

### Managing Streams

- [streams](coremediaio/cmioextensiondevice/streams.md)
- [addStream(_:)](coremediaio/cmioextensiondevice/addstream(_:).md)
- [removeStream(_:)](coremediaio/cmioextensiondevice/removestream(_:).md)

### Accessing the Device Source

- [source](coremediaio/cmioextensiondevice/source.md)

### Posting Property Changes

- [notifyPropertiesChanged(_:)](coremediaio/cmioextensiondevice/notifypropertieschanged(_:).md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Devices

- [CMIOExtensionDeviceSource](coremediaio/cmioextensiondevicesource.md)
- [CMIOExtensionDeviceProperties](coremediaio/cmioextensiondeviceproperties.md)
