react-native-vision-camera/.github/ISSUE_TEMPLATE/BUG_REPORT.yml

130 lines
4.8 KiB
YAML
Raw Normal View History

2021-07-14 03:07:55 -06:00
name: 🐛 Bug Report
2021-07-14 03:00:26 -06:00
description: File a bug report
title: "🐛 "
labels: [🐛 bug]
body:
- type: textarea
attributes:
2023-09-01 10:46:41 -06:00
label: What's happening?
description: Explain what you are trying to do and what happened instead. Be as precise as possible, I can't help you if I don't understand your issue.
placeholder: I wanted to take a picture, but the method failed with this error "[capture/photo-not-enabled] Failed to take photo, photo is not enabled!"
2021-07-14 03:00:26 -06:00
validations:
required: true
2021-08-09 05:21:07 -06:00
- type: textarea
attributes:
label: Reproduceable Code
2023-09-14 06:06:09 -06:00
description: >
Share a small reproduceable code snippet here (or the entire file if necessary).
Most importantly, share how you use the `<Camera>` component and what props you pass to it.
This will be automatically formatted into code, so no need for backticks.
2021-08-09 05:21:07 -06:00
render: tsx
2023-09-14 06:06:09 -06:00
placeholder: >
const device = useCameraDevices()
2023-09-14 06:09:47 -06:00
// ...
2023-09-19 05:14:04 -06:00
2023-09-14 06:06:09 -06:00
<Camera
style={StyleSheet.absoluteFill}
device={device}
isActive={true} />
2023-09-14 06:02:02 -06:00
validations:
required: true
2021-07-14 03:00:26 -06:00
- type: textarea
attributes:
label: Relevant log output
2023-09-19 05:14:04 -06:00
description: >
2023-09-14 06:06:09 -06:00
Paste any relevant **native log output** (Xcode Logs/Android Studio Logcat) here.
This will be automatically formatted into code, so no need for backticks.
2023-09-19 05:14:04 -06:00
2023-09-14 06:06:09 -06:00
* For iOS, run the project through Xcode and copy the logs from the log window.
2023-09-19 05:14:04 -06:00
2023-09-14 06:06:09 -06:00
* For Android, either open the project through Android Studio and paste the logs from the logcat window, or run `adb logcat` in terminal.
2021-07-14 03:00:26 -06:00
render: shell
2023-09-14 06:02:02 -06:00
validations:
required: true
feat: Full Android rewrite (CameraX -> Camera2) (#1674) * Nuke CameraX * fix: Run View Finder on UI Thread * Open Camera, set up Threads * fix init * Mirror if needed * Try PreviewView * Use max resolution * Add `hardwareLevel` property * Check if output type is supported * Replace `frameRateRanges` with `minFps` and `maxFps` * Remove `isHighestPhotoQualitySupported` * Remove `colorSpace` The native platforms will use the best / most accurate colorSpace by default anyways. * HDR * Check from format * fix * Remove `supportsParallelVideoProcessing` * Correctly return video/photo sizes on Android now. Finally * Log all Device props * Log if optimized usecase is used * Cleanup * Configure Camera Input only once * Revert "Configure Camera Input only once" This reverts commit 0fd6c03f54c7566cb5592053720c4a8743aba92e. * Extract Camera configuration * Try to reconfigure all * Hook based * Properly set up `CameraSession` * Delete unused * fix: Fix recreate when outputs change * Update NativePreviewView.kt * Use callback for closing * Catch CameraAccessException * Finally got it stable * Remove isMirrored * Implement `takePhoto()` * Add ExifInterface library * Run findViewById on UI Thread * Add Photo Output Surface to takePhoto * Fix Video Stabilization Modes * Optimize Imports * More logs * Update CameraSession.kt * Close Image * Use separate Executor in CameraQueue * Delete hooks * Use same Thread again * If opened, call error * Update CameraSession.kt * Log HW level * fix: Don't enable Stream Use Case if it's not 100% supported * Move some stuff * Cleanup PhotoOutputSynchronizer * Try just open in suspend fun * Some synchronization fixes * fix logs * Update CameraDevice+createCaptureSession.kt * Update CameraDevice+createCaptureSession.kt * fixes * fix: Use Snapshot Template for speed capture prio * Use PREVIEW template for repeating request * Use `TEMPLATE_RECORD` if video use-case is attached * Use `isRunning` flag * Recreate session everytime on active/inactive * Lazily get values in capture session * Stability * Rebuild session if outputs change * Set `didOutputsChange` back to false * Capture first in lock * Try * kinda fix it? idk * fix: Keep Outputs * Refactor into single method * Update CameraView.kt * Use Enums for type safety * Implement Orientation (I think) * Move RefCount management to Java (Frame) * Don't crash when dropping a Frame * Prefer Devices with higher max resolution * Prefer multi-cams * Use FastImage for Media Page * Return orientation in takePhoto() * Load orientation from EXIF Data * Add `isMirrored` props and documentation for PhotoFile * fix: Return `not-determined` on Android * Update CameraViewModule.kt * chore: Upgrade packages * fix: Fix Metro Config * Cleanup config * Properly mirror Images on save * Prepare MediaRecorder * Start/Stop MediaRecorder * Remove `takeSnapshot()` It no longer works on Android and never worked on iOS. Users could use useFrameProcessor to take a Snapshot * Use `MediaCodec` * Move to `VideoRecording` class * Cleanup Snapshot * Create `SkiaPreviewView` hybrid class * Create OpenGL context * Create `SkiaPreviewView` * Fix texture creation missing context * Draw red frame * Somehow get it working * Add Skia CMake setup * Start looping * Init OpenGL * Refactor into `SkiaRenderer` * Cleanup PreviewSize * Set up * Only re-render UI if there is a new Frame * Preview * Fix init * Try rendering Preview * Update SkiaPreviewView.kt * Log version * Try using Skia (fail) * Drawwwww!!!!!!!!!! :tada: * Use Preview Size * Clear first * Refactor into SkiaRenderer * Add `previewType: "none"` on iOS * Simplify a lot * Draw Camera? For some reason? I have no idea anymore * Fix OpenGL errors * Got it kinda working again? * Actually draw Frame woah * Clean up code * Cleanup * Update on main * Synchronize render calls * holy shit * Update SkiaRenderer.cpp * Update SkiaRenderer.cpp * Refactor * Update SkiaRenderer.cpp * Check for `NO_INPUT_TEXTURE`^ * Post & Wait * Set input size * Add Video back again * Allow session without preview * Convert JPEG to byte[] * feat: Use `ImageReader` and use YUV Image Buffers in Skia Context (#1689) * Try to pass YUV Buffers as Pixmaps * Create pixmap! * Clean up * Render to preview * Only render if we have an output surface * Update SkiaRenderer.cpp * Fix Y+U+V sampling code * Cleanup * Fix Semaphore 0 * Use 4:2:0 YUV again idk * Update SkiaRenderer.h * Set minSdk to 26 * Set surface * Revert "Set minSdk to 26" This reverts commit c4085b7c16c628532e5c2d68cf7ed11c751d0b48. * Set previewType * feat: Video Recording with Camera2 (#1691) * Rename * Update CameraSession.kt * Use `SurfaceHolder` instead of `SurfaceView` for output * Update CameraOutputs.kt * Update CameraSession.kt * fix: Fix crash when Preview is null * Check if snapshot capture is supported * Update RecordingSession.kt * S * Use `MediaRecorder` * Make audio optional * Add Torch * Output duration * Update RecordingSession.kt * Start RecordingSession * logs * More log * Base for preparing pass-through Recording * Use `ImageWriter` to append Images to the Recording Surface * Stream PRIVATE GPU_SAMPLED_IMAGE Images * Add flags * Close session on stop * Allow customizing `videoCodec` and `fileType` * Enable Torch * Fix Torch Mode * Fix comparing outputs with hashCode * Update CameraSession.kt * Correctly pass along Frame Processor * fix: Use AUDIO_BIT_RATE of 16 * 44,1Khz * Use CAMCORDER instead of MIC microphone * Use 1 channel * fix: Use `Orientation` * Add `native` PixelFormat * Update iOS to latest Skia integration * feat: Add `pixelFormat` property to Camera * Catch error in configureSession * Fix JPEG format * Clean up best match finder * Update CameraDeviceDetails.kt * Clamp sizes by maximum CamcorderProfile size * Remove `getAvailableVideoCodecs` * chore: release 3.0.0-rc.5 * Use maximum video size of RECORD as default * Update CameraDeviceDetails.kt * Add a todo * Add JSON device to issue report * Prefer `full` devices and flash * Lock to 30 FPS on Samsung * Implement Zoom * Refactor * Format -> PixelFormat * fix: Feat `pixelFormat` -> `pixelFormats` * Update TROUBLESHOOTING.mdx * Format * fix: Implement `zoom` for Photo Capture * fix: Don't run if `isActive` is `false` * fix: Call `examplePlugin(frame)` * fix: Fix Flash * fix: Use `react-native-worklets-core`! * fix: Fix import
2023-08-21 04:50:14 -06:00
- type: textarea
attributes:
label: Camera Device
2023-09-19 05:14:04 -06:00
description: >
2023-09-14 06:06:09 -06:00
Paste the JSON Camera `device` that was used here.
Make sure to leave out the `formats` prop as that is too long for the issue.
2023-09-19 05:14:04 -06:00
2023-09-14 06:12:58 -06:00
```
2023-09-19 05:14:04 -06:00
2023-09-14 06:12:58 -06:00
device.formats = undefined
2023-09-19 05:14:04 -06:00
2023-09-14 06:12:58 -06:00
console.log(JSON.stringify(device, null, 2))
2023-09-19 05:14:04 -06:00
2023-09-14 06:12:58 -06:00
```
2023-09-19 05:14:04 -06:00
2023-09-14 06:06:09 -06:00
This will be automatically formatted into code, so no need for backticks.
2023-09-14 06:09:47 -06:00
render: json
placeholder: >
{
"id": "com.apple.avfoundation.avcapturedevice.built-in_video:6",
"devices": [
"ultra-wide-angle-camera",
"wide-angle-camera"
],
"formats": null,
"hardwareLevel": "full",
"hasFlash": true,
"hasTorch": true,
"isMultiCam": true,
"minZoom": 1,
"neutralZoom": 2,
"maxZoom": 123.75,
"name": "Back Dual Wide Camera",
"position": "back",
"supportsDepthCapture": false,
"supportsFocus": true,
"supportsLowLightBoost": false,
"supportsParallelVideoProcessing": true,
"supportsRawCapture": false
}
2023-09-14 06:02:02 -06:00
validations:
required: true
2021-07-14 05:55:53 -06:00
- type: input
2021-07-14 03:00:26 -06:00
attributes:
2021-07-14 05:55:53 -06:00
label: Device
2023-09-19 05:14:04 -06:00
description: >
2023-09-14 06:06:09 -06:00
Which device are you seeing this Problem on?
Mention the full name of the phone, as well as the operating system and version.
If you have tested this on multiple devices (ex. Android and iOS) then mention all of those devices (comma separated)
2021-07-14 05:55:53 -06:00
placeholder: ex. iPhone 11 Pro (iOS 14.3)
2021-07-14 03:17:32 -06:00
validations:
required: true
2021-07-14 03:00:26 -06:00
- type: input
attributes:
label: VisionCamera Version
description: Which version of react-native-vision-camera are you using?
2023-09-01 10:46:41 -06:00
placeholder: ex. 3.1.6
2021-07-14 03:00:26 -06:00
validations:
required: true
2023-09-19 05:14:04 -06:00
- type: dropdown
2023-09-01 10:46:41 -06:00
attributes:
label: Can you reproduce this issue in the VisionCamera Example app?
2023-09-19 05:14:04 -06:00
description: >
Try to build the example app (`package/example/`) and see if the issue is reproduceable here.
**Note:** If you don't try this in the example app, I most likely won't help you with your issue.
2023-09-01 10:46:41 -06:00
options:
2023-09-19 05:17:07 -06:00
- I didn't try (⚠️ your issue might get ignored & closed if you don't try this)
2023-09-19 05:14:04 -06:00
- Yes, I can reproduce the same issue in the Example app here
- No, I cannot reproduce the issue in the Example app
2023-09-19 05:16:16 -06:00
default: 0
2023-09-19 05:14:04 -06:00
validations:
required: true
2021-07-14 03:00:26 -06:00
- type: checkboxes
attributes:
label: Additional information
2021-07-14 03:04:41 -06:00
description: Please check all the boxes that apply
2021-07-14 03:00:26 -06:00
options:
2023-09-01 12:10:44 -06:00
- label: I am using Expo
- label: I have enabled Frame Processors (react-native-worklets-core)
- label: I have read the [Troubleshooting Guide](https://react-native-vision-camera.com/docs/guides/troubleshooting)
2021-07-14 03:00:26 -06:00
required: true
- label: I agree to follow this project's [Code of Conduct](https://github.com/mrousavy/react-native-vision-camera/blob/main/CODE_OF_CONDUCT.md)
required: true
2021-07-14 03:31:03 -06:00
- label: I searched for [similar issues in this repository](https://github.com/mrousavy/react-native-vision-camera/issues) and found none.
required: true