// // Copyright Amazon.com Inc. or its affiliates. // All Rights Reserved. // // SPDX-License-Identifier: Apache-2.0 // import AVFoundation import CoreImage class OutputSampleBufferCapturer: NSObject, AVCaptureVideoDataOutputSampleBufferDelegate { let faceDetector: FaceDetector let videoChunker: VideoChunker init(faceDetector: FaceDetector, videoChunker: VideoChunker) { self.faceDetector = faceDetector self.videoChunker = videoChunker } func captureOutput( _ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection ) { videoChunker.consume(sampleBuffer) guard let imageBuffer = sampleBuffer.rotateRightUpMirrored() else { return } faceDetector.detectFaces(from: imageBuffer) } }