2023-10-03 03:33:48 -06:00
|
|
|
//
|
|
|
|
// ExampleSwiftFrameProcessor.swift
|
|
|
|
// VisionCameraExample
|
|
|
|
//
|
|
|
|
// Created by Mateusz Medrek on 02/10/2023.
|
|
|
|
//
|
|
|
|
|
|
|
|
#if VISION_CAMERA_ENABLE_FRAME_PROCESSORS
|
|
|
|
import VisionCamera
|
|
|
|
|
|
|
|
// Example for a Swift Frame Processor plugin
|
|
|
|
@objc(ExampleSwiftFrameProcessorPlugin)
|
|
|
|
public class ExampleSwiftFrameProcessorPlugin: FrameProcessorPlugin {
|
2024-01-12 08:00:36 -07:00
|
|
|
public override init(proxy: VisionCameraProxyHolder, options: [AnyHashable: Any]! = [:]) {
|
|
|
|
super.init(proxy: proxy, options: options)
|
2023-10-19 02:35:14 -06:00
|
|
|
|
2023-10-19 03:19:47 -06:00
|
|
|
print("ExampleSwiftFrameProcessorPlugin initialized with options: \(String(describing: options))")
|
2023-10-19 02:35:14 -06:00
|
|
|
}
|
|
|
|
|
2023-10-03 03:33:48 -06:00
|
|
|
public override func callback(_ frame: Frame, withArguments arguments: [AnyHashable: Any]?) -> Any? {
|
|
|
|
let imageBuffer = CMSampleBufferGetImageBuffer(frame.buffer)
|
|
|
|
|
|
|
|
if let arguments, let imageBuffer {
|
|
|
|
let width = CVPixelBufferGetWidth(imageBuffer)
|
|
|
|
let height = CVPixelBufferGetHeight(imageBuffer)
|
|
|
|
let count = arguments.count
|
|
|
|
|
|
|
|
print(
|
|
|
|
"ExampleSwiftPlugin: \(width) x \(height) Image. Logging \(count) parameters:"
|
|
|
|
)
|
|
|
|
|
|
|
|
for key in arguments.keys {
|
|
|
|
let value = arguments[key]
|
|
|
|
let valueString = String(describing: value)
|
|
|
|
let valueClassString = String(describing: value.self)
|
|
|
|
print("ExampleSwiftPlugin: -> \(valueString) (\(valueClassString))")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return [
|
|
|
|
"example_str": "SwiftTest",
|
|
|
|
"example_bool": false,
|
|
|
|
"example_double": 6.7,
|
|
|
|
"example_array": ["Good bye", false, 21.37]
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|