docs: Add Kotlin & Swift FP plugins examples (#1902)
* chore(docs): add Kotlin FP example * chore(docs): add Swift FP plugin
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
//
|
||||
// ExampleSwiftFrameProcessor.m
|
||||
// VisionCameraExample
|
||||
//
|
||||
// Created by Mateusz Medrek on 02/10/2023.
|
||||
//
|
||||
|
||||
#if __has_include(<VisionCamera/FrameProcessorPlugin.h>)
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <VisionCamera/FrameProcessorPlugin.h>
|
||||
#import <VisionCamera/FrameProcessorPluginRegistry.h>
|
||||
#import <VisionCamera/Frame.h>
|
||||
|
||||
#import "VisionCameraExample-Swift.h"
|
||||
|
||||
// Example for a Swift Frame Processor plugin automatic registration
|
||||
@interface ExampleSwiftFrameProcessorPlugin (FrameProcessorPluginLoader)
|
||||
@end
|
||||
|
||||
@implementation ExampleSwiftFrameProcessorPlugin (FrameProcessorPluginLoader)
|
||||
|
||||
+ (void)load
|
||||
{
|
||||
[FrameProcessorPluginRegistry addFrameProcessorPlugin:@"example_kotlin_swift_plugin" withInitializer:^FrameProcessorPlugin * _Nonnull(NSDictionary * _Nullable options) {
|
||||
return [[ExampleSwiftFrameProcessorPlugin alloc] init];
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
@@ -0,0 +1,42 @@
|
||||
//
|
||||
// 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 {
|
||||
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
|
Reference in New Issue
Block a user