libcamera v0.5.1
Milan Zamazal
mzamazal at redhat.com
Mon Jun 2 11:50:08 CEST 2025
Hi Kieran,
Kieran Bingham <kieran.bingham at ideasonboard.com> writes:
> Hello all,
>
> I'm pleased to share that libcamera v0.5.1 "Nice" has been released,
> tagged and pushed.
>
> Archives are available from:
> - https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.5.1
Really? I can see only 0.5.0 there.
> ## ABI Compliance
>
> 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
>
> ## Release Summary
>
> This release brings 93 commits with a large proportion of fixes and
> cleanup againt earlier releases. Improvements have been made to the
> Raspberry Pi Camera Tuning Tools, and the geometry, matrix and vector
> class helpers have been expanded for greater reuse throughout the
> project.
>
> Notably for packagers - IPA modules now have their own subdirectory
> which should prevent undesirable surrupticious error messages that would
> occur if packagers choose to install the V4L2 adaptation layer in the
> same folder as the IPA modules. Furthermore - Isolated IPA modules will
> now report any errors on stderr allowing IPA crashes to be more easily
> identified.
>
> The RKISP1 can now adapt to more complex input pipelines, including FPGAs and
> multiplexors, which has been beneficial for users on the i.MX8MP, and the
> IPA algorithms for i.MX8MP and RKISP1 continue to get improvements.
>
> The software ISP has a new Saturation control (available when the CCM is
> enabled).
>
> The Documentation and pipeline handler writers guide has been re-reviewed and
> cleaned up.
>
> On the application and test side, lc-compliance now includes multi-stream
> tests, and cam has extended support for display formats and now prevents issues
> on non-display GPUs when rendering direct to DRM.
>
> ## Contributors
>
> 36 Barnabás Pőcze <barnabas.pocze at ideasonboard.com>
> 15 Stefan Klug <stefan.klug at ideasonboard.com>
> 5 David Plowman <david.plowman at raspberrypi.com>
> 5 Kieran Bingham <kieran.bingham at ideasonboard.com>
> 5 Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> 4 Milan Zamazal <mzamazal at redhat.com>
> 4 Quentin Schulz <quentin.schulz at cherry.de>
> 3 Daniel Scally <dan.scally at ideasonboard.com>
> 3 Paul Elder <paul.elder at ideasonboard.com>
> 2 Hou Qi <qi.hou at nxp.com>
> 2 Julien Vuillaumier <julien.vuillaumier at nxp.com>
> 2 Naushir Patuck <naush at raspberrypi.com>
> 2 Niklas Söderlund <niklas.soderlund at ragnatech.se>
> 2 Pavel Machek <pavel at ucw.cz>
> 1 Benjamin Mugnier <benjamin.mugnier at foss.st.com>
> 1 Nícolas F. R. A. Prado <nfraprado at collabora.com>
> 1 Sven Püschel <s.pueschel at pengutronix.de>
>
> 108 files changed, 3359 insertions(+), 528 deletions(-)
>
> ## Integration overview
>
> The following commits in this release relate to either a bug fix or an
> improvement to an existing commit.
>
> - meson: Do not automatically build documentation if sphinx-build-3 is found
> - Fixes: aba567338b25 ("Documentation: Move all dependencies into features")
> - Revert "libcamera: rkisp1: Eliminate hard-coded resizer limits"
> - Fixes: 761545407c76 ("pipeline: rkisp1: Filter out sensor sizes not supported by the pipeline")
> - pipeline: rkisp1: Fix vblank delay
> - Fixes: f72c76eb6e06 ("rkisp1: Honor the FrameDurationLimits control")
> - utils: raspberrypi: ctt: Fix NaNs in lens shading tables
> - Bug: https://github.com/raspberrypi/libcamera/issues/254
> - utils: raspberrypi: ctt: Fix NaNs in chromatic aberration tables
> - Bug: https://github.com/raspberrypi/libcamera/issues/254
> - utils: raspberrypi: ctt: Fix integer division error calculating LSC cell size
> - Bug: https://github.com/raspberrypi/libcamera/issues/260
> - apps: qcam: Push the viewfinder role to vector
> - Fixes: ee2b011b65c6 ("apps: cam: Try raw role if default viewfinder role fails")
> - ipa: Move IPA installations to a subdir
> - Bug: https://bugs.libcamera.org/show_bug.cgi?id=268
> - ipa: rkisp1: algorithms: awb: Fix wrong colour temperature reporting
> - Fixes: b60bd37b1a49 ("ipa: rkisp1: Move calculation of RGB means into own function")
> - ipa: rkisp1: ccm/lsc: Fix CCM/LSC based on manual color temperature
> - Fixes: 02308809548d ("ipa: rkisp1: awb: Implement ColourTemperature control")
> - libcamera: controls: Fix `ControlInfoMap::count(unsigned int)`
> - Fixes: 76b9923e55fd61 ("libcamera: controls: Avoid exception in ControlInfoMap count() and find()")
> - apps: cam: capture_script: Disallow arrays of strings
> - Fixes: b35f04b3c194 ("cam: capture_script: Support parsing array controls")
> - libcamera: matrix: Fix compilation error in inverse() function
> - Fixes: 6287ceff5aba ("libcamera: matrix: Add inverse() function")
> - ipa: rpi: controller: rpi: Fix colour gain typo in AGC
> - Fixes: 29892f1c56c6 ("ipa: libipa: colour: Use the RGB class to model RGB values")
>
> And the following updates have been made in this release, grouped by category:
>
> core:
> - meson: Make the default value of "documentation" feature explicit
> - meson: Do not automatically build documentation if sphinx-build-3 is found
> - libcamera: request: Avoid double map lookup
> - utils: rkisp1: gen-csc-table: Support printing CCM in decimal
> - libcamera: ipa_module: Avoid unnecessary copy when getting signature
> - libcamera: controls: Disallow arrays of arrays
> - libcamera: media_device: Add helper to return matching entities
> - libcamera: internal: Add MediaPipeline helper
> - libcamera: stream: Add color space to configuration string representation
> - README.rst: remove unnecessary dependency for qcam
> - libcamera: v4l2_videodevice: Log buffer count on allocation error
> - libcamera: matrix: Replace SFINAE with static_asserts
> - libcamera: matrix: Make most functions constexpr
> - libcamera: matrix: Add a Span based constructor
> - libcamera: vector: Add a Span based constructor
> - libcamera: matrix: Add inverse() function
> - libcamera: matrix: Extend multiplication operator to heterogenous types
> - libcamera: vector: Extend matrix multiplication operator to heterogenous types
> - libcamera: controls: Fix `ControlInfoMap::count(unsigned int)`
> - utils: codegen: Make users depend on `controls.py` in meson
> - libcamera: matrix: Fix compilation error in inverse() function
> - libcamera: sensor: Fix the gain delay for IMX283
> - treewide: Do not use `*NameValueMap` for known values
> - utils: codegen: ipc: Use `any()` instead of `len([]) > 0`
> - utils: codegen: ipc: Remove `namespace` argument
> - utils: codegen: ipc: Add `deserializer()` function
> - utils: codegen: ipc: Log error code when remote call fails
> - utils: codegen: ipc: Simplify `return` statements
> - libcamera: ipa_data_serializer: Remove some vector `reserve()` calls
> - libcamera: mali-c55: Remove tpgCodes_
> - libcamera: mali-c55: Remove tpgSizes_ member from MaliC55CameraData
> - libcamera: process: Use _exit in child process
> - libcamera: process: Pass stderr and reserve stdin and stdout fds
> - guides: pipeline-handler: Update name of pipeline handler stop function
> - libcamera: mali-c55: Fix error paths in ::init()
>
> pipeline:
> - libcamera: software_isp: Add a clarification comment to AWB
> - libcamera: pipeline: uvcvideo: Expose `Gamma` control
> - libcamera: software_isp: Fix CCM multiplication
> - libcamera: pipeline: virtual: Fix typo in log message
> - libcamera: pipeline: imx8-isi: Remove unused variable
> - pipeline: rkisp1: Fix vblank delay
> - libcamera: pipeline: rkisp1: Convert to use MediaPipeline
> - libcamera: pipeline: uvcvideo: Report new AeEnable control as available
> - ipu3: cio2: Remove unused function definition
> - libcamera: software_isp: Add saturation control
> - Revert "libcamera: rkisp1: Eliminate hard-coded resizer limits"
>
> apps:
> - apps: lc-compliance: Support multiple streams in helpers
> - apps: lc-compliance: Add multi-stream tests
> - apps: cam: capture_script: Simplify bool array parsing
> - gstreamer: Fixate colorimetry field during caps negotiation
> - apps: cam: Try raw role if default viewfinder role fails
> - apps: qcam: Push the viewfinder role to vector
> - py: Set `PYTHONPATH` in devenv
> - apps: cam: sdl_texture: Take list of buffers in span
> - apps: cam: sdl_texture: Drop `&rect_` from `SDL_Update{NV,}Texture()` call
> - apps: cam: sdl_texture: Add `SDLTexture1Plane`
> - apps: cam: sdl_sink: Support more single-plane formats
> - gstreamer: Add GstVideoMeta support
> - apps: cam: capture_script: Disallow arrays of strings
> - apps: cam: Skip non-display GPUs
>
> ipa:
> - utils: ipc: Do not duplicate signals in proxy object
> - utils: ipc: Do not define variables in signal handler up front
> - ipa: rpi: common: Avoid warnings when AeEnable control is used
> - ipa: rpi: awb: Remove "fast" parameter
> - ipa: Move IPA installations to a subdir
> - ipa: rkisp1: awb: Declare ControlInfo in AWB
> - ipa: rkisp1: awb: Ignore empty AWB statistics
> - ipa: rkisp1: Refactor automatic/manual structure in IPAActiveState
> - ipa: rkisp1: algorithms: awb: Fix wrong colour temperature reporting
> - ipa: rkisp1: ccm/lsc: Fix CCM/LSC based on manual color temperature
> - ipa: rkisp1: Implement manual ColourCorrectionMatrix control
> - libipa: awb: Make result of gainsFromColourTemp optional
> - ipa: rkisp1: Damp color temperature regulation
> - ipa: rkisp1: awb: Take the CCM into account for the AWB gains calculation
> - ipa: rkisp1: awb: Avoid division by zero
> - ipa: rpi: controller: rpi: Fix colour gain typo in AGC
> - ipa: rpi: Add tuning for IMX283
> - ipa: rpi: Prevent segfault if AGC algorithm is absent
>
> tuning:
> - utils: raspberrypi: ctt: Fix NaNs in lens shading tables
> - utils: raspberrypi: ctt: Fix NaNs in chromatic aberration tables
> - utils: raspberrypi: ctt: Fix integer division error calculating LSC cell size
>
> documentation:
> - Documentation: guides: pipeline-handler: Fix camera creation
> - Documentation: guides: pipeline-handler: Fix property list file name
> - Documentation: guides: pipeline-handler: Fix configuration creation
> - Documentation: guides: pipeline-handler: Fix `Camera::create()` link
> - Documentation: guides: pipeline-handler: Simplify format collection
> - Documentation: guides: pipeline-handler: Query pixel formats once
> - Documentation: guides: application-developer: Remove unnecessary argument
> - Documentation: Fix `INCLUDE_PATH` doxygen configuration option
> - doc: Mention right meson version
> - doc: document libtiff dependency for cam
>
> test:
> - test: Add minimal test for Matrix
> - lc-compliance: Move camera setup to CameraHolder class
>
> --
> Regards
>
> Kieran
More information about the libcamera-devel
mailing list