Age | Commit message (Collapse) | Author |
|
VNDK provides a pre-built version of boringssl. Override the libcrypto
dependency to use the pre-built version from VNDK.
Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
|
|
Parametrize the path to the prebuilt shared libraries and to the inclusion
path to support both x86_64 and aarch64.
Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
|
|
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
|
|
This reverts commit 071c58b051320c98c3c667640864f89c0f1979a7.
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
|
|
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
|
|
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
|
|
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
|
|
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
|
|
gralloc.h is a very old API that has been deprecated at least since
Android P (9).
Switch over to a higher level abstraction of gralloc from libui, which
is compatible with Android 11 and up.
Libui:
* is provided in the VNDK (so it's available to vendors).
* is also used in the camera vts test named VtsAidlHalCameraProvider_TargetTest.
Notes:
* GraphicsBufferAllocator being a Singleton, buffer lifecycle
management is easier.
* The imported headers from Android generate the -Wextra-semi warning.
To avoid patching the files, a pragma has been added before inclusion.
* libdl was used for dlclosing() the legacy hal, so the dep has been dropped
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
|
|
The Android HAL has quite some Android-specific dependencies (such as
libhardware) which are not part of regular linux distributions.
To compile-test the HAL on a Linux x86 system, we have added some stubs.
This means that each time we add a new Android specific dependency, we need to
write an associated stub for it, which can get tricky, especially for complex
C++ classes such as GraphicBufferAllocator.
It would be easier if we could import the includes and the required libraries we
need from Android so that we can build-test the HAL.
The Vendor Native Development Kit (VNDK) provides all the libraries
that a vendor service (such as the libcamera HAL) can link against.
Add the VNDK as a subproject of libcamera and add the necessary meson bits so
that we can compile test the Android HAL on linux without having to stub
anything.
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
|
|
The pybind11 subproject was removed in commit ad4719c10c6a ("py: Move to
mainline pybind11 version"), but two traces remained, one in .gitignore
and a second one as a meson.build for pybind11. Remove them.
Fixes: ad4719c10c6a ("py: Move to mainline pybind11 version")
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
We are using pybind11 'smart_holder' branch to solve the Camera
destructor issue (see the comment in this patch, or the commit
that originally added Python bindings support).
As it would be very nice to use the mainline pybind11 (which is packaged
in distributions), this patch adds a workaround allowing us to move to
the mainline pybind11 version.
The workaround is simply creating a custom holder class
(PyCameraSmartPtr), used only for the Camera, which wraps around the
shared_ptr. This makes the compiler happy.
Moving to mainline pybind11 is achieved with:
- Change the pybind11 wrap to point to the mainline pybdind11 version
- Tell pybind11 to always use shared_ptr<> as the holder for
PyCameraManager, as we use the singleton pattern for the
PyCameraManager, and using shared_ptr<> to manage it is a requirement
- Tell pybind11 to always use PyCameraSmartPtr<> as the holder for Camera
- Change the meson.build file to use a system-installed pybind11
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
|
Miscellaneous files that are not considered copyrightable are missing an
SPDX-License-Identifier header. Fix this by adding a header listing the
CC0-1.0 license.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
|
|
AOSP doesn't ship libyaml, making it more difficult to compile libcamera
for Android. Use a meson wrap to compile libyaml as a subproject if the
dependency is not found.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Eric Curtin <ecurtin@redhat.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
|
|
Add libcamera Python bindings. pybind11 is used to generate the C++ <->
Python layer.
We use pybind11 'smart_holder' version to avoid issues with private
destructors and shared_ptr. There is also an alternative solution here:
https://github.com/pybind/pybind11/pull/2067
Only a subset of libcamera classes are exposed. Implementing and testing
the wrapper classes is challenging, and as such only classes that I have
needed have been added so far.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
libgtest-dev is provided as a static library at least by Debian 10.
The compiler and linker to create the static library might be
different from ones used for libcamera. This causes a problem
upon linking.
This puts gtest code to subprojects, builds the code and link it
for lc-compliance. However, libgtest is locally built as a library on
ChromeOS and thus the used compiler and linker are the same as one
used for libcamera. We don't do these on ChromeOS build environment.
Signed-off-by: Hirokazu Honda <hiroh@chromium.org>
Tested-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
|
Android HAL adaptation layer may need image processing, for
example, scaling and format conversion. Libyuv is a general image
processing. This adds libyuv to subprojects, so that it is forked
locally and can be used with Android HAL implementation code.
Signed-off-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|