diff mbox series

[meta-oe,5/6] libcamera: 0.6.0 -> 0.7.0

Message ID 20260506111552.2782-5-jose.quaresma@foundries.io
State Under Review
Headers show
Series [meta-oe,1/6] libyuv: add recipe | expand

Commit Message

Jose Quaresma May 6, 2026, 11:15 a.m. UTC
- 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>
---
 ...camera-Do-not-assume-libc-with-clang.patch | 68 -------------------
 ...{libcamera_0.6.0.bb => libcamera_0.7.0.bb} | 11 +--
 2 files changed, 7 insertions(+), 72 deletions(-)
 delete mode 100644 meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-libcamera-Do-not-assume-libc-with-clang.patch
 rename meta-multimedia/recipes-multimedia/libcamera/{libcamera_0.6.0.bb => libcamera_0.7.0.bb} (92%)
diff mbox series

Patch

diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-libcamera-Do-not-assume-libc-with-clang.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-libcamera-Do-not-assume-libc-with-clang.patch
deleted file mode 100644
index 25d88cfff4..0000000000
--- a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-libcamera-Do-not-assume-libc-with-clang.patch
+++ /dev/null
@@ -1,68 +0,0 @@ 
-From 0c68347365ec4c0bd3f84e1d2f9f51eb3c2405c8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 24 Oct 2025 11:10:59 -0700
-Subject: [PATCH] libcamera: Do not assume libc++ with clang
-
-Clang on linux can be defaulting to use libstdc++, it
-should be using default platform C++ runtime library which the
-toolchain should be configured to do the right thing
-
-Add logic in meson file to detect C++ runtime used by toolchain
-and defile -stdlib= parameter accordingly
-
-Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2025-October/054151.html]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- meson.build | 32 +++++++++++++++++++++-----------
- 1 file changed, 21 insertions(+), 11 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index fa6487f6..89294936 100644
---- a/meson.build
-+++ b/meson.build
-@@ -118,7 +118,24 @@ cpp_arguments = [
-     '-Wnon-virtual-dtor',
- ]
- 
--cxx_stdlib = 'libstdc++'
-+# Try to detect libc++
-+libcxx_ver = cxx.get_define('_LIBCPP_VERSION',
-+  prefix: '#include <vector>\n')
-+
-+# Try to detect libstdc++
-+glibcxx_ver = cxx.get_define('__GLIBCXX__',
-+  prefix: '#include <vector>\n')
-+
-+stdlib_msg = 'unknown'
-+
-+if libcxx_ver != ''
-+  cxx_stdlib = 'libc++'
-+elif glibcxx_ver != ''
-+  # __GLIBCXX__ is usually a yyyymmdd date code
-+  cxx_stdlib = 'libstdc++'
-+endif
-+
-+message('Detected C++ standard library: ' + cxx_stdlib)
- 
- if cc.get_id() == 'clang'
-     if cc.version().version_compare('<9')
-@@ -138,16 +155,9 @@ if cc.get_id() == 'clang'
-             ]
-         endif
-     endif
--
--    # Use libc++ by default if available instead of libstdc++ when compiling
--    # with clang.
--    if cc.find_library('c++', required : false).found()
--        cpp_arguments += [
--            '-stdlib=libc++',
--        ]
--        cxx_stdlib = 'libc++'
--    endif
--
-+    cpp_arguments += [
-+        '-stdlib=' + cxx_stdlib,
-+    ]
-     cpp_arguments += [
-         '-Wextra-semi',
-         '-Wthread-safety',
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.6.0.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.7.0.bb
similarity index 92%
rename from meta-multimedia/recipes-multimedia/libcamera/libcamera_0.6.0.bb
rename to meta-multimedia/recipes-multimedia/libcamera/libcamera_0.7.0.bb
index 64e8973d53..f83372df43 100644
--- a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.6.0.bb
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.7.0.bb
@@ -11,10 +11,9 @@  LIC_FILES_CHKSUM = "\
 
 SRC_URI = " \
         git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master;tag=v${PV} \
-        file://0001-libcamera-Do-not-assume-libc-with-clang.patch \
 "
 
-SRCREV = "3c17d1fbb2bd93f221afee788ebf0d7394032e4d"
+SRCREV = "b7854fd07d42168f099b5ce30d1702e0e0875bf5"
 
 PE = "1"
 
@@ -23,10 +22,13 @@  DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native'
 
 PACKAGES =+ "${PN}-compliance ${PN}-gst ${PN}-pycamera"
 
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= " \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)} \
+"
 PACKAGECONFIG[dng] = ",,tiff"
 PACKAGECONFIG[compliance] = "-Dlc-compliance=enabled,-Dlc-compliance=disabled,gtest"
 PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[opengl] = ",,virtual/libgl virtual/egl"
 PACKAGECONFIG[python] = "-Dpycamera=enabled,-Dpycamera=disabled,python3-pybind11"
 PACKAGECONFIG[raspberrypi] = ",,libpisp"
 PACKAGECONFIG[vimc] = ",,"
@@ -46,10 +48,11 @@  LIBCAMERA_PIPELINES:aarch64 ??= "${ARM_PIPELINES}"
 
 EXTRA_OEMESON = " \
     -Dpipelines=${LIBCAMERA_PIPELINES} \
-    -Dv4l2=true \
+    -Dv4l2=enabled \
     -Dcam=enabled \
     -Dtest=false \
     -Ddocumentation=disabled \
+    -Drpi-awb-nn=disabled \
 "
 
 RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', 'qtwayland', '', d)}"