<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macCatalyst: 26.0.0 -",
    "macOS: 26.0.0 -",
    "tvOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVCaptureDeviceInput/activeLockedVideoFrameDuration",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVCaptureDeviceInput(py)activeLockedVideoFrameDuration"
  },
  "title" : "activeLockedVideoFrameDuration"
}
-->

# activeLockedVideoFrameDuration

The receiver’s locked frame duration (the reciprocal of its frame rate). Setting this property guarantees the intra-frame duration delivered by the device input is precisely the frame duration you request.

```
var activeLockedVideoFrameDuration: CMTime { get set }
```

## Discussion

Set this property to run the receiver’s associated [`AVCaptureDevice`](/documentation/AVFoundation/AVCaptureDevice) at precisely your provided frame rate (expressed as a duration). Query [`minSupportedLockedVideoFrameDuration`](/documentation/AVFoundation/AVCaptureDevice/minSupportedLockedVideoFrameDuration) to find the minimum value supported by this [`AVCaptureDeviceInput`](/documentation/AVFoundation/AVCaptureDeviceInput). In order to disable locked video frame duration, set this property to `kCMTimeInvalid`. This property resets itself to `kCMTimeInvalid` when the receiver’s attached [`activeFormat`](/documentation/AVFoundation/AVCaptureDevice/activeFormat) changes. When you set this property, its value is also reflected in the receiver’s [`activeVideoMinFrameDuration`](/documentation/AVFoundation/AVCaptureDevice/activeVideoMinFrameDuration) and [`activeVideoMaxFrameDuration`](/documentation/AVFoundation/AVCaptureDevice/activeVideoMaxFrameDuration).

> Note: Locked frame duration availability may change depending on the device configuration. For example, locked frame duration is unsupported when ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureDevice/isAutoVideoFrameRateEnabled`` or ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureMovieFileOutput/isSpatialVideoCaptureEnabled`` is set to `true`.

> Note: Only one ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureDeviceInput`` added to an ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureMultiCamSession`` can follow an external sync device or run at a locked frame duration.

> Note: Setting this property may cause a lengthy reconfiguration of the receiver, similar to setting ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureDevice/activeFormat`` or ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureSession/sessionPreset``.

> Note: When using this property, set the exposure duration with ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureDevice/setExposureModeCustom(duration:iso:completionHandler:)`` to one half the frame duration (or less) to maintain full dynamic range.

> Important: If you set this property to a valid value while the receiver’s ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureDevice/minSupportedLockedVideoFrameDuration`` is `kCMTimeInvalid`, it throws an `NSInvalidArgumentException`.

> Important: If you set this property while the receiver’s  ``doc://com.apple.avfoundation/documentation/AVFoundation/AVCaptureDeviceInput/isLockedVideoFrameDurationSupported`` property returns `false`, it throws an `NSInvalidArgumentException`.

---

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)