[libcamera-devel] [PATCH v2] subprojects: Add libyuv and built if -Dandroid=enabled

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Jan 26 09:31:44 CET 2021


Hi Hiro,

Thank you for the patch.

On Tue, Jan 26, 2021 at 08:26:28AM +0000, Hirokazu Honda wrote:
> 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 folked

s/folked/forked/ ?

> locally and can be used with Android HAL implementation code.
> 
> Signed-off-by: Hirokazu Honda <hiroh at chromium.org>
> ---
>  README.rst              |  2 +-
>  meson.build             |  2 +-
>  src/android/meson.build | 18 ++++++++++++++++++
>  subprojects/.gitignore  |  1 +
>  subprojects/libyuv.wrap |  4 ++++
>  5 files changed, 25 insertions(+), 2 deletions(-)
>  create mode 100644 subprojects/.gitignore
>  create mode 100644 subprojects/libyuv.wrap
> 
> diff --git a/README.rst b/README.rst
> index 251291b7..08bfd5ad 100644
> --- a/README.rst
> +++ b/README.rst
> @@ -47,7 +47,7 @@ A C++ toolchain: [required]
>  	Either {g++, clang}
> 
>  Meson Build system: [required]
> -        meson (>= 0.51) ninja-build pkg-config
> +        meson (>= 0.55) ninja-build pkg-config
> 
>          If your distribution doesn't provide a recent enough version of meson,
>          you can install or upgrade it using pip3.
> diff --git a/meson.build b/meson.build
> index c47eb420..d9b63278 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1,7 +1,7 @@
>  # SPDX-License-Identifier: CC0-1.0
> 
>  project('libcamera', 'c', 'cpp',
> -    meson_version : '>= 0.51',
> +    meson_version : '>= 0.55',
>      version : '0.0.0',
>      default_options : [
>          'werror=true',
> diff --git a/src/android/meson.build b/src/android/meson.build
> index 3d4d3be4..e1533d7c 100644
> --- a/src/android/meson.build
> +++ b/src/android/meson.build
> @@ -14,6 +14,24 @@ foreach dep : android_deps
>      endif
>  endforeach
> 
> +if android_enabled
> +    cmake = import('cmake')
> +
> +    libyuv_vars = cmake.subproject_options()
> +    libyuv_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'})
> +    libyuv_vars.set_override_option('cpp_std', 'c++17')
> +    libyuv_vars.append_compile_args('cpp',
> +         '-Wno-sign-compare',
> +         '-Wno-unused-variable',
> +         '-Wno-unused-parameter')
> +    libyuv_vars.append_link_args('-ljpeg')
> +    libyuv = cmake.subproject('libyuv', options : libyuv_vars)
> +    libyuv_dep = libyuv.dependency('yuv')
> +
> +    android_deps += [ libyuv_dep, ]
> +endif
> +
> +

One blank line is enough.

I'll address these small issues when applying, there's no need to send a
new version.

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

I will apply the patch along with the series that uses libyuv in the
Android HAL (which I'm going to review now).

>  android_hal_sources = files([
>      'camera3_hal.cpp',
>      'camera_hal_manager.cpp',
> diff --git a/subprojects/.gitignore b/subprojects/.gitignore
> new file mode 100644
> index 00000000..410b8bd6
> --- /dev/null
> +++ b/subprojects/.gitignore
> @@ -0,0 +1 @@
> +/libyuv
> \ No newline at end of file
> diff --git a/subprojects/libyuv.wrap b/subprojects/libyuv.wrap
> new file mode 100644
> index 00000000..8ba51fa0
> --- /dev/null
> +++ b/subprojects/libyuv.wrap
> @@ -0,0 +1,4 @@
> +[wrap-git]
> +directory = libyuv
> +url = https://chromium.googlesource.com/libyuv/libyuv.git
> +revision = 93b1b332cd60b56ab90aea14182755e379c28a80

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list