61 Commits

Author SHA1 Message Date
Khem Raj 8f3df8b447 recipes: Convert licenses to SPDX expressions
- Automatically convert all licenses to valid SPDX license expressions
  using convert-spdx-licenses.py

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-07-20 22:35:47 -07:00
Markus Volk 3e67d23808 libcamera: update 0.7.1 -> 0.7.2
Integration Overview:

ABI:

The abi-compliance checker reports 100% *binary* compatibility in this release,
so the SONAME is maintained at 0.7.

Validating ABI compatibility between v0.7.1 and v0.7.2
Preparing, please wait ...
Comparing ABIs ...
Comparing APIs ...
Creating compatibility report ...
Binary compatibility: 100%
Source compatibility: 97.9%
Total binary compatibility problems: 0, warnings: 2
Total source compatibility problems: 13, warnings: 2

These source compatibility problems are bisected to 597a5bb97bf9 ("libcamera:
bound_method: Use std::apply") and this looks to be a false positive and as far
as I can tell do not actually prevent any external application compiling
against libcamera.

The following commits in this release relate to either a bug fix or an
improvement to an existing commit.

bugs:
 - libcamera: egl: Don't depend on libdrm
   - Fixes: 7350d6cc5dd1 ("Revert "libcamera: software_isp: gbm: Add a GBM helper class for GPU surface access"")
 - libcamera: base: regex: Fix preprocessor check
   - Link: https://github.com/llvm/llvm-project/commit/568c23bbd3303518c5056d7f03444dae4fdc8a9c
 - test: controls: control_info_map: Fix libc++ warning
   - Link: https://github.com/llvm/llvm-project/commit/9a03a30706cca40b93146f379fb5faa75d417af5
 - ipa: rpi: agc: Clamp digital gain to avoid saturation issues
   - Fixes: 17f9912cff85 ("ipa: rpi: agc: Calculate digital gain in process()")
 - py: Use smart holder for `Camera` if available
   - Link: https://github.com/pybind/pybind11/issues/6064
 - pipeline: rpi: Print old color space before updating
   - Fixes: 71bbf10a2f79 ("libcamera: rpi: Add some helpers to PipelineHandlerBase")
 - libcamera: framebuffer: Reword documentation about cookie
   - Closes: https://gitlab.freedesktop.org/camera/libcamera/-/work_items/331
 - ipa: libipa: Handle missing YAML nodes in Interpolator
   - Closes: https://gitlab.freedesktop.org/camera/libcamera/-/work_items/323
 - software_isp: debayer_egl: Consider border for scaling
   - Fixes: f520b29fe9e6 ("libcamera: software_isp: debayer_egl: Add an eGL Debayer class")
 - py: examples: simple-continuous-capture: Fix comment
   - Fixes: d6cfb080604a ("py: examples: Add simple-continuous-capture.py")

And the following updates have been made in this release, grouped by category:

core:
 - include: linux: Move mali-c55-config.h header to correct location
 - utils: update-kernel-headers: Create destination directory
 - utils: update-kernel-headers: Add drm/drm.h and drm/drm_mode.h
 - utils: update-kernel-headers: Add linux/media/arm/mali-c55-config.h
 - include: linux: Update to Linux v7.0
 - libcamera: egl: Don't depend on libdrm
 - libcamera: base: Restore defopt
 - treewide: Use utils::defopt
 - libcamera: base: signal: Disallow rvalue references
 - libcamera: base: bound_method: Strip qualifiers in argument pack
 - libcamera: base: bound_method: Forward when invoking
 - subprojects: libpisp: Update to v1.5.0
 - libcamera: base: regex: Fix preprocessor check
 - libcamera: bound_method: Use std::apply
 - libcamera: framebuffer: Reword documentation about cookie
 - libcamera: base: log: Remove log level check for "Fatal" messages
 - libcamera: base: log: Move abort logic into separate type
 - libcamera: matrix: Rename data validation function
 - libcamera: vector: Rename data validation function
 - libcamera: Drop 'yaml' prefix from ValueNode variables
 - libcamera: global_configuration: Drop "YAML" from function documentation
 - libcamera: Replace last mentions of YAML
 - libcamera: vector: Replace class with typename
 - libcamera: vector: Swap order of arguments to apply()
 - libcamera: vector: Support multiple scalar arguments to apply()
 - libcamera: vector: Add clamp() member function
 - libcamera: vector: Replace custom lambdas with standard functions
 - libcamera: v4l2_device: setControls(): Do not return index
 - libcamera: v4l2_device: 0 is not a generic error index
 - libcamera: request: Inline `Private::hasPendingBuffers()`
 - libcamera: request: hasPendingBuffers(): Simplify
 - libcamera: camera: Add missing `span.h` include
 - meson: Build virtual pipeline by default
 - utils: Merge shader header generation scripts
 - utils: Rename and move shader header generation script
 - libcamera: egl: Replace pointer and length with span for shader sources
 - libcamera: egl: Add new helper attachTextureToFBO
 - libcamera: egl: Add createOutputTexture2D
 - libcamera: egl: Add activateBindTexture
 - libcamera: egl: Add updateTexture2D
 - libcamera: converter: converter_dw100: Refactor dewarp param handling
 - libcamera: converter: converter_dw100: Allow to transform between different camera matrices
 - include: linux: Update to Linux 7.1

softisp:
 - libcamera: software_isp: #include cleanup
 - libcamera: software_isp: Normalize statistics sums to 8-bit
 - libcamera: software_isp: Drop redundant sumShift_ guard in finishFrame
 - libcamera: software_isp: Use Vector operator>>= in finishFrame
 - debayer_egl: Include stats computation into benchmark
 - debayer_egl: Sync output buffers after processing stats
 - egl: Add GL format parameter to eGLImage constructor
 - egl: Remove some parameters from createTexture2D()
 - egl: eGLImage: Add flag to remember dmabuf import fails
 - libcamera: swstats_cpu: Take MappedFrameBuffer in processFrame()
 - debayer_egl: Implement dmabuf import for input buffers
 - libcamera: software_isp: debayer_egl: Demote unsupported format log to Info
 - libcamera: software_isp: Support 12-bit CSI2 packed raw bayer formats
 - software_isp: debayer_egl: Request input buffer alignment of 256 bytes
 - egl: Log the GL-driver
 - software_isp: debayer_egl: Consider border for scaling
 - libcamera: software_isp: Probe EGL availability before creating DebayerEGL
 - libcamera: software_isp: Fix black level application in GPU ISP
 - libcamera: software_isp: Fix black level handling in CPU ISP
 - softisp: Split AWB from Combined Matrix
 - shaders: bayer: Use native matrix multiplication
 - libcamera: software_isp: Replace open-coded buffer cancellation
 - libcamera: shaders: Move header generation to shaders directory
 - libcamera: shaders: Replace C array with std::array
 - libcamera: software_isp: debayer_egl: Pass eglImage as parameter to setShaderVariables
 - libcamera: software_isp: debayer_egl: Implement input/output frame caching mechanism

ipa:
 - ipa: simple: agc: Replace bang-bang controller with proportional
 - ipa: libipa: camera_sensor_helper: Add OV2740 black level
 - ipa: libipa: v4l2_params: Fix code example in doc
 - ipa: libipa: v4l2_params: Mention ISP in file one-line description
 - ipa: libipa: v4l2_params: Enforce uint16_t for id_type underlying type
 - ipa: libipa: v4l2_params: Move non-template code to new base class
 - libcamera: libipa: Add right-shift operators to Vector
 - ipa: rpi: agc: Clamp digital gain to avoid saturation issues
 - ipa: libipa: Handle missing YAML nodes in Interpolator
 - ipa: rkisp1: ccm: Drop unused parseYaml() function declaration
 - ipa: rkisp1: cproc: Fix brightness and contrast value handling
 - libcamera: libipa: camera_sensor: Add Sony IMX678 properties
 - ipa: rpi: Add cam_helper for Sony IMX678
 - ipa: rkisp1: awb: Utilise clamp function
 - ipa: rpi: Improve control over which sensor modes require "debinning"
 - ipa: libipa: camera_sensor_helper: Add OV01A10
 - ipa: camera_sensor_helper: Add black levels for OV5693
 - ipa: libipa: camera_sensor_helper: add ov08x40

apps:
 - android: Disable build on platforms without mbrtoc16()
 - apps: common: options: Use character literal instead of string
 - py: Use smart holder for `Camera` if available
 - apps: lc-compliance: Reduce test repetition
 - py: examples: simple-continuous-capture: Fix comment
 - py: cam: Remove unnecessary check
 - gstreamer: allocator: get_pool_size(): Fix return value
 - gstreamer: Use `FrameBuffer` cookie to associate with `GstBuffer`

pipeline:
 - pipeline: rpi: Simplify delayed controls
 - pipeline: rpi: Make control lists in requests properly atomic
 - pipeline: rpi: Fix crash when configuring timeout
 - pipeline: rpi: Print old color space before updating
 - libcamera: pipeline: imx8-isi: Use `completeBuffer()` return value
 - libcamera: pipeline: ipu3: Remove `setRequest()` calls
 - libcamera: pipeline: mali-c55: Add missing `<queue>` include
 - libcamera: pipeline: rkisp1: Simplify dewarper configuration
 - pipeline: virtual: Move libjpeg requirement to libyuv subproject
 - pipeline: rpi: pisp: Ensure we don't run our SW correction with packed
 - pipeline: rpi: pisp: Fix colours for NV21 and NV61 pixel formats
 - pipeline: rpi: pisp: Remove duplicated format entry
 - controls: rpi: Add ControlListSequence control

test:
 - test: controls: control_info_map: Fix libc++ warning

documentation:
 - Documentation: Reorganize the index of the "For Developers" section
 - Documentation: Move platform support to user documentation
 - Documentation: architecture: Detail policy on dependencies
 - Documentation: coding-style: Document rule about indirect includes

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-07-14 14:09:06 -07:00
Khem Raj f2ecf28404 libcamera: fix malformed -Wno-error=array-bounds flag
Drop the stray trailing '=' that produced an invalid compiler option.

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-06-28 00:59:24 -07:00
Markus Volk cb417db7ab libcamera: add workaround to fix build with gcc 16
libcamera fails if using gcc16 with -Werror=array-bounds=

Ignore this issue for now until it is properly fixed

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-06-07 18:21:32 -07:00
Jose Quaresma 8b2c487173 libcamera: 0.7.0 -> 0.7.1
- Added PACKAGECONFIG for all available options, most of them introduced
in this version. This will make the package's outcome more deterministic.

This release brings 142 commits with the largest developments in the core of
libcamera components. Perhaps the most obvious is that we now use C++20 for the
project. The Configuration file handling has had a substantial rework with
updates to the yaml_parser.

The RKISP1 IPA has now added a new Hue control which brought with it a rework
of how we manage fixed point arithmetic with the Quantized class. I hope this
makes it easier to convey types with hardware operations.

The SoftISP has the ability to perform CPU debaying with multiple threads which
helps throughput on platforms such as the Arduino Uno Q.

The Mali-C55 pipeline handler now has full support for the RZG2LCRU and inline
handling which enables camera support on the Renesas RZ/V2H and RZ/V2NP
platforms.

And of interest in the apps components, the gstreamer plugin now has the
ability to select and configure the sensor mode configuration properties.
Finally a new script "libcamera-bug-report" is available to be packaged which
will help users identify issues when reporting bugs.

More on https://github.com/libcamera-org/libcamera/releases/tag/v0.7.1

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-05-12 01:07:01 -07:00
Jose Quaresma 41ba8f83a4 libcamera: 0.6.0 -> 0.7.0
- Drop merged pacth 0001-libcamera-Do-not-assume-libc-with-clang.patch.
- The v4l2 option "true" is deprecated and we should use "enabled".
- There is a new option "rpi-awb-nn", disabled for now, which requires
TensorFlow Lite.
- The GPU acceleration in the software ISP "SoftISP" for delivering
better performance and it becomes enabled when we have OpenGL.

This release brings 158 commits with substantial development on the SoftISP
components. This brings in GPU acceleration, allowing us to get higher
throughput for cameras using this pipeline. Further development to improve the
image quality is ongoing now that we can perform more processing in realtime.

The simple pipeline handler now supports exposing the Raw streams directly
allowing us to enable the SoftISP by default without removing access to the
camera formats.

Kernel headers have been updated to v6.18, supporting the new V4L2 ISP kernel
interface which allows us to continue improvements to hardware ISP pipelines as
we add new features.

Logging has been improved to better detect when to enable or disable color
output and can be controlled through the environment variable
LIBCAMERA_LOG_COLOR.

A new control is added for LensShadingCorrectionEnable to allow runtime control
over the LSC components where supported.

The gstreamer pipeline now has raw support added to the libcamerasrc
stream-role property allowing raw streams to be configured and accessed.

An exciting new AWB algorithm using Neural Networks, has been added to the
Raspberry Pi IPA following extensive development and training performed by the
Raspberry Pi Camera Team.

And finally, the Documentation now includes a support matrix which will help
identify the current support and enablement for platforms and sensors.

More on https://github.com/libcamera-org/libcamera/releases/tag/v0.7.0

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-05-12 01:07:01 -07:00
Jose Quaresma a797983156 libcamera: change python config
The python3 can be removed from PACKAGECONFIG depends because
the python3native is already inherited.
Also rename the pycamera to python as this is more generic
and can be used to enable everything related to python.

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-05-12 01:07:00 -07:00
Jose Quaresma a9eece0195 libcamera: add new package for lc-compliance
lc-compliance is a libcamera compliance testing tool designed to ensure
that cameras and their drivers function correctly within the software stack,
acting as a functional system test to validate real-world use cases.
This tool helps detect regressions and verifies that the libcamera API
is being used correctly.

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-05-12 01:07:00 -07:00
Jose Quaresma 5206553c8f libcamera: add configs pipelines for testing
vimc:
Is a driver that emulates complex video hardware, and is
useful for testing libcamera without needing access to a physical
camera. We would like to add support to the libcamera vimc
pipeline handler for multiple simultaneous streams, to ease
testing of such mechanism. This also requires adding multistream
support to the vimc driver in the Linux kernel.

virtual:
Is a specialized handler designed to create software-based,
virtual camera devices. It allows for testing, debugging, and
simulating camera pipelines without needing physical hardware,
often producing test patterns (e.g., all green frames) via qcam.
This enables developers to emulate camera sensors and
Image Signal Processors (ISPs) within the libcamera

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-05-12 01:07:00 -07:00
Weisser, Pascal 7402203910 libcamera: Add HOMEPAGE variable
Add HOMEPAGE variable to libcamera recipe.

Signed-off-by: Weisser, Pascal <pascal.weisser.ext@karlstorz.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-12-10 08:56:11 -08:00
Walter Werner SCHNEIDER 779faaa65d libcamera: upgrade 0.5.2 -> 0.6.0
Signed-off-by: Walter Werner SCHNEIDER <contact@schnwalter.eu>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-12-08 12:00:20 -08:00
Hongxu Jia 56d351c260 libcamera: insane skip 32bit-time
$ echo 'MACHINE = "qemux86"' >> conf/local.conf
$ bitbake libcamera
...
WARNING: libcamera-1_0.5.2-r0 do_package_qa: QA Issue: /usr/lib/libcamera.so.0.5.2 uses 32-bit api 'sendmsg' [32bit-time]
WARNING: libcamera-1_0.5.2-r0 do_package_qa: QA Issue: /usr/lib/libcamera.so.0.5.2 uses 32-bit api 'clock_gettime' [32bit-time]
WARNING: libcamera-1_0.5.2-r0 do_package_qa: QA Issue: /usr/lib/libcamera.so.0.5.2 uses 32-bit api 'ioctl' [32bit-time]
WARNING: libcamera-1_0.5.2-r0 do_package_qa: QA Issue: /usr/lib/libcamera.so.0.5.2 uses 32-bit api 'recvmsg' [32bit-time]
WARNING: libcamera-1_0.5.2-r0 do_package_qa: QA Issue: /usr/lib/libcamera.so.0.5.2 uses 32-bit api 'stat64' [32bit-time]
WARNING: libcamera-1_0.5.2-r0 do_package_qa: QA Issue: /usr/lib/libcamera.so.0.5.2 uses 32-bit api 'fstat64' [32bit-time]
WARNING: libcamera-1_0.5.2-r0 do_package_qa: QA Issue: Suppress with INSANE_SKIP = "32bit-time" [32bit-time]
...

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-10-28 23:31:29 -07:00
Khem Raj 4026e1aca8 libcamera: Detect platform/toolchain defaults for C++ library
This ensures that meson does not detect it and automatically link to it
when using clang with gnu runtime

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-10-24 17:11:36 -07:00
Gyorgy Sarvari f4b9dfa0c9 libcamera: upgrade 0.4.0 -> 0.5.2
Dropped 0001-media_device-Add-bool-return-type-to-unlock.patch, because
the issue has been solved by upstream.

Dropped 0002-libcamera-Add-missing-stdint.h-include-to-dma_buf_al.patch,
because it is included in this release.

Added a new PACKAGECONFIG called "raspberrypi" - this is taken from
the meta-raspberrypi layer, however using it still requires that layer,
as using it requires a dependency that is provided by that layer.

The recipe until now built support for all platforms that matched the selected
architecture (e.g. mali, rpi imx8 when the archi is arm). However rpi-specific
options now require a an extra dependency that's not in meta-oe, so only build
rpi-support when raspberrypi PACKAGECONFIG is enabled.

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-09-16 12:09:11 -07:00
Alexander Kanavin fc78d37ff0 meta-openembedded/all: adapt to UNPACKDIR changes
Please see
https://git.yoctoproject.org/poky/commit/?id=4dd321f8b83afecd962393101b2a6861275b5265
for what changes are needed, and sed commands that can be used to make them en masse.

I've verified that bitbake -c patch world works with these, but did not run a world
build; the majority of recipes shouldn't need further fixups, but if there are
some that still fall out, they can be fixed in followups.

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-06-25 06:44:52 -07:00
tho3.nguyen 65f0ffec50 libcamera: Fix build with gcc-15
Backport patch to fix the following error:
...
In file included from ../git/src/libcamera/dma_buf_allocator.cpp:9:
../git/include/libcamera/internal/dma_buf_allocator.h:66:19: error: 'uint64_t' has not been declared
   66 |         void sync(uint64_t step);
      |                   ^~~~~~~~
../git/include/libcamera/internal/dma_buf_allocator.h:17:1: note: 'uint64_t' is defined in header '<cstdint>'; this is probably fixable by adding '#include <cstdint>'
...

Signed-off-by: tho3.nguyen <tho3.nguyen@lge.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-03-28 10:28:13 -07:00
Koen Kooi d9c5ae5c03 libcamera: add support for DNG files
The 'cam' app in libcamera will turn on DNG support if it finds libtiff,
but it has no way to explicitly disable it. Add a 'dng' PACKAGECONFIG to
reliably enable it, disabling it will take more effort when using
gstreamer.

Signed-off-by: Koen Kooi <koen.kooi@oss.qualcomm.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-03-18 13:53:08 -07:00
Alexander Stein dfa40e1f4e libcamera: update to 0.4.0
Upgrade libcamera to version 0.4.0, gaining support for ARM Mali-C55 ISP.

Patches 0002-options-Replace-use-of-VLAs-in-C.patch and
0001-rpi-Use-malloc-instead-of-variable-length-arrays.patch are obsolete.
Issues have been fixed upstream (differently).

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-01-08 08:02:10 -08:00
Hubert Wiśniewski 4642c541c4 libcamera: Use multiple of sizeof as malloc size
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-08-10 15:57:57 -07:00
Kieran Bingham 953000215e libcamera: Add support for pycamera
Supply a libcamera-pycamera package to allow installing the libcamera
python bindings.

Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-08-09 14:25:26 -07:00
Dmitry Baryshkov 91054de777 libcamera: update to 0.3.0
Upgrade libcamera to version 0.3.0, gaining support for SoftISP.

Patch 0001-ipu3-Use-posix-basename.patch is dropped, it is applied
upstream.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-06-04 23:49:47 -07:00
Khem Raj 742c3da874 libcamera: Fix build on musl systems
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-03-24 11:36:17 -07:00
Khem Raj c17d8d9de4 libcamera: Fix clang support patches
Replace alloca with malloc

Allocate size for struct option array was not correct therefore
multiply the value with sizeof(struct option) to account for it

[YOCTO #15449 ]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-03-22 23:57:40 -07:00
Khem Raj 1f1a607970 libcamera: Replace VLAs with alloca
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-02-21 19:59:51 -08:00
Khem Raj 2aaf6b75a9 libcamera: Fix build with clang-18
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-01-31 21:11:26 -08:00
Denys Dmytriyenko 711c6fbce3 libcamera: update 0.1.0 -> 0.2.0
Changelog:
https://git.libcamera.org/libcamera/libcamera.git/tag/?h=v0.2.0

Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2024-01-27 09:48:32 -08:00
Khem Raj 7d8115d550 libcamera: Fix build with python 3.12
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-12-30 11:06:30 -08:00
Khem Raj c6c636e320 Revert "libcamera: skip until upstream resolves python 3.12 compatibility"
This reverts commit dd402176a6.
2023-12-30 11:06:30 -08:00
Alexander Kanavin dd402176a6 libcamera: skip until upstream resolves python 3.12 compatibility
I'd note that imp module has been deprecated for years, so that's what
happens when deprecation warnings are ignored.

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-12-18 22:17:22 -08:00
Tom Hochstein fe3a2def88 libcamera: Avoid build break in signature recalculation
The signature recalculation task can fail:
```
/.../build/tmp/work/armv8a-poky-linux/libcamera/1_0.0.4-r0/temp/run.do_recalculate_ipa_signatures_package.937421: line 154: /.../build/tmp/work/armv8a-poky-linux/libcamera/1_0.0.4-r0/git/src/ipa/ipa-sign-install.sh: No such file or directory
```

This happens whenever ${S} is removed and packages are retrieved from
sstate cache.

Instead of trying to fix the task, avoid the issue altogether by
performing the signature recalculation directly in do_package.

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-10-04 13:08:40 -07:00
Vivien Didelot 90c027da29 libcamera: bump to latest master
Bump libcamera to latest master, as commit a2eadc40a introduces
flicker controls for rpi which are required in latest libcamera-apps.

Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-08-02 22:57:25 -07:00
Markus Volk 4e02817972 libcamera: update 0.0.5 -> 0.1.0
libcamera v0.1.0

ABI Compliance:

abi-compliance-checker reports 99% binary compatibility and 81.4% source
compatibilty between version 0.0.5 and 0.1.

 - Binary compatibility: 99%
 - Source compatibility: 81.4%
 - Total binary compatibility problems: 4, warnings: 2
 - Total source compatibility problems: 165, warnings: 7

Now that we have funtional ABI validation, the soname has been updated from
libcamera.so.0.0.5 to libcamera.so.0.1.

Future releases will now maintain the same soname until an ABI breakage is
detected to reduce the repackaging and rebuilding of other components that may
use libcamera. The abi-compatibility report can now be generated with the new
utility './utils/abi-compat.sh'.

Key differences here are due to preventing the installation of internal and
private headers in the packaging process, and most of this API compatibility
should not be visible to applications with the exception of:

- Camera::generateConfiguration ( StreamRoles const& roles )

  The StreamRoles type definition has been removed. This is now handled as a
  Span<StreamRole> to prevent unnecessary allocations and copies.

- CameraManager::addCamera ( std::shared_ptr<struct Camera> camera, std::vector<unsigned long>const& devnums )
- CameraManager::get ( dev_t devnum )
- CameraManager::removeCamera ( std::shared_ptr<struct Camera> camera )

  These functions of the CameraManager were for use exclusively by the V4L2
  adaptation layer, and not intended for use by applications. This has now been
  reworked to use the new SystemDevices and the redundant functions removed.

The ABI/API breakages have been introduced by:

  5ca0c9276f28 ("libcamera: CameraManager: Remove ::get(dev_t)")
  26a4b83d1b94 ("libcamera: Remove `StreamRoles` alias")
  63966ae587d7 ("libcamera: base: Do not install private headers")

Core:
 - libcamera: v4l2_videodevice: Use O_CLOEXEC when exporting DMA buffers
 - libcamera: ipa_manager: Allow IPA loading in nested subdirs
 - meson: Fix usage of overwritten pipeline variable
 - subprojects: Drop leftovers of pybind11
 - camera_sensor: ipa: core: Add CFA pattern to IPACameraSensorInfo
 - libcamera: controls: Define a default lens position behaviour
 - libcamera: internal: request: convert to pragma once
 - libcamera: camera_manager: Move private implementation to internal
 - libcamera: camera_manager: Move {add,remove}Camera to internal
 - libcamera: properties: Provide a Devices camera property
 - libcamera: pipeline: Register device numbers with camera
 - libcamera: camera_sensor: Adjust properties::Rotation
 - libcamera: meson: Allow PH to change libcamera_deps
 - libcamera: base: Move thread_annotations to private
 - libcamera: base: Do not install private headers
 - utils: ABI Compatibility checker
 - meson: Use x.y soname versioning
 - libcamera: camera: Take span of StreamRole instead of vector
 - libcamera: Remove `StreamRoles` alias
 - utils: ipu3-capture.sh: Fix the script to work with recent media-ctl versions
 - Documentation: Add predefined macros from config.h to Doxyfile
 - utils: checkstyle: Add __repr__ method to CommitFile class
 - utils: checkstyle: Support running checkers selectively
 - utils: checkstyle: Don't include commit ID in commit title
 - utils: checkstyle: Add trailers checker
 - tests: gstreamer: Test cameras' enumeration from GstDeviceProvider
 - meson: Fix space around colon issues
 - libcamera: Add option to configure udev support
 - libcamera: CameraManager: Remove ::get(dev_t)
 - tests: gstreamer: Fix compiler error with gcc 8.4.0

ipa:
 - meson: ipa: Add mapping for pipeline handler to mojom interface file
 - libcamera: ipa: Remove character restriction on the IPA name
 - ipa: meson: Allow nested IPA directory structures
 - ipa: raspberrypi: Introduce IpaBase class
 - ipa: raspberrypi: agc: Move weights out of AGC
 - ipa: rkisp1: agc: drop hard-coded analogue gain range
 - libipa: camera_sensor_helper: Add IMX327 helper
 - pipeline: rpi: ipa_base: Parse config files after platformRegister()
 - libcamera: camera_sensor: Add Sony IMX327 sensor properties
 - ipa: rpi: imx296: Small refinements to the IMX296 mono sensor tuning
 - ipa: rpi: Handle controls for mono variant sensors
 - libcamera: controls: Drop reference to IPA in controls documentation
 - libipa: camera_sensor_helper: Restore alphabetical order
 - ipa: ipu3: agc: Drop hard-codec analogue gain max
 - ipa: rkisp1: agc: Restore minimum analogue gain limit
 - pipeline: ipa: rpi: Return lens controls from ipa->configure()
 - ipa: rpi: Set lens position to hyperfocal on startup
 - ipa: rpi: tunings: Add missing short and long exposure profiles
 - ipa: rpi: agc: Use std::string instead of char arrays
 - ipa: rpi: agc: Gracefully handle missing agc modes
 - ipa: rpi: agc: Do not switch to a default if a mode is unavailable
 - ipa: rpi: imx708: Fix mode switch drop frame count
 - ipa: rpi: imx296_mono: Disable all colour shading

pipeline:
 - libcamera: pipeline: simple: Add support for ST's DCMIPP
 - pipeline: meson: Allow nested pipeline handler directory structures
 - pipeline: ipa: raspberrypi: Refactor and move the Raspberry Pi code
 - pipeline: raspberrypi: rpi_stream: Set invalid buffer to id == 0
 - pipeline: ipa: raspberrypi: Restructure the IPA mojom interface
 - pipeline: raspberrypi: Make RPi::Stream::name() return const std::string &
 - pipeline: raspberrypi: Introduce PipelineHandlerBase class
 - pipeline: raspberrypi: Add stream flags to RPi::Stream
 - libcamera: rkisp1: Generate config using main path
 - libcamera: rkisp1: Crop on ISP before downscaling
 - libcamera: rkisp1: Assign sizes to roles
 - libcamera: rkisp1: Fix enumeration of RAW formats
 - pipeline: rpi: Do not return an error from pipeline config file handling
 - libcamera: pipeline: simple: Support TI CSI-RX
 - pipeline: rpi: Account for Bayer packing when validating format

apps:
 - apps: qcam: Remove redundant check
 - v4l2: Move the v4l2 compat layer to libexec/libcamera
 - android: mm: generic: use GRALLOC_HARDWARE_MODULE_ID
 - android: mm: Stub libhardware for build tests
 - py: Fix CameraManager.version property
 - py: Move ColorSpace and Transform classes to separate files
 - py: Use exceptions instead of returning error codes
 - py: unittests.py: Add weakref helpers and use del
 - py: Move to mainline pybind11 version
 - py: Fix code formatting
 - py: unittests.py: Fix type checker warnings
 - gstreamer: Add enable_auto_focus option to the GStreamer plugin
 - gstreamer: Drop libcamera_private dependency
 - apps: Add ipa-verify application
 - v4l2: v4l2_camera_proxy: Prevent ioctl sign-extensions
 - v4l2: Use SystemDevices properties to identify cameras

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-07-23 16:36:14 -07:00
Alexander Stein d369384399 libcamera: Simplify pipeline configuration
Default to 'auto' which enables all target architecture pipelines (+UVC).
IPAs are also automatically enabled if the corresponding required pipeline
is enabled as well.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-24 07:23:54 -07:00
Alexander Stein a934982589 libcamera: Allow overwriting default pipelines and IPA
By default only uvcvideo, simple and vimc pipelines as well as vimc IPA
are built. Add new variables for enabling a custom set of enabled
pipelines and IPAs.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-17 17:43:13 -07:00
Markus Volk 50601e60f7 libcamera: update 0.0.4 -> 0.0.5
libcamera v0.0.5

Bugfixes:
- meson: Ignore -Wredundant-move with gcc-13 and newer
- cam: file_sink: Workaround gcc-13 dangling-reference false positive
- libcamera: Open files with O_CLOEXEC
- meson: Fix git version parsing
- libcamera: camera_manager: Stop exponential explosive calls to createPipelineHandlers
- py: cam: Fix demosaic overflow issue
- libcamera: base: Make the registration of log categories atomic

Core:
- test: controls: control_info_map: Test default constructor
- controls: guard ControlInfoMap against nullptr idmap_
- device_enumerator_udev: Use std::string_view
- formats: Add 14-bits Bayer RAW formats
- device_enumerator_udev: Remove devnum from dependency map
- meson: libcamera: Report IPA signature method
- meson: Align handling of build metadata
- converter: Check converter validity
- Keep using syslog for isolated IPA modules
- utils: ipc: Update parser.py
- utils: checkstyle.py: Don't run commit title checker on staged commits
- framebuffer: Allow inheritance of FrameBuffer
- Remove transform from V4L2SubdeviceFormat
- libcamera: camera_sensor: Add tryFormat()
- camera_sensor: Fix typo in comment
- camera_sensor: Demote flip support message to Debug
- internal: tracepoints: Use correct include directive
- libcamera: camera: Ensure queued requests are invalid

ipa:
- doc: Clarify IPA acronym in its namespace description
- rkisp1: Add tuning files for PinephonePro sensors
- rkisp1: Add tuning files for Google DRU "Scarlet" sensors
- rkisp1: lsc: Fix integer division error
- libipa: Add OV2685 Camera Sensor Helper
- libipa: Add OV5647 Camera Sensor Helper
- raspberrypi: agc: Add "shadows" constraint mode
- raspberrypi: generalise algorithms
- raspberrypi: Fix default frame durations calculation
- raspberrypi: Ensure shutter speed and gain are clipped in the AGC
- raspberrypi: Use the new sensor limits fields in CameraMode
- raspberrypi: Add sensor mode limits to CameraMode
- raspberrypi: Fix crash under LTO
- raspberrypi: imx296: Minor tuning updates
- raspberrypi: agc: Fix overflow in Y value calculation
- raspberrypi: Better heuristics for calculating Unicam timeout
- raspberrypi: Generalise statistics
- raspberrypi: Change Unicam timeout handling

pipeline:
- simple: Validate transform
- imx8-isi: Remove mbusCode from formatsMap_
- imx8-isi: Automatically select media bus code
- imx8-isi: Split Bayer/YUV config generation
- imx8-isi: Break out RAW/YUV format selection
- raspberrypi: Iterate over all Unicam instances in match()
- raspberrypi: Add a Unicam timeout override config options
- raspberrypi: Always use ColorSpace::Raw for raw streams
- raspberrypi: Drop unused code
- ipu3: Drop unused code

apps:
 - cam: kms_sink: Drop unique_ptr<> from DRM::AtomicRequest
 - cam Return std::optional<> from StreamKeyValueParser::parseRole()
 - android: jpeg: Add JEA implementation

ABI Compliance:

 * abi-compliance-checker reports 98.6% ABI and 100% API compatibility with
   with v0.0.4

  Total binary compatibility problems: 1, warnings: 1
  Total source compatibility problems: 0, warnings: 0

 - First virtual method ~__dt ( ) has been added to this class.
   1) The layout of type structure has been shifted by 8 bytes by the added v-table pointer.
   2) Size of class has been increased by 8 bytes.

affected symbols: 6 (1.4%)
  FrameBuffer::releaseFence ( )
  FrameBuffer::setCookie ( uint64_t cookie )
  FrameBuffer::cookie ( )
  FrameBuffer::planes ( )
  FrameBuffer::request ( )
  FrameBuffer::metadata ( )

This ABI breakage was introduced by:
  4843bfa ("libcamera: framebuffer: Allow inheritance of FrameBuffer")

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-05-15 22:51:10 -07:00
Markus Volk 17180ae0d2 libcamera: re-introduce fix for gcc-13
Signed-off-by: Markus Volk <f_L_K@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-04-01 08:55:06 -07:00
Markus Volk 2b1ac94dd2 libcamera: update 0.0.1 -> 0.0.4
Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-03-25 16:43:34 -07:00
Khem Raj d8381620cd libcamera: Fix build with gcc-13
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-25 08:57:42 -08:00
Khem Raj a92b6685b6 libcamera: Diable 64bit time_t on glibc targets
it overrides some of LFS64 functions in peculiar ways that it has to
undefine _FILE_OFFSET_BITS to silence the funtion definitions from glibc

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-01-01 21:09:02 -08:00
Markus Volk 1032bce778 libcamera: upgrade -> 0.0.1
libcamera has recently received its first release.
Note: meta-raspberrypi needs to adjust the name of libcamera.bbappend

Signed-off-by: Markus Volk <f_l_k@t-online.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-10-22 16:01:22 -07:00
Devendra Tewari 5c59497531 libcamera: Remove boost from DEPENDS
Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-10-09 20:07:29 -07:00
Devendra Tewari 9ab32b214b libcamera: Bump SRCREV and add libyaml to DEPENDS
Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
2022-10-04 09:29:47 -07:00
Julien STEPHAN 3de996474e libcamera: fix packaging
libcamera.so.0 and libcamera-base.so.0 are packaged in ${PN}-dev although
they should be packaged in ${PN}. See poky/meta/conf/bitbake.conf.
This trigger the following error when trying to run the `cam` utility
(packaged inside ${PN}):

$ cam -l
cam: error while loading shared libraries: libcamera.so.0: cannot open shared object file: No such file or directory

$ read-elf -d /usr/bin/cam
Dynamic section at offset 0x2c740 contains 37 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libcamera.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libcamera-base.so.0]
[...]

So package libcamera is broken and need to be installed along with
libcamera-dev to be functionnal. Fix it by packaging libcamera.so.0 and
libcamera-base.so.0 into ${PN}

Signed-off-by: Julien STEPHAN <jstephan@baylibre.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-05-12 09:16:11 -07:00
Khem Raj 4b50fb02cc recipes: Update LICENSE variable to use SPDX license identifiers
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-03-04 17:41:45 -08:00
Khem Raj e6e72ed4c4 Revert "libcamera: add pkg-config files"
This reverts commit 606eaedc8c.
2022-02-23 09:25:19 -08:00
Devendra Tewari 606eaedc8c libcamera: add pkg-config files
Signed-off-by: Devendra Tewari <devendra.tewari@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-02-22 08:30:51 -08:00
Peter Griffin ea6d967dbe libcamera: update meson options to build pipeline handlers & cam utility
Enable uvcvideo, simple, and vimc pipeline handlers in libcamera. Without
any pipeline handlers libcamera can't capture any frames.

Also enable cam utility with is a cli utility that can use the library to
capture some frames.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-02-03 08:44:32 -08:00
Mauro Anjo b450b0bb82 libcamera: Update to latest commit
Drop patch for musl/aarch64 and bump source commit to latest version that
has the patch applied.

Signed-off-by: Mauro Anjo <maurosanjo@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-12-08 11:12:23 -08:00
Khem Raj 2609687905 libcamera: Fix build break on musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-12-01 12:39:28 -08:00
Mauro Anjo 6950f12060 Upgrade libcamera
Upgrades libcamera to latest commit, now libcamera.so is a symlink so
made changes to include all created symlinks.

Signed-off-by: Mauro Anjo <maurosanjo@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-12-01 12:39:28 -08:00