<!--
{
  "availability" : [
    "iOS: 4.0.0 -",
    "iPadOS: 4.0.0 -",
    "macCatalyst: 14.0.0 -",
    "macOS: 10.7.0 -",
    "tvOS: 17.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVCaptureSession/canAddOutput(_:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVCaptureSession(im)canAddOutput:"
  },
  "title" : "canAddOutput(_:)"
}
-->

# canAddOutput(_:)

Determines whether you can add an output to a session.

```
func canAddOutput(_ output: AVCaptureOutput) -> Bool
```

## Parameters

`output`

An output to add to the session.

## Return Value

<doc://com.apple.documentation/documentation/Swift/true> if you can add the output; otherwise <doc://com.apple.documentation/documentation/Swift/false>.

## Discussion

In iOS and Mac Catalyst, the system imposes the following limitations on the combinations of outputs a capture session may contain:

- An app may add only a single output of a particular type. For apps that link against iOS 16 or later, this restriction no longer applies to [`AVCaptureVideoDataOutput`](/documentation/AVFoundation/AVCaptureVideoDataOutput).
- Prior to iOS 16, you can add an [`AVCaptureVideoDataOutput`](/documentation/AVFoundation/AVCaptureVideoDataOutput) and an [`AVCaptureMovieFileOutput`](/documentation/AVFoundation/AVCaptureMovieFileOutput) to the same session, but only one may have its connection active. If you attempt to enable both connections, the system chooses the movie file output as the active connection and disables the video data output’s connection. For apps that link against iOS 16 or later, this restriction no longer exists.
- Similarly, prior to iOS 16, you can add an [`AVCaptureAudioDataOutput`](/documentation/AVFoundation/AVCaptureAudioDataOutput) and an [`AVCaptureMovieFileOutput`](/documentation/AVFoundation/AVCaptureMovieFileOutput) to the same session, but only one may have its connection active. If you attempt to enable both connections, the system chooses the movie file output and disables the audio data output’s connection. For apps that link against iOS 16 or later, this restriction no longer exists.
- An app can’t add an [`AVCapturePhotoOutput`](/documentation/AVFoundation/AVCapturePhotoOutput) and [`AVCaptureStillImageOutput`](/documentation/AVFoundation/AVCaptureStillImageOutput) to the same session.

> Important:
> If you configure a capture session to use more than one ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureVideoDataOutput`` instance, monitor the value of the capture session’s ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureSession/hardwareCost`` property and reconfigure the session as appropriate.

---

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)