Я получил этот метод, который захватывает изображение из буфера камеры для выполнения некоторой обработки изображений каждые несколько секунд.
Приведенный ниже метод работает нормально во всех моих тестах, но он присутствует в отчетах cra sh со значительным количеством сбоев.
final func cameraBufferProcessing () {
DispatchQueue.global(qos: .background).sync { [unowned self] in
if let bufferImage = self.cameraBufferImage?.oriented(.downMirrored) {
let heightPropotion : CGFloat = bufferImage.extent.height * 0.5 //Crashes on this line
if let cgImg = self.context.createCGImage(bufferImage.clampedToExtent(), from: CGRect(x: 0, y: heightPropotion, width: bufferImage.extent.width, height: heightPropotion))
{
DispatchQueue.main.async {
// use with cgImg to do image processing
}
}
} else {
// do something else
}
}
}
Cra sh отчеты указывают на третий строка выше:
let heightPropotion : CGFloat = bufferImage.extent.height * 0.5
Cra sh, кажется, связано с экстентом.
В чем может быть причина?