v0.5.1 — F8.6 pixel-buffer engine parity
Closes the v0.5.0 follow-up tracker for F8.6.
Highlights
Live engines (hybrid + firstwins) skip the JPEG encode/decode round-trip. Both engines gained a new addFramePixelData(nv21, ...) ingest path that constructs the BGR cv::Mat in-process via Imgproc.cvtColor(yuv, COLOR_YUV2BGR_NV21). Legacy addFrameAtPath is now a thin wrapper that decodes a JPEG and delegates to the shared addFrameMat helper.
Measured on Galaxy A35, engine: 'firstwins-rectilinear':
| Outcome | F8.6 pixel-data | Legacy JPEG path |
|---|---|---|
AcceptedHigh (first-frame init) |
7-11 ms | ~50-70 ms |
SkippedTooClose (gate bail) |
0.5-2 ms | ~50-60 ms (imread is unconditional) |
SkippedTooClose is ~95% of frames at 30 fps in a slow-pan capture — that's where the bulk of the win comes from.
API additions
<Camera engine={...}>prop lets hosts opt into live engines ('firstwins-rectilinear','hybrid','slitscan-*'). Default'batch-keyframe'preserves v0.5.0 behaviour.IncrementalStitcher.ingestFromARCameraViewgotnv21PixelData/nv21PixelWidth/nv21PixelHeightoptional params. Backwards-compatible — null defaults pin every existing caller to the legacy JPEG path.
Installation
npm install react-native-image-stitcher@0.5.1The postinstall fetches the iOS xcframework (26 MB) + Android OpenCV SDK (42 MB) from this release.
See CHANGELOG.md [0.5.1] for the full Added / Changed / Fixed surface.
Full Changelog: v0.5.0...v0.5.1