[Announcement] CameraX 1.4.0-beta01 Released with 10-bit HDR, and Many Cool New Features

Sett 310 ganger
Hopp til første uleste melding

Android CameraX Discussion Group

ulest,
16. mai 2024, 20:02:1816. mai
til Android CameraX Discussion Group

Dear Developers,


CameraX 1.4.0-beta01 is now available!


The CameraX team is excited to announce the availability of CameraX 1.4.0-beta01! This release includes a number of new features, bug fixes, and other cool things.


We're thrilled to introduce 10-bit HDR support in CameraX 1.4.0 for both still images and video! With just a few lines of code, you can easily capture stunning HDR content, leveraging automatic camera and encoder configuration. CameraX currently supports capturing HLG and encoding 10-bit HEVC video. Support for HDR10, HDR10+, and Dolby Vision will expand as OEMs enable these formats.  Enjoy 10-bit HDR Preview and query device-specific HDR capabilities.  Developers can now use these CameraX APIs for UltraHDR images (Samsung S24) and HDR Video (Pixel 7/8, Pixel Fold, Samsung S23/S24 and more premium devices to follow up), delivering richer colors, enhanced highlights and shadows for a truly immersive visual experience.


Additionally, camera-viewfinder and camera-viewfinder-core version 1.4.0-alpha06 have been released, and we're excited to introduce a new library, 'camera-viewfinder-compose' (version 1.0.0-alpha01), which provides a Compose-idiomatic API to seamlessly integrate Camera Preview into your app. We introduced camera-viewfinder-compose at Google I/O 2024, and you can learn more by watching the video (CameraX session starts at 17:08).


Dive deeper into HDR video and UltraHDR on our website. Check out the Jetpack Camera App to see how these features can be integrated into a modern production camera application.


Some other cool features:

  • Kotlin Extensions functions: Kotlin suspend functions, ImageCapture.takePicture and ProcessCameraProvider.awaitInstance, have been added.

  • Add Real-Time Camera Effects: The new camera-effects artifact lets you apply effects to CameraX outputs (preview, video, images). Includes tools for watermarks, object highlighting, and more

  • CameraController API: New APIs added for configuring video capture: dynamic range, frame rate, and mirror mode.

  • Support Preview Stabilization: New APIs to query the device capability and enable video/preview stabilization.

  • VideoCapture Quality Enhancements: Gain finer control over VideoCapture quality. Use Recorder.Builder#setVideoCapabilitiesSource() with VIDEO_CAPABILITIES_SOURCE_CODEC_CAPABILITIES to access quality settings beyond standard CamcorderProfile options, enabling higher resolutions like UHD.

  • CameraX Extensions enhanced functionality: VideoCapture now seamlessly integrates with Camera Extensions. In addition, ImageCapture offers new features like still capture latency estimation, postview, and capture process progress monitoring.

  • Shutter Sound API: The new CameraInfo.mustPlayShutterSound API lets you easily check if regional regulations require a shutter sound when taking photos.

  • Screen Flash for Better Low-Light Photos: CameraX now makes it easier to improve your front-facing camera photos in low-light conditions with its new screen flash support.

  • Camera Extensions Specific Metadata APIs: CameraX adds metadata APIs for fine-tuning Camera Extensions. Adjust effect strength and track extension status for the perfect look and smooth operation. Get started with ExtensionsManager#getCameraExtensionsInfo() and ExtensionsManager#getCameraExtensionsControl().


Critical bug fixes

  • Timebase Inconsistency Workaround: A generalized solution was implemented to address audio-video sync issues caused by inconsistencies between camera characteristics' timebase and frame timestamps. This replaces the previous device-specific Quirks approach, allowing for immediate issue resolution without waiting for CameraX releases.

  • Pinch-to-Zoom: Fixed a bug that caused random zoom direction changes during pinch-to-zoom, leading to a choppy experience.

  • Support virtual devices: Context passed into ProcessCameraProvider will preserve the device ID to ensure the functionality in a virtual device environment. 

  • Preview freeze during tap-to-focus or still capture: 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.

  • High Resolutions: Fixed a bug where High Resolutions can not be selected when CameraEffect/StreamSharing is enabled on some devices. (e.g. 4000x3000 on Samsung A32 5G).

  • MlKitAnalyzer Accuracy: Fixed a bug that caused a decrease in accuracy due to the incorrect use of a smaller resolution.

  • UHD Video Recording (Oppo Find N3 Flip): Resolved an issue preventing UHD video recording on the back camera of the Oppo Find N3 Flip.

  • Recording Failure (Nokia 1): Fixed a bug causing recording failures on the Nokia 1 due to a native crash in the media codec.

  • Audio Timestamps: Corrected a bug that led to incorrect audio timestamps on some devices during multiple video recordings.


New library: camera-viewfinder-compose

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. You can find more information on the blog "What’s new in Jetpack Compose at I/O ‘24" or watch Google I/O video (CameraX session starts at 17:08).



How to get it

The new version is available now in the Google Maven repository. Please see the CameraX release notes page for a detailed list of changes in this release. 


Feedback

We encourage you to try out CameraX 1.4.0-beta01 and the new library and let us know what you think. You can provide feedback by filing an issue on the CameraX issue tracker or by joining the CameraX developer forum.


Thank you for continuing to support CameraX!


Sincerely,

The CameraX Development Team


Svar alle
Svar til forfatter
Videresend
Denne samtalen er låst
Du kan ikke svare og utføre handlinger på låste samtaler.
0 nye meldinger