Skip to content

Release 3.0.0-rc.4

Pre-release
Pre-release
Compare
Choose a tag to compare
@mrousavy mrousavy released this 31 Jul 09:53
· 609 commits to main since this release

3.0.0-rc.4 (2023-07-31)

  • Lots under the hood changes
  • Full C++ codebase rewrite on iOS
  • Full C++ codebase rewrite on Android
  • Android now works! 🌮
  • New hook: useSkiaFrameProcessor
  • Frame Processor Plugins are now object oriented and can be initialized from JS with custom options. This will allow you to pass options like which model to use, fast or accurate, to a native FP plugin like a face-detection or pose-detection algorithm.

Old syntax:

export function examplePlugin(frame: Frame) {
  'worklet'
  return VisionCameraPlugins.__examplePlugin(frame)
}

New syntax:

const plugin = VisionCameraProxy.getFrameProcessorPlugin('example_plugin')

export function examplePlugin(frame: Frame) {
  'worklet'
  return plugin.call(frame)
}

And the getFrameProcessorPlugin can also accept options, which is a NSDictionary on iOS in the init: call.

📚 Documentation

✨ Features

  • Add RN 0.72 support (namespace in build.gradle) (7ae15af)
  • Better Native Module Error Detection (#1515) (f791c6b)
  • Complete iOS Codebase rewrite (#1647) (375e894)
  • Expose unified VisionCameraProxy object, make FrameProcessorPlugins object-oriented (#1660) (44ed42d)
  • Make Frame Processor Plugins object-oriented on iOS as well (#1496) (622d383)
  • New CameraDevice + CameraFormat detection using CameraX (#1495) (0d83a13)
  • Rewrite Android C++ part (VisionCameraProxy + JFrame) (#1661) (86dd703)

🐛 Bug Fixes

  • Catch device == null error (f227a3e)
  • Downgrade Gradle to 7.5.1 (66c6481)
  • Fix runAtTargetFps for multiple invocations per FP (af4e366)
  • Fix Android namespace (cf19ff2)
  • Fix FP Plugin init call (c2096a4)
  • Fix missing Camera error (38749fb)
  • Fix namespace (deeb8db)
  • Fix Skia build (#1582) (f03dde7)
  • Fix Worklets imports (5fb594c)
  • ignore duplicate .so libraries in package (ad5d64b)
  • Improve C++ safety by attaching Cache Invalidator to jsi::Runtime's lifecycle (#1488) (0c3cd66)
  • Move implementation for FrameProcessorPlugin to .m (bc9c157)
  • pragma once (127656b)
  • Remove iOS 13 guard (7c721cc)
  • Remove RN Skia dependency on Android for now (61f19df)
  • Remove temp-patch for REA plugin (6deb686)
  • Set min iOS version to 12.4 (bb7ab30)
  • Simplify Podfile (0111f2e)
  • Use global.expo.modules for JSI expo modules (a1af891)
  • Use correct Gradle version (0139324)