Marc Rousavy
2430058cae
fix: Fix redeclaration build error on Android
2023-09-30 10:51:32 +02:00
Marc Rousavy
34f4038e05
chore: release 3.2.0
2023-09-29 21:59:26 +02:00
Marc Rousavy
b397315360
chore: Include README.md in npm package
2023-09-29 21:59:02 +02:00
Marc Rousavy
f78f05a32c
chore: Add README to npm package
2023-09-29 21:56:34 +02:00
Marc Rousavy
85564d6d02
fix: Remove unused Error codes ( #1887 )
...
* fix: Remove unused Errors
* Errors.kt -> CameraError.kt
* fix: remove .system
2023-09-29 21:54:35 +02:00
Marc Rousavy
cf1952d8f7
feat: Use AHardwareBuffer*
for frame.toArrayBuffer()
( #1888 )
...
* feat: Route images through `ImageWriter` into OpenGL pipeline
* fix: Use RGB format
* fix: Every device supports YUV, RGB and NATIVE
* Update VideoPipeline.kt
* log format
* Plug ImageReader between OpenGL pipeline
* Call Frame Processor
* Format
* Remove logs
* feat: Use `HardwareBuffer` for `toArrayBuffer()`
* Format
2023-09-29 21:54:04 +02:00
Marc Rousavy
954b44810b
feat: Route images through ImageWriter
into OpenGL pipeline ( #1874 )
...
* feat: Route images through `ImageWriter` into OpenGL pipeline
* fix: Use RGB format
* fix: Every device supports YUV, RGB and NATIVE
* Update VideoPipeline.kt
* log format
* Plug ImageReader between OpenGL pipeline
* Call Frame Processor
* Format
* Remove logs
2023-09-29 21:52:19 +02:00
Marc Rousavy
a1fbba8d66
chore: Fix formatting
2023-09-29 19:42:28 +02:00
Touch Marine
fb812a6618
fix: Incorrect zoom on Android < 11 ( #1878 )
...
* fix: Incorrect zoom on Android < 11
Fixes #1865
* Clamp zoom on Android
Some unclamped zoom values crash. For example, zoom={0.5} crashes
(tested on Android 9).
* Extract zoom into an extension (Android)
* Update package/android/src/main/java/com/mrousavy/camera/extensions/CaptureRequest+setZoom.kt
---------
Co-authored-by: Marc Rousavy <marcrousavy@hotmail.com>
2023-09-29 19:41:37 +02:00
Marc Rousavy
5a98716f31
docs: Update link colors
2023-09-29 19:28:38 +02:00
Marc Rousavy
fd6d52f1de
docs: Fix search by disabling contextual search
2023-09-29 19:18:00 +02:00
Marc Rousavy
9bad0bb99e
Update RECORDING_VIDEOS.mdx
2023-09-29 16:53:24 +02:00
Marc Rousavy
046bf2d18e
Update README.md
2023-09-29 16:15:02 +02:00
Marc Rousavy
016dfa725d
Update Podfile.lock
2023-09-29 15:31:35 +02:00
Marc Rousavy
9d02f5141d
fix: Use compressed buffer format as default format as well ( #1884 )
...
* fix: Use compressed buffer format as default format as well
* chore: Format Swift
2023-09-29 15:27:17 +02:00
Marc Rousavy
902dc634a4
feat: Add customizable Video Bit Rate (videoBitRate
) ( #1882 )
...
* feat: Add `videoBitRate` option to `RecordVideoOptions`
* feat: Implement `videoBitRate` on iOS
* feat: Implement `videoBitRate` on Android
* chore: Format
* docs: Separate recording and photo docs
* docs: Fix links
* docs: Add docs about bitrate and quality
* docs: Add blob
* fix: Don't use inline style for CI
* fix: Correctly log default bitRate
* fix: Fix typo
* fix: Calculate default bit-rate on Android depending on resolution
* Update RecordingSession.kt
2023-09-29 15:27:09 +02:00
Marc Rousavy
1c8c081e11
docs: Use updated Search index
2023-09-29 14:16:36 +02:00
Marc Rousavy
ad48823553
docs: Fix Algolia not working
2023-09-29 14:11:45 +02:00
Marc Rousavy
3d8d05302d
docs: Add Community Discord
2023-09-27 17:40:15 +02:00
Marc Rousavy
fb6ebd9ee1
fix: Allow nil preferredDevice
...
Fixes #1870
2023-09-27 12:51:38 +02:00
Marc Rousavy
eec9a3eb6e
docs: Make images responsive
2023-09-27 12:21:34 +02:00
Marc Rousavy
bb7549bc01
docs: Fix highlight
2023-09-27 12:15:42 +02:00
Marc Rousavy
4830ba8bf6
docs: Fix hightlight line
2023-09-27 12:10:06 +02:00
Marc Rousavy
42d9948e8a
docs: Fix codeblocks alignment
2023-09-26 14:48:10 +02:00
Marc Rousavy
2c5c7d63b1
docs: Don't use bold links ( #1860 )
2023-09-26 14:42:22 +02:00
Ben Schlegel
04fd597866
docs: Fix docusaurus code block styling ( #1859 )
2023-09-26 14:20:24 +02:00
Marc Rousavy
8a7e45d6c6
docs: New default color ( #1857 )
...
* docs: New default color
* fix: Adjust codeblocks
* highlight color
2023-09-26 14:20:05 +02:00
Marc Rousavy
b75abd591a
Add border radius to images
2023-09-26 13:16:35 +02:00
Marc Rousavy
688963954a
docs: Align Images perfectly on mobile ( #1856 )
...
* docs: Use Light codeblocks theme
* docs: Fix image align
* fix pixels
* fix: Adjust all images
2023-09-26 13:09:44 +02:00
Marc Rousavy
cc88de3926
docs: Use Light codeblocks theme ( #1853 )
2023-09-26 13:09:11 +02:00
Marc Rousavy
14721d314f
chore: Remove semicolons ( #1846 )
...
* chore: Disable `semi` in Prettier
* chore: Format w/o semi
* Remove more `;`
* Lint example
* More ;
2023-09-26 11:39:17 +02:00
Marc Rousavy
f7428f26a4
fix: Allow getCameraDevice
to return undefined
when no Devices are available (e.g. iOS Simulator) ( #1848 )
...
fix: Allow `getCameraDevice` to return `undefined` when no Devices are available
2023-09-26 11:24:24 +02:00
Marc Rousavy
bdc3fd0341
chore: release 3.1.0
2023-09-25 13:05:43 +02:00
Marc Rousavy
979656d379
chore: Update install links
2023-09-25 13:04:22 +02:00
Marc Rousavy
706341fbdb
feat: Add Templates
API for choosing Camera Formats ( #1844 )
...
* docs: New V3 docs for new API
* fix: Prefer Wide-Angle unless explicitly opted-out
* docs: Update DEVICES
* Finish Devices docs
* Switch links
* Revert "Switch links"
This reverts commit 06f196ae0e67787cbd5768e125be6d0a3cb5bbc9.
* docs: New LIFECYCLE
* docs: New CAPTURING docs
* Update Worklets links
* docs: Update TROUBLESHOOTING and ZOOMING
* fix: Update `getAvailableCameraDevices()` usages
* docs: Update FORMATS
* Update Errors.kt
* docs: Fix broken links
* docs: Update references to old hooks
* docs: Create Frame Processor Tips
* docs: Auto-dark mode
* fix: Fix FPS filter
* feat: Add `'max'` flag to format filter
* fix: Use loop
* fix: Fix bug in `getCameraFormat`
* fix: Find best aspect ratio as well
* fix: Switch between formats on FPS change
* Update FRAME_PROCESSOR_PLUGIN_LIST.mdx
* Add FPS graph explanation
* feat: Add `Templates` API for choosing Camera Formats
2023-09-25 13:00:25 +02:00
Marc Rousavy
2d66d5893c
docs: New V3 docs for new API ( #1842 )
...
* docs: New V3 docs for new API
* fix: Prefer Wide-Angle unless explicitly opted-out
* docs: Update DEVICES
* Finish Devices docs
* Switch links
* Revert "Switch links"
This reverts commit 06f196ae0e67787cbd5768e125be6d0a3cb5bbc9.
* docs: New LIFECYCLE
* docs: New CAPTURING docs
* Update Worklets links
* docs: Update TROUBLESHOOTING and ZOOMING
* fix: Update `getAvailableCameraDevices()` usages
* docs: Update FORMATS
* Update Errors.kt
* docs: Fix broken links
* docs: Update references to old hooks
* docs: Create Frame Processor Tips
* docs: Auto-dark mode
* fix: Fix FPS filter
* feat: Add `'max'` flag to format filter
* fix: Use loop
* fix: Fix bug in `getCameraFormat`
* fix: Find best aspect ratio as well
* fix: Switch between formats on FPS change
* Update FRAME_PROCESSOR_PLUGIN_LIST.mdx
* Add FPS graph explanation
* feat: Support HDR filter
* docs: Add HDR docs
* docs: Add Video Stabilization
* docs: Update Skia docs
* Skia links
* Add Skia labels
* Update SKIA_FRAME_PROCESSORS.mdx
* docs: Add Performance
* Update some wording
* Update headers / and zoom
* Add examples for devices
* fix highlights
* fix: Expose `Frame`
* docs: Update FP docs
* Update links
* Update FRAME_PROCESSOR_CREATE_PLUGIN_IOS.mdx
2023-09-25 12:57:03 +02:00
Marc Rousavy
9dd91a4001
ci: Upgrade setup-java@v1 to setup-java@v2 ( #1829 )
2023-09-23 15:38:49 +02:00
Marc Rousavy
2d96381b3e
feat: New array-based useCameraFormats
API ( #1841 )
...
* feat: New array-based `useCameraFormats` API
* Use triple-camera in Example app
* fix: Remove invalid export
* fix: Use constant-time lookup Filter map and only run sort once
2023-09-23 11:24:15 +02:00
Marc Rousavy
3169444697
feat: Implement resizeMode
prop for iOS ( #1838 )
...
* feat: Implement `resizeMode` prop for iOS
- `"cover"`: Keep aspect ratio, but fill entire parent view (centered).
- `"contain"`: Keep aspect ratio, but make sure the entire content is visible even if it introduces additional blank areas (centered).
* chore: Update prop docs
* Update CameraProps.ts
* Lint & Format
2023-09-23 10:14:27 +02:00
Maxime
c0b80b342b
feat: Respect format's aspect ratio in Preview and add resizeMode
prop ( #1817 )
...
* feat(preview): respect format's aspect ratio
* fix: code guidelines and previewSize in PreviewView
* feat: add resizeMode 'cover' and 'contain' on Android
2023-09-22 17:32:34 +02:00
Marc Rousavy
9add0eb571
feat: Use C++ OpenGL GPU VideoPipeline again ( #1836 )
...
1. Reverts 4e96eb77e0
(PR #1789 ) to bring the C++ OpenGL GPU Pipeline back.
2. Fixes the "initHybrid JNI not found" error by loading the native JNI/C++ library in `VideoPipeline.kt`.
This PR has two downsides:
1. `pixelFormat="yuv"` does not work on Android. OpenGL only works in RGB
2. OpenGL rendering is fast, but it has an overhead. I think for Camera -> Video Recording we shouldn't be using an entire OpenGL rendering pipeline.
The original plan was to use something similar to how it works on iOS by just passing GPU buffers around, but the android.media APIs just aren't as advanced yet. `ImageReader`/`ImageWriter` is way too buggy and doesn't really work with `MediaRecorder`/`MediaCodec`.
This sucks, I hope in the future we can use something like `AHardwareBuffer`s.
2023-09-22 17:22:31 +02:00
Marc Rousavy
db5120e163
ci: Remove Gradle Lint ( #1830 )
2023-09-21 19:16:13 +02:00
Marc Rousavy
86e1c5ff02
ci: Upgrade buildcache@v1 to buildcache@v2
2023-09-21 19:13:18 +02:00
Marc Rousavy
96fba0b925
ci: Upgrade cache@v2 to cache@v3
2023-09-21 19:10:22 +02:00
Marc Rousavy
cb4d64c671
ci: Also upload Gradle Lint report to the CI
2023-09-21 19:09:41 +02:00
Marc Rousavy
115140d01c
ci: Run KTLint ( #1825 )
...
* ci: Run ktlint
* Update validate-android.yml
* Update validate-android.yml
* Update validate-android.yml
* Use correct path
* test: Use wrong Kotlin formatting
* Use checkout@v4
* Revert "test: Use wrong Kotlin formatting"
This reverts commit 282c23be9c40506f20f99f56f7166ea2fc8d45aa.
2023-09-21 19:06:33 +02:00
Marc Rousavy
a417be6292
ci: Upgrade checkout@v2 to checkout@v4 ( #1826 )
2023-09-21 19:02:10 +02:00
Marc Rousavy
fffefa9d12
feat: Add support for Buffer Compression for a more efficient Video Pipeline (enableBufferCompression
) ( #1828 )
...
feat: Add support for Buffer Compression for more efficient Video Pipeline (`enableBufferCompression`)
2023-09-21 17:18:54 +02:00
Marc Rousavy
aafffa60f6
fix: Fix exposing userPreferredCameraDevice
on Android
2023-09-21 17:02:15 +02:00
Marc Rousavy
9809075507
feat: Support 10-bit Video HDR ( #1827 )
...
* feat: Select 10-bit YUV HDR format if HDR is enabled
* fix: Remove video EDR setting in favor of new 10-bit video HDR
* Format Swift
2023-09-21 16:30:05 +02:00