CameraX

Frameworks & LibrariesAI extracted

AndroidX's camera library — a lifecycle-aware API over camera2, plus the Viewfinder artifacts.

Latest 1.6.2 · by GoogleWebsiteRSS

Branches

1.7
1.7.0-alpha03
1.6
1.6.2
1.5
1.5.3

Release activity

Release activity — 15 releases across 14 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026
MondayNo releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026
TuesdayNo releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026
WednesdayNo releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 20261 release on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 20261 release on Aug 12, 2026No releases on Aug 19, 20261 release on Aug 26, 2026No releases on Sep 2, 2026
ThursdayNo releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026
FridayNo releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026
SaturdayNo releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026

15 releases in the last year, busiest day 2

Changelog

Filter releases by branch
41 of 41 releases

1.6.2

Latest
Fixed 1
  • Compilation crash on newer JDK versions when resolving transitively imported JSpecify type annotations on CameraX internal fields

From CameraX

Fixed a compilation crash on newer JDK versions when resolving transitively imported JSpecify type annotations on CameraX internal fields. (I00bb4, b/543937345)

View originalPermalink
How 1.6.2 went
1.7.0-alpha03

Version 1.7

Added 5
  • Added Kotlin DSL camera2Interop extension blocks for preview, imageAnalysis, videoCapture, imageCapture, and SessionConfig.Builder, as well as CameraControl.applyCamera2InteropAsync extension function
  • Added new Camera2Interop configurator factory methods (forUseCase, forImageCapture, forSessionConfig, forCameraControl) and corresponding setInterop / applyInteropAsync methods on Preview.Builder, ImageCapture.Builder, ImageAnalysis.Builder, VideoCapture.Builder, SessionConfig.Builder, and CameraControl
  • Added helper methods to Camera2Interop and equivalent Kotlin extension properties (CameraInfo.cameraId, CameraInfo.cameraCharacteristics, and String.toCameraSelector()) to retrieve Camera2 camera ID and characteristics from CameraInfo
  • Added Preview.setMirrorMode, Preview.getMirrorMode and VideoCapture.setMirrorMode to public APIs, and removed the ExperimentalMirrorMode annotation
  • Added Kotlin DSL builders preview { ... }, imageCapture { ... }, imageAnalysis { ... }, and videoCapture { ... } for creating UseCases
Changed 1
  • Modified ImagePlane.buffer to be non-nullable ByteBuffer
Fixed 4
  • Fixed an issue where binding multiple Preview use cases with an OverlayEffect caused one Preview stream delivery failure
  • Fixed an issue where Recording.pause() and Recording.resume() failed when switching cameras during a persistent video recording
  • Fixed HAL crashes when using Zero-Shutter Lag (ZSL) while zooming across physical camera boundaries on multi-camera devices
  • Fixed an issue where HDR video recording could fail on Samsung Galaxy S25, S26, and Fold 7 devices
Deprecated 2
  • Deprecated legacy Camera2Interop APIs (Camera2Interop.Extender, Camera2CameraControl, Camera2CameraInfo, and CaptureRequestOptions) in favor of Camera2Interop configurator factory methods and Kotlin extension functions
  • Deprecated the property getters on SessionConfig.Builder, HighSpeedVideoSessionConfig.Builder, and ExtensionSessionConfig.Builder in Kotlin DSL to enforce write-only properties

From CameraX

Deprecated legacy Camera2Interop APIs ( Camera2Interop.Extender, Camera2CameraControl, Camera2CameraInfo, and CaptureRequestOptions) in favor of Camera2Interop configurator factory methods and Kotlin extension functions. Added Kotlin DSL camera2Interop extension blocks for preview, imageAnalysis, videoCapture, imageCapture, and SessionConfig.Builder, as well as CameraControl.applyCamera2InteropAsync extension function. Added new Camera2Interop configurator factory methods ( forUseCase, forImageCapture, forSessionConfig, forCameraControl) and corresponding setInterop / applyInteropAsync methods on Preview.Builder, ImageCapture.Builder, ImageAnalysis.Builder, VideoCapture.Builder, SessionConfig.Builder, and CameraControl. Added helper methods to Camera2Interop and equivalent Kotlin extension properties ( CameraInfo.cameraId, CameraInfo.cameraCharacteristics, and String.toCameraSelector()) to retrieve Camera2 camera ID and characteristics from CameraInfo. Added Preview.setMirrorMode, Preview.getMirrorMode and VideoCapture.setMirrorMode to public APIs, and removed the ExperimentalMirrorMode annotation. Added Kotlin DSL builders preview { ... }, imageCapture { ... }, imageAnalysis { ... }, and videoCapture { ... } for creating UseCases. Modified ImagePlane.buffer to be non-nullable ByteBuffer. Deprecated the property getters on SessionConfig.Builder, HighSpeedVideoSessionConfig.Builder, and ExtensionSessionConfig.Builder in Kotlin DSL to enforce write-only properties. Fixed an issue where binding multiple Preview use cases with an OverlayEffect caused one Preview stream delivery failure. Fixed an issue where Recording.pause() and Recording.resume() failed when switching cameras during a persistent video recording. Fixed HAL crashes when using Zero-Shutter Lag (ZSL) while zooming across physical camera boundaries on multi-camera devices. Fixed an issue where HDR video recording could fail on Samsung Galaxy S25, S26, and Fold 7 devices.

View originalPermalink
How 1.7.0-alpha03 went
1.7.0-alpha02

Version 1.7

Added 20
  • CameraXViewfinder now supports built-in gestures for pinch-to-zoom and tap-to-focus
  • CameraXViewfinder adds support for screen flash and stream state
  • FocusState is now public in viewfinder-core to allow monitoring tap-to-focus results
  • isAutoRotationEnabled property added to SessionConfig.Builder, HighSpeedVideoSessionConfig.Builder, and ExtensionSessionConfig.Builder with Kotlin DSL factory functions
  • TransformationMode property added to TransformationInfo to support OpenGL pipeline in EMBEDDED mode
  • isNightModeIndicatorSupported() and getNightModeIndicator() added to CameraInfo to determine when environment conditions meet criteria for Night Mode
Changed 1
  • CompositionSettings updated to enforce non-negative z-order with validation in ConcurrentCamera.setCompositionSettings
Deprecated 1
  • ExtensionsManager#getExtensionEnabledCameraSelector is deprecated in favor of the new ExtensionSessionConfig API

From CameraX

CameraXViewfinder now supports built-in gestures for pinch-to-zoom and tap-to-focus, and adds support for screen flash and stream state. FocusState is now public in viewfinder-core to allow monitoring tap-to-focus results. Added isAutoRotationEnabled to SessionConfig.Builder , HighSpeedVideoSessionConfig.Builder, ExtensionSessionConfig.Builder and introduced a Kotlin DSL factory functions for them. This allows setting the appropriate rotation automatically based on device sensors. Added TransformationMode property to TransformationInfo to support apps to use OpenGL pipeline in EMBEDDED mode. Added isNightModeIndicatorSupported() and getNightModeIndicator() to CameraInfo to determine when the environment conditions meet the criteria for Night Mode. Exposed ImageAnalysis.OUTPUT_IMAGE_FORMAT_PRIVATE and ImageProxy.getHardwareBuffer() as public API to support GPU based ImageAnalysis. ExtensionsManager#getExtensionEnabledCameraSelector is now deprecated. Please use the new ExtensionSessionConfig API for enabling extension modes. Added support for visual styling of camera frames during concurrent camera composition. You can now customize: Rounded Corners: Use setRoundedCornerRatio(float) to apply normalized rounding (0.0 to 1.0) to frame edges. Borders: Use setBorderWidthRatio(float) and setBorderColor(int) to add a decorative frame with consistent thickness Updated CompositionSettings to enforce non-negative z-order and added validation to ConcurrentCamera.setCompositionSettings to ensure it's called with the correct number of settings in a valid composition mode. Added getNightModeIndicator() and isNightModeIndicatorAvailable() to CameraExtensionsInfo to allow applications to monitor whether the current environment is in a night mode condition when using camera extensions. Added support for QHD video quality in VideoCapture. Added Recorder.Builder.setTargetAudioChannelCount(int) and Recorder.getTargetAudioChannelCount() to allow developers to set an explicit audio channel count. Added Recorder.Builder.setTargetAudioEncodingBitRate(int) to allow setting a target audio encoding bitrate. Added the ConcurrentCamera.setCompositionSettings API to allow apps to update composition of the current camera dynamically after the lifecycle has been bound. Additionally, a new setZOrder API in CompositionSettings.Builder enables precise control over the rendering order of overlapping camera streams. Introduced APIs for granular control over encoding formats. Developers can now discover device-supported formats using Recorder.getSupportedVideoMimeTypes() and getSupportedAudioMimeTypes(), which are currently experimental. Preferred formats can be explicitly configured via Recorder.Builder.setVideoMimeType() and setAudioMimeType(). Additionally, Recorder.getVideoCapabilities(CameraInfo, String) allows querying camera-specific capabilities, such as supported qualities and dynamic ranges, for a chosen codec. Added CameraController.setAutoRotationEnabled(boolean) to allow disabling the automatic device rotation listener. Added AE/AWB locking support in FocusMeteringAction via a new setLockingMode API. This also allows updating 3A regions without locking focus, enabling the camera to remain in continuous autofocus mode while updating the focus area.

View originalPermalink
How 1.7.0-alpha02 went

1.6.1

Fixed 1
  • Fix compilation error "Cannot access class ListenableFuture" when using CameraX 1.6.0

From CameraX

Fixed a compilation error "Cannot access class ListenableFuture" when using CameraX 1.6.0. (Ic8cba, b/497571473)

View originalPermalink
How 1.6.1 went

1.6.0

Added 4
  • Feature Group API now supports Video Stabilization and 4K recording with VIDEO_STABILIZATION and UHD_RECORDING options
  • CameraEffect and ImageAnalysis in SessionConfig is supported when the feature group is enabled
  • New ExtensionSessionConfig API allows CameraX Extensions to be implemented
  • New isSessionConfigSupported API allows developers to query whether a specific combination of use cases and features is supported by the device before binding to the lifecycle
Changed 3
  • Migrated to CameraPipe, a high-performance unified camera stack also powering the Pixel camera, to streamline architectural efficiency and provide a scalable foundation for advanced computational photography features
  • Integrated Media3 Muxer by default within the VideoCapture API for enhanced performance and improved protection against video file corruption
  • SessionConfig graduated from experimental to fully stable public API including SessionConfig and HighSpeedVideoSessionConfig
Fixed 9
  • Fixed crash on Android 17 and higher devices that expose new dynamic range profiles unknown to earlier CameraX versions by gracefully ignoring unrecognized profiles
  • Fixed inconsistent results when PREVIEW_STABILIZATION is used with VideoCapture and the Preview use case is not active
  • Fixed issue where unsupported preferred features were incorrectly made available by correctly filtering features when their required use cases are not met
  • Fixed glitchy video result on Samsung Galaxy S6
  • Fixed CameraInfo#isFeatureGroupSupported incorrectly returning true for PREVIEW_STABILIZATION when SessionConfig was already configured with other features
  • Excluded problematic YUV format output sizes from Samsung Z Fold 4 device that caused distortion in received images

From CameraX

Migrated to a High-Performance, Unified Camera Stack: CameraX now uses CameraPipe—the same modern, high-performance stack powering the Pixel camera. This transition streamlines architectural efficiency and provides a scalable foundation for bringing advanced computational photography features to the developer ecosystem. Media3 Muxer Integration: CameraX now integrates the Media3 Muxer by default within the VideoCapture API. This migration provides several benefits: Enhanced Performance: More efficient video processing and muxing. Crash Resilience: Improved protection against video file corruption, ensuring that data is preserved even if the application crashes during recording. Feature Group improvement: Feature Group API now supports Video Stabilization and 4K recording. GroupableFeatures includes VIDEO_STABILIZATION, UHD_RECORDING to allow apps to enable them together with other features. CameraEffect and ImageAnalysis in SessionConfig is supported when the feature group is enabled. Stabilized SessionConfig API: SessionConfig has graduated from experimental to a fully stable public API including SessionConfig and HighSpeedVideoSessionConfig. CameraX Extensions can now be implemented with a new ExtensionSessionConfig AP. A new isSessionConfigSupported API is introduced, allowing developers to query whether a specific combination of use cases and features (such as HDR, stabilization, specific resolutions, CameraX Extensions or slow motion) is supported by the device before binding to the lifecycle. Fixed a crash that occurs on certain Android 17 (API 37) devices or higher. When these devices expose new dynamic range profiles (e.g., STANDARD_SMPTE_2094_50(ID 8192)) that were unknown to CameraX version 1.5.1 and earlier, the library previously failed to handle these IDs appropriately, resulting in a NullPointerException or IllegalArgumentException during ProcessCameraProvider.bindToLifecycle(). This fix allows CameraX to gracefully ignore unrecognized dynamic range profiles, preventing the crash and maintaining forward compatibility. Please update your CameraX dependency to version 1.5.2 or 1.6.0 (or higher) to avoid this issue on devices exposing these new profiles. For more details, see issue 519796838. (Ibd7b5) The feature group API now provides consistent results when PREVIEW_STABILIZATION is used with VideoCapture. This corrects a bug that caused inconsistent results when a Preview use case was not also active. (Ifed82, b/449913903) Fixed an issue where unsupported preferred features were incorrectly made available. Features are now correctly filtered when their required use cases are not met. (I38db8, b/449532342) Fixed glitchy video result on Samsung Galaxy S6. (I612d9, b/235127608) Fixed an issue where CameraInfo#isFeatureGroupSupported could incorrectly return true for PREVIEW_STABILIZATION if the SessionConfig in the query was already configured with other features. (I2c355c, b/437816469) Excluded problematic YUV format output sizes from Samsung Z Fold 4 device. The received images have distortion issue when using those output sizes. (I776bf, b/460322307) Fixed a device-specific issue on Samsung A53 where image capture with torch enabled would fail sometimes if VideoCapture use case is bound. (I0f183, b/458197367) Fixes an issue on some devices where using the flash with the ultra-wide camera may result in underexposed images. (Ib7530, b/444590340) Updated the ExifInterface dependency to include a fix for parsing JPEGs with 0xFF padding, which resolves image capture failures on devices where the JPEG encoder adds fill bytes before markers. (I0eb49)

View originalPermalink
How 1.6.0 went

1.7.0-alpha01

Added 1
  • Expose the CameraController.setSessionConfig() API to provide a custom SessionConfig for advanced UseCase configurations
Changed 1
  • Move libraries to use Java 11 target, producing bytecode of class file version 55
Fixed 1
  • Fix a bug in ImageAnalysis where images were not correctly rotated when output image rotation is enabled and the initial relative rotation is 0 degrees

From CameraX

Exposed the CameraController.setSessionConfig() API. This allows providing a custom SessionConfig for advanced UseCase configurations not directly exposed by CameraController. When a SessionConfig is active, other configuration methods on CameraController are disabled. (I35cf1, b/448525636) Moves libraries to use Java 11 target. This means produced bytecode will be Java 11 (class file version 55) and might require desugaring to use the library (If4c2a, b/457821470) Fixed a bug in ImageAnalysis where images were not correctly rotated when output image rotation is enabled and the initial relative rotation is 0 degrees. (Id46c2, b/487160584)

View originalPermalink
How 1.7.0-alpha01 went

1.6.0-beta02

Changed 1
  • Migrate to AndroidX Media3 muxer
Fixed 3
  • Fix ImageCapture OUTPUT_FORMAT_RAW_JPEG in-memory capture IllegalArgumentException issue
  • Fix video corruption during unexpected interruptions or app termination
  • Fix crashes when saving videos to proxy file descriptors

From CameraX

Fixed ImageCapture OUTPUT_FORMAT_RAW_JPEG in-memory capture IllegalArgumentException issue. (Id4eec, b/479990902) Migrated to AndroidX Media3 muxer. This fixed 1: video corruption during unexpected interruptions or app termination and 2: crashes when saving videos to proxy file descriptors. (I23b63, b/433649708, b/264812009, b/475750115)

View originalPermalink
How 1.6.0-beta02 went
1.5.3

Version 1.5.3

Fixed 1
  • Fix image capture failure on devices producing JPEGs with additional 0xFF bytes before a marker by updating ExifInterface dependency to 1.4.2

From CameraX

Updated the ExifInterface dependency to 1.4.2. This fixes an image capture failure that occurs on devices producing JPEGs with additional (and permitted) 0xFF bytes before a marker. (I16df4)

View originalPermalink
How 1.5.3 went

1.6.0-beta01

Changed 1
  • Updated ExifInterface dependency to fix parsing JPEGs with 0xFF padding and resolve image capture failures on devices where the JPEG encoder adds fill bytes before markers
Fixed 1
  • Fixed CameraExtensionsInfo current type issue where LiveData object could not receive updated type data

From CameraX

Fixed CameraExtensionsInfo current type issue in CameraX 1.6.0-alpha that the LiveData object can't receive the updated type data. (I2c7a5) Updated the ExifInterface dependency to include a fix for parsing JPEGs with 0xFF padding, which resolves image capture failures on devices where the JPEG encoder adds fill bytes before markers. (I0eb49)

View originalPermalink
How 1.6.0-beta01 went

1.6.0-alpha02

Added 8
  • Add a groupable feature to denote video stabilization in a session config, allowing developers to request it as a required or preferred feature
  • Add groupable features to denote video recording quality in a session config, allowing developers to request specific quality levels as required or preferred features
  • Add support for using both CameraEffect and feature groups API in SessionConfig
  • Add support for using both ImageAnalysis and feature groups API in SessionConfig
  • Add addUseCase setter function for ExtensionSessionConfig.Builder and add missing getters for ExtensionSessionConfig
  • Add ExtensionsManager.getInstance API as a suspending version of ExtensionsManager.getInstanceAsync
  • Add CameraProvider#getCameraInfo(CameraSelector, SessionConfig) to retrieve CameraInfo when SessionConfig can affect camera selection
  • Expose ExtensionSessionConfig API, allowing apps to create an ExtensionSessionConfig and use it to create an extensions session
Changed 4
  • Rename isFeatureGroupSupported to isSessionConfigSupported and make it support any types of SessionConfig
  • Convert ExtensionsManager into Kotlin implementation
  • Make androidx.camera.video.HighSpeedVideoSessionConfig API fully stable and no longer experimental
  • Make androidx.camera.core.SessionConfig API fully stable and no longer experimental
Fixed 5
  • Fix a crash due to IllegalArgumentException when converting dynamic range profile on Android 17 or higher
  • Exclude problematic YUV format output sizes from Samsung Z Fold 4 device to prevent image distortion
  • Fix CaptureRequest.FLASH_MODE not being applied when set through the Camera2Interop API
  • Fix device-specific issue on Samsung A53 where image capture with torch enabled would fail when VideoCapture use case is bound
  • Fix an issue on some devices where using flash with the ultra-wide camera results in underexposed images

From CameraX

Added a groupable feature to denote the video stabilization feature in a session config. Developers can now request video stabilization as a required or preferred feature, aligning it with other groupable features like UHD_RECORDING, PREVIEW_STABILIZATION. (Ic6757, b/419766630) Added groupable features to denote the video recording quality in a session config. Developers can now request a specific quality (e.g., UHD, FHD) as a required or preferred feature, aligning it with other groupable features like HDR and 60 FPS. (Ib5cd3, b/437820285) Added support for using both the CameraEffect and the feature groups API in SessionConfig. (I17f18, b/406370934) Added support for using both the ImageAnalysis and the feature groups API in SessionConfig. (I87833, b/406371720) Added addUseCase setter function for ExtensionSessionConfig.Builder and added the lacking getters for ExtensionSessionConfig. (I71e07, b/453988621) Added ExtensionsManager.getInstance API which is a suspending version of ExtensionsManager.getInstanceAsync (I3a0a9, b/452208792) Renamed isFeatureGroupSupported to isSessionConfigSupported, and make it support any types of SessionConfig. (I21616, b/448781299) Converted ExtensionsManager into Kotlin implementation. (I73091, b/452208792) Added CameraProvider#getCameraInfo(CameraSelector, SessionConfig) to retrieve CameraInfo when the SessionConfig can affect camera selection. For example, when using an ExtensionSessionConfig. (Ic548c, b/451891648) Exposed ExtensionSessionConfig API. Apps can create an ExtensionSessionConfig and use it to create an extensions session now. (I6354c, b/448524373) The androidx.camera.video.HighSpeedVideoSessionConfig API is no longer experimental and is now a fully stable public API. (I492d4, b/447558239) The androidx.camera.core.SessionConfig API is no longer experimental and is now a fully stable public API. (Idc87a, b/447558437) Fixed a crash due to an IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object: on Android 17 or higher. (Ibd7b5, b/463465353) Excluded problematic YUV format output sizes from Samsung Z Fold 4 device. The received images have distortion issue when using those output sizes. (I776bf, b/460322307) Fixed CaptureRequest.FLASH_MODE not being applied when set through the Camera2Interop API. (I0004c, b/459608684) Fixed a device-specific issue on Samsung A53 where image capture with torch enabled would fail sometimes if VideoCapture use case is bound. (I0f183, b/458197367) Fixes an issue on some devices where using the flash with the ultra-wide camera may result in underexposed images. (Ib7530, b/444590340)

View originalPermalink
How 1.6.0-alpha02 went
1.5.2

Version 1.5.2

Fixed 3
  • Fixed a crash due to an IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object on Android 17 or higher
  • Fixed inconsistent feature group API results when PREVIEW_STABILIZATION feature was added with VideoCapture use case but without Preview use case
  • Fixed preferred features not being filtered out despite lacking the required use cases for the features to be supported

From CameraX

Fixed a crash due to an IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object: on Android 17 or higher. (Ic9184) Fixed a bug leading to inconsistent feature group API results when PREVIEW_STABILIZATION feature was added with VideoCapture use case, but without Preview use case. (Ifed82) Fixed preferred features not being filtered out despite lacking the required use cases for the features to be supported. (I38db8)

View originalPermalink
How 1.5.2 went

1.6.0-alpha01

Added 1
  • Add new APIs for dynamic camera add/removal detection via the CameraPresenceListener API
Changed 1
  • Migrated to a unified, high-performance camera stack known as CameraPipe, which is also used by the Pixel camera app
Fixed 1
  • Fix feature group API to provide consistent results when PREVIEW_STABILIZATION is used with VideoCapture, even when a Preview use case is not active

From CameraX

CameraX has migrated to a unified, high-performance camera stack, which is also used by the Pixel camera app. Known as CameraPipe, this new stack is a collaboration between the CameraX and Pixel Camera teams. It ensures that all improvements are shared, benefiting both CameraX users and the Pixel camera app. Added new APIs for dynamic camera add/removal detection. See the CameraPresenceListener API for more details. (I41ead, b/427182232, b/419441394) The feature group API now provides consistent results when PREVIEW_STABILIZATION is used with VideoCapture. This corrects a bug that caused inconsistent results when a Preview use case was not also active. (Ifed82, b/449913903)

View originalPermalink
How 1.6.0-alpha01 went
1.5.1

Version 1.5.1

Added 2
  • Support CameraEffect in concurrent camera composition mode with effect applied on the composition output
  • Support binding Preview, ImageCapture and VideoCapture together in concurrent camera non-composition mode
Changed 2
  • mirrorMode in VideoCapture is ignored when effect is set in concurrent camera composition mode
  • CameraXViewfinder now defaults to TextureView on older API levels and devices with SurfaceView issues for improved stability, with programmatic override available
Fixed 9
  • Fixed mirrorMode not being applied correctly to the secondary camera in concurrent camera composition mode
  • Fixed UseCases such as ImageCapture and VideoCapture losing target rotation information if recreated, causing incorrect image or video orientation after device rotation
  • Fixed Preview being unable to select 16:9 resolutions and VideoCapture unable to record at QUALITY_1080P when using default Preview resolution configuration with StreamSharing feature active
  • Fixed crash when effect is being activated after SurfaceProcessor is shut down
  • Fixed IllegalStateException in CameraController when an initial UseCase selected the maximum resolution, preventing other UseCases from being bound
  • Exclude problematic YUV_420_888 output sizes for Nokia 7 Plus that cause silent fail without error messages

From CameraX

Support CameraEffect in concurrent camera composition mode. The effect will be applied on the composition output. Please note that mirrorMode in VideoCapture will be ignored when effect is set in concurrent camera composition mode. (If3d00, b/425565129) Fixed the issue where mirrorMode is not applied correctly to the secondary camera in concurrent camera composition mode. (I686cd, b/446430827) Support binding Preview, ImageCapture and VideoCapture together in concurrent camera non-composition mode. (Ib410a, b/443009871) Fixed an issue where UseCases such as ImageCapture and VideoCapture would lose their target rotation information if they were recreated. This could cause images or videos to have an incorrect orientation if a setting like imageCaptureMode was changed after the device had been rotated. (I477c8, b/444734537) Fixed an issue that prevented Preview from selecting 16:9 resolutions and VideoCapture from recording at QUALITY_1080P. This problem occurred when using a default Preview resolution configuration while the internal StreamSharing feature was active (e.g., when four UseCases are bound simultaneously). (I493cb, b/440364875) Fixed the crash when effect is being activated after SurfaceProcessor is shut down (I2c450, b/414150174) Fixed a bug in CameraController that caused an IllegalStateException when an initial UseCase selected the maximum resolution, which subsequently prevented other UseCases from being bound. (Ifb758, b/440374234) Excludes problematic YUV_420_888 output sizes for Nokia 7 Plus that will cause the silent fail problem without any error messages reported. (I3af47, b/436524501) Fixed an issue where CameraInfo#isFeatureGroupSupported could incorrectly return true for the PREVIEW_STABILIZATION feature. This could sometimes occur when querying with a SessionConfig that was already configured with other features. (I2c355, b/437816469) Improved CameraXViewfinder stability on older API levels and devices with SurfaceView issues by defaulting to TextureView in such scenarios. This fallback mechanism is the new default but can be programmatically overridden. (Ieb476, b/437496463) Fixed a memory leak in PreviewView where it could prevent its Activity from being garbage collected. This happens if a new SurfaceRequest arrives before the previous one is handled. (I4aa0b, b/443112512) Fixed high-speed/slow-motion recording failed on Huawei P smart, Infinix Hot 40i and Realme C53. (40a668e, b/442984200)

View originalPermalink
How 1.5.1 went
1.5.0

Version 1.5.0

Added 9
  • High-speed and slow-motion video recording at 120/240 fps with Recorder#getHighSpeedVideoCapabilities(CameraInfo) and HighSpeedVideoSessionConfig
  • SessionConfig and FeatureGroup API to configure camera session and enable multiple features together including HLG (HDR), UltraHDR, 60 FPS, and Preview stabilization with SessionConfig.Builder#setPreferredFeatureGroup and SessionConfig.Builder#setRequiredFeatureGroup
  • Deterministic Frame Rate API with CameraInfo.getSupportedFrameRateRanges(sessionConfig) and SessionConfig.setExpectedFrameRateRange for precise frame rate configuration
  • UltraHDR format support in Camera Extensions with ImageCapture.Builder.setOutputFormat
  • Torch strength adjustment via CameraControl.setTorchStrengthLevel
  • Low light boost mode support with CameraInfo#isLowLightBoostSupported, CameraInfo#getLowLightBoostState, and CameraControl#enableLowLightBoostAsync
Changed 2
  • Zoom ratio and preview stabilization capabilities now reflected when Camera Extensions are enabled
  • PendingRecording.withAudioEnabled(boolean initialMuted) allows controlling the initial mute state for audio recording

From CameraX

High-speed and Slow-motion Recording: Easily integrate high-speed (120/240 fps) and slow-motion video recording with minimal code. Refer to Recorder#getHighSpeedVideoCapabilities(CameraInfo) and HighSpeedVideoSessionConfig for details. SessionConfig and FeatureGroup API: The new SessionConfig API allows you to configure the camera session and enable multiple features together safely, including HLG (HDR), UltraHDR, 60 FPS, and Preview stabilization. You can also set a preferable feature group with priority, letting CameraX determine the optimal supported combination. See SessionConfig.Builder#setPreferredFeatureGroup, SessionConfig.Builder#setRequiredFeatureGroup, and CameraInfo#isFeatureGroupSupported(SessionConfig) for more information. Deterministic Frame Rate API: Address previous limitations with setTargetFrameRate by using CameraInfo.getSupportedFrameRateRanges(sessionConfig) to query and SessionConfig.setExpectedFrameRateRange to set precise and supported frame rates. Camera Extensions: UltraHDR format is now supported with Extensions. Check ImageCapture.getImageCaptureCapabilities(cameraInfo).getSupportedOutputFormats() and enable it in ImageCapture.Builder.setOutputFormat. Zoom ratio and preview stabilization capabilities are now reflected when Extensions are enabled. Torch Strength: Adjust torch strength using CameraControl.setTorchStrengthLevel. Low Light Boost Mode: You can enable the low light boost mode( CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY) by the following APIs: Refer to CameraInfo#isLowLightBoostSupported, CameraInfo#getLowLightBoostState, and CameraControl#enableLowLightBoostAsync. Video Capture: VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE is now triggered for insufficient storage during recording. PendingRecording.withAudioEnabled(boolean initialMuted) allows controlling the initial mute state for audio recording. Image Capture: Support for DNG (RAW) and JPEG + DNG (RAW) formats in ImageCapture. Check ImageCaptureCapabilities(CameraInfo).getSupportedOutputFormats() for RAW support. Use overloaded takePicture APIs with multiple OutputFileOptions for RAW+DNG capture. Image Analysis: Support for NV21 format in ImageAnalysis. Enable it with ImageAnalysis.Builder.setOutputImageFormat(OUTPUT_IMAGE_FORMAT_NV21).

View originalPermalink
How 1.5.0 went
1.5.0-rc01

Version 1.5.0-rc01

Changed 2
  • Move the default minSdk from API 21 to API 23
  • Improve error handling and logging in getViewportAspectRatioInt
Fixed 2
  • Resolve an issue that caused devices with UniSoc chipsets to hang when capturing an image with VideoCapture, Preview, and ImageCapture used simultaneously at 1280x720 resolution
  • Fix preview black screen when no high-speed frame rate is set for high-speed/slow-motion recording
Removed 1
  • Remove the 10-bit output restriction for the low-light boost auto-exposure mode

From CameraX

Moving the default minSdk from API 21 to API 23 (Ibdfca, b/380448311, b/435705964, b/435705223) Removed the 10-bit output restriction for the low-light boost auto-exposure mode. Applications can now simultaneously enable both features on supported devices. (I5a638) Resolved an issue that caused devices with UniSoc chipsets to hang when capturing an image. The problem occurred when VideoCapture, Preview, and ImageCapture were used simultaneously with all streams set to a 1280x720 resolution. (Ia00c4, b/380802479) Fixed preview black screen when no high-speed frame rate is set for high-speed/slow-motion recording. (cdf0ff2e9) Improve error handling and logging in getViewportAspectRatioInt (82fca18)

View originalPermalink
How 1.5.0-rc01 went
1.5.0-beta02

Version 1.5.0-beta02

Added 8
  • New APIs to set or query groups of high-quality features, with SessionConfig containing APIs to denote feature groups as required or preferred
  • CameraInfo.isFeatureGroupSupported API to query if a feature group is supported before binding a SessionConfig
  • SessionConfig listener to know which features are finally selected when a session config is bound
  • New API SessionConfig.Builder.setFrameRateRange(Range<Integer>) to set frame rate ranges on SessionConfig
  • CameraInfo.getSupportedFrameRateRanges(SessionConfig) API to query guaranteed supported frame rates constrained by a specific SessionConfig
  • New SessionConfig API with better abstraction for configuring use cases, session parameters, CameraEffect, ViewPort and related settings
  • Ability to bind a new SessionConfig without invoking unbind or unbindAll first when updating to the same LifecycleOwner
  • New HighSpeedVideoSessionConfig API for recording high-speed and slow-motion video
Fixed 7
  • ImageCaptureCapabilities#getSupportedOutputFormats() API incorrectly reporting RAW formats as supported on devices without RAW capability
  • Memory leak that occurs when PreviewView is used, CameraEffect is enabled, or binding 4 use cases with StreamSharing
  • Video recording crash caused by AssertionError: Invalid internal audio state: IDLING
  • Preview becoming stretched or sideway in PreviewView when app runs on external display in landscape mode
  • Preview Stabilization settings not being correctly applied when camera stream is shared between Preview and VideoCapture
  • CameraXViewfinder now properly handles surface replacement in underlying Viewfinder, including EXTERNAL viewfinder scenarios on API level 28 or lower and moveableContentOf() cases
  • EXTERNAL CameraXViewfinder appearing stretched or incorrect on Android 10/11 due to transformation operations being applied too early

From CameraX

Added new APIs to set or query groups of high-quality features more intuitively and accurately as these features may not be supported as a combination across all devices. SessionConfig now contains new APIs to denote a group of features as either required or preferred. The CameraInfo.isFeatureGroupSupported API allows to know if a feature group is supported before binding a SessionConfig. SessionConfig also allows setting a listener to know which features are finally selected when a session config is bound. (Ie4d60) Added new API SessoinConfig.Builder.setFrameRateRange(Range) and CameraInfo.getSupportedFrameRateRanges(SessionConfig), enabling developers to query guaranteed supported frame rates constrained by a specific SessionConfig and then apply the frame rate on SessionConfig. (Ieacf7) Introduced the new SessionConfig API, which includes a better abstraction for configuring use cases, session parameters, CameraEffect, ViewPort and etc. Binding a SessionConfig to a LifecycleOwner opens the camera session, configures it using the specified use cases and session parameters, and applies the designated CameraEffect and ViewPort. When updating a new SessionConfig to the same LifecycleOwner, you can just bind a new Sessionconfig without the need of invoking unbind or unbindAll first. (Iedfc3) Added new APIs to record high-speed/slow-motion video. See HighSpeedVideoSessionConfig API for more details. (Ia16f3) Fixed ImageCaptureCapabilities#getSupportedOutputFormats() API reporting RAW formats as supported in some devices which doesn't actually have RAW capability. (Ibcadb) Fixed the memory leak that happens when PreviewView is used, CameraEffect is enabled or binding 4 use cases(StreamSharing) (I87468) Fixed a video recording crash by AssertionError: Invalid internal audio state: IDLING. (I38d4b, b/414259796) Fixed the issue when the app runs in an external display and the device is landscape, the preview in PreviewView becomes stretched or sideway (Ia917a) Fixed the issue that Preview Stabilization settings are not correctly applied when the camera stream is sharing between Preview and VideoCapture. (I5430e) CameraXViewfinder now properly handles surface replacement in the underlying Viewfinder. This covers scenarios such as when an EXTERNAL viewfinder on API level 28 or lower moves off screen or if a CameraXViewfinder (with any ImplementationMode) is part of moveableContentOf(). In cases where the underlying ViewfinderSurfaceSession cannot be kept alive, the CameraXViewfinder will invalidate the current CameraX SurfaceRequest, allowing CameraX to use the new Surface. (I79432) Fixes an issue on Android 10/11 where the EXTERNAL CameraXViewfinder could appear stretched or incorrect due to transformation operations (like scale or translate) being applied too early. The system now waits for the Surface to be created before applying these transformations in the layout phase, ensuring correct output. (Icc77c)

View originalPermalink
How 1.5.0-beta02 went
1.5.0-beta01

Version 1.5.0-beta01

Added 3
  • ContentScale and Alignment can now be used in the viewfinder to scale and place the displayed surface within its container
  • TransformationInfo now has default values for all args, allowing Viewfinders to be created without any TransformationInfo
  • Added LifecycleCameraProvider, which is a camera provider that can be instantiated with different configurations for features such as accessing the camera of a virtual device by configuring with a customized context
Changed 1
  • Projects released with Kotlin 2.0 require KGP 2.0.0 or newer to be consumed
Fixed 4
  • Fixed preview freeze issue when using ImageAnalysis with another stream that uses TEMPLATE_RECORD on Samsung SM-E556B device
  • Fixed preview freeze issue when using ImageAnalysis with another stream that uses TEMPLATE_RECORD on Samsung SM-M556B device
  • Fixed Extensions NIGHT mode AssertError issue on Android 15 Pixel devices when doing zoom related operations
  • Fixed ML Kit Analyzer incorrect bounding box coordinates issue when using CameraController

From CameraX

API Changes Projects released with Kotlin 2.0 require KGP 2.0.0 or newer to be consumed ContentScale and Alignment can now be used in the viewfinder to scale and place the displayed surface within its container, similar to how androidx.compose.foundation.Image behaves. TransformationInfo now has default values for all args. This will allow Viewfinders to be created without any TransformationInfo, which will default to a source rotation of 0, no source mirroring, and no crop rect. Added LifecycleCameraProvider, which is a camera provider that can be instantiated with different configurations for features such as accessing the camera of a virtual device by configuring with a customized context. Bug Fixes Fixed preview freeze issue when using ImageAnalysis with another stream that uses TEMPLATE_RECORD on Samsung SM-E556B device. Fixed preview freeze issue when using ImageAnalysis with another stream that uses TEMPLATE_RECORD on Samsung SM-M556B device. Fixed Extensions NIGHT mode AssertError issue on Android 15 Pixel devices when doing zoom related operations. Fix ML Kit Analyzer incorrect bounding box coordinates issue when using CameraController.

View originalPermalink
How 1.5.0-beta01 went
1.4.2

Version 1.4.2

Fixed 1
  • Preview freeze issue when using ImageAnalysis with another stream that uses TEMPLATE_RECORD on Samsung Galaxy M55

From CameraX

Fixed preview freeze issue when using ImageAnalysis with another stream that uses TEMPLATE_RECORD on Samsung Galaxy M55. ( Ic1a6a, b/395822788)

View originalPermalink
How 1.4.2 went
1.5.0-alpha06

Version 1.5.0-alpha06

Added 5
  • Add CameraInfo.getTorchStrengthLevel, CameraInfo.getMaxTorchStrengthLevel and CameraControl.setTorchStrengthLevel to allow customizing the torch brightness
  • Add CameraController#setTapToFocusAutoCancelDuration API to control the auto-cancellation behavior for PreviewView tap-to-focus events
  • Expose Low Light Boost API for devices running Android 15 or higher, including CameraInfo#isLowLightBoostSupported, CameraControl#enableLowLightBoostAsync, and CameraInfo#getLowLightBoostState
  • Add compat classes to allow faster non-camera2 querying in camera-feature-combination-query
  • Add getTapToFocusInfoState() API for CameraController tap-to-focus events that exposes the corresponding tap position by returning a LiveData of TapToFocusInfo class
Changed 1
  • Rename FLASH_STATE_READY to NOT_FIRED and simplify other FlashState constant names for better readability
Fixed 4
  • Fix preview stabilization not being applied when preview stabilization is enabled with Extensions
  • Fix CameraController focus state event not resetting back to TAP_TO_FOCUS_NOT_STARTED when CameraX auto-cancels a focus event
  • Fix preview freeze when using Zero Shutter Lag (ZSL) after multiple captures due to unreleased image resources
  • Fix UHD videos showing red tint on some devices when pipeline involves OpenGL
Deprecated 1
  • Deprecate getTapToFocusState() API in favor of the new getTapToFocusInfoState() API

From CameraX

API Changes Added CameraInfo.getTorchStrengthLevel, CameraInfo.getMaxTorchStrengthLevel and CameraControl.setTorchStrengthLevel to allow customizing the torch brightness A new API CameraController#setTapToFocusAutoCancelDuration has been added so that users can control the auto-cancellation behavior for PreviewView tap-to-focus events. By default, CameraX cancels the focus events after 5 seconds (i.e. camera focus is reset) and this API allows to modify that duration or disable auto-cancellation altogether. FLASH_STATE_READY has been renamed to NOT_FIRED and the other FlashState constant names are simplified for better readability. Exposed Low Light Boost API. Devices running Android 15 or higher can provide support for low-light boost. This feature can automatically adjust the brightness of the preview, video or image analysis streams in low-light conditions. Applications can use the new API to: 1. Use CameraInfo#isLowLightBoostSupported to check the feature availability. 2. Use CameraControl#enableLowLightBoostAsync to enable the mode when the devices can support it. 3. Use CameraInfo#getLowLightBoostState to monitor the low-light boost state. Add compat classes to allow faster non-camera2 querying in camera-feature-combination-query. For CameraController tap-to-focus events, a new API getTapToFocusInfoState() now exposes the corresponding tap position too by returning a LiveData of TapToFocusInfo class while the previous LiveData returning getTapToFocusState() API is deprecated in favor of the new API. Bug Fixes Fixed the issue that preview stabilization is not applied when preview stabilization is enabled with Extensions. Fixed CameraController focus state event not resetting back to TAP_TO_FOCUS_NOT_STARTED when CameraX auto-cancels a focus event which happens after 5 seconds by default. Fixed preview freeze when using Zero Shutter Lag (ZSL) after multiple captures due to unreleased image resources. Fixed issues that on some devices UHD videos are red tint when pipeline involves OpenGL.

View originalPermalink
How 1.5.0-alpha06 went
1.5.0-alpha05

Version 1.5.0-alpha05

Added 3
  • Add VideoCapture.getSelectedQuality() to know the selected Quality based on the QualitySelector
  • ImageInfo.getFlashState() API to know whether flash was fired when an image capture is invoked with ImageCapture.OnImageCapturedCallback
  • OUTPUT_IMAGE_FORMAT_NV21 output format support for ImageAnalysis
Changed 3
  • Adjust the zoom ratio range allowed for CameraControl by Extensions-specific characteristics when an extensions mode is enabled
  • Upgrade compileSdk to 35 for using Android 15 related API
  • This library now uses JSpecify nullness annotations, which are type-use
Removed 1
  • Remove the experimental annotation of the featurecombinationquery artifact

From CameraX

API Changes Add VideoCapture.getSelectedQuality() to know the selected Quality based on the QualitySelector. When an image capture is invoked with the ImageCapture.OnImageCapturedCallback API, the ImageInfo at the returned ImageProxy can now be used to know whether flash was fired through the new ImageInfo.getFlashState() API. Added OUTPUT_IMAGE_FORMAT_NV21 output format support for ImageAnalysis. Remove the experimental annotation of the featurecombinationquery artifact Adjust the zoom ratio range allowed for CameraControl by Extensions-specific characteristics when an extensions mode is enabled. Bug Fixes Upgraded compileSdk as 35 for using Android 15 related API. Apps using CameraX libraries will also need to upgrade their compileSdk config setting. This library now uses JSpecify nullness annotations, which are type-use. Kotlin developers should use the following compiler argument to enforce correct usage: -Xjspecify-annotations=strict (this is the default starting with version 2.1.0 of the Kotlin compiler).

View originalPermalink
How 1.5.0-alpha05 went
1.5.0-alpha04

Version 1.5.0-alpha04

Added 4
  • Expose ImageCapture.Builder#setOutputFormat and ImageCaptureCapabilities#getSupportedOutputFormats as stable APIs
  • Add VideoCapture.getResolutionInfo() to get the resolution information when a VideoCapture is bound to a Lifecycle
  • Expose PreviewView.getScreenFlash and PreviewView.setScreenFlashOverlayColor as stable APIs
  • Enable UltraHDR still image capture support for Extensions if the device can support it
Fixed 5
  • Fix capture failure issue on Vivo 1610 device while taking picture with flash in the dark
  • Fix torch unexpectedly turning off after image capture in Redmi Note 6 Pro
  • Fix issue on Pixel Android 15 devices where NIGHT mode in Extensions failed to capture still images until the camera focused on a nearby object
  • Fix still image capture malfunction issue when extensions are enabled and VideoCapture is bound together
  • Fix flash timing issue for flash capture with CameraEffect targeting image captures on TCL devices

From CameraX

API Changes Exposed ImageCapture.Builder#setOutputFormat and ImageCaptureCapabilities#getSupportedOutputFormats as stable APIs Add VideoCapture.getResolutionInfo() to get the resolution information when a VideoCapture is bound to a Lifecycle. Exposed PreviewView.getScreenFlash and PreviewView.setScreenFlashOverlayColor as stable APIs. Bug Fixes Fixed capture failure issue on Vivo 1610 device while taking picture with flash in the dark. Fixed torch unexpectedly turning off after image capture in Redmi Note 6 Pro. Fixed an issue on Pixel Android 15 devices where NIGHT mode in Extensions failed to capture still images until the camera focused on a nearby object. Fixed the still image capture malfunction issue when extensions are enabled and VideoCapture is bound together. Enabled UltraHDR still image capture support for Extensions if the device can support it. Fixed flash timing issue for flash capture with CameraEffect targeting image captures on TCL devices.

View originalPermalink
How 1.5.0-alpha04 went
1.4.1

Version 1.4.1

Fixed 2
  • NIGHT mode in Extensions no longer fails to capture still images on Pixel Android 15 devices until the camera focuses on a nearby object
  • ImageCapture#takePicture malfunction when extensions are enabled and VideoCapture is bound together

From CameraX

Fixed an issue on Pixel Android 15 devices where NIGHT mode in Extensions failed to capture still images until the camera focused on a nearby object. ( I228d4) Fixed the ImageCapture#takePicture malfunction issue when extensions are enabled and VideoCapture is bound together. ( I5c745)

View originalPermalink
How 1.4.1 went
1.4.0

Version 1.4.0

Added 10
  • Support for capturing HDR photos and videos with HLG and 10-bit HEVC encoding
  • 10-bit HDR preview and ability to query device capabilities for HDR support
  • Support for UltraHDR images and HDR video on compatible devices
  • takePicture and awaitInstance suspend functions in Kotlin Extensions
  • Real-time effects capability to apply watermarks and object highlighting
  • New controls in CameraController API for video capture configuration
Changed 2
  • VideoCapture now provides finer control over quality and access to higher resolutions
  • CameraX Extensions now seamlessly integrate with VideoCapture and new ImageCapture features

From CameraX

Capture stunning HDR photos and videos with ease. Supports HLG and 10-bit HEVC encoding. Enjoy 10-bit HDR preview and query device capabilities. Works with UltraHDR images and HDR video on a growing range of devices. Kotlin Extensions: Added takePicture and awaitInstance suspend functions. Real-time Effects: Apply effects like watermarks and object highlighting. CameraController API: New controls for video capture configuration. Preview Stabilization: Query device capability and enable stabilization. VideoCapture Enhancements: Finer control over quality and access to higher resolutions. CameraX Extensions Integration: Seamless integration with VideoCapture and new ImageCapture features. Shutter Sound API: Easily check regional shutter sound requirements. Screen Flash: Improved low-light photos for front-facing cameras. Camera Extensions Metadata APIs: Supporting APIs for adjusting extensions strength and get notification of current Extensions mode in ExtensionMode#AUTO.

View originalPermalink
How 1.4.0 went
1.5.0-alpha03

Version 1.5.0-alpha03

Added 3
  • Add output format APIs for RAW and RAW + JPEG ImageCapture with OUTPUT_FORMAT_RAW to capture RAW images in Adobe DNG format and OUTPUT_FORMAT_RAW_JPEG to simultaneously capture RAW and JPEG images
  • Expose device capability check in ImageCaptureCapabilities#getSupportedOutputFormats
  • Add new ImageCapture#takePicture API for simultaneous image capture that requires two OutputFileOptions, the first for RAW image and the second for JPEG image
Fixed 3
  • Fix preview and video under-exposure issue on TCL devices when VideoCapture is enabled
  • Fix incorrect sensor coordinates when invoking startFocusMetering with PreviewView.getMeteringPointFactory when an effect is enabled or when 4 use cases are bound
  • Fix VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE event not being triggered when recording a video with insufficient storage space available

From CameraX

API Changes Add output format APIs for RAW and RAW + JPEG ImageCapture, the device capability check is exposed in ImageCaptureCapabilities#getSupportedOutputFormats. The OUTPUT_FORMAT_RAW is to capture RAW image, which is Adobe DNG format and OUTPUT_FORMAT_RAW_JPEG is to simultaneously capture RAW and JPEG images. The new ImageCapture#takePicture API is used for simultaneous image capture, it needs to provide two OutputFileOptions, the first one is for RAW image and the second one is for JPEG image. Bug Fixes Fixed preview and video under-exposure issue on TCL devices when VideoCapture is enabled. Fixed the issue where invoking startFocusMetering with PreviewView.getMeteringPointFactory doesn't get the correct sensor coordinates when an effect is enabled or when 4 use cases are bound (stream-sharing). Fixed the VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE event is not triggered when recording a video and there is insufficient storage space available.

View originalPermalink
How 1.5.0-alpha03 went
1.4.0-rc04

Version 1.4.0-rc04

Fixed 1
  • Fixed the issue where invoking startFocusMetering with PreviewView.getMeteringPointFactory does not get the correct sensor coordinates when an effect is enabled or when 4 use cases are bound

From CameraX

Fixed the issue where invoking startFocusMetering with PreviewView.getMeteringPointFactory doesn't get the correct sensor coordinates when an effect is enabled or when 4 use cases are bound (stream-sharing). ( I916c5, b/345993685)

View originalPermalink
How 1.4.0-rc04 went
1.5.0-alpha02

Version 1.5.0-alpha02

Added 2
  • New APIs for querying camera features supported by the device, such as checking if HDR and 60FPS can be enabled at the same time, available in camera-feature-combination-query and camera-feature-combination-query-play-services artifacts
  • Added flash, torch, and 3A functionalities for image captures with CameraEffect to match the pre-capture and post-capture processings of image capture without CameraEffect
Changed 1
  • Disabled extensions for Samsung A52s' back camera with ID 0 to prevent native crashes during HDR image capture and configuration failures for BOKEH or FACE_RETOUCH modes
Fixed 6
  • Fixed Preview/VideoCapture target frame rate issue on LEGACY level devices where the target frame rate set via setTargetFrameRate or Camera2Interop API was being overwritten
  • Excluded problematic output sizes for ImageAnalysis on Samsung SM-A057G device to prevent black preview issue when using resolutions larger or equal to 1920x1440
  • Fixed Preview/VideoCapture target frame rate issue when stream sharing mechanism is enabled internally to share a stream to Preview and VideoCapture
  • Enabled workaround to fix incorrect JPEG image metadata issue on Samsung S10e and S10+ devices
  • Fixed VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE event not being triggered when recording a video with insufficient storage space available
  • Fixed issue where second video recording attempt fails on Oppo A5 (CPH1931)

From CameraX

New Features New APIs for querying camera features supported by the device. For example, checking if HDR and 60FPS can be enabled at the same time. It includes 2 artifacts: camera-feature-combination-query and camera-feature-combination-query-play-services. This is a compatible version of camera2's CameraManager#getCameraDeviceSetup#isSessionConfigurationSupported API with additional data provided by Google Play Service. Bug Fixes Fixed Preview/VideoCapture target frame rate issue on LEGACY level devices. The target frame rate set via the setTargetFrameRate or Camera2Interop API was always overwritten to the value provided by the AeFpsRangeLegacyQuirk. With this fix, CameraX library will respect the value set via the setTargetFrameRate or Camera2Interop API. Added flash/torch/3A functionalities for image captures with CameraEffect. The image captures with CameraEffect should now have the same pre-capture and post-capture processings (e.g. flash trigger, 3A convergence etc. when applicable) as image capture without any CameraEffect. Excluded problematic output sizes for ImageAnalysis on Samsung SM-A057G device. When ImageAnalysis uses a resolution larger or equal to 1920x1440, it will cause black preview issue. Applied ExcludedSupportedSizesQuirk to the SM-A057G device to avoid the issue. Fixed Preview/VideoCapture target frame rate issue when stream sharing mechanism is enabled internally to share a stream to Preview and VideoCapture. Enabled the workaround to fix the incorrect JPEG image metadata issue on Samsung S10e and S10+ devices. With the fix, CameraX can successfully save the JPEG image, or correct Bitmap objects can be returned when calling the ImageProxy.toBitmap() function on these devices if the incorrect JPEG image metadata issue happens. Disabled extensions for Samsung A52s' back camera whose id is 0, because native crashes might happen when capturing HDR images and configuring capture sessions might fail for the BOKEH or FACE_RETOUCH modes. Fixed the VideoRecordEvent.Finalize.ERROR_INSUFFICIENT_STORAGE event is not triggered when recording a video and there is insufficient storage space available. Fixed issue where second video recording attempt fails on Oppo A5 (CPH1931).

View originalPermalink
How 1.5.0-alpha02 went
1.4.0-rc03

Version 1.4.0-rc03

Added 1
  • Flash, torch, and 3A functionalities for image captures with CameraEffect
Changed 3
  • Image captures with CameraEffect now have the same pre-capture and post-capture processings as image capture without CameraEffect
  • Optimized pinch-to-zoom smoothness in PreviewView
  • Decoupled Ultra HDR from 10-bit output capability so Ultra HDR support no longer requires devices to have 10-bit output capability

From CameraX

Added flash/torch/3A functionalities for image captures with CameraEffect. The image captures with CameraEffect should now have the same pre-capture and post-capture processings (e.g. flash trigger, 3A convergence etc. when applicable) as image capture without any CameraEffect. ( I5ff30) Optimized the pinch-to-zoom smoothness in PreviewView ( I04ffc) Decouple Ultra HDR from 10-bit output capability, as Ultra HDR support no longer requires devices to have 10-bit output capability. ( I96ff2, I0c3b3)

View originalPermalink
How 1.4.0-rc03 went
1.4.0-rc02

Version 1.4.0-rc02

Added 1
  • Added visibility animation in ScreenFlashView for ScreenFlash#apply
Changed 1
  • Improved zooming smoothness by overriding zoom settings in the framework on supported devices
Fixed 2
  • Fixed the crash when bindToLifecycle is invoked with a destroyed LifecycleOwner
  • Fixed bugs due to brightness change completing asynchronously after some time

From CameraX

Fixed the crash when bindToLifecycle is invoked with a destroyed LifecycleOwner. ( I6e6d8) Added visibility animation in ScreenFlashView for ScreenFlash#apply which also fixes bugs due to brightness change completing asynchronously after some time. ( I37cdb) Improved zooming smoothness by overriding zoom settings in the framework on supported devices.

View originalPermalink
How 1.4.0-rc02 went
1.5.0-alpha01

Version 1.5.0-alpha01

Added 1
  • New camera-compose artifact released for the CameraX Viewfinder Compose Adapter which displays a Preview stream from a CameraX SurfaceRequest from camera-core

From CameraX

New Features A new artifact, camera-compose is released for the CameraX Viewfinder Compose Adapter which displays a Preview stream from a CameraX SurfaceRequest from camera-core.

View originalPermalink
How 1.5.0-alpha01 went
1.4.0-rc01

Version 1.4.0-rc01

Added 2
  • Added experimental CameraInfo.getCameraInfo to provide specific camera information without the need of binding use cases to the camera
  • Added PreviewView.getScreenFlash and PreviewView.setScreenFlashOverlayColor APIs for cases where ScreenFlashView is not explicitly added
Fixed 4
  • Fixed exposure and color tint issues when image captured with flash enabled under low light with VideoCapture use case bound
  • Fixed the issue that interrupting a takePicture request with Extensions enabled could fail to get result and the next takePicture request might no longer work
  • Fixed a memory leakage issue that happens when Extensions are enabled
  • Resolved a CameraX extensions malfunction on devices like Pixel 7/8 and Samsung Galaxy S24 series caused by a Camera2OutputConfigImpl conversion problem in release mode after upgrading AGP to 8.5.1 and enabling minification

From CameraX

Added experimental CameraInfo.getCameraInfo to provide specific camera information without the need of binding use cases to the camera. ( I550d1) Added PreviewView.getScreenFlash and PreviewView.setScreenFlashOverlayColor APIs for cases where ScreenFlashView is not explicitly added. ( I43945) Fixed exposure and color tint issues when image captured with flash enabled under low light with VideoCapture use case bound. ( Ic9814) Fix the issue that interrupting a takePicture request with Extensions enabled could fail to get result and the next takePicture request might no longer work. ( Iae78f) Fixed a memory leakage issue that happens when Extensions are enabled. ( Iab276) Resolved a CameraX extensions malfunction on devices like Pixel 7/8 and Samsung Galaxy S24 series. The issue, stemming from a Camera2OutputConfigImpl conversion problem in release mode, surfaced after upgrading AGP to 8.5.1 and enabling minification. ( I99598, b/354824993)

View originalPermalink
How 1.4.0-rc01 went
1.4.0-beta02

Version 1.4.0-beta02

Added 1
  • Add setMirrorMode for Preview use case to support mirror mode ON and OFF for Preview stream via OutputConfiguration.setMirrorMode on API 33 and above
Fixed 2
  • Fix issue where apps cannot take pictures successfully on Samsung Tab A8 when ImageCapture selects 1920x1080 under Preview + VideoCapture + ImageCapture UseCase combination
  • Fix persistent recording failing to continue recording after switching camera

From CameraX

Similar to VideoCapture, add setMirrorMode for Preview use case. It will support mirror mode ON and OFF for Preview stream via OutputConfiguration.setMirrorMode from API 33 and above, for older APIs, it will be no-op. ( I821f4) Fixed the issue that apps can't take pictures successfully on Samsung Tab A8 when ImageCapture selects 1920x1080 under Preview + VideoCapture + ImageCapture UseCase combination. ( I5a463, b/336925549) Fixed persistent recording may fail to continue recording after switching camera. ( Icb0a1)

View originalPermalink
How 1.4.0-beta02 went
1.4.0-alpha06

Camera Viewfinder Version 1.4

Added 2
  • Add fixed constants for TransformationInfo.sourceRotation
  • Add ZoomGestureDetector.ZoomEvent to encapsulate the states of a zoom gesture
Changed 1
  • Rename Viewfinder's ImplementationMode Enums to better reflect underlying implementations

From CameraX

Rename Viewfinder's ImplementationMode Enums to better reflect underlying implementations, and add fixed constants for TransformationInfo.sourceRotation. Added ZoomGestureDetector.ZoomEvent to encapsulates the states of a zoom gesture.

View originalPermalink
How 1.4.0-alpha06 went
1.4.0-beta01

Version 1.4.0-beta01

Added 1
  • Add ZoomGestureDetector.ZoomEvent to encapsulate the states of a zoom gesture
Changed 1
  • Support virtual devices by preserving the device ID in Context passed into ProcessCameraProvider to ensure functionality in a virtual device environment
Fixed 3
  • Fix a bug where still capture and tap-to-focus do not use the repeating request FPS/stabilization mode values which may recreate capture session and cause latency issues or Preview freeze in some devices
  • Fix a bug where high resolutions cannot be selected when CameraEffect is enabled on some devices
  • Fix a crash when taking picture with Preview, ImageCapture and VideoCapture(UHD) bound on Pixel 4XL API29

From CameraX

Added ZoomGestureDetector.ZoomEvent to encapsulates the states of a zoom gesture. ( I84cdf) Fixed a bug that still capture and tap-to-focus do not use the repeating request FPS/stabilization mode values which may recreate capture session and cause latency issues or Preview freeze in some devices. ( I7dc0b) Fixed a bug where High Resolutions can not be selected when CameraEffect is enabled on some devices. (e.g. 4000x3000 on Samsung A32 5G). ( Ie3ed3, b/337336152) Fixed a crash when taking picture with Preview, ImageCapture and VideoCapture(UHD) are bound on Pixel 4XL API29. ( I5b288) Support virtual devices: Context passed into ProcessCameraProvider will preserve the device ID to ensure the functionality in a virtual device environment. ( I5ba48)

View originalPermalink
How 1.4.0-beta01 went
1.0.0-alpha01

Camera Viewfinder Compose Version 1.0

Added 3
  • Introduce a Compose native Viewfinder composable for use with CameraX and Camera2
  • Viewfinder composable supports different aspect ratios
  • Viewfinder composable supports handling of touch events

From CameraX

New library. This library introduces a Compose native Viewfinder composable, that can be used with CameraX and Camera2. The composable Viewfinder supports different aspect ratios, and handling of touch events.

View originalPermalink
How 1.0.0-alpha01 went
1.4.0-alpha05

Version 1.4.0-alpha05

Added 11
  • Add ImageCapture.takePicture suspend functions to allow it to be called in a Kotlin-idiomatic way
  • Add output format APIs to ImageCapture and getSupportedOutputFormats method to ImageCaptureCapabilities, with support for OUTPUT_FORMAT_JPEG and OUTPUT_FORMAT_JPEG_ULTRA_HDR for capturing Ultra HDR compressed images using JPEG/R image format
  • Add PhysicalCameraInfo in CameraInfo to query physical camera information and add physical camera id setter/getter in CameraSelector
  • Add RetryPolicy API to customize retry behavior for CameraX initialization
  • Enable creation of ImageCaptureLatencyEstimate object to assist with testability
  • Add ImageAnalysis#COORDINATE_SYSTEM_SENSOR so that MlKitAnalyzer returns coordinates in the camera sensor coordinate system
Changed 3
  • Convert ProcessCameraProvider into Kotlin implementation
  • Replace CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED with ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED
  • Make camera-viewfinder-core API more generic so it can be used by camera-viewfinder and camera-viewfinder-compose
Deprecated 1
  • Deprecate ViewfinderSurfaceRequest and CameraViewfinder in favor of using camera-viewfinder-core

From CameraX

Converted ProcessCameraProvider into Kotlin implementation. ( I46d4f) Added ImageCapture.takePicture suspend functions to allow it to be called in a Kotlin-idiomatic way. ( I920be) Add output format APIs to ImageCapture, and add getSupportedOutputFormats method to ImageCaptureCapabilities for querying device capability. The default output format value is OUTPUT_FORMAT_JPEG, which captures SDR images in JPEG format. When the device supports Ultra HDR and the output format is set to OUTPUT_FORMAT_JPEG_ULTRA_HDR, CameraX will capture Ultra HDR compressed images using the JPEG/R image format. The format is backwards compatible with SDR JPEG format and supports HDR rendering of content. This means that on older apps or devices, images appear seamlessly as regular JPEG; on apps and devices that have been updated to fully support the format, images appear as HDR. ( I5de50) Add PhysicalCameraInfo in CameraInfo to query physical camera information and add physical camera id setter/getter in CameraSelector ( Ic5b90) Replace CameraController#COORDINATE_SYSTEM_VIEW_REFERENCED with ImageAnalysis#COORDINATE_SYSTEM_VIEW_REFERENCED. The value of the constant remains the same. This is for consolidating all the constants into one place. ( I890bb) New RetryPolicy API empowers developers to customize retry behavior for CameraX initialization. ( I36dd2) Enable creation of ImageCaptureLatencyEstimate object to assist with testability ( Iaba99) Add a ImageAnalysis#COORDINATE_SYSTEM_SENSOR. When this is used, the MlKitAnalyzer returns coordinates in the camera sensor coordinate system. ( I3ec61) Exposed extensions metadata API. New CameraExtensionsInfo and CameraExtensionsControl interfaces allow applications to monitor and adjust extension strength settings. Applications can obtain the CameraExtensionsInfo or CameraExtensionsControl instance via the newly added ExtensionsManager#getCameraExtensionsInfo() or ExtensionsManager#getCameraExtensionsControl() methods. ( I28e1a) Added ProcessCameraProvider.awaitInstance which is a suspending version of ProcessCameraProvider.getInstance ( Ib22b9) Add a PreviewView#getSensorToViewTransform() API. The Matrix represents the transformation from camera sensor coordinates to the PreviewView's coordinates. This can be used to transform coordinates from one UseCase to another. For example, transforming the coordinates of detected objects in ImageAnalysis to PreviewView overlay. ( I947ab) Make camera-viewfinder-core API more generic so it can be used by camera-viewfinder and camera-viewfinder-compose. ( I1e295) Add getSurface function to ViewfinderSurfaceRequest. ( I781a0) Use camera-viewfinder-core in camera-viewfinder and deprecate ViewfinderSurfaceRequest and CameraViewfinder. ( I6198c) Added ZoomGestureDetector that interprets scaling gestures specifically configured for pinch-to-zoom activity. ( Ifafbf)

View originalPermalink
How 1.4.0-alpha05 went
1.4.0-alpha04

Version 1.4.0-alpha04

Added 5
  • Add camera-effects library for applying real time effects to CameraX output, including Preview, VideoCapture and ImageCapture, with OpenGL implementations of the CameraEffect API
  • Add OverlayEffect for drawing overlays with Android's Canvas API to apply watermarks or highlight detected objects on camera outputs
  • Add dynamic range APIs for the Preview Use Case to set dynamic range independently of the Video Use Case, enabling HDR dynamic ranges such as HLG10 for Preview alone
  • Add new APIs in CameraInfo to query which dynamic ranges each camera supports
  • Add realtime still capture latency estimate support in CameraX through Camera extensions to provide an estimate of how long a capture will take
Changed 4
  • Rename ScreenFlashUiCompleter to ScreenFlashListener and move ScreenFlashUiCompleter#getExpirationTimeMillis to expirationTimeMillis parameter of ScreenFlash#apply
  • Rename getMirroring() to isMirroring()
  • Rename ScreenFlashUiControl to ScreenFlash, ScreenFlashUiControl#applyScreenFlashUi to ScreenFlash#apply, ScreenFlashUiControl#clearScreenFlashUi to ScreenFlash#clear
  • Add getScreenFlashUiApplyTimeoutSeconds method instead of exposing SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS directly
Fixed 6
  • Fix memory leakage that results in activities or fragments not being released when Extensions are enabled
  • Fix getZoomRatio incorrectly returning a decreased value when applying an increasing zoom ratio
  • Fix ImageCapture#ScreenFlash#clear event to be invoked immediately when ImageCapture is unbound or camera is closed
  • Fix crash that happens when lifecycle is stopped before takePicture request is completed
  • Fix camera preview becoming black when Extensions are enabled on some devices
  • Fix incorrect duration of video recording on devices using the Snapdragon 778G SoC

From CameraX

New artifact: camera-effects: A library for applying real time effects to CameraX output, including Preview, VideoCapture and/or ImageCapture. This artifact contains OpenGL implementations of the CameraEffect API that manipulates the camera output efficiently. OverlayEffect: for drawing overlays with Android's Canvas API. This allows the app to apply a watermark or highlight detected objects on camera outputs. Dynamic Range APIs for the Preview Use Case: The dynamic range can now be set on the Preview Use Case, independently of the Video Use Case. This allows HDR dynamic ranges such as HLG10 for Preview alone. New APIs are also available in CameraInfo to query which dynamic ranges each camera supports. Renamed ScreenFlashUiCompleter to ScreenFlashListener and moved ScreenFlashUiCompleter#getExpirationTimeMillis to expirationTimeMillis parameter of ScreenFlash#apply. (I13944) New APIs added to allow dynamic range to be set on Preview use case, and to query dynamic ranges supported by each camera. This allows HDR dynamic ranges, such as HLG10, to be used with the Preview use case alone, no longer requiring a VideoCapture to be bound at the same time. (If25e3) Renamed getMirroring() to isMirroring() (I47063) Added Realtime still capture latency estimate support in CameraX. Camera extensions enable applications to use an API that provides an estimate of how long a capture will take. The estimate takes into account the current environment conditions, the camera state and includes the time spent processing multi-frame capture requests along with any additional time for encoding processed buffers if necessary. (I05c3a) Renamed ScreenFlashUiControl to ScreenFlash, ScreenFlashUiControl#applyScreenFlashUi to ScreenFlash#apply, ScreenFlashUiControl#clearScreenFlashUi to ScreenFlash#clear, and added getScreenFlashUiApplyTimeoutSeconds method instead of exposing SCREEN_FLASH_UI_APPLY_TIMEOUT_SECONDS directly. (Iccdd0) Fixed a memory leakage that results in activities or fragments not being released when Extensions are enabled (I14215) Fixed the issue where getZoomRatio incorrectly returned a decreased value when applying an increasing zoom ratio. (I4aa0d, b/317543616) ImageCapture#ScreenFlash#clear event is invoked immediately when ImageCapture is unbound or camera is closed, also fixes some bugs where it is never invoked due to captures in these scenarios not completing properly. (If99f9) Fixed the crash that happens when lifecycle is stopped before takePicture request is completed (Idf017, b/306202751) Fixed the issue where camera preview becomes black when Extensions are enabled on some devices (I1ffd0) Fixed incorrect duration of video recording on devices using the Snapdragon 778G SoC. (If6aa7, b/316057919)

View originalPermalink
How 1.4.0-alpha04 went
1.4.0-alpha03

Version 1.4.0-alpha03

Added 8
  • CameraInfo.mustPlayShutterSound to provide information about whether a shutter sound must be played in accordance with regional restrictions
  • OnImageCapturedCallback.onCaptureStarted and OnImageSavedCallback.onCaptureStarted callbacks for notifying when the camera has started exposing a frame
  • Screen Flash feature support in CameraX for front camera image capture with framework-side API handling and timing synchronization with application UI changes
  • Screen Flash feature UI-side implementation support through ImageCapture.ScreenFlashUiControl interface, with basic implementations available from PreviewView or the newly added ScreenFlashView
  • ImageCapture#getImageCaptureCapabilities() API for apps to query capabilities of postview and capture process progress callback
  • ImageCapture.Builder#setPostviewEnabled() to enable postview feature
  • ImageCapture.Builder#setPostviewResolutionSelector() to select postview size
  • onPostviewBitmapAvailable and onCaptureProcessProgressed callbacks in OnImageSavedCallback and OnImageCapturedCallback to receive postview and process progress notifications

From CameraX

Added CameraInfo.mustPlayShutterSound to provide the information of whether a shutter sound must be played in accordance to regional restrictions. (Ifda84) Added OnImageCapturedCallback.onCaptureStarted and OnImageSavedCallback.onCaptureStarted for notifying when the camera has started exposing a frame. It's recommended to play the shutter sound or the shutter animation at this point. (Ic49b3) Added Screen Flash feature support in CameraX for front camera image capture. CameraX will take care of the framework-side API handling and sync the timing with application's UI changes as required (e.g. AE precapture trigger after app screen color/brightness change). Apps will only need to add their UI side implementations in the ScreenFlashUiControl interface provided to CameraX. (I8ae84) Added Screen Flash feature UI-side implementation support in CameraX. Apps will be able to get a basic ImageCapture.ScreenFlashUiControl implementation from PreviewView or the newly added ScreenFlashView which will add a mono-color overlay view and maximize screen brightness during screen flash photo capture. (I1810e) Supports new Extensions features(postview and capture process progress): Added ImageCapture#getImageCaptureCapabilities() APIs for apps to query the capabilities of the postview and capture process progress callback. Apps can enable the postview using the ImageCapture.Builder#setPostviewEnabled(). The postview size can be selected using ImageCapture.Builder#setPostviewResolutionSelector(). When invoking takePicture(), onPostviewBitmapAvailable and onCaptureProcessProgressed can be implemented in OnImageSavedCallback or OnImageCapturedCallback to get the postview and process progress notification if supported. (I5cd88)

View originalPermalink
How 1.4.0-alpha03 went
1.4.0-alpha02

Version 1.4.0-alpha02

Added 3
  • Add APIs to query the device capability and enable video/preview stabilization
  • Provide API to customize the camera open retrying max timeout time
  • Release ProcessCameraProvider.shutdownAsync as a public testing API to allow process camera provider to be used in test suites which may need to initialize CameraX in different ways
Changed 1
  • Rename the API to setCameraOpenRetryMaxTimeoutInMillisWhileResuming and rename the argument

From CameraX

Rename the API to setCameraOpenRetryMaxTimeoutInMillisWhileResuming and rename the argument. Adding APIs to query the device capability and enable video/preview stabilization. Provide API to customize the camera open retrying max timeout time. Released ProcessCameraProvider.shutdownAsync as a public testing API to allow process camera provider to be used in test suites which may need to initialize CameraX in different ways

View originalPermalink
How 1.4.0-alpha02 went
View all

Discussion