<!--
{
  "availability" : [
    "macOS: 10.8.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVCaptureFileOutputDelegate/fileOutputShouldProvideSampleAccurateRecordingStart(_:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(pl)AVCaptureFileOutputDelegate(im)captureOutputShouldProvideSampleAccurateRecordingStart:"
  },
  "title" : "fileOutputShouldProvideSampleAccurateRecordingStart(_:)"
}
-->

# fileOutputShouldProvideSampleAccurateRecordingStart(_:)

Allows a client to opt in to frame accurate recording in [`fileOutput(_:didOutputSampleBuffer:from:)`](/documentation/AVFoundation/AVCaptureFileOutputDelegate/fileOutput(_:didOutputSampleBuffer:from:)).

```
func fileOutputShouldProvideSampleAccurateRecordingStart(_ output: AVCaptureFileOutput) -> Bool
```

## Parameters

`output`

The capture file output instance that is associated with the delegate.

## Return Value

<doc://com.apple.documentation/documentation/Swift/true> if frame accurate recording is required; otherwise <doc://com.apple.documentation/documentation/Swift/false>.

## Discussion

In apps linked before OS X Mountain Lion, delegates that implement the [`fileOutput(_:didOutputSampleBuffer:from:)`](/documentation/AVFoundation/AVCaptureFileOutputDelegate/fileOutput(_:didOutputSampleBuffer:from:)) method can ensure that starting and stopping a recording is frame accurate by calling [`startRecording(to:recordingDelegate:)`](/documentation/AVFoundation/AVCaptureFileOutput/startRecording(to:recordingDelegate:)) or [`stopRecording()`](/documentation/AVFoundation/AVCaptureFileOutput/stopRecording()) from within the callback. Frame accurate recording requires the capture output to apply outputSettings when the session starts running, so it is ready to start and/or stop recording on any given frame boundary. Applying compression settings for the entire length of the session has power, thermal, and CPU implications.

In apps linked on or after OS X Mountain Lion, delegates must implement this method to indicate whether frame accurate recording is required. The capture file output calls this method only once when the delegate is added and never again. If your delegate returns <doc://com.apple.documentation/documentation/Swift/false>, the capture file output applies compression settings only when [`startRecording(to:recordingDelegate:)`](/documentation/AVFoundation/AVCaptureFileOutput/startRecording(to:recordingDelegate:)) is called and disables these settings once the recording stops.

---

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)