Skip to content

Conversation

naushir
Copy link
Collaborator

@naushir naushir commented Mar 24, 2025

The "extra" parameters in finalise_lsc and finalise_cac are only used in asserts. This may case an unused variable warning on release builds with certian compilers. Mark them with [[maybe_unused]] to avoid these warnings.

The "extra" parameters in finalise_lsc and finalise_cac are only used
in asserts. This may case an unused variable warning on release builds
with certian compilers. Mark them with [[maybe_unused]] to avoid these
warnings.

Signed-off-by: Naushir Patuck <[email protected]>
@naushir naushir mentioned this pull request Mar 24, 2025
carlodri added a commit to carlodri/staged-recipes that referenced this pull request Mar 24, 2025
until raspberrypi/libpisp#43 is merged and libpsp is bumped...
christianrauch added a commit to christianrauch/libcamera that referenced this pull request Mar 24, 2025
@naushir naushir merged commit 3db57db into main Mar 25, 2025
6 of 7 checks passed
@naushir naushir deleted the warn branch March 25, 2025 15:32
@christianrauch
Copy link

@naushir Would it be possible to release a 1.2.1 with this patch and update the wrap file in libcamera?

@naushir
Copy link
Collaborator Author

naushir commented Mar 28, 2025

I'll attempt to make a release next week.

hmaarrfk added a commit to conda-forge/staged-recipes that referenced this pull request Mar 31, 2025
* attempt to build libcamera

* try newer stdlib version

* try newer stdlib version

* Update recipes/libcamera/build.sh

Co-authored-by: Mark Harfouche <[email protected]>

* build on linux_64 only for now

* move some deps to host

* Update recipes/libcamera/build.sh

Co-authored-by: Mark Harfouche <[email protected]>

* Update recipes/libcamera/meta.yaml

Co-authored-by: Mark Harfouche <[email protected]>

* Update recipes/libcamera/meta.yaml

Co-authored-by: Mark Harfouche <[email protected]>

* Update recipes/libcamera/meta.yaml

Co-authored-by: Mark Harfouche <[email protected]>

* Update recipes/libcamera/meta.yaml

Co-authored-by: Mark Harfouche <[email protected]>

* Update recipes/libcamera/build.sh

Co-authored-by: Mark Harfouche <[email protected]>

* Update recipes/libcamera/meta.yaml

Co-authored-by: Mark Harfouche <[email protected]>

* Update recipes/libcamera/meta.yaml

Co-authored-by: Mark Harfouche <[email protected]>

* add memfd patch

* fix patch

* use LF not CRLF

* Update recipes/libcamera/meta.yaml

Co-authored-by: Mark Harfouche <[email protected]>

* fix license stuff

* licenses is a folder..

* try another test

* add libcamera-rpi

* try fixing download url

* remove leftover

* add forgotten build script

* nothing to test there...

* add pidng recipe

* fix maintainer name

* fix recipe

* skip windows for now

* fix duplicate buildtype arg

* try fixing gstreamer

* add patch for unused variables

* ignore unused variables for now

until raspberrypi/libpisp#43 is merged and libpsp is bumped...

* param is cpp_args

* try to fix glib errors

* remove extra glib

* move pidng to separate recipe

* first attempt at build variants

* maybe this works

* try fixing indentation

* fix leftover from previous recipe

* fix download url of libcamera-rpi

* fix name and version of main package

* add different build strings

* do not fail if MESON_ARGS is unset

* remove undefined component in build string

* or even better

* do I really need to repeat the common deps?

* Naturally exclusive variant

* try to fix tests

* Update recipes/libcamera/meta.yaml

Co-authored-by: Mark Harfouche <[email protected]>

* fix run requirement for libcamera-rpi

* build full python matrix

* document some choices

Co-authored-by: Mark Harfouche <[email protected]>

* add xref with rpi fork conversation

* install upstream variant by default

* build rpi variant only on aarch64

Co-authored-by: Mark Harfouche <[email protected]>

* try testing also libcamerify on rpi

* add aarch64 builds

---------

Co-authored-by: Mark Harfouche <[email protected]>
christianrauch added a commit to christianrauch/libcamera that referenced this pull request Apr 3, 2025
christianrauch added a commit to christianrauch/libcamera that referenced this pull request Jul 7, 2025
Update the libpisp wrap to use the latest 1.2.1 release which silences
an 'unused-parameter' warning.

Bug: raspberrypi/libpisp#43
Reviewed-by: Naushir Patuck <[email protected]>
Signed-off-by: Christian Rauch <[email protected]>
kbingham pushed a commit to kbingham/libcamera that referenced this pull request Jul 8, 2025
Update the libpisp wrap to use the latest 1.2.1 release which silences
an 'unused-parameter' warning.

Bug: raspberrypi/libpisp#43
Reviewed-by: Naushir Patuck <[email protected]>
Signed-off-by: Christian Rauch <[email protected]>
Acked-by: Kieran Bingham <[email protected]>
Acked-by: Laurent Pinchart <[email protected]>
Signed-off-by: Laurent Pinchart <[email protected]>
kbingham added a commit to kbingham/libcamera that referenced this pull request Aug 7, 2025
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]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants