# CameraX changelog > AndroidX's camera library — a lifecycle-aware API over camera2, plus the Viewfinder artifacts. - Vendor: Google - Category: Frameworks & Libraries - Official site: https://developer.android.com/jetpack/androidx/releases/camera - Tracked by: What's New (https://whatsnew.fyi/product/camerax) - Harvested from: AI extracted - Entries below: 25 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### 1.7.0-alpha02 — Version 1.7 - Date: 2026-07-01 - Version: 1.7.0-alpha02 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.7.0-alpha02 - **added** — CameraXViewfinder now supports built-in gestures for pinch-to-zoom and tap-to-focus - **added** — CameraXViewfinder adds support for screen flash and stream state - **added** — FocusState is now public in viewfinder-core to allow monitoring tap-to-focus results - **added** — Added isAutoRotationEnabled to SessionConfig.Builder, HighSpeedVideoSessionConfig.Builder, and ExtensionSessionConfig.Builder with Kotlin DSL factory functions - **added** — Added TransformationMode property to TransformationInfo to support apps to use OpenGL pipeline in EMBEDDED mode - **added** — Added isNightModeIndicatorSupported() and getNightModeIndicator() to CameraInfo to determine when environment conditions meet criteria for Night Mode - **added** — Exposed ImageAnalysis.OUTPUT_IMAGE_FORMAT_PRIVATE and ImageProxy.getHardwareBuffer() as public API to support GPU based ImageAnalysis - **added** — Added support for visual styling of camera frames during concurrent camera composition with setRoundedCornerRatio(float), setBorderWidthRatio(float), and setBorderColor(int) - **added** — Updated CompositionSettings to enforce non-negative z-order and added validation to ConcurrentCamera.setCompositionSettings - **added** — Added getNightModeIndicator() and isNightModeIndicatorAvailable() to CameraExtensionsInfo - **added** — Added support for QHD video quality in VideoCapture - **added** — Added Recorder.Builder.setTargetAudioChannelCount(int) and Recorder.getTargetAudioChannelCount() - **added** — Added Recorder.Builder.setTargetAudioEncodingBitRate(int) to allow setting a target audio encoding bitrate - **added** — Added ConcurrentCamera.setCompositionSettings API to allow apps to update composition of the current camera dynamically after lifecycle binding - **added** — Added setZOrder API in CompositionSettings.Builder for precise control over rendering order of overlapping camera streams - **added** — Introduced Recorder.getSupportedVideoMimeTypes() and getSupportedAudioMimeTypes() for discovering device-supported formats - **added** — Added Recorder.Builder.setVideoMimeType() and setAudioMimeType() to explicitly configure preferred formats - **added** — Added Recorder.getVideoCapabilities(CameraInfo, String) to query camera-specific capabilities for chosen codec - **added** — Added CameraController.setAutoRotationEnabled(boolean) to allow disabling automatic device rotation listener - **added** — Added AE/AWB locking support in FocusMeteringAction via setLockingMode API - **deprecated** — ExtensionsManager#getExtensionEnabledCameraSelector is now deprecated, use ExtensionSessionConfig API instead - **removed** — Remove requirement for compileSdk 37 - **fixed** — Fixed CameraXViewfinder transformation issues in EMBEDDED mode when OpenGL pipeline is enabled - **fixed** — Fixed compilation error Cannot access class 'ListenableFuture' - **changed** — Updated Compose compileSdk to API 37, requiring minimum AGP version of 9.2.0 when using Compose 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. Remove requirement for compileSdk 37 Fixed CameraXViewfinder transformation issues in EMBEDDED mode when OpenGL pipeline is enabled by CameraX for binding more UseCases or surface processing. Updated tests and activities to use ExtensionSessionConfig instead of the deprecated getExtensionEnabledCameraSelector API. Fixed a compilation error "Cannot access class 'ListenableFuture'". Updated Compose compileSdk to API 37. This means that a minimum AGP version of 9.2.0 is required when using Compose. ### 1.6.1 — Camera Version 1.6 - Date: 2026-05-06 - Version: 1.6.1 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.6.1 - **fixed** — Fixed a compilation error "Cannot access class ListenableFuture" when using CameraX 1.6.0 Fixed a compilation error "Cannot access class ListenableFuture" when using CameraX 1.6.0. ### 1.6.0 — Camera Version 1.6 - Date: 2026-03-25 - Version: 1.6.0 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.6.0 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. ### 1.7.0-alpha01 — Version 1.7 - Date: 2026-03-11 - Version: 1.7.0-alpha01 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.7.0-alpha01 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. 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 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. ### 1.6.0-rc01 — Version 1.6.0-rc01 - Date: 2026-02-25 - Version: 1.6.0-rc01 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.6.0-rc01 ### 1.6.0-beta02 — Version 1.6.0-beta02 - Date: 2026-02-11 - Version: 1.6.0-beta02 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.6.0-beta02 Fixed ImageCapture OUTPUT_FORMAT_RAW_JPEG in-memory capture IllegalArgumentException issue. 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. ### 1.6.0-beta01 — Version 1.6.0-beta01 - Date: 2026-01-28 - Version: 1.6.0-beta01 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.6.0-beta01 Fixed CameraExtensionsInfo current type issue in CameraX 1.6.0-alpha that the LiveData object can't receive the updated type data. 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. ### 1.5.3 — Version 1.5.3 - Date: 2026-01-28 - Version: 1.5.3 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.5.3 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. ### 1.6.0-alpha02 — Version 1.6.0-alpha02 - Date: 2025-12-17 - Version: 1.6.0-alpha02 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.6.0-alpha02 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. 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. Added support for using both the CameraEffect and the feature groups API in SessionConfig. Added support for using both the ImageAnalysis and the feature groups API in SessionConfig. Added addUseCase setter function for ExtensionSessionConfig.Builder and added the lacking getters for ExtensionSessionConfig. Added ExtensionsManager.getInstance API which is a suspending version of ExtensionsManager.getInstanceAsync Renamed isFeatureGroupSupported to isSessionConfigSupported, and make it support any types of SessionConfig. Converted ExtensionsManager into Kotlin implementation. Added CameraProvider#getCameraInfo(CameraSelector, SessionConfig) to retrieve CameraInfo when the SessionConfig can affect camera selection. For example, when using an ExtensionSessionConfig. Exposed ExtensionSessionConfig API. Apps can create an ExtensionSessionConfig and use it to create an extensions session now. The androidx.camera.video.HighSpeedVideoSessionConfig API is no longer experimental and is now a fully stable public API. The androidx.camera.core.SessionConfig API is no longer experimental and is now a fully stable public API. Fixed a crash due to an IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object: on Android 17 or higher. Excluded problematic YUV format output sizes from Samsung Z Fold 4 device. The received images have distortion issue when using those output sizes. Fixed CaptureRequest.FLASH_MODE not being applied when set through the Camera2Interop API. Fixed a device-specific issue on Samsung A53 where image capture with torch enabled would fail sometimes if VideoCapture use case is bound. Fixes an issue on some devices where using the flash with the ultra-wide camera may result in underexposed images. ### 1.5.2 — Version 1.5.2 - Date: 2025-12-04 - Version: 1.5.2 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.5.2 Fixed a crash due to an IllegalArgumentException: Dynamic range profile cannot be converted to a DynamicRange object: on Android 17 or higher. 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. Fixed preferred features not being filtered out despite lacking the required use cases for the features to be supported. ### 1.6.0-alpha01 — Version 1.6.0-alpha01 - Date: 2025-10-22 - Version: 1.6.0-alpha01 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.6.0-alpha01 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. 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. Fixed an issue where unsupported preferred features were incorrectly made available. Features are now correctly filtered when their required use cases are not met. Fixed glitchy video result on Samsung Galaxy S6. 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. ### 1.5.1 — Version 1.5.1 - Date: 2025-10-08 - Version: 1.5.1 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.5.1 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. Fixed the issue where mirrorMode is not applied correctly to the secondary camera in concurrent camera composition mode. Support binding Preview, ImageCapture and VideoCapture together in concurrent camera non-composition mode. 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. 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). Fixed the crash when effect is being activated after SurfaceProcessor is shut down ### 1.5.0 — Version 1.5.0 - Date: 2025-09-10 - Version: 1.5.0 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.5.0 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). ### 1.5.0-rc01 — Version 1.5.0-rc01 - Date: 2025-08-13 - Version: 1.5.0-rc01 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.5.0-rc01 Moving the default minSdk from API 21 to API 23 Removed the 10-bit output restriction for the low-light boost auto-exposure mode. Applications can now simultaneously enable both features on supported devices. 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. Fixed preview black screen when no high-speed frame rate is set for high-speed/slow-motion recording. Improve error handling and logging in getViewportAspectRatioInt ### 1.5.0-beta02 — Version 1.5.0-beta02 - Date: 2025-07-16 - Version: 1.5.0-beta02 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.5.0-beta02 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. 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. 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. Added new APIs to record high-speed/slow-motion video. See HighSpeedVideoSessionConfig API for more details. Fixed ImageCaptureCapabilities#getSupportedOutputFormats() API reporting RAW formats as supported in some devices which doesn't actually have RAW capability. Fixed the memory leak that happens when PreviewView is used, CameraEffect is enabled or binding 4 use cases(StreamSharing) Fixed a video recording crash by AssertionError: Invalid internal audio state: IDLING. Fixed the issue when the app runs in an external display and the device is landscape, the preview in PreviewView becomes stretched or sideway Fixed the issue that Preview Stabilization settings are not correctly applied when the camera stream is sharing between Preview and VideoCapture. 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. 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. Composable CameraXViewfinder now works correctly with Compose's Pager. This change ensures that the Composable can be successfully reset by implementing the onReset callback of AndroidView, supporting both EMBEDDED and EXTERNAL implementations. Fixed a lifecycle owner leak that happens when unbinding use cases from a lifecycle owner without shutting down the camera provider. ### 1.5.0-beta01 — Version 1.5.0-beta01 - Date: 2025-05-07 - Version: 1.5.0-beta01 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.5.0-beta01 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. 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. ### 1.4.2 — Version 1.4.2 - Date: 2025-03-26 - Version: 1.4.2 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.4.2 Fixed preview freeze issue when using ImageAnalysis with another stream that uses TEMPLATE_RECORD on Samsung Galaxy M55. ### 1.5.0-alpha06 — Version 1.5.0-alpha06 - Date: 2025-02-26 - Version: 1.5.0-alpha06 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.5.0-alpha06 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. ### 1.5.0-alpha05 — Version 1.5.0-alpha05 - Date: 2025-01-15 - Version: 1.5.0-alpha05 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.5.0-alpha05 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. 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). ### 1.4.1 — Version 1.4.1 - Date: 2024-12-11 - Version: 1.4.1 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.4.1 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 ImageCapture#takePicture malfunction issue when extensions are enabled and VideoCapture is bound together. ### 1.5.0-alpha04 — Version 1.5.0-alpha04 - Date: 2024-12-11 - Version: 1.5.0-alpha04 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.5.0-alpha04 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. 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. ### 1.5.0-alpha03 — Version 1.5.0-alpha03 - Date: 2024-10-30 - Version: 1.5.0-alpha03 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.5.0-alpha03 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. 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. ### 1.4.0 — Version 1.4.0 - Date: 2024-10-30 - Version: 1.4.0 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.4.0 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. ### 1.4.0-rc04 — Version 1.4.0-rc04 - Date: 2024-10-16 - Version: 1.4.0-rc04 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.4.0-rc04 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). ### 1.5.0-alpha02 — Version 1.5.0-alpha02 - Date: 2024-10-02 - Version: 1.5.0-alpha02 - Original notes: https://developer.android.com/jetpack/androidx/releases/camera - Permalink: https://whatsnew.fyi/product/camerax/releases/1.5.0-alpha02 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. 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).