* feat: autoexposure on point of interest and defocus on subject change
* Impelement cameraIds for iOS, and various iOS bug fixes.
Summary:
- Implement getCameraIds and cameraId property to manually select a camera device.
- Fix the internal preset being used to properly use a photo and video preset, and check for invalid presets on camera switch.
- This fixes a bug that would happen after recording. After a recording is complete, the camera preset was set to 4k permanently, and attempting to select any camera that does not support that preset would result in an totally unusable camera. Now, the "Photo" preset is the default which should be the highest quality option for photos, and the previously used "High" preset will be used as video default if no value is provided.
- This also adds proper support to setting the undocumented "pictureSize" property. Setting this property will change the default photo quality to be that one.
- Minor cleanup to the camera initialization so the same code is not called as many times redundantly (start session / device happening multiple times)
- The reduced redundant calls to start session and session updates should make the camera startup slightly faster.
- Fix for warnings issued due to misuse of the "isRecording" property. This property was defined as both as a property and a method and was both getting set manually and retrieved with a function. It should now consistently only be retrieved with a function based on the real recording status. Should have no behaivour change, but removes a pesky warning.
- Fix an issue related to the camera getting stuck after a background resume by removing the use of the queue for those two events.
- Fixes a wrong event unsubscription (UIDeviceOrientationDidChangeNotification to UIApplicationDidChangeStatusBarOrientationNotification) from a previous change. Also move event subscriptions to superview changes for consistency and so they are not used/consumed if not needed. After testing, the View of RNCamera is instantiated twice (for some reason I couldn't find) but used only once. RN keeps a reference to the view in memory even after the camera is destroyed, resulting in these events getting fired and handled all the time during the app's lifetime.
* add maxZoom property to iOS.
Android: Not needed as of now. Also, zoom multiplier behaves different on Android and can't be used with the same value as iOS.
* add auto exposure option.
This branch is temporary from the other changes until the proper changes from https://github.com/react-native-community/react-native-camera/pull/2423/files are merged.
* allow for expose POI to also be cleared
* Add ultra-wide lense support. Requires XCode with SDK for iOS 13
* check that video capture device is ready before capturing, fix for string cameraId assignment
* add missing ios 13 camera types and exposure check.
* remove duplicates from camera id list, return its type on IOS, handle WB crash on unsupported devices.
* Do not return virtual devices (we can't really use them with the library), update zoom and flash on preset change so they are maintained while recording/restoring.
* remove redundant duplicates check, add SDK macro check for ultra wide lenses, remove virtual cameras from query
* Add more info about deviceType and iOS camera IDs behaviour.
* Impelement cameraIds for iOS, and various iOS bug fixes.
Summary:
- Implement getCameraIds and cameraId property to manually select a camera device.
- Fix the internal preset being used to properly use a photo and video preset, and check for invalid presets on camera switch.
- This fixes a bug that would happen after recording. After a recording is complete, the camera preset was set to 4k permanently, and attempting to select any camera that does not support that preset would result in an totally unusable camera. Now, the "Photo" preset is the default which should be the highest quality option for photos, and the previously used "High" preset will be used as video default if no value is provided.
- This also adds proper support to setting the undocumented "pictureSize" property. Setting this property will change the default photo quality to be that one.
- Minor cleanup to the camera initialization so the same code is not called as many times redundantly (start session / device happening multiple times)
- The reduced redundant calls to start session and session updates should make the camera startup slightly faster.
- Fix for warnings issued due to misuse of the "isRecording" property. This property was defined as both as a property and a method and was both getting set manually and retrieved with a function. It should now consistently only be retrieved with a function based on the real recording status. Should have no behaivour change, but removes a pesky warning.
- Fix an issue related to the camera getting stuck after a background resume by removing the use of the queue for those two events.
- Fixes a wrong event unsubscription (UIDeviceOrientationDidChangeNotification to UIApplicationDidChangeStatusBarOrientationNotification) from a previous change. Also move event subscriptions to superview changes for consistency and so they are not used/consumed if not needed. After testing, the View of RNCamera is instantiated twice (for some reason I couldn't find) but used only once. RN keeps a reference to the view in memory even after the camera is destroyed, resulting in these events getting fired and handled all the time during the app's lifetime.
* add maxZoom property to iOS.
Android: Not needed as of now. Also, zoom multiplier behaves different on Android and can't be used with the same value as iOS.
* Android only: Support to enumerate Camera devices and to select from one of them.
* No need to have the camera in running state if querying for IDs.
* Silly bug, not using string compare. Also, do not run any camera code if the actual camera doesn't change.
* Crash fix when focus coordinates are set to null/undefined not being handled. Notes about not supported flash/focus
* If a camera is not found, set the first available camera just like Camera2 does.
* missing semicolon
* Fixes to Camera2 API:
- First change is related to camera selection by ID. Some more code was required to correctly set the facing flag and characteristics
- Second change fixes a previous issue (unrelated to the PR) that was causing the preview of the camera to look upside down on rotated devices. Device rotation should not affect the display (nor set it). Device rotation should however be used for the final image (and not screen rotation). Some code was borrowed from Camera1.
* Update RNCamera.m
Add videoBitrate option for ios, setting video bitrate requires a codec to be set
* Update API documentation
* Update documentation
* Update typings
* upgrading to sdk 28 and androidx
* revert attempt to fix build
* fixing build
* build version fix
* updating example app
* manifest update
* using stable release, instead of beta
* androidx migration doc
* migration doc update
* follow on androidx upgrade after rebase
* upgrading to sdk 28 and androidx
* revert attempt to fix build
* fixing build
* build version fix
* updating example app
* manifest update
* using stable release, instead of beta
* androidx migration doc
* migration doc update
* follow on androidx upgrade after rebase
* initial bootstrap on documentation
* Add EXPO_USAGE and MIgrating page
* add all pages
* add sponsors section to index
* theme
* configs
* clipboard button
* remove blog from docker
* start API.md
* minor updates
depracate permissionDialogTitle and permissionDialogMessage
add new props: androidCameraPermissionOptions and androidRecordAudioPermissionOptions
add functionality: when depracated parameters are provided, they are used instead of new ones (and the warning message is set).
* feat(rn-camera): add deviceOrientation and videoOrientation to record response.
* feat(rn-camera): add deviceOrientation and pictureOrientation to take-picture-response
* fix(rn-camera): unify orientation handling for recording and takeing picture
* fix(types): adjust typescript types
* docs(rn-camra): document new properties
* fix(android): respect actual boolean value instead of only checking if it is present.
* feat(android): implement orientation prop for takePictureAsync
* feat(android): implement orientation prop for recordVideoAsync
* docs(rn-camera): adjust documentation
* fix(types): unmark properties as ios only
* fix(android): use constants
* Adding defaultVideoQuality property for iOS
* Remove quality in Readme
* Restore preset when cleanup the camera
* Validate isRecording to stopRecording
* Update the quality only if has changed.
* Fix AVCaptureSessionPreset type