The documentation for AVCaptureDeviceRotationCoordinator
says it is designed to work with any CALayer
but it seems like it is designed to work only with AVCaptureVideoPreviewLayer
. Can someone confirm it is possible to make it work with other layers such as CAMetalLayer
or AVSampleBufferDisplayLayer
?
Hello @testinstadev,
it seems like it is designed to work only with AVCaptureVideoPreviewLayer
Was there some documentation that made you think that? It works with any CALayer type.
For example:
rotationCoordinator = AVCaptureDevice.RotationCoordinator(device: device, previewLayer: layer)
rotationCoordinator.publisher(for: \.videoRotationAngleForHorizonLevelPreview).sink { [self] degrees in
let radians = degrees * .pi / 180
displayLayer.setAffineTransform(CGAffineTransform(rotationAngle: radians))
}.store(in: &cancellables)
In that example, the displayLayer
is an AVSampleBufferDisplayLayer, but it could be any layer type.
-- Greg