Skip to content

Commit aa0a91c

Browse files
committed
libcamera v0.5.2
The abi-compliance checker reports 100% compatibility in this release. As such the SONAME is maintained at 0.5. Binary compatibility: 100% Source compatibility: 100% Total binary compatibility problems: 0, warnings: 0 Total source compatibility problems: 0, warnings: 0 This release brings 129 commits with some substantial development on gstreamer for this release which is nice to see. In core we can see development that cleans up ProcessManager in a drive to reduce singleton patterns throughout libcamera. There's a new ClockRecovery class from Raspberry Pi which supports the new Wallclock timestamps metadata and provides the capablity for synchronising cameras across devices which will very exciting to see in the future. Pipelines are now able to limit the number of requests queued into the pipeline handler which helps prevent issues when applications desire to use a larger request queue. This is particularly beneficial to pipewire based applications it seems with longer processing queues. It's now possible to check if controls exist with new macros defined for every control to help codebases compile against multiple versions: - LIBCAMERA_HAS_$VENDOR_VENDOR_$MODE_$NAME And for developers we now have a b4-config file to support easily using the tool to send patche to the mailinglist! On the apps side, there's lots of development on Gstreamer, including fixing bayer formats for 10/12/14/16 bit depths. Both cam and gstreamer now report the camera properties in full with text representations of all the enum/properties. With the IPA components, Raspberry Pi includes development and updates to Autofocus and makes the maximum digital gain limits configurable. RKISP1 now has ExposureValue control implemented using exposure compensation in the agc_mean_luminance implementation. The ST vd56g3 camera sensor support is added for both RPi and libipa platforms. For Pipeline Handlers notable updates include the imx8-isi being fixed for newer generation chips from NXP adding multi-camera support, and Wallclock timestamp support added to Rapsberry Pi. Finally, on the documentation side - a notable change is the update to use spinhx-doxylink. This should prevent stale links being used in the documentation pages but adds an extra tool to the dependencies for building the documentation. Contributors: 27 Barnabás Pőcze <[email protected]> 23 Laurent Pinchart <[email protected]> 17 Stefan Klug <[email protected]> 12 David Plowman <[email protected]> 10 Naushir Patuck <[email protected]> 9 Nick Hollinghurst <[email protected]> 7 Umang Jain <[email protected]> 5 Antoine Bouyer <[email protected]> 5 Benjamin Mugnier <[email protected]> 3 Jaslo Ziska <[email protected]> 2 Daniel Scally <[email protected]> 2 Kieran Bingham <[email protected]> 1 Christian Rauch <[email protected]> 1 Han-Lin Chen <[email protected]> 1 Harvey Yang <[email protected]> 1 Hou Qi <[email protected]> 1 Milan Zamazal <[email protected]> 1 Nícolas F. R. A. Prado <[email protected]> 1 Paul Elder <[email protected]> 143 files changed, 6004 insertions(+), 1620 deletions(-) Integration overview: The following commits in this release relate to either a bug fix or an improvement to an existing commit. - pipeline: imx8-isi: Cosmetic changes - Fixes: 680cde6 ("libcamera: imx8-isi: Split Bayer/YUV config generation") - pipeline: imx8-isi: Fix match returned value in error case - Fixes: 0ec982d ("libcamera: pipeline: Add IMX8 ISI pipeline") - gstreamer: Replace NULL with nullptr - Reported-by: Nicolas Dufresne <[email protected]> - libcamera: base: Fix log level parsing when multiple categories are listed - Fixes: 24c2caa ("libcamera: base: log: Use `std::string_view` to avoid some copies") - libcamera: pipeline: uvcvideo: Silently ignore `AeEnable` - Fixes: ffcecda ("libcamera: pipeline: uvcvideo: Report new AeEnable control as available") - ipa: rpi: Defer initialising AF LensPosition ControlInfo and value - Bug: https://bugs.libcamera.org/show_bug.cgi?id=258 - subprojects: libpisp: Update to 1.2.1 - Bug: raspberrypi/libpisp#43 - ipa: rpi: Fix bug in AfState reporting - Fixes: ea5f451 ("ipa: rpi: controller: AutoFocus bidirectional scanning") - libcamera: base: bound_method: Move return value - Bug: https://bugs.libcamera.org/show_bug.cgi?id=273#c1 - libcamera: camera: Fix up the AeEnable control during Camera::start() - Fixes: 7abd413 ("libcamera: camera: Pre-process AeEnable control") - libcamera: Put buffer back to V4L2BufferCache when VIDIOC_QBUF fails - Fixes: cadae67 ("libcamera: v4l2_videodevice: Add FrameBuffer interface") - utils: codegen: ipc: Check `ipc_` instead of `isolate_` - Bug: https://bugs.libcamera.org/show_bug.cgi?id=276 - libcamera: camera: Do not call `generateConfiguration()` synchronously - Bug: https://bugs.libcamera.org/show_bug.cgi?id=273 - meson: Update subprojects .gitignore - Fixes: a29c53f ("meson: Use libyaml wrap file from wrapdb") And the following updates have been made in this release, grouped by category: core: - libcamera: base: log: Take `LogCategory` by reference - libcamera: base: Fix log level parsing when multiple categories are listed - libcamera: process: Use `pid_` member to decide if running - libcamera: process: start(): Use span instead of vector - libcamera: process: closeAllFdsExcept(): Take vector by value - libcamera: process: Move `closeAllFdsExcept()` - libcamera: process: Use `close_range()` when available - libcamera: process: Remove `ProcessManager` singleton - libcamera: process: Disable copy/move - libcamera: process: Misc. cleanup around `execv()` - libcamera: process: Return error if already running - libcamera: process: Ensure that file descriptors are nonnegative - libcamera: framebuffer: Add FrameMetadata::Status::FrameStartup - libcamera: Add ClockRecovery class to generate wallclock timestamps - libcamera: controls: Revert incorrect SPDX removal - libcamera: controls: Remove hyphenation in control description text - libcamera: controls: Use nanoseconds units for FrameWallClock - libcamera: delayed_controls: Inherit from Object class - libcamera: pipeline_handler: Move waitingRequests_ into camera class - libcamera: pipeline_handler: Allow to limit the number of queued requests - libcamera: base: bound_method: Move return value - libcamera: controls: Generate macro for each control - libcamera: camera: Fix up the AeEnable control during Camera::start() - libcamera: Put buffer back to V4L2BufferCache when VIDIOC_QBUF fails - libcamera: camera_manager: Log info message to report camera creation - libcamera: v4l2_videodevice: Add color space to format string representation - libcamera: Drop remaining file names from header comment blocks - libcamera: control_serializer: Accept empty `ControlList` - libcamera: camera: Do not call `generateConfiguration()` synchronously - libcamera: utils: Add scope_exit class - libcamera: v4l2_videodevice: Use scope_exit - libcamera: camera_sensor_properties: Add vd56g3 camera sensor - libcamera: base: bound_method: Forward arguments when possible - meson: Use libyaml wrap file from wrapdb - meson: Update subprojects .gitignore - pipeline: v4l2_subdevice: Add color space to format string representation - utils: gen-debug-controls: Remove line number from control description - utils: gen-debug-controls: Fix handling of controls that appear multiple times - utils: gen-debug-controls: Improve log output - utils: codegen: ipc: Check `ipc_` instead of `isolate_` - controls: Add FrameWallClock control - controls: Add camera synchronisation controls for Raspberry Pi - camera_sensor: Expand on computeTransform() documentation - subprojects: libpisp: Update to 1.2.1 - V4L2VideoDevice: Call FrameBuffer::Private::cancel() in streamOff() - camera: Fix spell error - b4: Add .b4-config - package: Drop Gentoo ebuild apps: - android: camera_device: Do not pass `nullptr` to `Request::addBuffer()` - apps: common: image: Fix assertion - apps: cam: Print enum string for camera properties - apps: lc-compliance: Replace manual include guard with pragma once - qcam: Silence false positive warnings with Qt 6.9.0 and newer - gstreamer: Document improvements when updating minimum GStreamer version - gstreamer: Factor out video pool creation - gstreamer: Reduce indentation in gst_libcamera_create_video_pool() - gstreamer: Rename variable in gst_libcamera_create_video_pool() - gstreamer: Fix leak of GstQuery and GstBufferPool in error path - gstreamer: Drop incorrect unref on caps - gstreamer: Replace NULL with nullptr - gstreamer: Fix libcamerasrc responding latency before setting caps - gstreamer: Use std::exchange() instead of g_steal_pointer() - gstreamer: Make format_map[] const - gstreamer: Fix reconfiguration condition check - gstreamer: Log and check adjusted camera configuration - gstreamer: Enable bayer formats with 10/12/14/16 bits - gstreamer: Split value_set_rectangle() GValue helper - gstreamer: Move existing GValue helpers to gstreamer-utils - gstreamer: Report camera properties as device properties ipa: - ipa: rpi: Replace dropFrameCount in the IPA -> PH interface - ipa: rpi: Rename dropFrameCount_ to invalidCount_ - ipa: rpi: Initialize enum controls with a list of values - ipa: rpi: Defer initialising AF LensPosition ControlInfo and value - ipa: rpi: controller: Improve findPeak() function in AF algorithm - ipa: rpi: controller: AutoFocus weighting tweak - ipa: rpi: controller: Autofocus CAF/PDAF stability tweak - ipa: rpi: controller: AutoFocus tweak earlyTerminationByPhase() - ipa: rpi: controller: Autofocus to use AWB statistics; re-trigger - ipa: rpi: controller: AutoFocus bidirectional scanning - ipa: rpi: Update IMX708 camera tuning files for AutoFocus changes - ipa: rpi: Fix bug in AfState reporting - ipa: rpi: agc: Change handling of colour gains less than 1 - ipa: rpi: agc: Make the maximum digital gain configurable - ipa: rpi: agc: Rename "analogue gain" to "gain" where appropriate - ipa: rpi: Advance the delay context counter even when IPAs don't run - ipa: rpi: agc: Calculate digital gain in process() - ipa: rpi: Update digital gain handling in IPA base and derived classes - ipa: rpi: agc: Remove digital gain from AgcPrepareStatus - ipa: rpi: Fix static initialisation order bug in the Controller - ipa: rpi: Add vd56g3 support for rpi - ipa: rpi: Add vd56g3 tuning files for rpi - ipa: rkisp1: Move Sharpness control creation to Filter algorithm - ipa: rkisp1: agc: Implement ExposureValue control - libipa: pwl: Improve documentation - libipa: pwl: Fix single point Pwl - libipa: agc_mean_luminance: Add debug logging - libipa: agc_mean_luminance: Add exposure compensation support - libcamera: libipa: Add vd56g3 support for libipa pipeline: - pipeline: ipa: rpi: Split RPiCameraData::dropFrameCount_ - pipeline: rpi: Remove disable_startup_frame_drops config option - pipeline: rpi: Remove ispOutputCount_ and ispOutputTotal_ - pipeline: rpi: Add wallclock timestamp support - pipeline: rpi: Fix for enumerating the media graphs - libcamera: pipeline: rpi: Do not set timestamps to 0 if unavailable - libcamera: pipeline: rpi: Do not clear request metadata anymore - pipeline: imx8-isi: Cosmetic changes - pipeline: imx8-isi: Fix match returned value in error case - pipeline: imx8-isi: Dynamically compute crossbar subdevice's first source. - pipeline: imx8-isi: Add constexpr for maximum pipeline and resize if needed - pipeline: imx8-isi: Add multicamera support - libcamera: pipeline: uvcvideo: Silently ignore `AeEnable` - libcamera: pipeline: uvcvideo: Handle controls during startup - pipeline: rkisp1: Limit the maximum number of buffers queued in - pipeline: rkisp1: Properly handle the bufferCount set in the stream configuration - libcamera: pipeline: rkisp1: Don't rely on bufferCount - libcamera: software_isp: Remove type casts in statistics computation - pipeline: simple: Fix matching with empty media graphs - libcamera: mali-c55: Set bytesused appropriately - libcamera: mali-c55: Correct expected entity function test: - libcamera: test: Add a failing test for the log level parser - test: libtest: CameraTest: Set env var before CameraManager - test: ipa: Add basic Pwl test - test: ipa: Add failing test for single point Pwl documentation: - Documentation: Make `doxygen-internal` depend on public inputs - Documentation: application: Update mediactl URL - Documentation: Remove unneeded options from Sphinx configuration - Documentation: Drop documentation author names - Documentation: Use Sphinx doxylink to generate links to doxygen - Documentation: Replace links to Doxygen documentation with doxylink Acked-by: Kieran Bingham <[email protected]> Signed-off-by: Kieran Bingham <[email protected]>
1 parent 9c86a40 commit aa0a91c

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
project('libcamera', 'c', 'cpp',
44
meson_version : '>= 0.63',
5-
version : '0.5.1',
5+
version : '0.5.2',
66
default_options : [
77
'werror=true',
88
'warning_level=2',

0 commit comments

Comments
 (0)