Closed Cez95 closed 5 years ago
Code that solves the leak: var videoPreviewLayer: AVCaptureVideoPreviewLayer { var previewlayer: AVCaptureVideoPreviewLayer!
if Thread.current.isMainThread {
previewlayer = self.layer as! AVCaptureVideoPreviewLayer
} else {
DispatchQueue.main.sync {
previewlayer = self.layer as! AVCaptureVideoPreviewLayer
}
}
switch gravity {
case .resize:
previewlayer.videoGravity = AVLayerVideoGravity.resize
case .resizeAspect:
previewlayer.videoGravity = AVLayerVideoGravity.resizeAspect
case .resizeAspectFill:
previewlayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
}
return previewlayer
}
@Cez95 which version of the pod was this happening for? If you use the latest do you still see this error?
A memory leak is caused in the PreviewLayer file here: var videoPreviewLayer: AVCaptureVideoPreviewLayer { let previewlayer = layer as! AVCaptureVideoPreviewLayer switch gravity { case .resize: previewlayer.videoGravity = AVLayerVideoGravity.resize case .resizeAspect: previewlayer.videoGravity = AVLayerVideoGravity.resizeAspect case .resizeAspectFill: previewlayer.videoGravity = AVLayerVideoGravity.resizeAspectFill } return previewlayer }
Here is the console output: Main Thread Checker: UI API called on a background thread: -[UIView layer] PID: 8632, TID: 2107163, Thread name: (none), Queue name: session queue, QoS: 0 Backtrace: 4 SwiftyCam 0x0000000102a3ea54 _T09SwiftyCam11PreviewViewC05videoC5LayerSo014AVCaptureVideocF0Cvg + 56 5 SwiftyCam 0x0000000102a4e6d4 _T09SwiftyCam0aB14ViewControllerC19getVideoOrientation06_CC0C9I25E867B3760B903CEB3F5BFDE16LLSC09AVCapturefG0OyF + 384 6 SwiftyCam 0x0000000102a4ab2c T09SwiftyCam0aB14ViewControllerC19startVideoRecordingyyFyycfU + 1124 7 SwiftyCam 0x0000000102a47a5c _T0Ieg_IeyB_TR + 52 8 libdispatch.dylib 0x0000000103f691dc _dispatch_call_block_and_release + 24 9 libdispatch.dylib 0x0000000103f6919c _dispatch_client_callout + 16 10 libdispatch.dylib 0x0000000103f77dfc _dispatch_queue_serial_drain + 768 11 libdispatch.dylib 0x0000000103f6c6ac _dispatch_queue_invoke + 328 12 libdispatch.dylib 0x0000000103f78d54 _dispatch_root_queue_drain_deferred_wlh + 352 13 libdispatch.dylib 0x0000000103f7fe38 _dispatch_workloop_worker_thread + 676 14 libsystem_pthread.dylib 0x0000000182fffe70 _pthread_wqthread + 860 15 libsystem_pthread.dylib 0x0000000182fffb08 start_wqthread + 4 2018-09-06 10:46:29.818118-0400 Writeboard[8632:2107163] [reports] Main Thread Checker: UI API called on a background thread: -[UIView layer] PID: 8632, TID: 2107163, Thread name: (none), Queue name: session queue, QoS: 0 Backtrace: 4 SwiftyCam 0x0000000102a3ea54 _T09SwiftyCam11PreviewViewC05videoC5LayerSo014AVCaptureVideocF0Cvg + 56 5 SwiftyCam 0x0000000102a4e6d4 _T09SwiftyCam0aB14ViewControllerC19getVideoOrientation06_CC0C9I25E867B3760B903CEB3F5BFDE16LLSC09AVCapturefG0OyF + 384 6 SwiftyCam 0x0000000102a4ab2c T09SwiftyCam0aB14ViewControllerC19startVideoRecordingyyFyycfU + 1124 7 SwiftyCam 0x0000000102a47a5c _T0Ieg_IeyB_TR + 52 8 libdispatch.dylib 0x0000000103f691dc _dispatch_call_block_and_release + 24 9 libdispatch.dylib 0x0000000103f6919c _dispatch_client_callout + 16 10 libdispatch.dylib 0x0000000103f77dfc _dispatch_queue_serial_drain + 768 11 libdispatch.dylib 0x0000000103f6c6ac _dispatch_queue_invoke + 328 12 libdispatch.dylib 0x0000000103f78d54 _dispatch_root_queue_drain_deferred_wlh + 352 13 libdispatch.dylib 0x0000000103f7fe38 _dispatch_workloop_worker_thread + 676 14 libsystem_pthread.dylib 0x0000000182fffe70 _pthread_wqthread + 860 15 libsystem_pthread.dylib 0x0000000182fffb08 start_wqthread + 4