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

# CMIOExtensionStreamProperties

An object that describes the properties of an extension stream.

```
class CMIOExtensionStreamProperties
```

## Topics

### Creating Stream Properties

[`+ (instancetype) streamPropertiesWithDictionary:(NSDictionary<NSString *,CMIOExtensionPropertyState *> *) propertiesDictionary;`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/streamPropertiesWithDictionary:)

Returns a new properties object that provides the specified properties and default states.

[`init(dictionary: [CMIOExtensionProperty : CMIOExtensionPropertyState<AnyObject>])`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/init(dictionary:))

Creates a properties object that provides the specified properties and default states.

### Configuring Sink Properties

[`var sinkBufferQueueSize: Int?`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/sinkBufferQueueSize-9b80c)

The buffer queue size.

[`var sinkBuffersRequiredForStartup: Int?`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/sinkBuffersRequiredForStartup-1bgyq)

The number of buffers the stream requires for startup.

[`var sinkBufferUnderrunCount: Int?`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/sinkBufferUnderrunCount-1qmbb)

The buffer underrun count.

[`var sinkEndOfData: Int?`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/sinkEndOfData-8fswu)

A value that indicates whether the stream has reached its end.

[`@property (atomic, strong, nullable) NSNumber * sinkBufferQueueSize;`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/sinkBufferQueueSize-4kpug)

The buffer queue size.

[`@property (atomic, strong, nullable) NSNumber * sinkBuffersRequiredForStartup;`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/sinkBuffersRequiredForStartup-4b5te)

The number of buffers the stream requires for startup.

[`@property (atomic, strong, nullable) NSNumber * sinkBufferUnderrunCount;`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/sinkBufferUnderrunCount-9sph5)

The buffer underrun count.

[`@property (atomic, strong, nullable) NSNumber * sinkEndOfData;`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/sinkEndOfData-30he9)

A value that indicates whether the stream has reached its end.

### Configuring Source Properties

[`var activeFormatIndex: Int?`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/activeFormatIndex-83u7z)

The index of the active format.

[`var frameDuration: CMTime?`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/frameDuration-4rnl9)

The duration of the frame.

[`var maxFrameDuration: CMTime?`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/maxFrameDuration-5qqg)

The maximum duration of a frame.

[`@property (atomic, strong, nullable) NSNumber * activeFormatIndex;`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/activeFormatIndex-8czm7)

The index of the active format.

[`@property (atomic, strong, nullable) NSDictionary * frameDuration;`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/frameDuration-lrfi)

A dictionary representation of a frame duration.

[`@property (atomic, strong, nullable) NSDictionary * maxFrameDuration;`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/maxFrameDuration-8fo5t)

The maximum duration of a frame.

### Managing Property State

[`var propertiesDictionary: [CMIOExtensionProperty : CMIOExtensionPropertyState<AnyObject>]`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/propertiesDictionary)

A dictionary representation of the property state.

[`func setPropertyState(CMIOExtensionPropertyState<AnyObject>?, forProperty: CMIOExtensionProperty)`](/documentation/CoreMediaIO/CMIOExtensionStreamProperties/setPropertyState(_:forProperty:))

Sets the state of the specified property.

## Relationships

### Conforms To

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`Equatable`](/documentation/Swift/Equatable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`Hashable`](/documentation/Swift/Hashable)

[`CVarArg`](/documentation/Swift/CVarArg)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)