[libcamera-devel] [PATCH] package/libcamera: Add libcamera package

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Apr 3 13:26:32 CEST 2019


Hi All...

I'm sorry - a debug line has crept in that I thought I had kept out of
the patch.

V2 (actually it's V3 anyway) to arrive imminently....

Sorry for the noise.

--
Kieran


On 03/04/2019 12:22, Kieran Bingham wrote:
>   http://libcamera.org/
> 
> Cameras are complex devices that need heavy hardware image processing
> operations. Control of the processing is based on advanced algorithms
> that must run on a programmable processor. This has traditionally been
> implemented in a dedicated MCU in the camera, but in embedded devices
> algorithms have been moved to the main CPU to save cost. Blurring the
> boundary between camera devices and Linux often left the user with no
> other option than a vendor-specific closed-source solution.
> 
> To address this problem the Linux media community has very recently
> started collaboration with the industry to develop a camera stack that
> will be open-source-friendly while still protecting vendor core IP.
> libcamera was born out of that collaboration and will offer modern
> camera support to Linux-based systems, including traditional Linux
> distributions, ChromeOS and Android.
> 
> The project has not made an official release as of yet, so we're
> using the latest sha1 from master
> 
> We utilise C++ 11 but we mandate GCC5+ due to a bug [0] in earlier
> versions which result in compile failures on our code base.
> 
> [0] Bug 54316 - [C++11] move constructor for stringstream
>     https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316
> 
> Documentation and Tests are disabled from the build.
> 
> With the following added to libcamera.config:
> 
>   BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
>   BR2_PACKAGE_LIBCAMERA=y
> 
> ./utils/test-pkg -c libcamera.config -p libcamera
>                              br-arm-full [1/6]: SKIPPED
>                   br-arm-cortex-a9-glibc [2/6]: OK
>                    br-arm-cortex-m4-full [3/6]: SKIPPED
>                           br-x86-64-musl [4/6]: OK
>                       br-arm-full-static [5/6]: SKIPPED
>                             sourcery-arm [6/6]: SKIPPED
> 
> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> ---
>  DEVELOPERS                       |  3 +++
>  package/Config.in                |  1 +
>  package/libcamera/Config.in      | 13 +++++++++++++
>  package/libcamera/libcamera.hash |  4 ++++
>  package/libcamera/libcamera.mk   | 19 +++++++++++++++++++
>  5 files changed, 40 insertions(+)
>  create mode 100644 package/libcamera/Config.in
>  create mode 100644 package/libcamera/libcamera.hash
>  create mode 100644 package/libcamera/libcamera.mk
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index c91325e28486..5bcdf208a62b 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -1260,6 +1260,9 @@ F:	package/ramsmp/
>  N:	Kevin Joly <kevin.joly at sensefly.com>
>  F:	package/libgphoto2/
>  
> +N:	Kieran Bingham <kieran.bingham at ideasonboard.com>
> +F:	package/libcamera/
> +
>  N:	Koen Martens <gmc at sonologic.nl>
>  F:	package/capnproto/
>  F:	package/linuxconsoletools/
> diff --git a/package/Config.in b/package/Config.in
> index b5321aeb49c9..a9d25e58b202 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1472,6 +1472,7 @@ menu "Multimedia"
>  	source "package/libass/Config.in"
>  	source "package/libbdplus/Config.in"
>  	source "package/libbluray/Config.in"
> +	source "package/libcamera/Config.in"
>  	source "package/libdcadec/Config.in"
>  	source "package/libdvbcsa/Config.in"
>  	source "package/libdvbpsi/Config.in"
> diff --git a/package/libcamera/Config.in b/package/libcamera/Config.in
> new file mode 100644
> index 000000000000..cc5e84424c38
> --- /dev/null
> +++ b/package/libcamera/Config.in
> @@ -0,0 +1,13 @@
> +config BR2_PACKAGE_LIBCAMERA
> +	bool "libcamera"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	# C++11 + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
> +	depends on BR2_PACKAGE_HAS_UDEV
> +	help
> +	  libcamera provides a software stack to support
> +	  complex devices that need heavy hardware image
> +	  processing operations.
> +
> +		http://www.libcamera.org/
> diff --git a/package/libcamera/libcamera.hash b/package/libcamera/libcamera.hash
> new file mode 100644
> index 000000000000..7d5392dde2bb
> --- /dev/null
> +++ b/package/libcamera/libcamera.hash
> @@ -0,0 +1,4 @@
> +sha256 2c01dc76d98ef257660f8ef3f4f17f042e112b5eca6b364ad615220c96fbd066  libcamera-d5ca33f6c7b0cd1ca20ec5dc7131aeedf1503080.tar.gz
> +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  licenses/gnu-gpl-2.0.txt
> +sha256 592987e8510228d546540b84a22444bde98e48d03078d3b2eefcd889bec5ce8c  licenses/gnu-lgpl-2.1.txt
> +
> diff --git a/package/libcamera/libcamera.mk b/package/libcamera/libcamera.mk
> new file mode 100644
> index 000000000000..342d5e34cad0
> --- /dev/null
> +++ b/package/libcamera/libcamera.mk
> @@ -0,0 +1,19 @@
> +################################################################################
> +#
> +# libcamera
> +#
> +################################################################################
> +
> +LIBCAMERA_SITE = https://git.linuxtv.org/libcamera.git
> +#LIBCAMERA_SITE = https://gitlab.com/libcamera/libcamera.git

^^^

This should not be here :D


> +LIBCAMERA_VERSION = d5ca33f6c7b0cd1ca20ec5dc7131aeedf1503080
> +LIBCAMERA_SITE_METHOD = git
> +LIBCAMERA_DEPENDENCIES = udev
> +LIBCAMERA_CONF_OPTS = -Dtests=false -Ddocumentation=false
> +LIBCAMERA_INSTALL_STAGING = yes
> +LIBCAMERA_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (utils)
> +LIBCAMERA_LICENSE_FILES = \
> +	licenses/gnu-gpl-2.0.txt \
> +	licenses/gnu-lgpl-2.1.txt
> +
> +$(eval $(meson-package))
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list