Hello Apple AVFoundation team,
Could you clarify the supported iPhone models and OS versions for standalone locked video frame duration using AVCaptureDeviceInput.activeLockedVideoFrameDuration?
The API is documented as available from iOS 26.0, but I understand that OS availability alone does not mean every camera device/configuration supports it. I have read the API documentation and the DTS reply in iPhone 17 Pro's Genlock feature, but could not find a model compatibility list for the standalone locked-duration API.
Scope: I am investigating actual capture timing for multi-iPhone motion capture. This question is about locking each camera's frame period using its internal timing, without an external genlock accessory. I am not asking about encoding a constant-frame-rate file, ordinary equal min/max frame durations, timecode metadata, or synchronizing the first exposure across phones.
Physical-device test
iPhone 16 Pro, iOS 26.2 (23C55).
Built with Xcode 26.3 and the iOS 26.2 SDK.
One AVCaptureSession, one physical rear .builtInWideAngleCamera input, and one AVCaptureVideoDataOutput.
8-bit SDR 420v formats, tested at 1920 x 1080 and 3840 x 2160, each at 30 and 60 fps.
Auto video frame rate disabled; no spatial video capture or multicam session.
Manual exposure approximately 2 ms, shorter than half a frame at both tested rates.
The session is running and delivering frames. Two separate probe runs produced the same results, including capability readbacks after a settling period.
For all four tested configurations:
input.isLockedVideoFrameDurationSupported = false
device.minSupportedLockedVideoFrameDuration = kCMTimeInvalid
input.activeLockedVideoFrameDuration = kCMTimeInvalid
device.isVideoFrameDurationLocked = falseOrdinary activeVideoMinFrameDuration and activeVideoMaxFrameDuration can both be set to the requested CMTime(value: 1, timescale: 30) or CMTime(value: 1, timescale: 60), and frames are delivered. This is only a configuration readback, not a claim of exact capture timing in the ordinary mode.
The app directly queries the public support properties; it has no model whitelist. It does not attempt to set a valid locked duration when support is false, as the documented setter contract would reject that. These tests cover the selected formats, not every camera/format on this phone.
Questions
Which iPhone models support this standalone API? In particular, is false expected on iPhone 16 Pro? Is there an official compatibility list covering iPhone 13/14/15/16 and iPhone 17 models?
Is the iPhone 16 Pro result a hardware capability restriction, an iOS 26.2 limitation/known issue, or a configuration requirement? Is there a released iOS version that enables this on iPhone 16 Pro, or is newer hardware required?
What is the minimum supported capture configuration and correct time to query support? Are there restrictions involving the physical versus virtual camera input, pixel format, SDR/HDR, or exposure mode that could explain this result? If so, which configuration should be tested before concluding that the device does not support it?
On supported hardware, can this standalone lock be enabled without an external accessory or a special entitlement, independently of follow(_:videoFrameDuration:delegate:)?
Relevant documentation:
activeLockedVideoFrameDuration
isLockedVideoFrameDurationSupported
minSupportedLockedVideoFrameDuration
I can provide a focused reproducer if needed. Thank you for clarifying the device requirements and whether an OS upgrade can change the result.
1
0
70