Support the Center Stage front camera in your iOS app
Use AVCapture APIs on iOS 26 to adopt the Center Stage front camera for selfies, video recording, video calls, smart framing, and stabilization.
TL;DR
- The Center Stage front camera on iPhone 17, iPhone Air, and iPhone 17 Pro uses a square sensor and 95-degree field of view to support flexible front-camera framing without rotating the device.
- iOS 26 adds dynamic aspect ratio support on AVCaptureDevice, allowing seamless preview changes among supported ratios such as 3x4, 4x3, 9x16, 16x9, and 1x1 on compatible square formats.
- AVCaptureSmartFramingMonitor provides photo-oriented framing recommendations with an aspect ratio and zoom factor, enabling Auto Zoom and Auto Rotate based on face and gaze detection.
- Video apps can use Center Stage for calls via process-wide AVCaptureDevice settings and can enable low-latency stabilization on the capture connection for smoother real-time video.
Center Stage front camera capabilities
The Center Stage front camera is available on iPhone 17, iPhone Air, and iPhone 17 Pro. Unlike earlier front cameras with 4x3 sensors, it uses a square image sensor paired with a 95-degree field-of-view lens.
The square sensor lets apps crop portrait, landscape, square, and widescreen framings without requiring the user to rotate the phone. The wider view also supports group selfies, video stabilization, and Center Stage behavior for video calls.
- The front camera is represented through AVCaptureDevice as the front-facing .builtInUltraWideCamera.
- The sensor supports framing flexibility for selfies and group shots while keeping a secure one-handed grip and more natural eye contact.
- For photos, the main building blocks are dynamic aspect ratio, smart framing monitor, and sensor orientation compensation.
Capture setup and dynamic aspect ratio
A typical photo setup uses AVCaptureSession with an AVCaptureDeviceInput for the Center Stage front camera, AVCaptureVideoPreviewLayer for preview, and AVCapturePhotoOutput for still capture. AVCaptureSession creates compatible AVCaptureConnection objects between inputs and outputs.
Starting in iOS 26, AVCaptureDevice exposes dynamic aspect ratio. Setting it crops the requested aspect ratio from the square sensor without rebuilding the capture session or interrupting preview, and the API returns the timestamp of the first buffer where the change takes effect.
- Use .builtInUltraWideCamera with .front position to discover the Center Stage front camera.
- Choose an activeFormat whose supportedDynamicAspectRatios contains the target ratio.
- Supported ratios include 3x4, 4x3, 9x16, 16x9, and 1x1 on compatible square formats.
- The 4032 photo format supports only 3x4 and 4x3 because those provide the highest photo resolution.
Select a Center Stage front camera format and set a dynamic aspect ratio
Finds the front ultra-wide Center Stage camera, selects a format that supports 4x3, and applies that dynamic aspect ratio without rebuilding the session.
import AVFoundation
let discovery = AVCaptureDevice.DiscoverySession(
deviceTypes: [.builtInUltraWideCamera],
mediaType: .video,
position: .front
)
guard let camera = discovery.devices.first else { return }
for format in camera.formats where format.supportedDynamicAspectRatios.contains(.ratio4x3) {
try camera.lockForConfiguration()
camera.activeFormat = format
camera.unlockForConfiguration()
break
}
try camera.lockForConfiguration()
let timestamp = try await camera.setDynamicAspectRatio(.ratio4x3)
print("Applied at: \(timestamp)")
camera.unlockForConfiguration()Smart framing for Auto Zoom and Auto Rotate
AVCaptureSmartFramingMonitor works with dynamic aspect ratio to automate photo framing. It periodically recommends a framing based on automatic face and gaze detection, and each recommendation includes an aspect ratio and zoom factor that the app can apply or ignore.
The monitor is intended for photo capture and only provides recommendations when using the 4032 photo format. By default, it provides no recommendations until enabledFramings is configured.
- Select a camera format that supports smart framing and the desired dynamic aspect ratios.
- Set monitor.enabledFramings, either to all supported framings or a restricted subset.
- Observe recommendedFraming and apply the recommended aspect ratio before applying the zoom factor for a smooth preview transition.
- Start monitoring while the AVCaptureSession is running if needed, and invalidate observation plus stopMonitoring when automatic framing is disabled.
Configure and observe AVCaptureSmartFramingMonitor
Enables supported smart framings, observes recommendations, and applies the recommended aspect ratio and zoom factor.
for format in camera.formats where format.isSmartFramingSupported {
try camera.lockForConfiguration()
camera.activeFormat = format
camera.unlockForConfiguration()
break
}
let monitor = camera.smartFramingMonitor!
try camera.lockForConfiguration()
monitor.enabledFramings = monitor.supportedFramings
camera.unlockForConfiguration()
observation = monitor.observe(\.recommendedFraming, options: [.new]) { monitor, _ in
guard let framing = monitor.recommendedFraming else { return }
Task {
try camera.lockForConfiguration()
try await camera.setDynamicAspectRatio(framing.aspectRatio)
camera.videoZoomFactor = CGFloat(framing.zoomFactor)
camera.unlockForConfiguration()
}
}
try monitor.startMonitoring()
// Later, when disabling automatic framing:
observation?.invalidate()
observation = nil
monitor.stopMonitoring()Photo orientation and sensor orientation compensation
Earlier iPhone front camera sensors were mounted in Landscape Left orientation, while the Center Stage front camera sensor is mounted in Portrait orientation. Apps that assume older sensor rotation behavior may otherwise show photos sideways or upside down.
AVCapturePhotoOutput applies sensor orientation compensation by default: it physically rotates photos and updates EXIF metadata before delivery so resulting photos match the Landscape Left behavior apps have historically expected.
- Compensation applies to HEIC, JPEG, and uncompressed processed photos.
- Compensation is never applied to Bayer RAW or Apple ProRAW captures.
- Starting in iOS 26, apps can control this with cameraSensorOrientationCompensationEnabled.
- If using AVCapturePhotoOutput, test with compensation off for performance and verify that photo orientation remains correct.
- For broader rotation handling, the session points to AVCaptureRotationCoordinator and the WWDC 2023 external cameras session.
Video recording behavior
Dynamic aspect ratio also applies to video recording, enabling experiences like tap-to-rotate for a wider view. However, QuickTime movie tracks require all samples in a track to have the same dimensions, so changing dynamic aspect ratio during recording requires a recording transition.
With AVCaptureMovieFileOutput, recording stops automatically when the aspect ratio changes. With AVCaptureVideoDataOutput and AVAssetWriter, the timestamp returned by setDynamicAspectRatio can be used to end the current recording and begin a new one with the updated aspect ratio.
- Use AVCaptureMovieFileOutput instead of AVCapturePhotoOutput for a movie-file recording setup.
- Use AVCaptureVideoDataOutput plus AVAssetWriter when the app needs app-layer recording control.
- Consider cinematicExtended and cinematicExtendedEnhanced stabilization modes for recordings; on the Center Stage front camera they are face-aware and prioritize keeping the subject stable over the background.
Center Stage and stabilization for video calls
Video conferencing apps commonly use AVCaptureVideoDataOutput to receive video buffers and handle display, encoding, and transmission themselves. If the app uses the Voice over IP background mode to keep calls connected while locked, users can enable Center Stage from Control Center's Video Effects menu.
Apps that do not use the Voice over IP background mode can still adopt the Center Stage API on supported iPhone front cameras. Like other system-wide video effects such as Portrait, Studio Light, and Gestures, Center Stage is enabled per process and applies to supported cameras in the app once active.
For real-time calls, the Center Stage front camera also supports low-latency video stabilization starting in iOS 26. It is off by default and is enabled by setting the capture connection's preferredVideoStabilizationMode to lowLatency.
- Find and set an active format whose isCenterStageSupported property is true.
- Set AVCaptureDevice.centerStageControlMode to cooperative or app before enabling Center Stage.
- In cooperative mode, users can also control Center Stage from a button in the app.
- Set AVCaptureDevice.isCenterStageEnabled to true to activate automatic framing that keeps people centered.
- Set preferredVideoStabilizationMode on AVCaptureConnection to lowLatency for smoother real-time video calls.
Enable Center Stage for video calls
Selects a Center Stage-capable format, chooses a control mode, and enables Center Stage process-wide.
for format in camera.formats where format.isCenterStageSupported {
try camera.lockForConfiguration()
camera.activeFormat = format
camera.unlockForConfiguration()
break
}
AVCaptureDevice.centerStageControlMode = .cooperative
AVCaptureDevice.isCenterStageEnabled = trueEnable low-latency stabilization on a capture connection
Turns on the iOS 26 low-latency stabilization mode for real-time video conferencing.
connection.preferredVideoStabilizationMode = .lowLatencyResources
- Supporting Center Stage front camera in your iOS app
- AVCam: Building a camera app
- AVFoundation
- Capture setup
Related Sessions
- Implement high resolution photo capture
- Support external cameras in your iPadOS app
- What's new in camera capture
Enhance RAW image processing with Core Image
Use Core Image RAW 9 and CIRAWFilter to improve RAW rendering quality, tune editing performance, and optimize custom CIImageProcessor kernels.
Camera and Photo Technologies Group Lab
Online WWDC26 group lab for discussing camera and photo technology announcements with Apple engineers and designers.