Version 1.7
- 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
- Added isAutoRotationEnabled to SessionConfig.Builder, HighSpeedVideoSessionConfig.Builder, and ExtensionSessionConfig.Builder with Kotlin DSL factory functions
- Added TransformationMode property to TransformationInfo to support apps to use OpenGL pipeline in EMBEDDED mode
- Added isNightModeIndicatorSupported() and getNightModeIndicator() to CameraInfo to determine when environment conditions meet criteria for Night Mode
- Exposed ImageAnalysis.OUTPUT_IMAGE_FORMAT_PRIVATE and ImageProxy.getHardwareBuffer() as public API to support GPU based ImageAnalysis
- Added support for visual styling of camera frames during concurrent camera composition with setRoundedCornerRatio(float), setBorderWidthRatio(float), and setBorderColor(int)
- Updated CompositionSettings to enforce non-negative z-order and added validation to ConcurrentCamera.setCompositionSettings
- Added getNightModeIndicator() and isNightModeIndicatorAvailable() to CameraExtensionsInfo
- Added support for QHD video quality in VideoCapture
- Added Recorder.Builder.setTargetAudioChannelCount(int) and Recorder.getTargetAudioChannelCount()
- Added Recorder.Builder.setTargetAudioEncodingBitRate(int) to allow setting a target audio encoding bitrate
- Added ConcurrentCamera.setCompositionSettings API to allow apps to update composition of the current camera dynamically after lifecycle binding
- Added setZOrder API in CompositionSettings.Builder for precise control over rendering order of overlapping camera streams
- Introduced Recorder.getSupportedVideoMimeTypes() and getSupportedAudioMimeTypes() for discovering device-supported formats
- Added Recorder.Builder.setVideoMimeType() and setAudioMimeType() to explicitly configure preferred formats
- Added Recorder.getVideoCapabilities(CameraInfo, String) to query camera-specific capabilities for chosen codec
- Added CameraController.setAutoRotationEnabled(boolean) to allow disabling automatic device rotation listener
- Added AE/AWB locking support in FocusMeteringAction via setLockingMode API
- Updated Compose compileSdk to API 37, requiring minimum AGP version of 9.2.0 when using Compose
- Fixed CameraXViewfinder transformation issues in EMBEDDED mode when OpenGL pipeline is enabled
- Fixed compilation error Cannot access class 'ListenableFuture'
- Remove requirement for compileSdk 37
- ExtensionsManager#getExtensionEnabledCameraSelector is now deprecated, use ExtensionSessionConfig API instead
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.