To clarify the issue, our preview pipeline rotates the sample-buffer display layer by applying the
RotationCoordinator angle as a transform on the layer itself, while leaving the data-output
connection's rotation unset — a pattern that worked on every iPhone before 17 Pro because
the buffer always arrived in the same default orientation. On the iPhone 17 Pro front cam the same code renders 90° off: RC still returns correct values, but the
buffer's default orientation is itself 90° offset from every earlier device, so "RC's angle
applied as a layer transform" no longer lands upright. The hidden dependency that broke is
exactly this — applying RC's angle on the layer only works when the buffer's default
orientation is fixed across devices, and since we never set the connection's rotation, we
were silently relying on that default, which shifted on this one camera. The supported fix
(driving connection.videoRotationAngle directly) corrects orientation but causes the
emitted buffer's pixel dimensions to swap between portrait and landscape(1920x1080 to 1080x1920, which then breaks
the preview aspect-ratio layout and the AVAssetWriter transform that were both built
around stable buffer dimensions.
Topic:
Media Technologies
SubTopic:
Photos & Camera
Tags: