Explore the integration of media technologies within your app. Discuss working with audio, video, camera, and other media functionalities.

All subtopics
Posts under Media Technologies topic

Post

Replies

Boosts

Views

Activity

Camera app best practices
As a reminder, the recommended approach to monitor camera rotations, including on upcoming hardware, is to use the AVCaptureDevice.RotationCoordinator / AVCaptureDeviceRotationCoordinator API. In many common scenarios on iPhone Duo, proper use of the rotation coordinator is the only way to ensure that your camera previews and captures use the orientation expected by the user. AVCaptureVideoOrientation has been deprecated as of iOS 17.0 and iPadOS 17.0. When switching cameras in your app, make sure to create a rotation coordinator for that device. To ensure that your app has implemented the rotation coordinator API correctly, you should test different orientations and sizes of your app on an iPad with Stage Manager enabled. Additional information: Sample Code: Supporting device rotation in your camera app Tech Talk: Build a great camera experience for iPhone Duo WWDC23 session: Support external cameras in your iPadOS app
0
0
457
3w
Musickit SDK for Android broken after Apple Music app update
Hi, The Musickit SDK for Android seems to be broken after the Apple Music app update from last week. We are launching the intent like this: AuthIntentBuilder aib = authManager.createIntentBuilder(appleTokenProvider.getDeveloperToken()); Intent intent = aib.build(); authLauncher.launch(intent); A new Apple Music UI is shown. The user is asked to login with email and password. However, after succesfull login the intent returns the error USER_CANCELLED for authManager.handleTokenResult(data); This was not the case before the latest Apple Music app update. The only workaround is to logout in the Apple Music app, then retry to launch the intent in our app. This has to be done every time the music user token expires. Any ETA on fixing this issue?
19
5
4k
1m
Swift 6: Supported AVCaptureSession actor isolation and MainActor preview attachment
I’m developing a SwiftUI camera preview for iPhone and iPad using Xcode 27.2 and Swift 6.4.2. I’m looking for clarification about the supported concurrency boundary between an actor-owned AVCaptureSession and a MainActor-owned AVCaptureVideoPreviewLayer. Environment Xcode 27.2 (27B52) Apple Swift 6.4.2 iPhoneOS SDK 27.2 Deployment target: iOS 26.0 Swift 6 language mode Complete concurrency checking Default actor isolation: MainActor Approachable Concurrency enabled The isolated compiler reproductions also explicitly enable NonisolatedNonsendingByDefault, InferIsolatedConformances, and MemberImportVisibility. Architecture The intended architecture follows the general pattern demonstrated in Apple’s AVCam sample: A capture actor uses a dedicated DispatchSerialQueue executor. The capture actor creates, configures, starts, and stops AVCaptureSession. A MainActor adapter owns AVCaptureVideoPreviewLayer. The preview layer retains the same session after attachment. The capture actor retains its session reference because it must perform subsequent capture operations. Compiler behavior In a minimal reproduction, transferring the retained session directly to the MainActor adapter: await preview.attach(session)produces: Sources/CaptureActor.swift:19:23: error: sending 'session' risks causing data races [#RegionIsolation::SendingRisksDataRace]The compiler identifies a potential race between actor-isolated and MainActor-isolated uses. This reproduction produces one error and zero warnings. A second reproduction uses a small PreviewSource: Sendable value containing a private AVCaptureSession reference, with @preconcurrency import AVFoundation confined to that source file. Its MainActor method attaches the session to the preview layer. Under otherwise identical compiler settings, this second reproduction compiles with zero diagnostics. We understand that compiler acceptance does not establish runtime safety and that the compatibility mechanism does not itself synchronize access to the retained session. Apple AVCam reference Apple’s official AVCam sample demonstrates a similar interoperability pattern: CaptureService.swift: dedicated capture executor and retained preview source. PreviewSource.swift: compatibility import and MainActor attachment. CameraPreview.swift: preview-layer association. Reference: Apple’s AVCam: Building a Camera App sample. Pinned sample SHA-256: 5a1981f90bb30827121324d4b33198d58de9b9d68e3508b64f0aabc18bbc0e53The sample revision date is not established; we are not assuming this archive is identical to the latest downloadable revision. Questions 1. Supported Swift 6 interoperability pattern Is the narrow PreviewSource compatibility approach demonstrated by AVCam the recommended way to associate an actor-retained AVCaptureSession with a MainActor-owned AVCaptureVideoPreviewLayer under complete Swift 6 concurrency checking? Is there a newer recommended API, annotation, or ownership pattern? 2. Capture and preview synchronization Is the following operation sequence supported? Configure and commit the capture session on the dedicated capture executor. Attach the session to the preview layer on MainActor. Call startRunning() on the capture executor. Perform ordinary preview layout on MainActor while capture runs. Call stopRunning() on the capture executor. Detach the session from the preview layer on MainActor. Which preview-layer or preview-connection mutations, if any, must be excluded while startRunning() or stopRunning() is executing? 3. Supported detachment and release sequence After stopRunning() returns and MainActor executes: previewLayer.session = nilis it supported to release the remaining application-held session references once application-owned observers and asynchronous consumers have terminated? Does AVFoundation require or recommend any additional step before those references are released? We are asking about the supported framework lifecycle contract, not assuming that application-level cancellation drains internal AVFoundation work. Sources AVCam: Building a camera app Overview Apple’s official AVCam sample
0
0
15
2h
AVCaptureSession multitasking camera access on iPhone without VoIP background mode
I'm developing an iPhone screen-recording application that simultaneously records the front-facing camera and displays the live camera feed using Picture in Picture while the user navigates other apps. The implementation uses AVFoundation (AVCaptureSession) for camera capture and a system Picture in Picture controller for the floating window. I've encountered the following behavior on a physical iPhone: With voip declared in UIBackgroundModes, isMultitaskingCameraAccessSupported returns true, and the front camera continues capturing while another app is foregrounded. Without voip, isMultitaskingCameraAccessSupported returns false. When the application enters the background, the capture session is interrupted and camera frames stop. Screen recording and the Picture in Picture window continue, but the camera feed freezes or becomes blank. Apple App Review has confirmed that declaring voip without actual VoIP functionality is not permitted under Guideline 2.5.4. I understand and respect that restriction and do not want to misuse background modes. My question: Is there a supported public API, entitlement, or configuration that allows a non-VoIP iPhone application to continue capturing front-camera video while another application is in the foreground? Does Picture in Picture provide any supported mechanism for this use case, or is multitasking camera capture unavailable to non-VoIP applications on iPhone? I'm looking for a supported implementation rather than a workaround that violates App Review guidelines. Any guidance from Apple's AVFoundation engineers would be greatly appreciated.
2
0
73
1d
Logic Pro: third-party effect AU not processed on an empty audio track — request for the opt-in some vendors have (aumf/Acnt/EINX)
We have a product where Logic Pro's "process effects only when needed" optimisation blocks the core use case, and we would like to ask for the opt-in that some third-party plug-ins already have. Filed as FB25426476. The plug-in ACENTAUR (Audio Unit v2, type aumf, subtype Acnt, manufacturer EINX; EINAUX, Germany) is an AI music generator that lives in the Audio FX slot of an audio track. It renders its own material from the host's tempo, time signature and transport, so the natural workflow is: empty audio track, insert ACENTAUR, press Play, generate. There is no region and no input signal. The plug-in is the source. What happens On an empty audio track Logic never calls the render callback, so the plug-in never receives the host clock through the HostCallbacks: tempo and transport stay unknown and our UI stays locked. Everything else works: the same build renders in the instrument slot, in other hosts, and on a Logic audio track as soon as a region or live input is present. Inserting Logic's Test Oscillator (bypassed) in the same strip also makes it work, which shows the strip is simply not scheduled. Logic engineering described this optimisation on coreaudio-api in February 2024 (https://www.mail-archive.com/coreaudio-api@lists.apple.com/msg01859.html). What we observed A number of third-party effects (Celemony Melodyne, Antares, Synchro Arts, Waves and others) are processed on an empty track. We verified on Logic Pro 12.4 (6707) / macOS 26.6.2 that this is tied to the plug-in's identity plus a private global property Logic queries when the plug-in is loaded: with a listed manufacturer code and that property answered, our plug-in is rendered immediately on an empty track and the host clock arrives. We are of course not going to ship under another vendor's identity; this was a one-off local test to make sure we understand the mechanism before asking. Log excerpt from that test (plug-in log, out-of-process hosting, empty audio track, 48 kHz): 09:19:38 host asked property 101000 → 0 09:19:38 host asked property 101001 → 1 09:19:38 Initialize → 0 · in 2 ch @ 48000 Hz · out 2 ch 09:19:39 First render after 0s · input callback · tempo 120.00 Same build under our own manufacturer code EINX: "No render after 30s · host clock tempo+transport · flags 0". The request Could ACENTAUR (aumf / Acnt / EINX) be added to the set of plug-ins Logic keeps processing without input? The plug-in already answers the property in question; the only missing piece is on Logic's side. If there is a different or public mechanism you would prefer third parties to adopt (a component tag, an AU property, an AUv3 property), we will implement it right away. Happy to provide a build, a demo project and whatever else helps. Christoph Kahse, EINAUX
0
0
39
1d
Thin border around VideoPlayer
A thin gray border appears around assets presented using VideoPlayer. It was tested on iPhone 8, iPhone 13 mini, and iPhone 15, and the border only appeared on the 13 mini. The iOS version didn't matter, we checked the 13 mini on both iOS 18 and iOS 26 and the border appeared on both. I created a minimal version of the app with just the VideoPlayer and the asset and the frame still appeared. We tried different assets and it was visible on all of them. import SwiftUI import AVKit struct ContentView: View { private let player = AVPlayer(url: Bundle.main.url(forResource: "sample", withExtension: "mp4")!) var body: some View { VideoPlayer(player: player) .frame(width: 300, height: 200) } }I found someone that had the same exact problem on Reddit and StackOverflow: https://www.reddit.com/r/swift/comments/8s87hm/weird_borders_around_avplayerviewcontroller/ https://stackoverflow.com/questions/50927561/weird-borders-around-avplayerviewcontroller and their solution included setting: playerLayer.shouldRasterize = true playerLayer.rasterizationScale = UIScreen.main.scaleThis fixed the issue but isn't suitable for our app due to offscreen rendering performance. They also found that issue on other devices, noting: "After testing this code on multiple devices (actual physical devices, not simulators), this bug appears to happen only on Plus devices (I tested it on i8 on iOS 11, i8+ on iOS 11, iX on iOS 11 and i6+ on iOS 10)." The bug doesn't appear on simulator, isn't visible on a screenshot, the frame disappears when using accessibility zoom. When we encoded the video file to Apple ProRes the border disappeared, but the size of the video bumped from 342 KB to 6.3 MB so we couldn't do that. I'm attaching photo from this person's post since our issue looked exactly the same. Has anyone had a similar issue and maybe found another workaround?
0
0
231
2d
tvOS 27.2 started presenting playing item in top right corner for every video
Hi guys, after upgrade to tvOS 27.2 I noticed that every time our video streaming app sets up video stream, OS presents playing item popup. We are using MPNowPlayingInfoCenter. We do not set it only when app gets minimized, but always, that is when app is maximized, player is in full screen and one episode ends and another starts, etc. The reason is that we want playing metadata to be visible on iOS for users who use iPhone as remote controller. Our app is playing 24/7 and never stops even backing out of the player does not stop playback, user can keep switching channels rapidly, that is user can hold arrows and can see channel numbers going up rapidly (like 10 channels per second) and at the same time we set MPNowPlayingInfoCenter. We could use debounce for MPNowPlayingInfoCenter and set it only if user stops at a channel say for 0.5s, but after that OS still presents annoying popup. Is that a new tvOS 27.2 feature or a bug? Right now this is very bad user experience. Do we need to stop using MPNowPlayingInfoCenter completely to avoid this behavior? We are planning refactoring and using the new Now Playing framework and MediaSession, but I'm not sure if that can prevent this annoying popup. Not sure if we should completely remove support for Now Playing on iOS to avoid this popup on tvOS.
0
0
248
2d
Public API for torch beam width (Adaptive True Tone flash)?
On iPhone 14 Pro and later, the system flashlight in Control Center can adjust beam width (narrow ↔ wide). As far as I can tell, AVCaptureDevice only exposes torchMode, torchLevel and setTorchModeOn(level:) I found nothing related to beam width Is there any supported way for a third-party app to control the torch beam width? If not, is this on the roadmap?
0
0
249
2d
ReplayKit Broadcast Upload video timestamps: originating clock and capture semantics
Which clock or timebase defines CMSampleBufferGetPresentationTimeStamp for ReplayKit Broadcast Upload video on iOS 17–26? Does PTS represent capture time, and is a bounded conversion to CMClockGetHostTimeClock documented? How can a supported public API distinguish a frame captured before a local barrier but delivered after it, including pause/restart discontinuities? Serial callback order and arrival time do not establish that.
0
0
191
2d
macOS 27 regression: HDMI + DisplayPort Multi-Output audio fails with Core Audio error 1937010544
Hi, I believe I have found a Core Audio regression in macOS 27. This exact hardware configuration worked correctly on macOS 26, and the issue started immediately after upgrading to macOS 27. Hardware: Mac mini M2 2 × MSI MP243X monitors Monitor 1 connected via HDMI Monitor 2 connected via DisplayPort Both monitors expose a 2-channel audio output to macOS On macOS 26: I used Audio MIDI Setup to create a Multi-Output Device containing both MSI MP243X audio outputs. Audio played simultaneously through both monitors without any issues. On macOS 27: Both audio devices are still detected correctly and both work perfectly when selected individually: HDMI only: WORKS DisplayPort only: WORKS HDMI + DisplayPort simultaneously: FAILS This is reproducible even immediately after a full reboot. When I create a new Multi-Output Device containing both MSI outputs and select it as the system output, audio playback cannot start. For example: afplay /System/Library/Sounds/Glass.aiff returns: Error: AudioQueueStart failed ('stop') I captured Core Audio debug logs while reproducing the problem. Core Audio initially reports that StartIO succeeded, but the physical display audio device then fails to establish a timeline. Relevant log messages include: HALS_IOEngine2::_StartIO succeeded Device 3669B540-0000-0000-2623-0104A5351D78 is not running. could not establish a timeline after waiting 10000000 microseconds stopping with error 1937010544 StartIOThread: the IO thread failed to start, Error: 1937010544 I have already tested the following: Both devices at 44.1 kHz / 24-bit Both devices at 48 kHz / 16-bit Recreating the Multi-Output Device from scratch Using the HDMI device as clock source Using the DisplayPort device as clock source Different drift correction configurations Restarting coreaudiod Full macOS reboot Testing both outputs individually immediately after reboot Alternative multi-device audio routing software The behavior is always reproducible. Each MSI MP243X audio endpoint works correctly by itself. The failure only occurs when both HDMI and DisplayPort audio endpoints are opened simultaneously. system_profiler correctly detects both devices at 48 kHz: MSI MP243X Output Channels: 2 Current Sample Rate: 48000 Transport: HDMI MSI MP243X Output Channels: 2 Current Sample Rate: 48000 Transport: DisplayPort This does not appear to be a problem with either monitor or connection individually, because both outputs continue to work independently. The important difference is the macOS version: macOS 26: HDMI + DisplayPort Multi-Output = WORKING macOS 27: HDMI only = WORKING DisplayPort only = WORKING HDMI + DisplayPort Multi-Output = FAILS with AudioQueueStart 'stop' / Core Audio error 1937010544 No hardware, monitor, cable, or connection changes were made between the working macOS 26 configuration and the macOS 27 configuration. This therefore appears to be a regression in the Core Audio/display-audio path introduced with macOS 27 when two display audio endpoints (HDMI + DisplayPort) are opened simultaneously. Has anyone else been able to reproduce this on macOS 27, particularly on Apple Silicon? I can provide the complete coreaudiod logs and run additional Core Audio diagnostics if needed. Additional isolation tests: Both monitors can remain physically connected to the Mac at the same time. With both HDMI and DisplayPort connected: Selecting the HDMI MSI MP243X as the only output works correctly. Selecting the DisplayPort MSI MP243X as the only output works correctly. Opening both audio endpoints simultaneously causes the failure. Therefore, simply having both displays connected does not trigger the issue. The failure appears specifically when Core Audio attempts to run both display-audio endpoints at the same time. I also tested this using third-party multi-device audio routing implementations instead of relying only on Audio MIDI Setup. The same behavior occurs: either MSI MP243X can be opened and used independently, but attempting to route audio to both devices simultaneously fails. This suggests that the issue is below the Multi-Output Device configuration itself and may be related to starting/synchronizing two display-audio IO engines simultaneously. During the failure, the Core Audio log sequence is particularly interesting: The physical device is detected normally. The audio format is configured successfully. Core Audio reports that StartIO succeeded. The device subsequently reports that it is not running. Core Audio waits 10 seconds for a timeline. Timeline establishment fails. The IO thread terminates with error 1937010544 ('stop'). One captured conversion path was: 2 ch, 48000 Hz, Float32, interleaved -> 2 ch, 48000 Hz, Int16, interleaved so both sides were operating at 48 kHz during this test. Another important observation is that restarting coreaudiod does not resolve the simultaneous-output problem. A complete reboot also does not resolve it: immediately after a fresh boot, before launching any third-party audio-routing software, both physical outputs work individually but a newly created Multi-Output Device still reproduces the failure. This makes the issue highly reproducible on this machine. Minimal reproduction: Boot macOS 27 with both MSI MP243X monitors connected. Open Audio MIDI Setup. Verify both MSI MP243X devices work independently. Set both devices to 48,000 Hz. Create a new Multi-Output Device. Select both MSI MP243X devices. Select the new Multi-Output Device as the system audio output. Run: afplay /System/Library/Sounds/Glass.aiff Expected result: The sound is reproduced simultaneously through both monitors, as it was on macOS 26. Actual result: Error: AudioQueueStart failed ('stop') Switching the system output back to either individual MSI MP243X restores audio playback. The problem can then be reproduced again by selecting the Multi-Output Device.
6
8
2k
4d
Is activeLockedVideoFrameDuration supported on iPhone 16 Pro? Hardware or iOS limitation?
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
563
5d
AUv2: Property Listener Callback Lifetime During AudioComponentInstanceDispose
Title: AUv2: Property Listener Callback Lifetime During AudioComponentInstanceDispose I’m developing a macOS Audio Unit v2 (AUv2) instrument in C++ and investigating the correct lifetime and synchronization requirements for property-listener callbacks. I would appreciate clarification from Apple engineers or developers with direct AUv2 implementation experience. Specifically: Does AudioComponentInstanceDispose guarantee that the Audio Unit’s Close operation has completed before the call returns? Does disposal guarantee that all property-listener callbacks registered through AudioUnitAddPropertyListener have finished executing before the instance and its associated callback data can be destroyed? What are the documented guarantees of AudioUnitRemovePropertyListenerWithUserData regarding callbacks that are currently executing or already queued? Is there a documented synchronization procedure that allows an AUv2 plug-in to safely release listener callback state during instance shutdown? Are there host-ordering requirements or documented assumptions that plug-in developers must follow when registering, removing, and destroying property listeners? My implementation is designed to avoid use-after-free, concurrent access to destroyed objects, and unsafe callback-data reclamation. I want to base the implementation on documented Apple API guarantees rather than assumptions about host behaviour. If relevant, please point me to the authoritative documentation or recommended implementation pattern. Environment: macOS 12 Monterey, Xcode 14.2, AUv2 instrument, C++.
0
0
258
5d
iPhone 17 Pro: Is Native Apple Log 2 ISP Processing Available for 4224×3024/60fps RAW?
Hi everyone, I'm developing an iOS camera app that aims to record 4224×3024 Open Gate video at 60fps in 10-bit HEVC with Apple Log 2. Native Apple ISP-processed Apple Log 2 capture works at 3840×2160/60fps. However, at 4224×3024/60fps, the tested capture configuration only provides Bayer RAW (btp2). I've successfully decoded ProRes RAW using Apple's decoder into linear Rec.2020 and applied the published Apple Gamut and Apple Log 2 transforms. However, the resulting chroma is only approximately 72–74% of the native ISP output in controlled color-chart comparisons. I've also confirmed that VTRAWProcessingSession and related RAW processing controls are not publicly available to iOS apps in the iPhoneOS 27.0 SDK. My questions are: Is there a public iOS API that applies the same color and tone rendering as Apple's native camera ISP to captured Bayer RAW or ProRes RAW? Is there a supported configuration for obtaining full-resolution 4224×3024/60fps ISP-processed Apple Log 2 output (x420 or x422), without preview proxies or upscaling? If neither is supported, what is Apple's recommended approach? Is this a hardware limitation or a public API limitation? The goal is to use Apple's official color processing pipeline without empirically fitted matrices, LUTs, or arbitrary color corrections. Any guidance would be greatly appreciated. Thank you!
0
0
283
6d
iPhone Duo: continuous front-camera depth for measuring face distance
Hi, I’m building an app that counts push-ups with the phone on the floor. It currently uses ARKit and TrueDepth to measure the distance between the camera and the user’s face. I want to support iPhone Duo too, but I don’t have one. I only have an iPhone 17 Pro. I watched the camera presentation and saw that depth is supported when accessing the individual cameras. I’m trying to understand what that means for my app. Can either front camera provide continuous depth through AVCaptureDepthDataOutput, or is it only available when taking photos? Does it give actual distances in metres, or relative depth estimates? The face would usually be around 20 to 80 cm from the camera. Also, is there an equivalent camera mode on my iPhone 17 Pro that I could use to test the same approach, or would I need an actual Duo? It’s okay if counting is less accurate than with TrueDepth. I mainly need to detect the user moving down and back up reliably. Thank you!
1
0
311
6d
macOS 27.2: second Bluetooth HFP microphone is silent despite two SCO connections
Hello Apple engineers and developers, My name is Fumikazu Kondo. I am an independent developer in Japan working on transcription applications, including KF Transcription Mixer. I want to capture two separately connected Bluetooth microphones on a Mac for meeting and conversation transcription. I would appreciate an Apple engineer's response about the supported behavior and a reliable solution. Problem Each microphone works when captured individually. When both are opened, the second input delivers only zeros, even though Core Audio starts successfully and macOS reports two SCO connections. The failure also reproduces with direct native Core Audio capture before any application audio processing. Environment MacBook Pro, Apple M5, model identifier Mac17,2 macOS 27.2; sw_vers reports build 26B123 Xcode 27.1 (27A9275), macOS 27.0 SDK Built-in Bluetooth controller: BCM_4388C2, firmware 24.2.241.1936 Microphones: Beats Pill (firmware 2C336) and SANWA SUPPLY MM-BTCL1 (firmware 1.0.0), both directly connected to the Mac Both input devices expose 16,000 Hz, mono. Bluetooth logs show HFP/mSBC. Microphone Mode: Standard; preferred and active values both read back as 0 Reproduction Connect both microphones to the Mac. Confirm each delivers real audio in a separate, fresh capture process. In Audio MIDI Setup, create an Aggregate Device with the two microphone input devices, one channel each. Use 16 kHz, one clock source, and drift correction for the other device. Start capture of the two channels. Use a controlled speech fixture played through the Mac's built-in speakers so that both microphones receive sound. Observe that one channel has audio and the other is entirely silent. I also reproduced the problem using AudioDeviceCreateIOProcID / AudioDeviceStart directly on the physical input devices, without an aggregate or application processing. Reversing their opening order changed which microphone remained silent: the later-opened device delivered zeros. Measured results Physical Mac XCTest runs on October 30, 2026: MM-BTCL1 alone: 203,520 captured frames; 232 nonzero observation windows; passed. Beats Pill alone: 203,520 captured frames; 233 nonzero observation windows; passed. Two-input aggregate: 202,240 frames; nonzero windows [240, 0]; simultaneous windows 0; application audio error 0. Separate native shared-clock experiment: an aggregate containing both microphone inputs plus the built-in speaker, driven by one full-duplex IOProc. 1,152 input callbacks and 1,152 output buffers; nonzero callback counts [1100, 0]; simultaneous windows 0; invalid samples 0. The last experiment rules out simply lacking a running output clock in the input-only capture path, but it did not fix the issue. Relevant system log messages include: Number of SCO Connections: 2. A2DP Streaming State: 0. Input Decode: Requested 640 bytes, but only read 0 bytes instead. Decoded a total of 0 bytesThe decode message repeats during the silent input. Successful voice-audio connection events appear for both devices. Device identifiers and unrelated logs are omitted here. Already tested Both microphones power-cycled and individually reconnected Mac restarted; issue reproduced afterward Standard microphone mode verified by readback Both microphones individually verified with the same controlled stimulus Reversed native device opening order Persistent and private aggregates; different clock choices and drift correction Direct physical-device IOProc capture Full-duplex shared-clock capture with the built-in speaker Built-in speaker selected as system output, with Bluetooth output streaming stopped during measurement Core Audio and Bluetooth services restarted; issue persisted Software Update reports no new software available I have not established whether the cause is in the OS, driver, controller, or device firmware. I am not claiming a universal Bluetooth specification limitation. Questions for Apple Is simultaneous capture from two directly connected HFP/mSBC microphones supported on this Mac/macOS configuration through Core Audio? If there is a limitation, could you provide the relevant documentation and clarify its scope? If supported, which public API or configuration should be used to keep both input streams delivering audio? Is there a known issue or supported workaround for the all-zero second stream? Which targeted Bluetooth/HCI logs or minimal reproduction details would Apple need to investigate? I can provide a focused reproduction and redacted measurements through an appropriate private channel if needed. This is blocking reliable two-microphone transcription. Please respond with the expected behavior, next diagnostic steps, or the appropriate Apple engineering support route. Thank you for your help. Update: also reproduced with two Beats Pill speakers On October 30, 2026, I replaced the MM-BTCL1 with a second Beats Pill. Both Beats Pill speakers report firmware 2C336 and are independently connected to this Mac. Microphone Mode remains Standard (0). Fresh individual controls after previous SCO connections fully disconnected: both work (235 and 236 nonzero observation windows). Application-created private aggregate, device order A/B: nonzero windows [233, 0]. Reversed participant order: [0, 240]. Direct physical-device IOProc test, opening A before B: callback counts [404, 402], but nonzero callback counts [403, 0]. No simultaneous audio windows. After releasing both and restarting B alone, B delivers audio (381 nonzero callbacks). Opening A while B continues then yields nonzero counts [0, 404]: the later-opened device is again silent. System logs again report two SCO connections and repeated zero-byte input decode messages. Thus the same failure also reproduces with two same-model, same-firmware Apple/Beats devices. Please include this configuration when assessing support status, a possible known issue, and recommended next steps. Additional comparison reported by the user: the MacBook built-in microphone and one Beats Pill can both be heard when used together. This is a user-observed working configuration, separate from the automated tests above. It further narrows the problem to the configuration with two simultaneous Bluetooth microphone inputs.
0
0
223
6d
Using Apple Music API artist artwork and library import on a music rating website
Hi all, We run Soundmark, a small UK website where people rate and review albums and songs (web only for now, a native app may come later). We'd like to use the Apple Music API in two ways, and want to make sure we stay within the rules before building anything: Show artist images on our artist pages. Let users connect their Apple Music account and import their library, so the albums and songs they already have show up on Soundmark ready to rate. Our setup today: Album and song pages have a small player that plays 30-second previews. On desktop, some pages also show the Spotify embed player. There are no ads on the site. We would show the Apple Music badge and a link to Apple Music alongside any Apple content, following the Apple Music Identity Guidelines. Our questions: Can a website use artist artwork from the Apple Music API if it only plays 30-second previews, or does it need full MusicKit on the web playback (users connecting their Apple Music account)? Can the artist image appear on a page that also shows a Spotify embed player, or does it need to be on pages with Apple Music playback only? Beyond Apple's own terms, do we need separate permission from rights-holders to display artist images, or is the API licence enough when used as described? Can we import catalog data (album and song titles, tracklists, release dates and cover art) from the Apple Music API and store it permanently in our own database, so our album and song pages are built from it? Can those pages be shown to everyone, including visitors without an Apple Music account, and are there limits on caching cover art or on how many albums we import (rate limits)? We also emailed Apple Developer Support on 21st October and chased on the 28th but haven't heard back yet, so any pointers to the relevant terms would be really appreciated. Thanks!
0
0
65
6d
Radiometric interpretation of Apple ProRAW and Bayer RAW access via AVFoundation
I am working on a computational photography research project involving multi-exposure HDR reconstruction using Bayer RAW and Apple ProRAW captures. I would like to clarify the radiometric interpretation of Apple ProRAW and the availability of Bayer RAW capture through AVFoundation. My questions are: On current iPhone Pro devices, is it possible for third-party apps to capture and export true Bayer-pattern RAW DNG files through AVFoundation, rather than Apple ProRAW linear DNG files? If so, which availableRawPhotoPixelFormatTypes correspond to Bayer RAW, and what device or format restrictions apply? Apple ProRAW appears to be demosaiced and computationally processed, and may include multi-frame fusion. Is the decoded ProRAW image intended to be radiometrically linear and scene-referred? For a bracketed ProRAW sequence captured with fixed ISO, white balance, lens, and focus, but different exposure times, can one assume that the decoded linear pixel values Y_i(p) satisfy an exposure-proportional model in non-saturated regions, such as Y_i(p) ≈ t_i R(p), across brackets? This question is about radiometric consistency for algorithmic use, not about visual editing or tone mapping. Thank you for your help.
2
0
1.9k
6d
Radiometric interpretation of Apple ProRAW and Bayer RAW access via AVFoundation
I am working on a computational photography research project involving multi-exposure HDR reconstruction using Bayer RAW and Apple ProRAW captures. I would like to clarify the radiometric interpretation of Apple ProRAW and the availability of Bayer RAW capture through AVFoundation. My questions are: 1.On current iPhone Pro devices, is it possible for third-party apps to capture and export true Bayer-pattern RAW DNG files through AVFoundation, rather than Apple ProRAW linear DNG files? If so, which availableRawPhotoPixelFormatTypes correspond to Bayer RAW, and what device or format restrictions apply? 2.Apple ProRAW appears to be demosaiced and computationally processed, and may include multi-frame fusion. Is the decoded ProRAW image intended to be radiometrically linear and scene-referred? 3.For a bracketed ProRAW sequence captured with fixed ISO, white balance, lens, and focus, but different exposure times, can one assume that the decoded linear pixel values Y_i(p) satisfy an exposure-proportional model in non-saturated regions, such as Y_i(p) ≈ t_i R(p), across brackets? This question is about radiometric consistency for algorithmic use, not about visual editing or tone mapping. Thank you for your help.
2
0
1.6k
6d
Supported integration path for two-deck Apple Music DJ playback on iPhone, iPad and Mac Catalyst
We develop SpinCut DJ, a free-to-download proprietary DJ application by LALAMO CORPORATION for iPhone, iPad and Mac Catalyst. We want to add Apple Music subscription playback for users with an active subscription, similar to the integrations featured in DJ with Apple Music. This question is about the officially supported integration path, not extracting or bypassing protected audio. Our existing engine uses app-owned PCM for two independently controlled decks, scratch/reverse playback, tempo changes, hot cues, loops, beat synchronization and independent master/headphone outputs. We have reviewed MusicAuthorization, MusicSubscription, catalog/library requests, ApplicationMusicPlayer and SystemMusicPlayer. We understand that ordinary catalog access and protected queue playback do not establish a documented route to feed subscription audio into our custom engine, or permission to modify or synchronize MusicKit content. We have not enabled subscription-catalog DJ playback. Apple Developer Support advised us to ask the Developer Forums about the required technical integration. Could an Apple representative clarify: Is there a documented public API for two independent, simultaneous Apple Music DJ decks with scratch/reverse/tempo control? If a separate Apple Music DJ integration, agreement, SDK or capability is required, what is the current official application or referral process for a Japan-based developer? Are iOS, iPadOS and Mac Catalyst supported through the same integration, and what technical material is required for evaluation? What approved interfaces govern waveform/beat analysis, seeking and separate master/headphone routing? We are not requesting recording/export, stem separation, offline file extraction or rebroadcast permission through ordinary MusicKit. Those features would remain unavailable for subscription content unless separately and expressly supported. We can provide a product demonstration and integration brief through an appropriate private channel. Product: https://spincutdj.com/ App Store: https://apps.apple.com/app/id6804328893 Please point us to the supported technical and onboarding path rather than an undocumented entitlement or workaround.
0
0
270
1w
TTS Stuttering & Noise
TTS Stuttering & Noise When using Apple’s native TTS API on an iPhone or iPad—specifically while connected to Bluetooth earphones or headsets—users are experiencing audio noise or intermittent gaps in speech, causing parts of sentences to drop out during playback. There were no reports or inquiries regarding such issues up through iOS/iPadOS 26. Since the release of iOS/iPadOS 27, however, there has been a significant increase in reports and inquiries about this problem. If you happen to know the cause of this issue or have any suggestions for a fix, please leave a reply. The issue persists even after removing the AirPods or headset from the device and reconnecting them. The issue persists even after rebooting the device. The issue occurs even on the latest versions, from iOS/iPadOS 27 through 27.2.
0
0
79
1w
AVFoundation: full-resolution Quad Bayer RAW capture path for third-party computational photography? (FB25352517)
At the WWDC26 Camera and Photo Technologies Group Lab (session 8018, ~29:55 to 32:46), the panel explained why ProRAW can produce 48 MP output from Quad Bayer sensors while native Bayer RAW is limited to the binned resolution. ProRAW is already demosaiced and linearized, and may incorporate Photonic Engine multi-frame processing. The native RAW path exposes the binned Bayer result. A true full-resolution RAW output would be Quad Bayer, not conventional Bayer, and supporting it properly needs a decoding path around it. The panel suggested filing Feedback Assistant requests if developers need this, so I filed FB25352517. My use case is computational photography that wants minimally processed sensor-domain samples on purpose — its own multi-frame alignment, denoising, HDR fusion, motion rejection, and super-resolution. Adobe Project Indigo is a public example of that kind of pipeline. It captures RAW bursts and uses measured sub-pixel variation between frames to reconstruct detail. Processed 48 MP photos and ProRAW don't cover that. They've already been through Apple's reconstruction or demosaic. Is filing enhancement requests still the intended path for a supported full-resolution Quad Bayer RAW or mosaic capture path? If so, what would make these reports more useful — mosaic metadata, DNG representation, CIRAWFilter support, AVCaptureDevice.Format capability discovery, something else? WWDC26 session: https://developer.apple.com/videos/play/wwdc2026/8018/ Project Indigo technical overview: https://research.adobe.com/articles/indigo/indigo.html
2
0
375
1w
Camera app best practices
As a reminder, the recommended approach to monitor camera rotations, including on upcoming hardware, is to use the AVCaptureDevice.RotationCoordinator / AVCaptureDeviceRotationCoordinator API. In many common scenarios on iPhone Duo, proper use of the rotation coordinator is the only way to ensure that your camera previews and captures use the orientation expected by the user. AVCaptureVideoOrientation has been deprecated as of iOS 17.0 and iPadOS 17.0. When switching cameras in your app, make sure to create a rotation coordinator for that device. To ensure that your app has implemented the rotation coordinator API correctly, you should test different orientations and sizes of your app on an iPad with Stage Manager enabled. Additional information: Sample Code: Supporting device rotation in your camera app Tech Talk: Build a great camera experience for iPhone Duo WWDC23 session: Support external cameras in your iPadOS app
Replies
0
Boosts
0
Views
457
Activity
3w
Musickit SDK for Android broken after Apple Music app update
Hi, The Musickit SDK for Android seems to be broken after the Apple Music app update from last week. We are launching the intent like this: AuthIntentBuilder aib = authManager.createIntentBuilder(appleTokenProvider.getDeveloperToken()); Intent intent = aib.build(); authLauncher.launch(intent); A new Apple Music UI is shown. The user is asked to login with email and password. However, after succesfull login the intent returns the error USER_CANCELLED for authManager.handleTokenResult(data); This was not the case before the latest Apple Music app update. The only workaround is to logout in the Apple Music app, then retry to launch the intent in our app. This has to be done every time the music user token expires. Any ETA on fixing this issue?
Replies
19
Boosts
5
Views
4k
Activity
1m
Swift 6: Supported AVCaptureSession actor isolation and MainActor preview attachment
I’m developing a SwiftUI camera preview for iPhone and iPad using Xcode 27.2 and Swift 6.4.2. I’m looking for clarification about the supported concurrency boundary between an actor-owned AVCaptureSession and a MainActor-owned AVCaptureVideoPreviewLayer. Environment Xcode 27.2 (27B52) Apple Swift 6.4.2 iPhoneOS SDK 27.2 Deployment target: iOS 26.0 Swift 6 language mode Complete concurrency checking Default actor isolation: MainActor Approachable Concurrency enabled The isolated compiler reproductions also explicitly enable NonisolatedNonsendingByDefault, InferIsolatedConformances, and MemberImportVisibility. Architecture The intended architecture follows the general pattern demonstrated in Apple’s AVCam sample: A capture actor uses a dedicated DispatchSerialQueue executor. The capture actor creates, configures, starts, and stops AVCaptureSession. A MainActor adapter owns AVCaptureVideoPreviewLayer. The preview layer retains the same session after attachment. The capture actor retains its session reference because it must perform subsequent capture operations. Compiler behavior In a minimal reproduction, transferring the retained session directly to the MainActor adapter: await preview.attach(session)produces: Sources/CaptureActor.swift:19:23: error: sending 'session' risks causing data races [#RegionIsolation::SendingRisksDataRace]The compiler identifies a potential race between actor-isolated and MainActor-isolated uses. This reproduction produces one error and zero warnings. A second reproduction uses a small PreviewSource: Sendable value containing a private AVCaptureSession reference, with @preconcurrency import AVFoundation confined to that source file. Its MainActor method attaches the session to the preview layer. Under otherwise identical compiler settings, this second reproduction compiles with zero diagnostics. We understand that compiler acceptance does not establish runtime safety and that the compatibility mechanism does not itself synchronize access to the retained session. Apple AVCam reference Apple’s official AVCam sample demonstrates a similar interoperability pattern: CaptureService.swift: dedicated capture executor and retained preview source. PreviewSource.swift: compatibility import and MainActor attachment. CameraPreview.swift: preview-layer association. Reference: Apple’s AVCam: Building a Camera App sample. Pinned sample SHA-256: 5a1981f90bb30827121324d4b33198d58de9b9d68e3508b64f0aabc18bbc0e53The sample revision date is not established; we are not assuming this archive is identical to the latest downloadable revision. Questions 1. Supported Swift 6 interoperability pattern Is the narrow PreviewSource compatibility approach demonstrated by AVCam the recommended way to associate an actor-retained AVCaptureSession with a MainActor-owned AVCaptureVideoPreviewLayer under complete Swift 6 concurrency checking? Is there a newer recommended API, annotation, or ownership pattern? 2. Capture and preview synchronization Is the following operation sequence supported? Configure and commit the capture session on the dedicated capture executor. Attach the session to the preview layer on MainActor. Call startRunning() on the capture executor. Perform ordinary preview layout on MainActor while capture runs. Call stopRunning() on the capture executor. Detach the session from the preview layer on MainActor. Which preview-layer or preview-connection mutations, if any, must be excluded while startRunning() or stopRunning() is executing? 3. Supported detachment and release sequence After stopRunning() returns and MainActor executes: previewLayer.session = nilis it supported to release the remaining application-held session references once application-owned observers and asynchronous consumers have terminated? Does AVFoundation require or recommend any additional step before those references are released? We are asking about the supported framework lifecycle contract, not assuming that application-level cancellation drains internal AVFoundation work. Sources AVCam: Building a camera app Overview Apple’s official AVCam sample
Replies
0
Boosts
0
Views
15
Activity
2h
AVCaptureSession multitasking camera access on iPhone without VoIP background mode
I'm developing an iPhone screen-recording application that simultaneously records the front-facing camera and displays the live camera feed using Picture in Picture while the user navigates other apps. The implementation uses AVFoundation (AVCaptureSession) for camera capture and a system Picture in Picture controller for the floating window. I've encountered the following behavior on a physical iPhone: With voip declared in UIBackgroundModes, isMultitaskingCameraAccessSupported returns true, and the front camera continues capturing while another app is foregrounded. Without voip, isMultitaskingCameraAccessSupported returns false. When the application enters the background, the capture session is interrupted and camera frames stop. Screen recording and the Picture in Picture window continue, but the camera feed freezes or becomes blank. Apple App Review has confirmed that declaring voip without actual VoIP functionality is not permitted under Guideline 2.5.4. I understand and respect that restriction and do not want to misuse background modes. My question: Is there a supported public API, entitlement, or configuration that allows a non-VoIP iPhone application to continue capturing front-camera video while another application is in the foreground? Does Picture in Picture provide any supported mechanism for this use case, or is multitasking camera capture unavailable to non-VoIP applications on iPhone? I'm looking for a supported implementation rather than a workaround that violates App Review guidelines. Any guidance from Apple's AVFoundation engineers would be greatly appreciated.
Replies
2
Boosts
0
Views
73
Activity
1d
Logic Pro: third-party effect AU not processed on an empty audio track — request for the opt-in some vendors have (aumf/Acnt/EINX)
We have a product where Logic Pro's "process effects only when needed" optimisation blocks the core use case, and we would like to ask for the opt-in that some third-party plug-ins already have. Filed as FB25426476. The plug-in ACENTAUR (Audio Unit v2, type aumf, subtype Acnt, manufacturer EINX; EINAUX, Germany) is an AI music generator that lives in the Audio FX slot of an audio track. It renders its own material from the host's tempo, time signature and transport, so the natural workflow is: empty audio track, insert ACENTAUR, press Play, generate. There is no region and no input signal. The plug-in is the source. What happens On an empty audio track Logic never calls the render callback, so the plug-in never receives the host clock through the HostCallbacks: tempo and transport stay unknown and our UI stays locked. Everything else works: the same build renders in the instrument slot, in other hosts, and on a Logic audio track as soon as a region or live input is present. Inserting Logic's Test Oscillator (bypassed) in the same strip also makes it work, which shows the strip is simply not scheduled. Logic engineering described this optimisation on coreaudio-api in February 2024 (https://www.mail-archive.com/coreaudio-api@lists.apple.com/msg01859.html). What we observed A number of third-party effects (Celemony Melodyne, Antares, Synchro Arts, Waves and others) are processed on an empty track. We verified on Logic Pro 12.4 (6707) / macOS 26.6.2 that this is tied to the plug-in's identity plus a private global property Logic queries when the plug-in is loaded: with a listed manufacturer code and that property answered, our plug-in is rendered immediately on an empty track and the host clock arrives. We are of course not going to ship under another vendor's identity; this was a one-off local test to make sure we understand the mechanism before asking. Log excerpt from that test (plug-in log, out-of-process hosting, empty audio track, 48 kHz): 09:19:38 host asked property 101000 → 0 09:19:38 host asked property 101001 → 1 09:19:38 Initialize → 0 · in 2 ch @ 48000 Hz · out 2 ch 09:19:39 First render after 0s · input callback · tempo 120.00 Same build under our own manufacturer code EINX: "No render after 30s · host clock tempo+transport · flags 0". The request Could ACENTAUR (aumf / Acnt / EINX) be added to the set of plug-ins Logic keeps processing without input? The plug-in already answers the property in question; the only missing piece is on Logic's side. If there is a different or public mechanism you would prefer third parties to adopt (a component tag, an AU property, an AUv3 property), we will implement it right away. Happy to provide a build, a demo project and whatever else helps. Christoph Kahse, EINAUX
Replies
0
Boosts
0
Views
39
Activity
1d
Thin border around VideoPlayer
A thin gray border appears around assets presented using VideoPlayer. It was tested on iPhone 8, iPhone 13 mini, and iPhone 15, and the border only appeared on the 13 mini. The iOS version didn't matter, we checked the 13 mini on both iOS 18 and iOS 26 and the border appeared on both. I created a minimal version of the app with just the VideoPlayer and the asset and the frame still appeared. We tried different assets and it was visible on all of them. import SwiftUI import AVKit struct ContentView: View { private let player = AVPlayer(url: Bundle.main.url(forResource: "sample", withExtension: "mp4")!) var body: some View { VideoPlayer(player: player) .frame(width: 300, height: 200) } }I found someone that had the same exact problem on Reddit and StackOverflow: https://www.reddit.com/r/swift/comments/8s87hm/weird_borders_around_avplayerviewcontroller/ https://stackoverflow.com/questions/50927561/weird-borders-around-avplayerviewcontroller and their solution included setting: playerLayer.shouldRasterize = true playerLayer.rasterizationScale = UIScreen.main.scaleThis fixed the issue but isn't suitable for our app due to offscreen rendering performance. They also found that issue on other devices, noting: "After testing this code on multiple devices (actual physical devices, not simulators), this bug appears to happen only on Plus devices (I tested it on i8 on iOS 11, i8+ on iOS 11, iX on iOS 11 and i6+ on iOS 10)." The bug doesn't appear on simulator, isn't visible on a screenshot, the frame disappears when using accessibility zoom. When we encoded the video file to Apple ProRes the border disappeared, but the size of the video bumped from 342 KB to 6.3 MB so we couldn't do that. I'm attaching photo from this person's post since our issue looked exactly the same. Has anyone had a similar issue and maybe found another workaround?
Replies
0
Boosts
0
Views
231
Activity
2d
tvOS 27.2 started presenting playing item in top right corner for every video
Hi guys, after upgrade to tvOS 27.2 I noticed that every time our video streaming app sets up video stream, OS presents playing item popup. We are using MPNowPlayingInfoCenter. We do not set it only when app gets minimized, but always, that is when app is maximized, player is in full screen and one episode ends and another starts, etc. The reason is that we want playing metadata to be visible on iOS for users who use iPhone as remote controller. Our app is playing 24/7 and never stops even backing out of the player does not stop playback, user can keep switching channels rapidly, that is user can hold arrows and can see channel numbers going up rapidly (like 10 channels per second) and at the same time we set MPNowPlayingInfoCenter. We could use debounce for MPNowPlayingInfoCenter and set it only if user stops at a channel say for 0.5s, but after that OS still presents annoying popup. Is that a new tvOS 27.2 feature or a bug? Right now this is very bad user experience. Do we need to stop using MPNowPlayingInfoCenter completely to avoid this behavior? We are planning refactoring and using the new Now Playing framework and MediaSession, but I'm not sure if that can prevent this annoying popup. Not sure if we should completely remove support for Now Playing on iOS to avoid this popup on tvOS.
Replies
0
Boosts
0
Views
248
Activity
2d
Public API for torch beam width (Adaptive True Tone flash)?
On iPhone 14 Pro and later, the system flashlight in Control Center can adjust beam width (narrow ↔ wide). As far as I can tell, AVCaptureDevice only exposes torchMode, torchLevel and setTorchModeOn(level:) I found nothing related to beam width Is there any supported way for a third-party app to control the torch beam width? If not, is this on the roadmap?
Replies
0
Boosts
0
Views
249
Activity
2d
ReplayKit Broadcast Upload video timestamps: originating clock and capture semantics
Which clock or timebase defines CMSampleBufferGetPresentationTimeStamp for ReplayKit Broadcast Upload video on iOS 17–26? Does PTS represent capture time, and is a bounded conversion to CMClockGetHostTimeClock documented? How can a supported public API distinguish a frame captured before a local barrier but delivered after it, including pause/restart discontinuities? Serial callback order and arrival time do not establish that.
Replies
0
Boosts
0
Views
191
Activity
2d
macOS 27 regression: HDMI + DisplayPort Multi-Output audio fails with Core Audio error 1937010544
Hi, I believe I have found a Core Audio regression in macOS 27. This exact hardware configuration worked correctly on macOS 26, and the issue started immediately after upgrading to macOS 27. Hardware: Mac mini M2 2 × MSI MP243X monitors Monitor 1 connected via HDMI Monitor 2 connected via DisplayPort Both monitors expose a 2-channel audio output to macOS On macOS 26: I used Audio MIDI Setup to create a Multi-Output Device containing both MSI MP243X audio outputs. Audio played simultaneously through both monitors without any issues. On macOS 27: Both audio devices are still detected correctly and both work perfectly when selected individually: HDMI only: WORKS DisplayPort only: WORKS HDMI + DisplayPort simultaneously: FAILS This is reproducible even immediately after a full reboot. When I create a new Multi-Output Device containing both MSI outputs and select it as the system output, audio playback cannot start. For example: afplay /System/Library/Sounds/Glass.aiff returns: Error: AudioQueueStart failed ('stop') I captured Core Audio debug logs while reproducing the problem. Core Audio initially reports that StartIO succeeded, but the physical display audio device then fails to establish a timeline. Relevant log messages include: HALS_IOEngine2::_StartIO succeeded Device 3669B540-0000-0000-2623-0104A5351D78 is not running. could not establish a timeline after waiting 10000000 microseconds stopping with error 1937010544 StartIOThread: the IO thread failed to start, Error: 1937010544 I have already tested the following: Both devices at 44.1 kHz / 24-bit Both devices at 48 kHz / 16-bit Recreating the Multi-Output Device from scratch Using the HDMI device as clock source Using the DisplayPort device as clock source Different drift correction configurations Restarting coreaudiod Full macOS reboot Testing both outputs individually immediately after reboot Alternative multi-device audio routing software The behavior is always reproducible. Each MSI MP243X audio endpoint works correctly by itself. The failure only occurs when both HDMI and DisplayPort audio endpoints are opened simultaneously. system_profiler correctly detects both devices at 48 kHz: MSI MP243X Output Channels: 2 Current Sample Rate: 48000 Transport: HDMI MSI MP243X Output Channels: 2 Current Sample Rate: 48000 Transport: DisplayPort This does not appear to be a problem with either monitor or connection individually, because both outputs continue to work independently. The important difference is the macOS version: macOS 26: HDMI + DisplayPort Multi-Output = WORKING macOS 27: HDMI only = WORKING DisplayPort only = WORKING HDMI + DisplayPort Multi-Output = FAILS with AudioQueueStart 'stop' / Core Audio error 1937010544 No hardware, monitor, cable, or connection changes were made between the working macOS 26 configuration and the macOS 27 configuration. This therefore appears to be a regression in the Core Audio/display-audio path introduced with macOS 27 when two display audio endpoints (HDMI + DisplayPort) are opened simultaneously. Has anyone else been able to reproduce this on macOS 27, particularly on Apple Silicon? I can provide the complete coreaudiod logs and run additional Core Audio diagnostics if needed. Additional isolation tests: Both monitors can remain physically connected to the Mac at the same time. With both HDMI and DisplayPort connected: Selecting the HDMI MSI MP243X as the only output works correctly. Selecting the DisplayPort MSI MP243X as the only output works correctly. Opening both audio endpoints simultaneously causes the failure. Therefore, simply having both displays connected does not trigger the issue. The failure appears specifically when Core Audio attempts to run both display-audio endpoints at the same time. I also tested this using third-party multi-device audio routing implementations instead of relying only on Audio MIDI Setup. The same behavior occurs: either MSI MP243X can be opened and used independently, but attempting to route audio to both devices simultaneously fails. This suggests that the issue is below the Multi-Output Device configuration itself and may be related to starting/synchronizing two display-audio IO engines simultaneously. During the failure, the Core Audio log sequence is particularly interesting: The physical device is detected normally. The audio format is configured successfully. Core Audio reports that StartIO succeeded. The device subsequently reports that it is not running. Core Audio waits 10 seconds for a timeline. Timeline establishment fails. The IO thread terminates with error 1937010544 ('stop'). One captured conversion path was: 2 ch, 48000 Hz, Float32, interleaved -> 2 ch, 48000 Hz, Int16, interleaved so both sides were operating at 48 kHz during this test. Another important observation is that restarting coreaudiod does not resolve the simultaneous-output problem. A complete reboot also does not resolve it: immediately after a fresh boot, before launching any third-party audio-routing software, both physical outputs work individually but a newly created Multi-Output Device still reproduces the failure. This makes the issue highly reproducible on this machine. Minimal reproduction: Boot macOS 27 with both MSI MP243X monitors connected. Open Audio MIDI Setup. Verify both MSI MP243X devices work independently. Set both devices to 48,000 Hz. Create a new Multi-Output Device. Select both MSI MP243X devices. Select the new Multi-Output Device as the system audio output. Run: afplay /System/Library/Sounds/Glass.aiff Expected result: The sound is reproduced simultaneously through both monitors, as it was on macOS 26. Actual result: Error: AudioQueueStart failed ('stop') Switching the system output back to either individual MSI MP243X restores audio playback. The problem can then be reproduced again by selecting the Multi-Output Device.
Replies
6
Boosts
8
Views
2k
Activity
4d
Is activeLockedVideoFrameDuration supported on iPhone 16 Pro? Hardware or iOS limitation?
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.
Replies
1
Boosts
0
Views
563
Activity
5d
AUv2: Property Listener Callback Lifetime During AudioComponentInstanceDispose
Title: AUv2: Property Listener Callback Lifetime During AudioComponentInstanceDispose I’m developing a macOS Audio Unit v2 (AUv2) instrument in C++ and investigating the correct lifetime and synchronization requirements for property-listener callbacks. I would appreciate clarification from Apple engineers or developers with direct AUv2 implementation experience. Specifically: Does AudioComponentInstanceDispose guarantee that the Audio Unit’s Close operation has completed before the call returns? Does disposal guarantee that all property-listener callbacks registered through AudioUnitAddPropertyListener have finished executing before the instance and its associated callback data can be destroyed? What are the documented guarantees of AudioUnitRemovePropertyListenerWithUserData regarding callbacks that are currently executing or already queued? Is there a documented synchronization procedure that allows an AUv2 plug-in to safely release listener callback state during instance shutdown? Are there host-ordering requirements or documented assumptions that plug-in developers must follow when registering, removing, and destroying property listeners? My implementation is designed to avoid use-after-free, concurrent access to destroyed objects, and unsafe callback-data reclamation. I want to base the implementation on documented Apple API guarantees rather than assumptions about host behaviour. If relevant, please point me to the authoritative documentation or recommended implementation pattern. Environment: macOS 12 Monterey, Xcode 14.2, AUv2 instrument, C++.
Replies
0
Boosts
0
Views
258
Activity
5d
iPhone 17 Pro: Is Native Apple Log 2 ISP Processing Available for 4224×3024/60fps RAW?
Hi everyone, I'm developing an iOS camera app that aims to record 4224×3024 Open Gate video at 60fps in 10-bit HEVC with Apple Log 2. Native Apple ISP-processed Apple Log 2 capture works at 3840×2160/60fps. However, at 4224×3024/60fps, the tested capture configuration only provides Bayer RAW (btp2). I've successfully decoded ProRes RAW using Apple's decoder into linear Rec.2020 and applied the published Apple Gamut and Apple Log 2 transforms. However, the resulting chroma is only approximately 72–74% of the native ISP output in controlled color-chart comparisons. I've also confirmed that VTRAWProcessingSession and related RAW processing controls are not publicly available to iOS apps in the iPhoneOS 27.0 SDK. My questions are: Is there a public iOS API that applies the same color and tone rendering as Apple's native camera ISP to captured Bayer RAW or ProRes RAW? Is there a supported configuration for obtaining full-resolution 4224×3024/60fps ISP-processed Apple Log 2 output (x420 or x422), without preview proxies or upscaling? If neither is supported, what is Apple's recommended approach? Is this a hardware limitation or a public API limitation? The goal is to use Apple's official color processing pipeline without empirically fitted matrices, LUTs, or arbitrary color corrections. Any guidance would be greatly appreciated. Thank you!
Replies
0
Boosts
0
Views
283
Activity
6d
iPhone Duo: continuous front-camera depth for measuring face distance
Hi, I’m building an app that counts push-ups with the phone on the floor. It currently uses ARKit and TrueDepth to measure the distance between the camera and the user’s face. I want to support iPhone Duo too, but I don’t have one. I only have an iPhone 17 Pro. I watched the camera presentation and saw that depth is supported when accessing the individual cameras. I’m trying to understand what that means for my app. Can either front camera provide continuous depth through AVCaptureDepthDataOutput, or is it only available when taking photos? Does it give actual distances in metres, or relative depth estimates? The face would usually be around 20 to 80 cm from the camera. Also, is there an equivalent camera mode on my iPhone 17 Pro that I could use to test the same approach, or would I need an actual Duo? It’s okay if counting is less accurate than with TrueDepth. I mainly need to detect the user moving down and back up reliably. Thank you!
Replies
1
Boosts
0
Views
311
Activity
6d
macOS 27.2: second Bluetooth HFP microphone is silent despite two SCO connections
Hello Apple engineers and developers, My name is Fumikazu Kondo. I am an independent developer in Japan working on transcription applications, including KF Transcription Mixer. I want to capture two separately connected Bluetooth microphones on a Mac for meeting and conversation transcription. I would appreciate an Apple engineer's response about the supported behavior and a reliable solution. Problem Each microphone works when captured individually. When both are opened, the second input delivers only zeros, even though Core Audio starts successfully and macOS reports two SCO connections. The failure also reproduces with direct native Core Audio capture before any application audio processing. Environment MacBook Pro, Apple M5, model identifier Mac17,2 macOS 27.2; sw_vers reports build 26B123 Xcode 27.1 (27A9275), macOS 27.0 SDK Built-in Bluetooth controller: BCM_4388C2, firmware 24.2.241.1936 Microphones: Beats Pill (firmware 2C336) and SANWA SUPPLY MM-BTCL1 (firmware 1.0.0), both directly connected to the Mac Both input devices expose 16,000 Hz, mono. Bluetooth logs show HFP/mSBC. Microphone Mode: Standard; preferred and active values both read back as 0 Reproduction Connect both microphones to the Mac. Confirm each delivers real audio in a separate, fresh capture process. In Audio MIDI Setup, create an Aggregate Device with the two microphone input devices, one channel each. Use 16 kHz, one clock source, and drift correction for the other device. Start capture of the two channels. Use a controlled speech fixture played through the Mac's built-in speakers so that both microphones receive sound. Observe that one channel has audio and the other is entirely silent. I also reproduced the problem using AudioDeviceCreateIOProcID / AudioDeviceStart directly on the physical input devices, without an aggregate or application processing. Reversing their opening order changed which microphone remained silent: the later-opened device delivered zeros. Measured results Physical Mac XCTest runs on October 30, 2026: MM-BTCL1 alone: 203,520 captured frames; 232 nonzero observation windows; passed. Beats Pill alone: 203,520 captured frames; 233 nonzero observation windows; passed. Two-input aggregate: 202,240 frames; nonzero windows [240, 0]; simultaneous windows 0; application audio error 0. Separate native shared-clock experiment: an aggregate containing both microphone inputs plus the built-in speaker, driven by one full-duplex IOProc. 1,152 input callbacks and 1,152 output buffers; nonzero callback counts [1100, 0]; simultaneous windows 0; invalid samples 0. The last experiment rules out simply lacking a running output clock in the input-only capture path, but it did not fix the issue. Relevant system log messages include: Number of SCO Connections: 2. A2DP Streaming State: 0. Input Decode: Requested 640 bytes, but only read 0 bytes instead. Decoded a total of 0 bytesThe decode message repeats during the silent input. Successful voice-audio connection events appear for both devices. Device identifiers and unrelated logs are omitted here. Already tested Both microphones power-cycled and individually reconnected Mac restarted; issue reproduced afterward Standard microphone mode verified by readback Both microphones individually verified with the same controlled stimulus Reversed native device opening order Persistent and private aggregates; different clock choices and drift correction Direct physical-device IOProc capture Full-duplex shared-clock capture with the built-in speaker Built-in speaker selected as system output, with Bluetooth output streaming stopped during measurement Core Audio and Bluetooth services restarted; issue persisted Software Update reports no new software available I have not established whether the cause is in the OS, driver, controller, or device firmware. I am not claiming a universal Bluetooth specification limitation. Questions for Apple Is simultaneous capture from two directly connected HFP/mSBC microphones supported on this Mac/macOS configuration through Core Audio? If there is a limitation, could you provide the relevant documentation and clarify its scope? If supported, which public API or configuration should be used to keep both input streams delivering audio? Is there a known issue or supported workaround for the all-zero second stream? Which targeted Bluetooth/HCI logs or minimal reproduction details would Apple need to investigate? I can provide a focused reproduction and redacted measurements through an appropriate private channel if needed. This is blocking reliable two-microphone transcription. Please respond with the expected behavior, next diagnostic steps, or the appropriate Apple engineering support route. Thank you for your help. Update: also reproduced with two Beats Pill speakers On October 30, 2026, I replaced the MM-BTCL1 with a second Beats Pill. Both Beats Pill speakers report firmware 2C336 and are independently connected to this Mac. Microphone Mode remains Standard (0). Fresh individual controls after previous SCO connections fully disconnected: both work (235 and 236 nonzero observation windows). Application-created private aggregate, device order A/B: nonzero windows [233, 0]. Reversed participant order: [0, 240]. Direct physical-device IOProc test, opening A before B: callback counts [404, 402], but nonzero callback counts [403, 0]. No simultaneous audio windows. After releasing both and restarting B alone, B delivers audio (381 nonzero callbacks). Opening A while B continues then yields nonzero counts [0, 404]: the later-opened device is again silent. System logs again report two SCO connections and repeated zero-byte input decode messages. Thus the same failure also reproduces with two same-model, same-firmware Apple/Beats devices. Please include this configuration when assessing support status, a possible known issue, and recommended next steps. Additional comparison reported by the user: the MacBook built-in microphone and one Beats Pill can both be heard when used together. This is a user-observed working configuration, separate from the automated tests above. It further narrows the problem to the configuration with two simultaneous Bluetooth microphone inputs.
Replies
0
Boosts
0
Views
223
Activity
6d
Using Apple Music API artist artwork and library import on a music rating website
Hi all, We run Soundmark, a small UK website where people rate and review albums and songs (web only for now, a native app may come later). We'd like to use the Apple Music API in two ways, and want to make sure we stay within the rules before building anything: Show artist images on our artist pages. Let users connect their Apple Music account and import their library, so the albums and songs they already have show up on Soundmark ready to rate. Our setup today: Album and song pages have a small player that plays 30-second previews. On desktop, some pages also show the Spotify embed player. There are no ads on the site. We would show the Apple Music badge and a link to Apple Music alongside any Apple content, following the Apple Music Identity Guidelines. Our questions: Can a website use artist artwork from the Apple Music API if it only plays 30-second previews, or does it need full MusicKit on the web playback (users connecting their Apple Music account)? Can the artist image appear on a page that also shows a Spotify embed player, or does it need to be on pages with Apple Music playback only? Beyond Apple's own terms, do we need separate permission from rights-holders to display artist images, or is the API licence enough when used as described? Can we import catalog data (album and song titles, tracklists, release dates and cover art) from the Apple Music API and store it permanently in our own database, so our album and song pages are built from it? Can those pages be shown to everyone, including visitors without an Apple Music account, and are there limits on caching cover art or on how many albums we import (rate limits)? We also emailed Apple Developer Support on 21st October and chased on the 28th but haven't heard back yet, so any pointers to the relevant terms would be really appreciated. Thanks!
Replies
0
Boosts
0
Views
65
Activity
6d
Radiometric interpretation of Apple ProRAW and Bayer RAW access via AVFoundation
I am working on a computational photography research project involving multi-exposure HDR reconstruction using Bayer RAW and Apple ProRAW captures. I would like to clarify the radiometric interpretation of Apple ProRAW and the availability of Bayer RAW capture through AVFoundation. My questions are: On current iPhone Pro devices, is it possible for third-party apps to capture and export true Bayer-pattern RAW DNG files through AVFoundation, rather than Apple ProRAW linear DNG files? If so, which availableRawPhotoPixelFormatTypes correspond to Bayer RAW, and what device or format restrictions apply? Apple ProRAW appears to be demosaiced and computationally processed, and may include multi-frame fusion. Is the decoded ProRAW image intended to be radiometrically linear and scene-referred? For a bracketed ProRAW sequence captured with fixed ISO, white balance, lens, and focus, but different exposure times, can one assume that the decoded linear pixel values Y_i(p) satisfy an exposure-proportional model in non-saturated regions, such as Y_i(p) ≈ t_i R(p), across brackets? This question is about radiometric consistency for algorithmic use, not about visual editing or tone mapping. Thank you for your help.
Replies
2
Boosts
0
Views
1.9k
Activity
6d
Radiometric interpretation of Apple ProRAW and Bayer RAW access via AVFoundation
I am working on a computational photography research project involving multi-exposure HDR reconstruction using Bayer RAW and Apple ProRAW captures. I would like to clarify the radiometric interpretation of Apple ProRAW and the availability of Bayer RAW capture through AVFoundation. My questions are: 1.On current iPhone Pro devices, is it possible for third-party apps to capture and export true Bayer-pattern RAW DNG files through AVFoundation, rather than Apple ProRAW linear DNG files? If so, which availableRawPhotoPixelFormatTypes correspond to Bayer RAW, and what device or format restrictions apply? 2.Apple ProRAW appears to be demosaiced and computationally processed, and may include multi-frame fusion. Is the decoded ProRAW image intended to be radiometrically linear and scene-referred? 3.For a bracketed ProRAW sequence captured with fixed ISO, white balance, lens, and focus, but different exposure times, can one assume that the decoded linear pixel values Y_i(p) satisfy an exposure-proportional model in non-saturated regions, such as Y_i(p) ≈ t_i R(p), across brackets? This question is about radiometric consistency for algorithmic use, not about visual editing or tone mapping. Thank you for your help.
Replies
2
Boosts
0
Views
1.6k
Activity
6d
Supported integration path for two-deck Apple Music DJ playback on iPhone, iPad and Mac Catalyst
We develop SpinCut DJ, a free-to-download proprietary DJ application by LALAMO CORPORATION for iPhone, iPad and Mac Catalyst. We want to add Apple Music subscription playback for users with an active subscription, similar to the integrations featured in DJ with Apple Music. This question is about the officially supported integration path, not extracting or bypassing protected audio. Our existing engine uses app-owned PCM for two independently controlled decks, scratch/reverse playback, tempo changes, hot cues, loops, beat synchronization and independent master/headphone outputs. We have reviewed MusicAuthorization, MusicSubscription, catalog/library requests, ApplicationMusicPlayer and SystemMusicPlayer. We understand that ordinary catalog access and protected queue playback do not establish a documented route to feed subscription audio into our custom engine, or permission to modify or synchronize MusicKit content. We have not enabled subscription-catalog DJ playback. Apple Developer Support advised us to ask the Developer Forums about the required technical integration. Could an Apple representative clarify: Is there a documented public API for two independent, simultaneous Apple Music DJ decks with scratch/reverse/tempo control? If a separate Apple Music DJ integration, agreement, SDK or capability is required, what is the current official application or referral process for a Japan-based developer? Are iOS, iPadOS and Mac Catalyst supported through the same integration, and what technical material is required for evaluation? What approved interfaces govern waveform/beat analysis, seeking and separate master/headphone routing? We are not requesting recording/export, stem separation, offline file extraction or rebroadcast permission through ordinary MusicKit. Those features would remain unavailable for subscription content unless separately and expressly supported. We can provide a product demonstration and integration brief through an appropriate private channel. Product: https://spincutdj.com/ App Store: https://apps.apple.com/app/id6804328893 Please point us to the supported technical and onboarding path rather than an undocumented entitlement or workaround.
Replies
0
Boosts
0
Views
270
Activity
1w
TTS Stuttering & Noise
TTS Stuttering & Noise When using Apple’s native TTS API on an iPhone or iPad—specifically while connected to Bluetooth earphones or headsets—users are experiencing audio noise or intermittent gaps in speech, causing parts of sentences to drop out during playback. There were no reports or inquiries regarding such issues up through iOS/iPadOS 26. Since the release of iOS/iPadOS 27, however, there has been a significant increase in reports and inquiries about this problem. If you happen to know the cause of this issue or have any suggestions for a fix, please leave a reply. The issue persists even after removing the AirPods or headset from the device and reconnecting them. The issue persists even after rebooting the device. The issue occurs even on the latest versions, from iOS/iPadOS 27 through 27.2.
Replies
0
Boosts
0
Views
79
Activity
1w
AVFoundation: full-resolution Quad Bayer RAW capture path for third-party computational photography? (FB25352517)
At the WWDC26 Camera and Photo Technologies Group Lab (session 8018, ~29:55 to 32:46), the panel explained why ProRAW can produce 48 MP output from Quad Bayer sensors while native Bayer RAW is limited to the binned resolution. ProRAW is already demosaiced and linearized, and may incorporate Photonic Engine multi-frame processing. The native RAW path exposes the binned Bayer result. A true full-resolution RAW output would be Quad Bayer, not conventional Bayer, and supporting it properly needs a decoding path around it. The panel suggested filing Feedback Assistant requests if developers need this, so I filed FB25352517. My use case is computational photography that wants minimally processed sensor-domain samples on purpose — its own multi-frame alignment, denoising, HDR fusion, motion rejection, and super-resolution. Adobe Project Indigo is a public example of that kind of pipeline. It captures RAW bursts and uses measured sub-pixel variation between frames to reconstruct detail. Processed 48 MP photos and ProRAW don't cover that. They've already been through Apple's reconstruction or demosaic. Is filing enhancement requests still the intended path for a supported full-resolution Quad Bayer RAW or mosaic capture path? If so, what would make these reports more useful — mosaic metadata, DNG representation, CIRAWFilter support, AVCaptureDevice.Format capability discovery, something else? WWDC26 session: https://developer.apple.com/videos/play/wwdc2026/8018/ Project Indigo technical overview: https://research.adobe.com/articles/indigo/indigo.html
Replies
2
Boosts
0
Views
375
Activity
1w