我正在使用GPUImage库从我的iPad相机捕捉视频帧,并尝试对生成的图像缓冲区进行一些处理。
我有以下用于检索CFData字节数组的代码:
func testImage(image: CIImage) -> Bool {
let ciContext = CIContext()
let cgImg = ciContext.createCGImage(image, fromRect: image.extent)
if let dataProvider = CGImageGetDataProvider(cgImg),
imageData = CGDataProviderCopyData(dataProvider) {
print("Retrieved image byte array with length: \(CFDataGetLength(imageData))")
}
return false
}
// Camera delegate function
func didCaptureBuffer(sampleBuffer: CMSampleBuffer) {
if let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) {
let image = CIImage(CVImageBuffer: imageBuffer)
if testImage(image) {
print("Image tested true!")
}
}
}
每当我尝试在iPad上运行此代码时,if let imageData....
行都会出现EXC_BAD_ACCESS内存问题。有没有人见过这个或知道我怎么调试它?