<!--
{
  "availability" : [
    "iOS: 8.0.0 -",
    "iPadOS: 8.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.10.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVAssetWriterInput/canPerformMultiplePasses",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVAssetWriterInput(py)canPerformMultiplePasses"
  },
  "title" : "canPerformMultiplePasses"
}
-->

# canPerformMultiplePasses

A Boolean value that indicates whether the input may perform multiple passes over appended media data.

```
var canPerformMultiplePasses: Bool { get }
```

## Discussion

When the value for this property is <doc://com.apple.documentation/documentation/Swift/true>, configure your source media data for random access. After appending the media data for the current pass, as specified by the [`currentPassDescription`](/documentation/AVFoundation/AVAssetWriterInput/currentPassDescription) property, call [`markCurrentPassAsFinished()`](/documentation/AVFoundation/AVAssetWriterInput/markCurrentPassAsFinished()) so the system can determine whether it needs to perform additional passes. The system may perform only the initial pass if it determines there’s no benefit to performing multiple passes.

When the value for this property is <doc://com.apple.documentation/documentation/Swift/false>, your source for media data only needs to support sequential access. In this case, append all of the source media one time and call [`markAsFinished()`](/documentation/AVFoundation/AVAssetWriterInput/markAsFinished()).

The default value is <doc://com.apple.documentation/documentation/Swift/false>. Currently the only way for this property to become <doc://com.apple.documentation/documentation/Swift/true> is when the value of [`performsMultiPassEncodingIfSupported`](/documentation/AVFoundation/AVAssetWriterInput/performsMultiPassEncodingIfSupported) is <doc://com.apple.documentation/documentation/Swift/true>. The final value is available after you call [`startWriting()`](/documentation/AVFoundation/AVAssetWriter/startWriting()).

This property is key-value observable.

---

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)