v0.5.0 — F8 Frame Processor port
Headline: Non-AR captures now drive through vision-camera's Frame Processor on the camera producer thread instead of takeSnapshot → JPEG → cache-file at 4 Hz. Native frame rate evaluation, lower latency to accept, zero per-frame disk thrash.
Included
- F8.3 — iOS Frame Processor port.
CVPixelBufferend-to-end intoIncrementalStitcher.consumeFrame(same entry point AR mode uses). - F8.4 — Android Frame Processor port. Y-plane → keyframe gate → inline JPEG encode on accept via
YuvImageConverter. Full pixel-buffer parity (skip JPEG encode for live engines) is tracked as the v0.5.1 follow-up F8.6. useFrameProcessorDriverhook — same{start, stop, frameProcessor, isRunning}shape as the legacyuseIncrementalJSDriver. Default for non-AR captures.<Camera legacyDriver={true}>prop — opt-out escape hatch back to the legacy path for one minor cycle.- Roll axis (gyro-Z) in the synthesised pose quaternion.
- Vision-camera lifecycle errors (
system/camera-is-restricted, screen-lock, app-switch) are filtered inside the SDK's<CameraView>instead of bubbling to hostonError. - Compile-time Swift↔ObjC selector pin for the Frame Processor plugin, plus a dev-build runtime assert — drift breaks the build instead of the first non-AR frame at runtime.
Deprecated
useIncrementalJSDriver — works through v0.5; removed in v0.6. Emits a one-shot console.warn on start().
Installation
npm install react-native-image-stitcher@0.5.0The postinstall script fetches the iOS xcframework + Android OpenCV SDK from this release's assets automatically. Total fetch: ~350 MB; cached locally after first install.
Tracked follow-ups (don't gate this release)
- F8.6 (v0.5.1) — Android engine pixel-buffer refactor. Extract
addFrameMathelper, addaddFramePixelDatapath, wireRNSARCameraViewto skip the per-frame JPEG encode. Saves ~30–50 ms per accepted frame. Deferred because the engine bodies are 400+ lines of complex AR-mode code that need A35 device verification before merge.
Verified
- iPhone 17 Pro: non-AR capture produces real panorama JPGs, no leftover candidate JPEGs in cache dir.
- Samsung Galaxy A35: non-AR capture produces real panoramas with EXIF-rotation thumbnails.
- AR mode untouched on both platforms (static code audit confirms no AR codepaths modified).
See CHANGELOG.md for the full Added / Changed / Deprecated / Fixed surface.
Full Changelog: v0.4.1...v0.5.0