<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macCatalyst: -",
    "macOS: 26.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVVideoComposition/Configuration",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "s:So18AVVideoCompositionC12AVFoundationE13ConfigurationV"
  },
  "title" : "AVVideoComposition.Configuration"
}
-->

# AVVideoComposition.Configuration

Configurable properties for initializing a new AVVideoComposition instance.

```
struct Configuration
```

## Topics

### Creating a configuration

[`init(for: AVAsset, prototypeInstruction: AVVideoCompositionInstruction?) async throws`](/documentation/AVFoundation/AVVideoComposition/Configuration/init(for:prototypeInstruction:))

Initializes a video composition configuration with the specified asset properties and optional prototype video composition instruction.

[`init(animationTool: AVVideoCompositionCoreAnimationTool?, colorPrimaries: String?, colorTransferFunction: String?, colorYCbCrMatrix: String?, customVideoCompositorClass: (any AVVideoCompositing.Type)?, frameDuration: CMTime, instructions: [any AVVideoCompositionInstructionProtocol], outputBufferDescription: [[CMTag]]?, perFrameHDRDisplayMetadataPolicy: AVVideoComposition.PerFrameHDRDisplayMetadataPolicy, renderScale: Float, renderSize: CGSize, sourceSampleDataTrackIDs: [CMPersistentTrackID], sourceTrackIDForFrameTiming: Int32, spatialVideoConfigurations: [AVSpatialVideoConfiguration])`](/documentation/AVFoundation/AVVideoComposition/Configuration/init(animationTool:colorPrimaries:colorTransferFunction:colorYCbCrMatrix:customVideoCompositorClass:frameDuration:instructions:outputBufferDescription:perFrameHDRDisplayMetadataPolicy:renderScale:renderSize:sourceSampleDataTrackIDs:sourceTrackIDForFrameTiming:spatialVideoConfigurations:))

[`init(animationTool: AVVideoCompositionCoreAnimationTool?, colorPrimaries: String?, colorTransferFunction: String?, colorYCbCrMatrix: String?, customVideoCompositorClass: (any AVVideoCompositing.Type)?, frameDuration: CMTime, instructions: [any AVVideoCompositionInstructionProtocol], outputBufferDescription: [[CMTag]]?, renderScale: Float, renderSize: CGSize, sourceSampleDataTrackIDs: [CMPersistentTrackID], sourceTrackIDForFrameTiming: Int32, spatialVideoConfigurations: [AVSpatialVideoConfiguration])`](/documentation/AVFoundation/AVVideoComposition/Configuration/init(animationTool:colorPrimaries:colorTransferFunction:colorYCbCrMatrix:customVideoCompositorClass:frameDuration:instructions:outputBufferDescription:renderScale:renderSize:sourceSampleDataTrackIDs:sourceTrackIDForFrameTiming:spatialVideoConfigurations:))

### Inspecting the configuration

[`var renderSize: CGSize`](/documentation/AVFoundation/AVVideoComposition/Configuration/renderSize)

The size at which the video composition should render.

[`var renderScale: Float`](/documentation/AVFoundation/AVVideoComposition/Configuration/renderScale)

The scale at which the video composition should render.

[`var frameDuration: CMTime`](/documentation/AVFoundation/AVVideoComposition/Configuration/frameDuration)

A time interval for which the video composition should render composed video frames.

[`var animationTool: AVVideoCompositionCoreAnimationTool?`](/documentation/AVFoundation/AVVideoComposition/Configuration/animationTool)

A video composition tool to use with Core Animation in offline rendering.

[`var colorPrimaries: String?`](/documentation/AVFoundation/AVVideoComposition/Configuration/colorPrimaries)

The color primaries used for video composition.

[`var colorTransferFunction: String?`](/documentation/AVFoundation/AVVideoComposition/Configuration/colorTransferFunction)

The transfer function used for video composition.

[`var colorYCbCrMatrix: String?`](/documentation/AVFoundation/AVVideoComposition/Configuration/colorYCbCrMatrix)

The YCbCr matrix used for video composition.

[`var customVideoCompositorClass: (any AVVideoCompositing.Type)?`](/documentation/AVFoundation/AVVideoComposition/Configuration/customVideoCompositorClass)

A custom compositor class to use.

[`var outputBufferDescription: [[CMTag]]?`](/documentation/AVFoundation/AVVideoComposition/Configuration/outputBufferDescription)

The output buffers of the video composition can be specified with the outputBufferDescription. The value is an array of an array of CMTag objects that describes the output buffers.

[`var instructions: [any AVVideoCompositionInstructionProtocol]`](/documentation/AVFoundation/AVVideoComposition/Configuration/instructions)

The video composition instructions.

[`var spatialVideoConfigurations: [AVSpatialVideoConfiguration]`](/documentation/AVFoundation/AVVideoComposition/Configuration/spatialVideoConfigurations)

Indicates the spatial configurations that are available to associate with the output of the video composition.

[`var perFrameHDRDisplayMetadataPolicy: AVVideoComposition.PerFrameHDRDisplayMetadataPolicy`](/documentation/AVFoundation/AVVideoComposition/Configuration/perFrameHDRDisplayMetadataPolicy)

The policy for display of HDR display metadata on the rendered frame.

[`var sourceSampleDataTrackIDs: [CMPersistentTrackID]`](/documentation/AVFoundation/AVVideoComposition/Configuration/sourceSampleDataTrackIDs)

The identifiers of source sample data tracks in the composition that the object requires to compose frames.

[`var sourceTrackIDForFrameTiming: CMPersistentTrackID`](/documentation/AVFoundation/AVVideoComposition/Configuration/sourceTrackIDForFrameTiming)

An identifier of the source track from which the video composition derives frame timing.

## Relationships

### Conforms To

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

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

---

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)