in FastViTSample/FastViTSample/DataModel.swift [30:53]
init() {
// Create a reusable buffer to avoid allocating memory for every model invocation
var buffer: CVPixelBuffer!
let status = CVPixelBufferCreate(
kCFAllocatorDefault,
Int(targetSize.width),
Int(targetSize.height),
kCVPixelFormatType_32ARGB,
nil,
&buffer
)
guard status == kCVReturnSuccess else {
fatalError("Failed to create pixel buffer")
}
inputPixelBuffer = buffer
// Decouple running the model from the camera feed since the model will run slower
Task.detached(priority: .userInitiated) {
await self.runModel()
}
Task {
await handleCameraFeed()
}
}