iPhone Camera Capture
The physical adapter requests camera access only when capture is prepared. It selects the rear built-in wide-angle camera, prefers the 1920×1080 session preset and 30 FPS when supported, enables automatic stabilization when available, and falls back to a supported high-quality format. Audio is disabled by default; microphone permission is not requested unless a future setting explicitly enables audio.
AVFoundation configuration and start/stop work run away from the main thread. A video-data output counts delivered and practically observable dropped frames alongside AVCaptureMovieFileOutput. Session interruption and runtime-error notifications are logged, with restart attempted for a recoverable stopped session. The preview uses AVCaptureVideoPreviewLayer with aspect-fill behavior and reports status, elapsed time, resolution, and nominal FPS.
The current device-orientation interface updates the preview layout without stretching. Capture rotation metadata support is exposed by the physical service for later device-orientation refinement. Hardware-specific rotation, stabilization quality, dropped-frame reporting, and recovery still require physical-device validation.
Camera, location, and motion purpose strings are generated into the iPhone target’s Info.plist. Location coordinates never enter general unified logs; they exist only in the user-controlled session package.