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