Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash with SIGSEGV on Android #1635

Closed
4 tasks done
bglgwyng opened this issue Jun 29, 2023 · 12 comments · Fixed by #1466
Closed
4 tasks done

Crash with SIGSEGV on Android #1635

bglgwyng opened this issue Jun 29, 2023 · 12 comments · Fixed by #1466
Labels
🐛 bug Something isn't working

Comments

@bglgwyng
Copy link
Contributor

bglgwyng commented Jun 29, 2023

What were you trying to do?

I wanted to run a camera with a frame processor in V3.

Reproduceable Code

I have not yet been able to solve the reproduction step. To initiate a collaborative effort in finding the solution, I am sharing this issue.

Nevertheless, I have come across a few small hints. Firstly, it seems that the frame processor may be relevant. The crash occurs only when I attach a frame processor to the camera. Additionally, the stack trace includes the presence of 'librnworklets.so'.

Furthermore, I believe that updating the frameProcessor prop could be a factor. When I did not update it, the crash did not occur. In V2, updating the frameProcessor prop, typically caused by modifying values in deps within useFrameProcessor, easily led to app crashes on both Android and iOS. Upon upgrading to V3, I discovered that the issue was resolved, particularly on iOS. However, there are still occasional crashes on Android, although not as frequently as in V2.

What happened instead?

Run without a crash.

Relevant log output

Crashed: Thread: SIGSEGV  0x0000000000000008
#00 pc 0x9a070 libhermes.so (BuildId: e5310494e026103da5c6017c6f68a9c1fa7262fa)
#01 pc 0xa6300 libhermes.so (BuildId: e5310494e026103da5c6017c6f68a9c1fa7262fa)
#02 pc 0xa6300 libhermes.so (BuildId: e5310494e026103da5c6017c6f68a9c1fa7262fa)
#03 pc 0xa48ec libhermes.so (BuildId: e5310494e026103da5c6017c6f68a9c1fa7262fa)
#04 pc 0x87354 libhermes.so (BuildId: e5310494e026103da5c6017c6f68a9c1fa7262fa)
#05 pc 0x74ce4 libhermes.so (BuildId: e5310494e026103da5c6017c6f68a9c1fa7262fa)
#06 pc 0x5c7e8 libVisionCamera.so (BuildId: 9533f7f5b29e61ccec0b52b16d140796235a2072)
#07 pc 0x5c070 libVisionCamera.so (BuildId: 9533f7f5b29e61ccec0b52b16d140796235a2072)
#08 pc 0x1a19bc librnworklets.so (BuildId: 643768d061c79a4d4850ee762daa4c642174e953)
#09 pc 0x1a1954 librnworklets.so (BuildId: 643768d061c79a4d4850ee762daa4c642174e953)
#10 pc 0x1a18a0 librnworklets.so (BuildId: 643768d061c79a4d4850ee762daa4c642174e953)
#11 pc 0x1a1818 librnworklets.so (BuildId: 643768d061c79a4d4850ee762daa4c642174e953)
#12 pc 0x1a06c4 librnworklets.so (BuildId: 643768d061c79a4d4850ee762daa4c642174e953)
#13 pc 0x7c7dc libhermes.so (BuildId: e5310494e026103da5c6017c6f68a9c1fa7262fa)
#14 pc 0x87060 libhermes.so (BuildId: e5310494e026103da5c6017c6f68a9c1fa7262fa)
#15 pc 0xa51a8 libhermes.so (BuildId: e5310494e026103da5c6017c6f68a9c1fa7262fa)
#16 pc 0xa48ec libhermes.so (BuildId: e5310494e026103da5c6017c6f68a9c1fa7262fa)
#17 pc 0x87354 libhermes.so (BuildId: e5310494e026103da5c6017c6f68a9c1fa7262fa)
#18 pc 0x74ce4 libhermes.so (BuildId: e5310494e026103da5c6017c6f68a9c1fa7262fa)
#19 pc 0x5c7e8 libVisionCamera.so (BuildId: 9533f7f5b29e61ccec0b52b16d140796235a2072)
#20 pc 0x5c070 libVisionCamera.so (BuildId: 9533f7f5b29e61ccec0b52b16d140796235a2072)
#21 pc 0x5bd34 libVisionCamera.so (BuildId: 9533f7f5b29e61ccec0b52b16d140796235a2072)
#22 pc 0x5e818 libVisionCamera.so (BuildId: 9533f7f5b29e61ccec0b52b16d140796235a2072)
#23 pc 0x5f1b8 libVisionCamera.so (BuildId: 9533f7f5b29e61ccec0b52b16d140796235a2072)
#24 pc 0x5f26c libVisionCamera.so (BuildId: 9533f7f5b29e61ccec0b52b16d140796235a2072)
#25 pc 0x5f128 libVisionCamera.so (BuildId: 9533f7f5b29e61ccec0b52b16d140796235a2072)
#26 pc 0x5e7b8 libVisionCamera.so (BuildId: 9533f7f5b29e61ccec0b52b16d140796235a2072)
#27 pc 0x222244 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#28 pc 0x29c628 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#29 pc 0x218be8 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#30 pc 0x28520c libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#31 pc 0x764cdc libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#32 pc 0x3e70f0 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#33 pc 0x3e1cec libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#34 pc 0x762dd4 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#35 pc 0x29cb50 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#36 pc 0x203994 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#37 pc 0x2000fc libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#38 pc 0x2270ec libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#39 pc 0x763268 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#40 pc 0x775bf4 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#41 pc 0x203994 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#42 pc 0xa16ffc libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#43 pc 0x2000fc libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#44 pc 0xa16ffc libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#45 pc 0x3d98e0 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#46 pc 0x2947b4 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#47 pc 0xa16ffc libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#48 pc 0x3e1254 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#49 pc 0xa16ffc libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#50 pc 0xa16ffc libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#51 pc 0x3e1cc8 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#52 pc 0x202e94 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#53 pc 0x75dfe0 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#54 pc 0xa16ffc libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#55 pc 0x203a14 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#56 pc 0x2000fc libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#57 pc 0x2270ec libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#58 pc 0x763268 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#59 pc 0x775bf4 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#60 pc 0x203994 libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#61 pc 0xa16ffc libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#62 pc 0x2000fc libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)
#63 pc 0xa16ffc libart.so (BuildId: 1724d2edb620afb8c3e8c5ea6c61ac19)

Device

Galaxy S10

VisionCamera Version

3.0.0-rc.2

Additional information

@bglgwyng bglgwyng added the 🐛 bug Something isn't working label Jun 29, 2023
@mrousavy
Copy link
Owner

mrousavy commented Aug 3, 2023

Can you share the entire logs from adb logcat?

@bglgwyng
Copy link
Contributor Author

@mrousavy I think it'll take some time to reproduce the bugs since made a huge migration and the old environment is lost. I'll test it once I fix the Android build with the latest RNVC V3!

@mrousavy
Copy link
Owner

Cool yea I'm still in the middle of rewriting everything haha

@mrousavy
Copy link
Owner

Hey! I've rewritten the entire Android codebase of VisionCamera from CameraX to Camera2 in the efforts of ✨ VisionCamera V3.

I just now completed the Camera2 rewrite and I believe the core structure is running, but there might be some edge cases to iron out. Can you try and test the PR #1674 for me to see if you can still reproduce this issue here?

Here's an instruction on how you can test that: #1674 (comment)

If the issue cannot be reproduced with that version/PR anymore, then hoorayy, I fixed it! 🎉
Otherwise please let me know and I'll keep this issue open to keep track of it.

Thank you!

@bglgwyng
Copy link
Contributor Author

@mrousavy First, Thank you for your effort!

Brief report: I previously attempted to replicate this problem using a new project. My initial suspicion was that the crash resulted from updates to the 'frameProcessor' prop. Surprisingly, the small test app worked perfectly, suggesting that the issue might stem from domain-specific logic within my primary project.

The problem is that the Android build of my main project has been left broken for a period. Furthermore, the latest version of RNVC V3 was ok with a fresh RN project, hinting that the build failure may be linked to specific intricacies of my main project. Now I am trying to resolve the build problem from this point forward, but I cannot guarantee it to be done soon.

I'll share the build problem in a new issue for further assistance.

@bglgwyng
Copy link
Contributor Author

I need to fix #1681 first. I've observed that the issue is not found in a new project + RNVC V3 installed.

@mrousavy
Copy link
Owner

Exciting! V3 will close this then :) Thanks for testing!

@MajorTom007
Copy link

the same issue , v 3.6.4
Sometimes the application crashes with this issue. On average, there is one crash per five scans.

Crashed: Thread: SIGSEGV 0x0000007cc639d7e1
#00 pc 0x128bac libbarhopper_v3.so (BuildId: 73597d2de25bd3c29361db3c56dd9f18)
#1 pc 0x812f4 libbarhopper_v3.so (BuildId: 73597d2de25bd3c29361db3c56dd9f18)
#2 pc 0xa2600 libtflite_gmscore_jni.so (BuildId: abf371b4405232f9c7109f40a7426a23)
#3 pc 0xa17e4 libtflite_gmscore_jni.so (BuildId: abf371b4405232f9c7109f40a7426a23)
#04 pc 0x116474 libbarhopper_v3.so (BuildId: 73597d2de25bd3c29361db3c56dd9f18)
#5 pc 0x116484 libbarhopper_v3.so (BuildId: 73597d2de25bd3c29361db3c56dd9f18)
#6 pc 0x11601c libbarhopper_v3.so (BuildId: 73597d2de25bd3c29361db3c56dd9f18)
#7 pc 0x112160 libbarhopper_v3.so (BuildId: 73597d2de25bd3c29361db3c56dd9f18)
#8 pc 0x1124a0 libbarhopper_v3.so (BuildId: 73597d2de25bd3c29361db3c56dd9f18)
#9 pc 0x82b98 libbarhopper_v3.so (BuildId: 73597d2de25bd3c29361db3c56dd9f18)
#10 pc 0x7aee4 libbarhopper_v3.so (BuildId: 73597d2de25bd3c29361db3c56dd9f18)
#11 pc 0x83360 libbarhopper_v3.so (BuildId: 73597d2de25bd3c29361db3c56dd9f18)
#12 pc 0x213a5 libbarhopper_v3.so (BuildId: 73597d2de25bd3c29361db3c56dd9f18)
#13 pc 0x7ac2c libbarhopper_v3.so (BuildId: 73597d2de25bd3c29361db3c56dd9f18)
#14 pc 0x7ac38 libbarhopper_v3.so (BuildId: 73597d2de25bd3c29361db3c56dd9f18)

@davidmrp
Copy link

davidmrp commented Mar 14, 2024

Hi! The issue seems to be still present in latest v3.9.1. Reproduced on Redmi Note 11 Pro 5G (also this devices suffers "black screen" #2363, setting exposure=0 works). The app crashes after scanning a barcode and navigating to another screen and returning back to scanner screen and continue scanning barcodes. After 4-5 times doing this, the app crashes. Attached device.json with info of de camera device used and adb_logcat.txt with crash traces (crash occurs at 11:13:24.238. Thanks!

device.json
adb_logcat.txt

crashlytics_trace

@Laulhus
Copy link

Laulhus commented Mar 18, 2024

Hi! The issue seems to be still present in latest v3.9.1. Reproduced on Redmi Note 11 Pro 5G (also this devices suffers "black screen" #2363, setting exposure=0 works). The app crashes after scanning a barcode and navigating to another screen and returning back to scanner screen and continue scanning barcodes. After 4-5 times doing this, the app crashes. Attached device.json with info of de camera device used and adb_logcat.txt with crash traces (crash occurs at 11:13:24.238. Thanks!

device.json adb_logcat.txt

crashlytics_trace

Same here, I'm on 3.9.1 and I still experience this crash in different devices randomly after a few scans, I have the same stack trace

@yousrasd
Copy link

Same here, experiencing this crash with v3.9.0

@davidmrp
Copy link

@Laulhus @yousrasd

In release v4.0.0 seems the issue is fixed and we have not experienced the crash ever 🥳

austinbh1003 pushed a commit to austinbh1003/vision-camera that referenced this issue Jul 11, 2024
See mrousavy/react-native-vision-camera#1376

## Breaking Changes

* Frame Processors are now **synchronous**. Previously they ran on a
separate Thread. If you want to run something on a separate Thread now,
use `runAsync` inside a Frame Processor
* Frame Processor Plugins are no longer in the global object with the
`__` prefix, but rather stored directly in the `FrameProcessorPlugins`
object exported by react-native-vision-camera. (e.g. replace
`__scanQRCodes(frame)` with `FrameProcessorPlugins.scanQRCodes(frame)`)
* `frameProcessorFps` no longer exists. Use `runAtTargetFps` inside a
Frame Processor to throttle some calls.
* `onFrameProcessorPerformanceSuggestionAvailable` no longer exists. Use
the FPS display (`enableFpsGraph={true}`) to see how your Frame
Processor performs over time. This is more in-line with how React Native
works (Dev Tools / Perf Monitor)
* VisionCamera V3 will not work on RN 0.70 or below. You need to use RN
0.71. This is because the build script got way simpler and smaller,
making it faster to build and way less error prone. Backwards
compatibility is just too complex here.
* Reanimated is no longer used as a Worklet Runtime. Instead,
VisionCamera now uses
[react-native-worklets-core](https://github.com/margelo/react-native-worklets-core).

## Progress

You can test the latest V3 release by creating a new RN project with RN
0.71 and installing VisionCamera + RNWorklets:

```sh
yarn add react-native-vision-camera@3.0.0-rc.5
yarn add react-native-worklets-core
yarn add @shopify/react-native-skia
```

Things to test:

* TensorFlow Lite plugin to load any `.tflite` model!! ✨ (see [this PR
for more
info](mrousavy/react-native-vision-camera#1633),
will be a separate library soon)
* Drawing onto a Frame using Skia!! 🎉 
* Using `frame.toArrayBuffer()` to get the Frame's byte content in JS
* New Android build script. This should drastically speed up the build
time! 💨
* New Worklet library. This replaces Reanimated Worklets. Should be
faster and more stable :)
* New synchronous Frame Processors. Should be faster :)
* `runAtTargetFps` and `runAsync` in Frame Processors
* Using HostObjects or HostFunctions (like models from PyTorch) inside a
Frame Processor. This will probably require a few native bindings on
PyTorch's end to make the integration work (cc @raedle)

Overall V3 is close to completion. I have a few things to do the coming
days so not sure how much work I can put into this. **If anyone wants to
support the development of v3, I'd appreciate donations / sponsors:
https://github.com/sponsors/mrousavy** ❤️ :)


## Related issues 

features

- resolves
mrousavy/react-native-vision-camera#1376
- fixes
mrousavy/react-native-vision-camera#281
- resolves
mrousavy/react-native-vision-camera#211
- resolves
mrousavy/react-native-vision-camera#130
- resolves
mrousavy/react-native-vision-camera#117
- fixes mrousavy/react-native-vision-camera#76
- resolves
mrousavy/react-native-vision-camera#75
- resolves
mrousavy/react-native-vision-camera#562
- resolves
mrousavy/react-native-vision-camera#565
- fixes
mrousavy/react-native-vision-camera#570
- fixes
mrousavy/react-native-vision-camera#287
- resolves
mrousavy/react-native-vision-camera#311
- fixes
mrousavy/react-native-vision-camera#315
- resolves
mrousavy/react-native-vision-camera#323
- fixes
mrousavy/react-native-vision-camera#340
- fixes
mrousavy/react-native-vision-camera#354
- resolves
mrousavy/react-native-vision-camera#420
- fixes
mrousavy/react-native-vision-camera#434
- fixes
mrousavy/react-native-vision-camera#452
- fixes
mrousavy/react-native-vision-camera#496
- fixes
mrousavy/react-native-vision-camera#497
- resolves
mrousavy/react-native-vision-camera#499
- fixes
mrousavy/react-native-vision-camera#516
- fixes
mrousavy/react-native-vision-camera#527
- fixes
mrousavy/react-native-vision-camera#542
- fixes
mrousavy/react-native-vision-camera#548
- fixes
mrousavy/react-native-vision-camera#561
- fixes
mrousavy/react-native-vision-camera#740
- fixes
mrousavy/react-native-vision-camera#770


...and then pretty much every Android issue lol

- fixes
mrousavy/react-native-vision-camera#1675
(**maybe**, please test @PrernaBudhraja)
- fixes
mrousavy/react-native-vision-camera#1671

.. maybe also (not tested):

- fixes
mrousavy/react-native-vision-camera#1698
- fixes
mrousavy/react-native-vision-camera#1687
- fixes
mrousavy/react-native-vision-camera#1685
- fixes
mrousavy/react-native-vision-camera#1681
- fixes
mrousavy/react-native-vision-camera#1650
- fixes
mrousavy/react-native-vision-camera#1646
- fixes
mrousavy/react-native-vision-camera#1635
- fixes
mrousavy/react-native-vision-camera#1631
- fixes
mrousavy/react-native-vision-camera#1621
- fixes
mrousavy/react-native-vision-camera#1615
- fixes
mrousavy/react-native-vision-camera#1612
- fixes
mrousavy/react-native-vision-camera#1605
- fixes
mrousavy/react-native-vision-camera#1599
- fixes
mrousavy/react-native-vision-camera#1585
- fixes
mrousavy/react-native-vision-camera#1581
- fixes
mrousavy/react-native-vision-camera#1569
- fixes
mrousavy/react-native-vision-camera#1568
- fixes
mrousavy/react-native-vision-camera#1565
- fixes
mrousavy/react-native-vision-camera#1561
- fixes
mrousavy/react-native-vision-camera#1558
- fixes
mrousavy/react-native-vision-camera#1554
- fixes
mrousavy/react-native-vision-camera#1551
- fixes
mrousavy/react-native-vision-camera#1547
- fixes
mrousavy/react-native-vision-camera#1543
- fixes
mrousavy/react-native-vision-camera#1538
- fixes
mrousavy/react-native-vision-camera#1536
- fixes
mrousavy/react-native-vision-camera#1534
- fixes
mrousavy/react-native-vision-camera#1528
- fixes
mrousavy/react-native-vision-camera#1520
- fixes
mrousavy/react-native-vision-camera#1498
- fixes
mrousavy/react-native-vision-camera#1489
- fixes
mrousavy/react-native-vision-camera#1477
- fixes
mrousavy/react-native-vision-camera#1474
- fixes
mrousavy/react-native-vision-camera#1463
- fixes
mrousavy/react-native-vision-camera#1462
- fixes
mrousavy/react-native-vision-camera#1449
- fixes
mrousavy/react-native-vision-camera#1443
- fixes
mrousavy/react-native-vision-camera#1437
- fixes
mrousavy/react-native-vision-camera#1431
- fixes
mrousavy/react-native-vision-camera#1429
- fixes
mrousavy/react-native-vision-camera#1427
- fixes
mrousavy/react-native-vision-camera#1423
- fixes
mrousavy/react-native-vision-camera#1416
- fixes
mrousavy/react-native-vision-camera#1407
- fixes
mrousavy/react-native-vision-camera#1403
- fixes
mrousavy/react-native-vision-camera#1402
- fixes
mrousavy/react-native-vision-camera#1398
- fixes
mrousavy/react-native-vision-camera#1396
- fixes
mrousavy/react-native-vision-camera#1395
- fixes
mrousavy/react-native-vision-camera#1379
- fixes
mrousavy/react-native-vision-camera#1377
- fixes
mrousavy/react-native-vision-camera#1374
- fixes
mrousavy/react-native-vision-camera#1373
- fixes
mrousavy/react-native-vision-camera#1365
- fixes
mrousavy/react-native-vision-camera#1356
- fixes
mrousavy/react-native-vision-camera#1353
- fixes
mrousavy/react-native-vision-camera#1352
- fixes
mrousavy/react-native-vision-camera#1351
- fixes
mrousavy/react-native-vision-camera#1343
- fixes
mrousavy/react-native-vision-camera#1340
- fixes
mrousavy/react-native-vision-camera#1334
- fixes
mrousavy/react-native-vision-camera#1330
- fixes
mrousavy/react-native-vision-camera#1322
- fixes
mrousavy/react-native-vision-camera#1296
- fixes
mrousavy/react-native-vision-camera#1283
- fixes
mrousavy/react-native-vision-camera#1260
- fixes
mrousavy/react-native-vision-camera#1253
- fixes
mrousavy/react-native-vision-camera#1251
- fixes
mrousavy/react-native-vision-camera#1245
- fixes
mrousavy/react-native-vision-camera#1238
- fixes
mrousavy/react-native-vision-camera#1227
- fixes
mrousavy/react-native-vision-camera#1226
- fixes
mrousavy/react-native-vision-camera#1225
- fixes
mrousavy/react-native-vision-camera#1222
- fixes
mrousavy/react-native-vision-camera#1211
- fixes
mrousavy/react-native-vision-camera#1208
- fixes
mrousavy/react-native-vision-camera#1193
- fixes
mrousavy/react-native-vision-camera#1191
- fixes
mrousavy/react-native-vision-camera#1184
- fixes
mrousavy/react-native-vision-camera#1164
- fixes
mrousavy/react-native-vision-camera#1143
- fixes
mrousavy/react-native-vision-camera#1128
- fixes
mrousavy/react-native-vision-camera#1122
- fixes
mrousavy/react-native-vision-camera#1120
- fixes
mrousavy/react-native-vision-camera#1110
- fixes
mrousavy/react-native-vision-camera#1097
- fixes
mrousavy/react-native-vision-camera#1081
- fixes
mrousavy/react-native-vision-camera#1080
- fixes
mrousavy/react-native-vision-camera#1064
- fixes
mrousavy/react-native-vision-camera#1053
- fixes
mrousavy/react-native-vision-camera#1047
- fixes
mrousavy/react-native-vision-camera#1044
- fixes
mrousavy/react-native-vision-camera#1032
- fixes
mrousavy/react-native-vision-camera#1026
- fixes
mrousavy/react-native-vision-camera#1023
- fixes
mrousavy/react-native-vision-camera#1015
- fixes
mrousavy/react-native-vision-camera#1012
- fixes
mrousavy/react-native-vision-camera#997
- fixes
mrousavy/react-native-vision-camera#960
- fixes
mrousavy/react-native-vision-camera#959
- fixes
mrousavy/react-native-vision-camera#954
- fixes
mrousavy/react-native-vision-camera#946
- fixes
mrousavy/react-native-vision-camera#945
- fixes
mrousavy/react-native-vision-camera#922
- fixes
mrousavy/react-native-vision-camera#908
- fixes
mrousavy/react-native-vision-camera#907
- fixes
mrousavy/react-native-vision-camera#868
- fixes
mrousavy/react-native-vision-camera#855
- fixes
mrousavy/react-native-vision-camera#834
- fixes
mrousavy/react-native-vision-camera#793
- fixes
mrousavy/react-native-vision-camera#779
- fixes
mrousavy/react-native-vision-camera#746
- fixes
mrousavy/react-native-vision-camera#740
- fixes
mrousavy/react-native-vision-camera#727
- fixes
mrousavy/react-native-vision-camera#671
- fixes
mrousavy/react-native-vision-camera#613
- fixes
mrousavy/react-native-vision-camera#595
- fixes
mrousavy/react-native-vision-camera#588
- fixes
mrousavy/react-native-vision-camera#570
- fixes
mrousavy/react-native-vision-camera#569
- fixes
mrousavy/react-native-vision-camera#542
- fixes
mrousavy/react-native-vision-camera#516
- fixes
mrousavy/react-native-vision-camera#515
- fixes
mrousavy/react-native-vision-camera#434
- fixes
mrousavy/react-native-vision-camera#354
- fixes
mrousavy/react-native-vision-camera#323
- fixes
mrousavy/react-native-vision-camera#315
- fixes
mrousavy/react-native-vision-camera#281
- fixes
mrousavy/react-native-vision-camera#211
- fixes mrousavy/react-native-vision-camera#76
max71126 added a commit to max71126/react-native-vision-camera that referenced this issue Sep 19, 2024
See mrousavy/react-native-vision-camera#1376

## Breaking Changes

* Frame Processors are now **synchronous**. Previously they ran on a
separate Thread. If you want to run something on a separate Thread now,
use `runAsync` inside a Frame Processor
* Frame Processor Plugins are no longer in the global object with the
`__` prefix, but rather stored directly in the `FrameProcessorPlugins`
object exported by react-native-vision-camera. (e.g. replace
`__scanQRCodes(frame)` with `FrameProcessorPlugins.scanQRCodes(frame)`)
* `frameProcessorFps` no longer exists. Use `runAtTargetFps` inside a
Frame Processor to throttle some calls.
* `onFrameProcessorPerformanceSuggestionAvailable` no longer exists. Use
the FPS display (`enableFpsGraph={true}`) to see how your Frame
Processor performs over time. This is more in-line with how React Native
works (Dev Tools / Perf Monitor)
* VisionCamera V3 will not work on RN 0.70 or below. You need to use RN
0.71. This is because the build script got way simpler and smaller,
making it faster to build and way less error prone. Backwards
compatibility is just too complex here.
* Reanimated is no longer used as a Worklet Runtime. Instead,
VisionCamera now uses
[react-native-worklets-core](https://github.com/margelo/react-native-worklets-core).

## Progress

You can test the latest V3 release by creating a new RN project with RN
0.71 and installing VisionCamera + RNWorklets:

```sh
yarn add react-native-vision-camera@3.0.0-rc.5
yarn add react-native-worklets-core
yarn add @shopify/react-native-skia
```

Things to test:

* TensorFlow Lite plugin to load any `.tflite` model!! ✨ (see [this PR
for more
info](mrousavy/react-native-vision-camera#1633),
will be a separate library soon)
* Drawing onto a Frame using Skia!! 🎉 
* Using `frame.toArrayBuffer()` to get the Frame's byte content in JS
* New Android build script. This should drastically speed up the build
time! 💨
* New Worklet library. This replaces Reanimated Worklets. Should be
faster and more stable :)
* New synchronous Frame Processors. Should be faster :)
* `runAtTargetFps` and `runAsync` in Frame Processors
* Using HostObjects or HostFunctions (like models from PyTorch) inside a
Frame Processor. This will probably require a few native bindings on
PyTorch's end to make the integration work (cc @raedle)

Overall V3 is close to completion. I have a few things to do the coming
days so not sure how much work I can put into this. **If anyone wants to
support the development of v3, I'd appreciate donations / sponsors:
https://github.com/sponsors/mrousavy** ❤️ :)


## Related issues 

features

- resolves
mrousavy/react-native-vision-camera#1376
- fixes
mrousavy/react-native-vision-camera#281
- resolves
mrousavy/react-native-vision-camera#211
- resolves
mrousavy/react-native-vision-camera#130
- resolves
mrousavy/react-native-vision-camera#117
- fixes mrousavy/react-native-vision-camera#76
- resolves
mrousavy/react-native-vision-camera#75
- resolves
mrousavy/react-native-vision-camera#562
- resolves
mrousavy/react-native-vision-camera#565
- fixes
mrousavy/react-native-vision-camera#570
- fixes
mrousavy/react-native-vision-camera#287
- resolves
mrousavy/react-native-vision-camera#311
- fixes
mrousavy/react-native-vision-camera#315
- resolves
mrousavy/react-native-vision-camera#323
- fixes
mrousavy/react-native-vision-camera#340
- fixes
mrousavy/react-native-vision-camera#354
- resolves
mrousavy/react-native-vision-camera#420
- fixes
mrousavy/react-native-vision-camera#434
- fixes
mrousavy/react-native-vision-camera#452
- fixes
mrousavy/react-native-vision-camera#496
- fixes
mrousavy/react-native-vision-camera#497
- resolves
mrousavy/react-native-vision-camera#499
- fixes
mrousavy/react-native-vision-camera#516
- fixes
mrousavy/react-native-vision-camera#527
- fixes
mrousavy/react-native-vision-camera#542
- fixes
mrousavy/react-native-vision-camera#548
- fixes
mrousavy/react-native-vision-camera#561
- fixes
mrousavy/react-native-vision-camera#740
- fixes
mrousavy/react-native-vision-camera#770


...and then pretty much every Android issue lol

- fixes
mrousavy/react-native-vision-camera#1675
(**maybe**, please test @PrernaBudhraja)
- fixes
mrousavy/react-native-vision-camera#1671

.. maybe also (not tested):

- fixes
mrousavy/react-native-vision-camera#1698
- fixes
mrousavy/react-native-vision-camera#1687
- fixes
mrousavy/react-native-vision-camera#1685
- fixes
mrousavy/react-native-vision-camera#1681
- fixes
mrousavy/react-native-vision-camera#1650
- fixes
mrousavy/react-native-vision-camera#1646
- fixes
mrousavy/react-native-vision-camera#1635
- fixes
mrousavy/react-native-vision-camera#1631
- fixes
mrousavy/react-native-vision-camera#1621
- fixes
mrousavy/react-native-vision-camera#1615
- fixes
mrousavy/react-native-vision-camera#1612
- fixes
mrousavy/react-native-vision-camera#1605
- fixes
mrousavy/react-native-vision-camera#1599
- fixes
mrousavy/react-native-vision-camera#1585
- fixes
mrousavy/react-native-vision-camera#1581
- fixes
mrousavy/react-native-vision-camera#1569
- fixes
mrousavy/react-native-vision-camera#1568
- fixes
mrousavy/react-native-vision-camera#1565
- fixes
mrousavy/react-native-vision-camera#1561
- fixes
mrousavy/react-native-vision-camera#1558
- fixes
mrousavy/react-native-vision-camera#1554
- fixes
mrousavy/react-native-vision-camera#1551
- fixes
mrousavy/react-native-vision-camera#1547
- fixes
mrousavy/react-native-vision-camera#1543
- fixes
mrousavy/react-native-vision-camera#1538
- fixes
mrousavy/react-native-vision-camera#1536
- fixes
mrousavy/react-native-vision-camera#1534
- fixes
mrousavy/react-native-vision-camera#1528
- fixes
mrousavy/react-native-vision-camera#1520
- fixes
mrousavy/react-native-vision-camera#1498
- fixes
mrousavy/react-native-vision-camera#1489
- fixes
mrousavy/react-native-vision-camera#1477
- fixes
mrousavy/react-native-vision-camera#1474
- fixes
mrousavy/react-native-vision-camera#1463
- fixes
mrousavy/react-native-vision-camera#1462
- fixes
mrousavy/react-native-vision-camera#1449
- fixes
mrousavy/react-native-vision-camera#1443
- fixes
mrousavy/react-native-vision-camera#1437
- fixes
mrousavy/react-native-vision-camera#1431
- fixes
mrousavy/react-native-vision-camera#1429
- fixes
mrousavy/react-native-vision-camera#1427
- fixes
mrousavy/react-native-vision-camera#1423
- fixes
mrousavy/react-native-vision-camera#1416
- fixes
mrousavy/react-native-vision-camera#1407
- fixes
mrousavy/react-native-vision-camera#1403
- fixes
mrousavy/react-native-vision-camera#1402
- fixes
mrousavy/react-native-vision-camera#1398
- fixes
mrousavy/react-native-vision-camera#1396
- fixes
mrousavy/react-native-vision-camera#1395
- fixes
mrousavy/react-native-vision-camera#1379
- fixes
mrousavy/react-native-vision-camera#1377
- fixes
mrousavy/react-native-vision-camera#1374
- fixes
mrousavy/react-native-vision-camera#1373
- fixes
mrousavy/react-native-vision-camera#1365
- fixes
mrousavy/react-native-vision-camera#1356
- fixes
mrousavy/react-native-vision-camera#1353
- fixes
mrousavy/react-native-vision-camera#1352
- fixes
mrousavy/react-native-vision-camera#1351
- fixes
mrousavy/react-native-vision-camera#1343
- fixes
mrousavy/react-native-vision-camera#1340
- fixes
mrousavy/react-native-vision-camera#1334
- fixes
mrousavy/react-native-vision-camera#1330
- fixes
mrousavy/react-native-vision-camera#1322
- fixes
mrousavy/react-native-vision-camera#1296
- fixes
mrousavy/react-native-vision-camera#1283
- fixes
mrousavy/react-native-vision-camera#1260
- fixes
mrousavy/react-native-vision-camera#1253
- fixes
mrousavy/react-native-vision-camera#1251
- fixes
mrousavy/react-native-vision-camera#1245
- fixes
mrousavy/react-native-vision-camera#1238
- fixes
mrousavy/react-native-vision-camera#1227
- fixes
mrousavy/react-native-vision-camera#1226
- fixes
mrousavy/react-native-vision-camera#1225
- fixes
mrousavy/react-native-vision-camera#1222
- fixes
mrousavy/react-native-vision-camera#1211
- fixes
mrousavy/react-native-vision-camera#1208
- fixes
mrousavy/react-native-vision-camera#1193
- fixes
mrousavy/react-native-vision-camera#1191
- fixes
mrousavy/react-native-vision-camera#1184
- fixes
mrousavy/react-native-vision-camera#1164
- fixes
mrousavy/react-native-vision-camera#1143
- fixes
mrousavy/react-native-vision-camera#1128
- fixes
mrousavy/react-native-vision-camera#1122
- fixes
mrousavy/react-native-vision-camera#1120
- fixes
mrousavy/react-native-vision-camera#1110
- fixes
mrousavy/react-native-vision-camera#1097
- fixes
mrousavy/react-native-vision-camera#1081
- fixes
mrousavy/react-native-vision-camera#1080
- fixes
mrousavy/react-native-vision-camera#1064
- fixes
mrousavy/react-native-vision-camera#1053
- fixes
mrousavy/react-native-vision-camera#1047
- fixes
mrousavy/react-native-vision-camera#1044
- fixes
mrousavy/react-native-vision-camera#1032
- fixes
mrousavy/react-native-vision-camera#1026
- fixes
mrousavy/react-native-vision-camera#1023
- fixes
mrousavy/react-native-vision-camera#1015
- fixes
mrousavy/react-native-vision-camera#1012
- fixes
mrousavy/react-native-vision-camera#997
- fixes
mrousavy/react-native-vision-camera#960
- fixes
mrousavy/react-native-vision-camera#959
- fixes
mrousavy/react-native-vision-camera#954
- fixes
mrousavy/react-native-vision-camera#946
- fixes
mrousavy/react-native-vision-camera#945
- fixes
mrousavy/react-native-vision-camera#922
- fixes
mrousavy/react-native-vision-camera#908
- fixes
mrousavy/react-native-vision-camera#907
- fixes
mrousavy/react-native-vision-camera#868
- fixes
mrousavy/react-native-vision-camera#855
- fixes
mrousavy/react-native-vision-camera#834
- fixes
mrousavy/react-native-vision-camera#793
- fixes
mrousavy/react-native-vision-camera#779
- fixes
mrousavy/react-native-vision-camera#746
- fixes
mrousavy/react-native-vision-camera#740
- fixes
mrousavy/react-native-vision-camera#727
- fixes
mrousavy/react-native-vision-camera#671
- fixes
mrousavy/react-native-vision-camera#613
- fixes
mrousavy/react-native-vision-camera#595
- fixes
mrousavy/react-native-vision-camera#588
- fixes
mrousavy/react-native-vision-camera#570
- fixes
mrousavy/react-native-vision-camera#569
- fixes
mrousavy/react-native-vision-camera#542
- fixes
mrousavy/react-native-vision-camera#516
- fixes
mrousavy/react-native-vision-camera#515
- fixes
mrousavy/react-native-vision-camera#434
- fixes
mrousavy/react-native-vision-camera#354
- fixes
mrousavy/react-native-vision-camera#323
- fixes
mrousavy/react-native-vision-camera#315
- fixes
mrousavy/react-native-vision-camera#281
- fixes
mrousavy/react-native-vision-camera#211
- fixes mrousavy/react-native-vision-camera#76
isaaccolson pushed a commit to isaaccolson/deliveries-mobile that referenced this issue Oct 30, 2024
See mrousavy#1376

## Breaking Changes

* Frame Processors are now **synchronous**. Previously they ran on a
separate Thread. If you want to run something on a separate Thread now,
use `runAsync` inside a Frame Processor
* Frame Processor Plugins are no longer in the global object with the
`__` prefix, but rather stored directly in the `FrameProcessorPlugins`
object exported by react-native-vision-camera. (e.g. replace
`__scanQRCodes(frame)` with `FrameProcessorPlugins.scanQRCodes(frame)`)
* `frameProcessorFps` no longer exists. Use `runAtTargetFps` inside a
Frame Processor to throttle some calls.
* `onFrameProcessorPerformanceSuggestionAvailable` no longer exists. Use
the FPS display (`enableFpsGraph={true}`) to see how your Frame
Processor performs over time. This is more in-line with how React Native
works (Dev Tools / Perf Monitor)
* VisionCamera V3 will not work on RN 0.70 or below. You need to use RN
0.71. This is because the build script got way simpler and smaller,
making it faster to build and way less error prone. Backwards
compatibility is just too complex here.
* Reanimated is no longer used as a Worklet Runtime. Instead,
VisionCamera now uses
[react-native-worklets-core](https://github.com/margelo/react-native-worklets-core).

## Progress

You can test the latest V3 release by creating a new RN project with RN
0.71 and installing VisionCamera + RNWorklets:

```sh
yarn add react-native-vision-camera@3.0.0-rc.5
yarn add react-native-worklets-core
yarn add @shopify/react-native-skia
```

Things to test:

* TensorFlow Lite plugin to load any `.tflite` model!! ✨ (see [this PR
for more
info](mrousavy#1633),
will be a separate library soon)
* Drawing onto a Frame using Skia!! 🎉 
* Using `frame.toArrayBuffer()` to get the Frame's byte content in JS
* New Android build script. This should drastically speed up the build
time! 💨
* New Worklet library. This replaces Reanimated Worklets. Should be
faster and more stable :)
* New synchronous Frame Processors. Should be faster :)
* `runAtTargetFps` and `runAsync` in Frame Processors
* Using HostObjects or HostFunctions (like models from PyTorch) inside a
Frame Processor. This will probably require a few native bindings on
PyTorch's end to make the integration work (cc @raedle)

Overall V3 is close to completion. I have a few things to do the coming
days so not sure how much work I can put into this. **If anyone wants to
support the development of v3, I'd appreciate donations / sponsors:
https://github.com/sponsors/mrousavy** ❤️ :)


## Related issues 

features

- resolves
mrousavy#1376
- fixes
mrousavy#281
- resolves
mrousavy#211
- resolves
mrousavy#130
- resolves
mrousavy#117
- fixes mrousavy#76
- resolves
mrousavy#75
- resolves
mrousavy#562
- resolves
mrousavy#565
- fixes
mrousavy#570
- fixes
mrousavy#287
- resolves
mrousavy#311
- fixes
mrousavy#315
- resolves
mrousavy#323
- fixes
mrousavy#340
- fixes
mrousavy#354
- resolves
mrousavy#420
- fixes
mrousavy#434
- fixes
mrousavy#452
- fixes
mrousavy#496
- fixes
mrousavy#497
- resolves
mrousavy#499
- fixes
mrousavy#516
- fixes
mrousavy#527
- fixes
mrousavy#542
- fixes
mrousavy#548
- fixes
mrousavy#561
- fixes
mrousavy#740
- fixes
mrousavy#770


...and then pretty much every Android issue lol

- fixes
mrousavy#1675
(**maybe**, please test @PrernaBudhraja)
- fixes
mrousavy#1671

.. maybe also (not tested):

- fixes
mrousavy#1698
- fixes
mrousavy#1687
- fixes
mrousavy#1685
- fixes
mrousavy#1681
- fixes
mrousavy#1650
- fixes
mrousavy#1646
- fixes
mrousavy#1635
- fixes
mrousavy#1631
- fixes
mrousavy#1621
- fixes
mrousavy#1615
- fixes
mrousavy#1612
- fixes
mrousavy#1605
- fixes
mrousavy#1599
- fixes
mrousavy#1585
- fixes
mrousavy#1581
- fixes
mrousavy#1569
- fixes
mrousavy#1568
- fixes
mrousavy#1565
- fixes
mrousavy#1561
- fixes
mrousavy#1558
- fixes
mrousavy#1554
- fixes
mrousavy#1551
- fixes
mrousavy#1547
- fixes
mrousavy#1543
- fixes
mrousavy#1538
- fixes
mrousavy#1536
- fixes
mrousavy#1534
- fixes
mrousavy#1528
- fixes
mrousavy#1520
- fixes
mrousavy#1498
- fixes
mrousavy#1489
- fixes
mrousavy#1477
- fixes
mrousavy#1474
- fixes
mrousavy#1463
- fixes
mrousavy#1462
- fixes
mrousavy#1449
- fixes
mrousavy#1443
- fixes
mrousavy#1437
- fixes
mrousavy#1431
- fixes
mrousavy#1429
- fixes
mrousavy#1427
- fixes
mrousavy#1423
- fixes
mrousavy#1416
- fixes
mrousavy#1407
- fixes
mrousavy#1403
- fixes
mrousavy#1402
- fixes
mrousavy#1398
- fixes
mrousavy#1396
- fixes
mrousavy#1395
- fixes
mrousavy#1379
- fixes
mrousavy#1377
- fixes
mrousavy#1374
- fixes
mrousavy#1373
- fixes
mrousavy#1365
- fixes
mrousavy#1356
- fixes
mrousavy#1353
- fixes
mrousavy#1352
- fixes
mrousavy#1351
- fixes
mrousavy#1343
- fixes
mrousavy#1340
- fixes
mrousavy#1334
- fixes
mrousavy#1330
- fixes
mrousavy#1322
- fixes
mrousavy#1296
- fixes
mrousavy#1283
- fixes
mrousavy#1260
- fixes
mrousavy#1253
- fixes
mrousavy#1251
- fixes
mrousavy#1245
- fixes
mrousavy#1238
- fixes
mrousavy#1227
- fixes
mrousavy#1226
- fixes
mrousavy#1225
- fixes
mrousavy#1222
- fixes
mrousavy#1211
- fixes
mrousavy#1208
- fixes
mrousavy#1193
- fixes
mrousavy#1191
- fixes
mrousavy#1184
- fixes
mrousavy#1164
- fixes
mrousavy#1143
- fixes
mrousavy#1128
- fixes
mrousavy#1122
- fixes
mrousavy#1120
- fixes
mrousavy#1110
- fixes
mrousavy#1097
- fixes
mrousavy#1081
- fixes
mrousavy#1080
- fixes
mrousavy#1064
- fixes
mrousavy#1053
- fixes
mrousavy#1047
- fixes
mrousavy#1044
- fixes
mrousavy#1032
- fixes
mrousavy#1026
- fixes
mrousavy#1023
- fixes
mrousavy#1015
- fixes
mrousavy#1012
- fixes
mrousavy#997
- fixes
mrousavy#960
- fixes
mrousavy#959
- fixes
mrousavy#954
- fixes
mrousavy#946
- fixes
mrousavy#945
- fixes
mrousavy#922
- fixes
mrousavy#908
- fixes
mrousavy#907
- fixes
mrousavy#868
- fixes
mrousavy#855
- fixes
mrousavy#834
- fixes
mrousavy#793
- fixes
mrousavy#779
- fixes
mrousavy#746
- fixes
mrousavy#740
- fixes
mrousavy#727
- fixes
mrousavy#671
- fixes
mrousavy#613
- fixes
mrousavy#595
- fixes
mrousavy#588
- fixes
mrousavy#570
- fixes
mrousavy#569
- fixes
mrousavy#542
- fixes
mrousavy#516
- fixes
mrousavy#515
- fixes
mrousavy#434
- fixes
mrousavy#354
- fixes
mrousavy#323
- fixes
mrousavy#315
- fixes
mrousavy#281
- fixes
mrousavy#211
- fixes mrousavy#76
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛 bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants