Photos & Camera

RSS for tag

Explore technical aspects of capturing high-quality photos and videos, including exposure control, focus modes, and RAW capture options.

Posts under Photos & Camera subtopic

Post

Replies

Boosts

Views

Activity

CameraCaptureAccessory: orientation of the accessory scene in the partially folded (laptop) pose
We present custom content on the outer display through CameraCaptureAccessory while a capture session runs (iOS 27.1). Our app is used in the partially folded "laptop" pose: the inner display is portrait with a horizontal fold, controls below the fold, content above it. The person in front of the outer camera sits opposite the device, so for them the outer display's long edge is horizontal. In Simulator (iPhone Duo, iOS 27.1) the accessory scene is always laid out as 466×678 pt — portrait — regardless of the pose, and regardless of the app's UISupportedInterfaceOrientations. Our landscape content is therefore letterboxed into a narrow band instead of filling the display. On device, what interface orientation does the accessory scene get in the partially folded pose? Does the system rotate it to match the physical orientation of the outer display, or is it always the outer display's portrait orientation? Is Simulator's behaviour here representative, or is accessory-scene orientation one of the things that only behaves correctly on device? If we have to compensate ourselves, is there a supported way to learn the outer display's physical orientation from inside the accessory scene — reserved regions, the scene's interfaceOrientation, something else? We would rather not hardcode a rotation. Does UIRequiresFullScreen (deprecated in iOS 26) or the app's supported interface orientations constrain the accessory scene in any way?
1
0
98
1w
ARKit behaviour across the fold
Hi, Can you talk about what happens with ARKit by default when the unfolding occurs in a normal ARWorldTrackingConfiguration - does the ARSession pause at all or is tracking completely uninterrupted? Does it swap cameras when using ARFaceTrackingConfiguration! Thanks.
1
1
100
1w
Is the inner under-display camera a supported source for real-time 2D body-pose analysis?
Hi! We run continuous 2D human body-pose estimation on a front-facing camera feed: one person, full body in frame, standing a few meters away, about 30 fps. With iPhone Duo open, the camera that faces the person looking at the inner display is the under-display inner camera (builtInInnerUltraWideCamera). Published specs cap it at 1080p at 30 or 60 fps, and it is presented as the FaceTime camera. Two things are unclear from the camera tech talk and the specs: Is that 1080p format a native readout we can feed to Vision body pose, or a preview-oriented stream whose effective detail is too low for full-body pose at that distance? Is third-party use of this camera supported for a long-running analysis session, or is it intended only for video calls and live previews? Thanks
1
0
90
1w
All cameras being used
Can all the cameras on iPhone Duo be active while an app tries to translate sign language using the front facing camera and back camera to monitor hand movements and show the translation with action in the expanded display with its camera on?
1
0
82
1w
Constituent Photo Delivery
When iPhone Duo is fully open, so the outer front camera and the rear cameras face the same direction, is there a virtual AVCaptureDevice whose constituentDevices include both the outer front camera and the rear 48 MP wide camera, so that virtual device constituent photo delivery that could produce one photo from each of those cameras simultaneously, as is possible on existing iPhones with two rear cameras, using isVirtualDeviceConstituentPhotoDeliveryEnabled / virtualDeviceConstituentPhotoDeliveryEnabledDevices?
1
0
77
1w
Camera positioning
In our app we assume that user positioned the smartphone the way when the front camera (120fps) is on the left and the screen position is landscape (for watching video). We use it in our ML model. Can we adopt it somehow on iPhone Duo?
4
0
145
1w
Fixed Interface Orientation
Camera apps commonly use portrait-only orientation specifically to prevent the interface from rotating. Otherwise, toolbars, the preview aspect ratio, and camera frames all need to be reorganized just to undo the rotation. On the iPhone Duo inner display, portrait-only no longer prevents rotation. Please provide a UIRequiresFixedInterfaceOrientation key! :-)
2
1
160
1w
Simultaneous capture and fold transitions in a live-streaming app on iPhone Duo
I build Lumecast, a live-streaming app (custom AVCapture pipeline feeding WebRTC). Three questions:   1. Does iPhone Duo support AVCaptureMultiCamSession — specifically front + rear simultaneously? Our co-casting feature would let a solo host fill two panes with their face and what they're looking at. How should a continuous capture session (live broadcast, can't pause) respond to camera direction changes as the device opens and closes? Is there a recommended pattern for swapping to the Virtual Front Camera mid-session without a visible gap for viewers?  3. Which cameras are available to third-party apps in each posture (folded / half-open / fully open), and does availability change at a specific hinge state? Goal: a host folds or unfolds mid-broadcast and their audience never sees a dropped frame.
3
0
185
1w
Is AVCaptureMultiCamSession supported on iPhone Duo
is AVCaptureMultiCamSession supported on iPhone Duo — specifically streaming two cameras that face opposite directions simultaneously (e.g. .builtInInnerUltraWideCamera + .builtInOuterUltraWideCamera, or the Virtual Front Camera plus a backward-facing camera)? I noticed the article recommends single-input reconfiguration over multi-cam; is that a performance recommendation, or is opposite-direction multi-cam unavailable on this device? Our use case is a live co-cast where one host fills two video panes: their face and what they're looking at.
0
0
81
1w
Where is the API for variable aperture of the iPhone 18 Pro?
According to Apple's press release (https://www.apple.com/pt/newsroom/2026/09/apple-debuts-iphone-18-pro-and-iphone-18-pro-max/): Variable aperture also provides more control for creative pros by giving them the ability to manually adjust any of the four aperture settings in the Camera app, and an API is available to developers for even more control across the aperture range in their apps. Can a DTS engineer specify the quoted API please? I can't see it anywhere in the documentation yet. What does it mean "even more control across the aperture range"? Will it be possible to set the aperture in a 0.0-1.0 range?
3
3
1.1k
1w
`LockedCameraCaptureManager` practically unusable since iOS 26
Somewhere since iOS 26, the LockedCameraCapture framework gets in an unpredictable state after opening the main app from the LockedCamera extension using LockedCameraCaptureSession.openApplication(for userActivity:). (Feedback with sample code to reproduce: FB21966835) Opening the extension from the lock screen again doesn’t open the extension but puts the lock screen in a state as if it has. Content updated from LockedCameraCaptureManager.shared.sessionContentUpdates comes in inconsistently, usually needs the app to be opened again or the extension to be opened. This makes using this extension impossible for me as I use it to record video files that manually need to be imported when the app is launched (so not through PhotoKit). Does anybody have a suggestion to circumvent this issue or how to get this fixed?
2
3
1.3k
1w
Camera app Manuel Focus (MF) not available for iPhone 17 and below
For the new IOS 27.0 system on iPhone 18 pro demo, the camera app have a new feature to let users adjust camera focusing from AF to MF. This feature does not require the newest camera module. Therefore, all previous models should be able to have this feature, especially useful via camera control slider. How to get attention of apple camera software development team to work on this...
0
0
213
2w
EXIF metadata is stripped when creating an asset via addResource(with:.photo, data:) on iOS 26.6
Starting with iOS 26.6, saving an image to the photo library via PHAssetCreationRequest.addResource(with: .photo, data:, options:) appears to re-encode the image, dropping all EXIF metadata. The same code preserved metadata through iOS 26.5. let creationRequest = PHAssetCreationRequest.forAsset() creationRequest.addResource(with: .photo, data: image, options: nil) I would like to know whether this change is intentional, and whether the file-based overload is the supported way to preserve an image's original metadata. What we verified The bytes we hand to PhotoKit still contain the metadata. Setting contentType explicitly does not help. We resolved the type from the data and confirmed at runtime that it was non-nil (public.jpeg): let options = PHAssetResourceCreationOptions() if #available(iOS 26.0, *) { options.contentType = contentType // verified: UTType.jpeg, not nil } let request = PHAssetCreationRequest.forAsset() request.addResource(with: .photo, data: imageData, options: options) The resulting asset still has no EXIF. Writing the identical bytes to a temporary file and using the file-based overload preserves everything: try imageData.write(to: temporaryFileURL, options: .atomic) let options = PHAssetResourceCreationOptions() options.shouldMoveFile = true let request = PHAssetCreationRequest.forAsset() request.addResource(with: .photo, fileURL: temporaryFileURL, options: options) Capture date, camera information and location are all intact. We access the library with PHAccessLevel.addOnly.
1
0
865
2w
How can an app detect a TrueDepth pipeline failure when no depth output or drop callback is delivered?
How can an app detect a TrueDepth pipeline failure when no depth output or drop callback is delivered? We are using AVFoundation to stream synchronized RGB and depth data from the front-facing TrueDepth camera. On a small number of physical devices, the capture session and RGB stream remain healthy, but the depth pipeline becomes silent or returns unusable data. We would like to understand the intended public-API behavior and the supported way to detect this state without relying on private system logs or an application-defined timeout. We need an AVFoundation-only solution rather than ARKit. Capture configuration Our setup follows Apple's TrueDepth streaming sample: Discover .builtInTrueDepthCamera. Select an activeFormat with a nonempty supportedDepthDataFormats list. Set a supported activeDepthDataFormat, typically DepthFloat16. Add AVCaptureVideoDataOutput and AVCaptureDepthDataOutput. Enable the .depthData connection. Test both direct depth delegate delivery and AVCaptureDataOutputSynchronizer. Observe capture-session runtime errors, interruptions, connection state, and system pressure. The same code and configuration continuously deliver valid RGB and depth frames on healthy control devices. Observed failure modes 1. No depth callback of any kind The video delegate continues to receive RGB frames at the expected rate. The depth connection reports enabled and active. The capture session remains running. No AVCaptureSessionRuntimeErrorNotification or interruption is reported. System pressure is nominal. depthDataOutput(_:didOutput:timestamp:connection:) is never called. depthDataOutput(_:didDrop:timestamp:connection:reason:) is also never called. With AVCaptureDataOutputSynchronizer, RGB synchronization points may continue, but no AVCaptureSynchronizedDepthData object is present for the depth output. 2. One depth frame, followed by permanent silence On other affected devices, one depth frame is delivered shortly after startup, while hundreds of later RGB frames continue with no further depth output or drop callback. 3. A depth object is delivered, but the map is unusable We have also observed an AVDepthData object whose map is empty or has no usable spatial information, for example: a zero-sized/empty depth representation; an unfiltered map containing only NaN; or a filtered map containing a single constant value across nearly all pixels. Metadata such as depth quality, accuracy, calibration availability, supported formats, and connection state does not reliably distinguish these frames from healthy ones. Relevant documented behavior The documentation for AVCaptureSynchronizedDepthData.depthDataWasDropped says that a dropped depth object is different from a synchronization timestamp for which no depth capture occurred. In the latter case, no AVCaptureSynchronizedDepthData object is present in the collection. The documentation for depthDataOutput(_:didDrop:timestamp:connection:reason:) says that the callback reports captured depth data that wasn't processed, with an empty-shell AVDepthData object. This appears to leave a diagnostic gap: if the TrueDepth pipeline fails before a depth object is produced, the application may receive neither an output callback nor a drop callback. System-log correlation We do not want to depend on these private and undocumented strings, but sysdiagnose/device logs from affected devices correlate the public-API silence with messages such as: Can't activate Pearl projector: no projector token found PROJECTOR ON DENIED Object too close (no depth) GMC status: -2 Projector GMC hasn't completed yet - dropping depth/dx buffers Pulses exceed limit. Projector Off In the first group, depth delivery never starts. In the second group, depth may never start or may stop after one frame. RGB capture can remain active in both cases. These logs suggest that depth or disparity buffers can be rejected before they reach AVCaptureDepthDataOutput, which would explain why the application sees neither didOutput nor didDrop. However, none of these projector, IR, calibration, protection, or token states appears to be exposed by a public API. Questions Is it expected that AVCaptureDepthDataOutput delivers neither didOutput nor didDrop when no depth object is produced upstream? Is the absence of AVCaptureSynchronizedDepthData from a synchronization collection the only public signal for this condition? Is there a supported API, notification, KVO property, or error that reports that the TrueDepth IR/projector/depth provider is unavailable, disabled, protected, stalled, or unable to produce data? Can an app distinguish a healthy but temporarily delayed depth stream from a pipeline that will never deliver depth, other than by implementing its own timeout and frame-count watchdog? Is there a documented validity rule for an empty, all-NaN, or near-constant AVDepthData.depthDataMap? Should applications treat these as unavailable depth even when the AVDepthData metadata reports a normal quality or accuracy? What is the recommended recovery procedure: rebuild AVCaptureDepthDataOutput, restart the capture session, switch cameras and switch back, wait for a system notification, or stop retrying until the device state changes? ARKit can report ARError.sensorFailed when a required sensor does not deliver input. Is there an AVFoundation equivalent that identifies which required input failed, without adopting ARKit? If no public signal currently exists, would Apple consider exposing a depth-provider status/error callback that distinguishes at least: captured but dropped; no depth capture for the timestamp; provider temporarily unavailable; and provider disabled or failed until recovery/service? We can provide a minimal sample project, affected-device sysdiagnose, and synchronized timestamp traces in Feedback Assistant if that would help. Please let us know which diagnostics and logging profiles would be most useful.
0
0
122
2w
CameraCaptureAccessory: orientation of the accessory scene in the partially folded (laptop) pose
We present custom content on the outer display through CameraCaptureAccessory while a capture session runs (iOS 27.1). Our app is used in the partially folded "laptop" pose: the inner display is portrait with a horizontal fold, controls below the fold, content above it. The person in front of the outer camera sits opposite the device, so for them the outer display's long edge is horizontal. In Simulator (iPhone Duo, iOS 27.1) the accessory scene is always laid out as 466×678 pt — portrait — regardless of the pose, and regardless of the app's UISupportedInterfaceOrientations. Our landscape content is therefore letterboxed into a narrow band instead of filling the display. On device, what interface orientation does the accessory scene get in the partially folded pose? Does the system rotate it to match the physical orientation of the outer display, or is it always the outer display's portrait orientation? Is Simulator's behaviour here representative, or is accessory-scene orientation one of the things that only behaves correctly on device? If we have to compensate ourselves, is there a supported way to learn the outer display's physical orientation from inside the accessory scene — reserved regions, the scene's interfaceOrientation, something else? We would rather not hardcode a rotation. Does UIRequiresFullScreen (deprecated in iOS 26) or the app's supported interface orientations constrain the accessory scene in any way?
Replies
1
Boosts
0
Views
98
Activity
1w
ARKit behaviour across the fold
Hi, Can you talk about what happens with ARKit by default when the unfolding occurs in a normal ARWorldTrackingConfiguration - does the ARSession pause at all or is tracking completely uninterrupted? Does it swap cameras when using ARFaceTrackingConfiguration! Thanks.
Replies
1
Boosts
1
Views
100
Activity
1w
Is the inner under-display camera a supported source for real-time 2D body-pose analysis?
Hi! We run continuous 2D human body-pose estimation on a front-facing camera feed: one person, full body in frame, standing a few meters away, about 30 fps. With iPhone Duo open, the camera that faces the person looking at the inner display is the under-display inner camera (builtInInnerUltraWideCamera). Published specs cap it at 1080p at 30 or 60 fps, and it is presented as the FaceTime camera. Two things are unclear from the camera tech talk and the specs: Is that 1080p format a native readout we can feed to Vision body pose, or a preview-oriented stream whose effective detail is too low for full-body pose at that distance? Is third-party use of this camera supported for a long-running analysis session, or is it intended only for video calls and live previews? Thanks
Replies
1
Boosts
0
Views
90
Activity
1w
Iphone Duo Camera
“Can iphone duo make it easier for a creator to record themselves while simultaneoulsy seeing or controlling what the other camera is capturing“???
Replies
1
Boosts
0
Views
123
Activity
1w
All cameras being used
Can all the cameras on iPhone Duo be active while an app tries to translate sign language using the front facing camera and back camera to monitor hand movements and show the translation with action in the expanded display with its camera on?
Replies
1
Boosts
0
Views
82
Activity
1w
Constituent Photo Delivery
When iPhone Duo is fully open, so the outer front camera and the rear cameras face the same direction, is there a virtual AVCaptureDevice whose constituentDevices include both the outer front camera and the rear 48 MP wide camera, so that virtual device constituent photo delivery that could produce one photo from each of those cameras simultaneously, as is possible on existing iPhones with two rear cameras, using isVirtualDeviceConstituentPhotoDeliveryEnabled / virtualDeviceConstituentPhotoDeliveryEnabledDevices?
Replies
1
Boosts
0
Views
77
Activity
1w
Camera positioning
In our app we assume that user positioned the smartphone the way when the front camera (120fps) is on the left and the screen position is landscape (for watching video). We use it in our ML model. Can we adopt it somehow on iPhone Duo?
Replies
4
Boosts
0
Views
145
Activity
1w
Dual Capture Applicability on iPhone Duo
Does iPhone Duo support Dual Capture for video recording in all fold states?
Replies
3
Boosts
1
Views
145
Activity
1w
Automatic Camera Switching
“When the device opens or closes and the camera automatically changes, how does the systems decide which camera provides the best experience”???
Replies
0
Boosts
0
Views
52
Activity
1w
Fixed Interface Orientation
Camera apps commonly use portrait-only orientation specifically to prevent the interface from rotating. Otherwise, toolbars, the preview aspect ratio, and camera frames all need to be reorganized just to undo the rotation. On the iPhone Duo inner display, portrait-only no longer prevents rotation. Please provide a UIRequiresFixedInterfaceOrientation key! :-)
Replies
2
Boosts
1
Views
160
Activity
1w
Non developer perspective
For someone who isn‘t an app developer but wants to understand and communicate new apple technology to consumers, what camera capabilities should pay the most attention to? ?
Replies
0
Boosts
0
Views
29
Activity
1w
Duo Camera
When iphone duo opens and closes, how does the camera automatically decide which camera to use, and what new possibilities does this create for users?
Replies
1
Boosts
0
Views
39
Activity
1w
Simultaneous capture and fold transitions in a live-streaming app on iPhone Duo
I build Lumecast, a live-streaming app (custom AVCapture pipeline feeding WebRTC). Three questions:   1. Does iPhone Duo support AVCaptureMultiCamSession — specifically front + rear simultaneously? Our co-casting feature would let a solo host fill two panes with their face and what they're looking at. How should a continuous capture session (live broadcast, can't pause) respond to camera direction changes as the device opens and closes? Is there a recommended pattern for swapping to the Virtual Front Camera mid-session without a visible gap for viewers?  3. Which cameras are available to third-party apps in each posture (folded / half-open / fully open), and does availability change at a specific hinge state? Goal: a host folds or unfolds mid-broadcast and their audience never sees a dropped frame.
Replies
3
Boosts
0
Views
185
Activity
1w
Is AVCaptureMultiCamSession supported on iPhone Duo
is AVCaptureMultiCamSession supported on iPhone Duo — specifically streaming two cameras that face opposite directions simultaneously (e.g. .builtInInnerUltraWideCamera + .builtInOuterUltraWideCamera, or the Virtual Front Camera plus a backward-facing camera)? I noticed the article recommends single-input reconfiguration over multi-cam; is that a performance recommendation, or is opposite-direction multi-cam unavailable on this device? Our use case is a live co-cast where one host fills two video panes: their face and what they're looking at.
Replies
0
Boosts
0
Views
81
Activity
1w
Where is the API for variable aperture of the iPhone 18 Pro?
According to Apple's press release (https://www.apple.com/pt/newsroom/2026/09/apple-debuts-iphone-18-pro-and-iphone-18-pro-max/): Variable aperture also provides more control for creative pros by giving them the ability to manually adjust any of the four aperture settings in the Camera app, and an API is available to developers for even more control across the aperture range in their apps. Can a DTS engineer specify the quoted API please? I can't see it anywhere in the documentation yet. What does it mean "even more control across the aperture range"? Will it be possible to set the aperture in a 0.0-1.0 range?
Replies
3
Boosts
3
Views
1.1k
Activity
1w
`LockedCameraCaptureManager` practically unusable since iOS 26
Somewhere since iOS 26, the LockedCameraCapture framework gets in an unpredictable state after opening the main app from the LockedCamera extension using LockedCameraCaptureSession.openApplication(for userActivity:). (Feedback with sample code to reproduce: FB21966835) Opening the extension from the lock screen again doesn’t open the extension but puts the lock screen in a state as if it has. Content updated from LockedCameraCaptureManager.shared.sessionContentUpdates comes in inconsistently, usually needs the app to be opened again or the extension to be opened. This makes using this extension impossible for me as I use it to record video files that manually need to be imported when the app is launched (so not through PhotoKit). Does anybody have a suggestion to circumvent this issue or how to get this fixed?
Replies
2
Boosts
3
Views
1.3k
Activity
1w
Camera app Manuel Focus (MF) not available for iPhone 17 and below
For the new IOS 27.0 system on iPhone 18 pro demo, the camera app have a new feature to let users adjust camera focusing from AF to MF. This feature does not require the newest camera module. Therefore, all previous models should be able to have this feature, especially useful via camera control slider. How to get attention of apple camera software development team to work on this...
Replies
0
Boosts
0
Views
213
Activity
2w
EXIF metadata is stripped when creating an asset via addResource(with:.photo, data:) on iOS 26.6
Starting with iOS 26.6, saving an image to the photo library via PHAssetCreationRequest.addResource(with: .photo, data:, options:) appears to re-encode the image, dropping all EXIF metadata. The same code preserved metadata through iOS 26.5. let creationRequest = PHAssetCreationRequest.forAsset() creationRequest.addResource(with: .photo, data: image, options: nil) I would like to know whether this change is intentional, and whether the file-based overload is the supported way to preserve an image's original metadata. What we verified The bytes we hand to PhotoKit still contain the metadata. Setting contentType explicitly does not help. We resolved the type from the data and confirmed at runtime that it was non-nil (public.jpeg): let options = PHAssetResourceCreationOptions() if #available(iOS 26.0, *) { options.contentType = contentType // verified: UTType.jpeg, not nil } let request = PHAssetCreationRequest.forAsset() request.addResource(with: .photo, data: imageData, options: options) The resulting asset still has no EXIF. Writing the identical bytes to a temporary file and using the file-based overload preserves everything: try imageData.write(to: temporaryFileURL, options: .atomic) let options = PHAssetResourceCreationOptions() options.shouldMoveFile = true let request = PHAssetCreationRequest.forAsset() request.addResource(with: .photo, fileURL: temporaryFileURL, options: options) Capture date, camera information and location are all intact. We access the library with PHAccessLevel.addOnly.
Replies
1
Boosts
0
Views
865
Activity
2w
How can an app detect a TrueDepth pipeline failure when no depth output or drop callback is delivered?
How can an app detect a TrueDepth pipeline failure when no depth output or drop callback is delivered? We are using AVFoundation to stream synchronized RGB and depth data from the front-facing TrueDepth camera. On a small number of physical devices, the capture session and RGB stream remain healthy, but the depth pipeline becomes silent or returns unusable data. We would like to understand the intended public-API behavior and the supported way to detect this state without relying on private system logs or an application-defined timeout. We need an AVFoundation-only solution rather than ARKit. Capture configuration Our setup follows Apple's TrueDepth streaming sample: Discover .builtInTrueDepthCamera. Select an activeFormat with a nonempty supportedDepthDataFormats list. Set a supported activeDepthDataFormat, typically DepthFloat16. Add AVCaptureVideoDataOutput and AVCaptureDepthDataOutput. Enable the .depthData connection. Test both direct depth delegate delivery and AVCaptureDataOutputSynchronizer. Observe capture-session runtime errors, interruptions, connection state, and system pressure. The same code and configuration continuously deliver valid RGB and depth frames on healthy control devices. Observed failure modes 1. No depth callback of any kind The video delegate continues to receive RGB frames at the expected rate. The depth connection reports enabled and active. The capture session remains running. No AVCaptureSessionRuntimeErrorNotification or interruption is reported. System pressure is nominal. depthDataOutput(_:didOutput:timestamp:connection:) is never called. depthDataOutput(_:didDrop:timestamp:connection:reason:) is also never called. With AVCaptureDataOutputSynchronizer, RGB synchronization points may continue, but no AVCaptureSynchronizedDepthData object is present for the depth output. 2. One depth frame, followed by permanent silence On other affected devices, one depth frame is delivered shortly after startup, while hundreds of later RGB frames continue with no further depth output or drop callback. 3. A depth object is delivered, but the map is unusable We have also observed an AVDepthData object whose map is empty or has no usable spatial information, for example: a zero-sized/empty depth representation; an unfiltered map containing only NaN; or a filtered map containing a single constant value across nearly all pixels. Metadata such as depth quality, accuracy, calibration availability, supported formats, and connection state does not reliably distinguish these frames from healthy ones. Relevant documented behavior The documentation for AVCaptureSynchronizedDepthData.depthDataWasDropped says that a dropped depth object is different from a synchronization timestamp for which no depth capture occurred. In the latter case, no AVCaptureSynchronizedDepthData object is present in the collection. The documentation for depthDataOutput(_:didDrop:timestamp:connection:reason:) says that the callback reports captured depth data that wasn't processed, with an empty-shell AVDepthData object. This appears to leave a diagnostic gap: if the TrueDepth pipeline fails before a depth object is produced, the application may receive neither an output callback nor a drop callback. System-log correlation We do not want to depend on these private and undocumented strings, but sysdiagnose/device logs from affected devices correlate the public-API silence with messages such as: Can't activate Pearl projector: no projector token found PROJECTOR ON DENIED Object too close (no depth) GMC status: -2 Projector GMC hasn't completed yet - dropping depth/dx buffers Pulses exceed limit. Projector Off In the first group, depth delivery never starts. In the second group, depth may never start or may stop after one frame. RGB capture can remain active in both cases. These logs suggest that depth or disparity buffers can be rejected before they reach AVCaptureDepthDataOutput, which would explain why the application sees neither didOutput nor didDrop. However, none of these projector, IR, calibration, protection, or token states appears to be exposed by a public API. Questions Is it expected that AVCaptureDepthDataOutput delivers neither didOutput nor didDrop when no depth object is produced upstream? Is the absence of AVCaptureSynchronizedDepthData from a synchronization collection the only public signal for this condition? Is there a supported API, notification, KVO property, or error that reports that the TrueDepth IR/projector/depth provider is unavailable, disabled, protected, stalled, or unable to produce data? Can an app distinguish a healthy but temporarily delayed depth stream from a pipeline that will never deliver depth, other than by implementing its own timeout and frame-count watchdog? Is there a documented validity rule for an empty, all-NaN, or near-constant AVDepthData.depthDataMap? Should applications treat these as unavailable depth even when the AVDepthData metadata reports a normal quality or accuracy? What is the recommended recovery procedure: rebuild AVCaptureDepthDataOutput, restart the capture session, switch cameras and switch back, wait for a system notification, or stop retrying until the device state changes? ARKit can report ARError.sensorFailed when a required sensor does not deliver input. Is there an AVFoundation equivalent that identifies which required input failed, without adopting ARKit? If no public signal currently exists, would Apple consider exposing a depth-provider status/error callback that distinguishes at least: captured but dropped; no depth capture for the timestamp; provider temporarily unavailable; and provider disabled or failed until recovery/service? We can provide a minimal sample project, affected-device sysdiagnose, and synchronized timestamp traces in Feedback Assistant if that would help. Please let us know which diagnostics and logging profiles would be most useful.
Replies
0
Boosts
0
Views
122
Activity
2w
Accessing images from a connected HomeKit IP camera
The Human Interface Guidelines for HomeKit say "Your app can display still images or streaming video from a connected HomeKit IP camera." Where is the documentation to explain how? Was this covered in a WWDC session (perhaps dating from before the introduction of SwiftUI) that is no longer searchable?
Replies
1
Boosts
0
Views
423
Activity
2w