-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
✨ Android: Correctly implement Format (Resolution, FPS) #76
Comments
Hello, For your issue "Resolution doesn't seem to correctly apply to Preview" On IOS everything is fine ! |
having this issue |
@Alex1899 the zooming is happening for me too on IOS, only for 30FPS (photos and videos). 60FPS the image/video output is exactly as expected (1:1 / 4:3). Been trying to find a solution for 2 days... |
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. Multi-cameras should now work! 🎉 Here's an instruction on how we can test that: #1674 (comment) |
some Samsungs say they have 60 FPS but when you try to use 60 FPS it just shows a blackscreen. again, samsung making it really painful. |
See #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](#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 #1376 - fixes #281 - resolves #211 - resolves #130 - resolves #117 - fixes #76 - resolves #75 - resolves #562 - resolves #565 - fixes #570 - fixes #287 - resolves #311 - fixes #315 - resolves #323 - fixes #340 - fixes #354 - resolves #420 - fixes #434 - fixes #452 - fixes #496 - fixes #497 - resolves #499 - fixes #516 - fixes #527 - fixes #542 - fixes #548 - fixes #561 - fixes #740 - fixes #770 ...and then pretty much every Android issue lol - fixes #1675 (**maybe**, please test @PrernaBudhraja) - fixes #1671 .. maybe also (not tested): - fixes #1698 - fixes #1687 - fixes #1685 - fixes #1681 - fixes #1650 - fixes #1646 - fixes #1635 - fixes #1631 - fixes #1621 - fixes #1615 - fixes #1612 - fixes #1605 - fixes #1599 - fixes #1585 - fixes #1581 - fixes #1569 - fixes #1568 - fixes #1565 - fixes #1561 - fixes #1558 - fixes #1554 - fixes #1551 - fixes #1547 - fixes #1543 - fixes #1538 - fixes #1536 - fixes #1534 - fixes #1528 - fixes #1520 - fixes #1498 - fixes #1489 - fixes #1477 - fixes #1474 - fixes #1463 - fixes #1462 - fixes #1449 - fixes #1443 - fixes #1437 - fixes #1431 - fixes #1429 - fixes #1427 - fixes #1423 - fixes #1416 - fixes #1407 - fixes #1403 - fixes #1402 - fixes #1398 - fixes #1396 - fixes #1395 - fixes #1379 - fixes #1377 - fixes #1374 - fixes #1373 - fixes #1365 - fixes #1356 - fixes #1353 - fixes #1352 - fixes #1351 - fixes #1343 - fixes #1340 - fixes #1334 - fixes #1330 - fixes #1322 - fixes #1296 - fixes #1283 - fixes #1260 - fixes #1253 - fixes #1251 - fixes #1245 - fixes #1238 - fixes #1227 - fixes #1226 - fixes #1225 - fixes #1222 - fixes #1211 - fixes #1208 - fixes #1193 - fixes #1191 - fixes #1184 - fixes #1164 - fixes #1143 - fixes #1128 - fixes #1122 - fixes #1120 - fixes #1110 - fixes #1097 - fixes #1081 - fixes #1080 - fixes #1064 - fixes #1053 - fixes #1047 - fixes #1044 - fixes #1032 - fixes #1026 - fixes #1023 - fixes #1015 - fixes #1012 - fixes #997 - fixes #960 - fixes #959 - fixes #954 - fixes #946 - fixes #945 - fixes #922 - fixes #908 - fixes #907 - fixes #868 - fixes #855 - fixes #834 - fixes #793 - fixes #779 - fixes #746 - fixes #740 - fixes #727 - fixes #671 - fixes #613 - fixes #595 - fixes #588 - fixes #570 - fixes #569 - fixes #542 - fixes #516 - fixes #515 - fixes #434 - fixes #354 - fixes #323 - fixes #315 - fixes #281 - fixes #211 - fixes #76
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
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
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
Getting Formats with FPS higher than 30 doesn't seem to work.
I feel like something in the
getAvailableCameraDevices
code is wrong:https://github.com/cuvent/react-native-vision-camera/blob/dff8fc71788311c324e6eb80976a6ec50596d3e5/android/src/main/java/com/mrousavy/camera/CameraViewModule.kt#L205-L220
Maybe I shouldn't use
MediaRecorder::class.java
here?:https://github.com/cuvent/react-native-vision-camera/blob/dff8fc71788311c324e6eb80976a6ec50596d3e5/android/src/main/java/com/mrousavy/camera/CameraViewModule.kt#L201
I think the FPS-setting logic here works, as it also works for e.g. 15 FPS:
https://github.com/cuvent/react-native-vision-camera/blob/d85126d883feffcd6189135042420a8d89b153cf/android/src/main/java/com/mrousavy/camera/CameraView.kt#L280-L292
But CameraX doesn't support "high-speed video capture" yet, so anything high-speed (such as slow-mo, 120FPS, 240FPS) is not yet supported.
Resolution doesn't seem to correctly apply to Preview
I think I had some issues with setting the Resolution from a Format where I wasn't sure which resolution to use for the preview - I'll have to test that though. I think the ImageReader and VideoRecorder had correct resolutions.
Resolution is always the same for Photo and Video
I don't think that the VideoRecorder resolution is always the same as the ImageReader resolution, those actually have to be different.
https://github.com/cuvent/react-native-vision-camera/blob/dff8fc71788311c324e6eb80976a6ec50596d3e5/android/src/main/java/com/mrousavy/camera/CameraViewModule.kt#L236-L239
The text was updated successfully, but these errors were encountered: