Commit Graph

29 Commits

Author SHA1 Message Date
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
Richard Purdie
b402a3076f recipes: Update SRC_URI branch and protocols
This patch updates SRC_URIs using git to include branch=master if no branch is set
and also to use protocol=https for github urls as generated by the conversion script
in OE-Core.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-11-03 06:57:49 -07:00
Martin Jansa
c61dc077bb Convert to new override syntax
This is the result of automated script (0.9.1) conversion:

oe-core/scripts/contrib/convert-overrides.py .

converting the metadata to use ":" as the override character instead of "_".

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2021-08-03 10:21:25 -07:00
Khem Raj
71dd824d25 libcamera: Update to latest master tip
Drop upstreamed patch
jinja2.Environment.compile_templates no longer accepts py_compile
argument so delete it

Fixes
TypeError: compile_templates() got an unexpected keyword argument 'py_compile'

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Andreas Müller <schnitzeltony@gmail.com>
2021-05-17 09:00:36 -07:00
Khem Raj
b2bd9cce16 libcamera: Update the patch to upstreamed one
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-03-28 22:23:40 -07:00
Khem Raj
5593fac20f libcamera: Update to latest
Add a fix for build with gcc11

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Andreas Müller <schnitzeltony@gmail.com>
2021-03-03 19:55:28 -08:00
Madhavan Krishnan
f4272f2abf libcamera: Bumped to latest revision and added pkgconfig to enable gstreamer
Bumped to latest source revision of libcamera, and added packageconfig
to enable the gstreamer during build, and to generate and install the
gstreamer library.

Signed-off-by: Madhavan Krishnan <madhavan.krishnan@linaro.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-09-08 11:56:46 -07:00
Andrey Konovalov
bbf746857d libcamera: fix packaging and installation
libcamera checks if RPATH or RUNPATH dynamic tag is present in
libcamera.so. If it does, it assumes that libcamera binaries are
run directly from the build directory without installing them, and
tries to use resorces like IPA modules from the build directory.
Mainline meson strips RPATH/RUNPATH out from libcamera.so file
at install time. But openembedded-core patches meson to disable
RPATH/RUNPATH removal. That's why  we need to remove this tag manually
in do_install_append().

IPA module is signed (with openssl dgst) after it is built. But
during packaging the OE build system 1) splits out debugging info,
and 2) strips the binaries. So the IPA module so file installed
isn't the one which the signature was calculated against. Then
the signature check fails, and libcamera tries to run the IPA
module isolated (in a sandbox), which doesn't work if the IPA
module wasn't designed to run isolated. The solution is to
recalculate the IPA modules signatures in ${PKGD} after do_package().

Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-08-13 22:37:48 -07:00
Khem Raj
51f97cee9e libcamera: Fix License names to match SPDX convention
Fixes
do_populate_lic: libcamera: No generic license file exists for: GPL-2.0-or-later in any provider

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-08-09 13:07:24 -07:00
Madhavan Krishnan
2a9d26de93 libcamera: Bumped to latest source revision
Updated the source revision, to include the gstreamer pipeline
support added in libcamera, also the Raspberry Pi pipeline support
for Raspberry Pi camera sensor device.

Signed-off-by: Madhavan Krishnan <madhavan.krishnan@linaro.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-06-16 10:55:02 -07:00
Madhavan Krishnan
59daa1229a libcamera: Bumped to latest source revision
libcamera uses the host machine python instead of sysroot,
We use the patch file for libcamera source to use the
sysroot python. But libcamera team has fix this issue and,
pushed the changes to libcamera source, now we are pointing
to that particular source revision of libcamera.

In musl, we faced the compilation iisue, so we changed the
source revision pointing to the fix of musl compilation issue.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-02-20 15:32:27 -08:00
madhavank27
5dcb72e707 Added bb file for libcamera integration
Signed-off-by: madhavank27 <madhavan.krishnan@linaro.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-01-10 00:50:59 -08:00