37a3548a81
* 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!!!!!!!!!! 🎉 * 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
173 lines
4.4 KiB
JSON
173 lines
4.4 KiB
JSON
{
|
|
"name": "react-native-vision-camera",
|
|
"version": "3.0.0-rc.5",
|
|
"description": "The Camera library that sees the vision.",
|
|
"main": "lib/commonjs/index",
|
|
"module": "lib/module/index",
|
|
"types": "lib/typescript/index.d.ts",
|
|
"react-native": "src/index",
|
|
"source": "src/index",
|
|
"files": [
|
|
"src",
|
|
"lib/commonjs",
|
|
"lib/module",
|
|
"lib/typescript",
|
|
"cpp/**/*.h",
|
|
"cpp/**/*.cpp",
|
|
"android/build.gradle",
|
|
"android/gradle.properties",
|
|
"android/CMakeLists.txt",
|
|
"android/src",
|
|
"ios/**/*.h",
|
|
"ios/**/*.m",
|
|
"ios/**/*.mm",
|
|
"ios/**/*.cpp",
|
|
"ios/**/*.swift",
|
|
"ios/VisionCamera.xcodeproj/project.pbxproj",
|
|
"app.plugin.js",
|
|
"VisionCamera.podspec",
|
|
"README.md"
|
|
],
|
|
"scripts": {
|
|
"typescript": "tsc --noEmit",
|
|
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
"lint-ci": "yarn lint -f ./node_modules/@firmnav/eslint-github-actions-formatter/dist/formatter.js",
|
|
"build": "bob build",
|
|
"release": "release-it",
|
|
"pods": "cd example && yarn pods",
|
|
"bootstrap": "yarn && cd example && yarn && yarn setup && yarn pods",
|
|
"check-android": "scripts/ktlint.sh && scripts/cpplint.sh",
|
|
"check-ios": "scripts/swiftformat.sh && scripts/swiftlint.sh",
|
|
"check-js": "yarn lint --fix && yarn typescript",
|
|
"check-all": "scripts/check-all.sh",
|
|
"clean-ios": "scripts/clean-ios.sh",
|
|
"clean-android": "scripts/clean-android.sh",
|
|
"clean-js": "scripts/clean-js.sh",
|
|
"docs": "cd docs && yarn build"
|
|
},
|
|
"keywords": [
|
|
"react-native",
|
|
"ios",
|
|
"android",
|
|
"camera",
|
|
"vision",
|
|
"native",
|
|
"module",
|
|
"react",
|
|
"ai",
|
|
"ar",
|
|
"qr",
|
|
"qr-code",
|
|
"scanner"
|
|
],
|
|
"repository": "https://github.com/mrousavy/react-native-vision-camera",
|
|
"author": "Marc Rousavy <marcrousavy@hotmail.com> (https://github.com/mrousavy)",
|
|
"license": "MIT",
|
|
"bugs": {
|
|
"url": "https://github.com/mrousavy/react-native-vision-camera/issues"
|
|
},
|
|
"homepage": "https://react-native-vision-camera.com/",
|
|
"publishConfig": {
|
|
"registry": "https://registry.npmjs.org/"
|
|
},
|
|
"devDependencies": {
|
|
"@expo/config-plugins": "^7.2.5",
|
|
"@jamesacarr/eslint-formatter-github-actions": "^0.2.0",
|
|
"@react-native/eslint-config": "^0.72.2",
|
|
"@react-native/typescript-config": "^0.73.0",
|
|
"@release-it/conventional-changelog": "^7.0.0",
|
|
"@shopify/react-native-skia": "^0.1.200",
|
|
"@types/react": "^18.2.19",
|
|
"@types/react-native": "^0.72.2",
|
|
"eslint": "^8.46.0",
|
|
"eslint-plugin-prettier": "^5.0.0",
|
|
"pod-install": "^0.1.38",
|
|
"prettier": "^3.0.1",
|
|
"react": "^18.2.0",
|
|
"react-native": "^0.72.3",
|
|
"react-native-builder-bob": "^0.21.3",
|
|
"react-native-worklets-core": "^0.2.0",
|
|
"release-it": "^16.1.3",
|
|
"typescript": "^5.1.6"
|
|
},
|
|
"peerDependencies": {
|
|
"@shopify/react-native-skia": "*",
|
|
"react": "*",
|
|
"react-native": "*",
|
|
"react-native-worklets-core": "*"
|
|
},
|
|
"prettier": {
|
|
"bracketSpacing": true,
|
|
"bracketSameLine": true,
|
|
"singleQuote": true,
|
|
"trailingComma": "all",
|
|
"semi": true,
|
|
"tabWidth": 2,
|
|
"useTabs": false,
|
|
"printWidth": 140
|
|
},
|
|
"babel": {
|
|
"presets": [
|
|
"module:metro-react-native-babel-preset"
|
|
]
|
|
},
|
|
"release-it": {
|
|
"git": {
|
|
"commitMessage": "chore: release ${version}",
|
|
"tagName": "v${version}"
|
|
},
|
|
"npm": {
|
|
"publish": true
|
|
},
|
|
"github": {
|
|
"release": true
|
|
},
|
|
"plugins": {
|
|
"@release-it/conventional-changelog": {
|
|
"preset": {
|
|
"name": "conventionalcommits",
|
|
"types": [
|
|
{
|
|
"type": "feat",
|
|
"section": "✨ Features"
|
|
},
|
|
{
|
|
"type": "fix",
|
|
"section": "🐛 Bug Fixes"
|
|
},
|
|
{
|
|
"type": "perf",
|
|
"section": "💨 Performance Improvements"
|
|
},
|
|
{
|
|
"type": "chore(deps)",
|
|
"section": "🛠️ Dependency Upgrades"
|
|
},
|
|
{
|
|
"type": "docs",
|
|
"section": "📚 Documentation"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"react-native-builder-bob": {
|
|
"source": "src",
|
|
"output": "lib",
|
|
"targets": [
|
|
"commonjs",
|
|
"module",
|
|
[
|
|
"typescript",
|
|
{
|
|
"project": "tsconfig.json"
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"dependencies": {
|
|
"string-hash-64": "^1.0.3"
|
|
}
|
|
}
|