[libcamera-devel] [PATCH 3/3] cros: Support the new cros camera API with set_up and tear_down

Kieran Bingham kieran.bingham at ideasonboard.com
Thu Feb 25 15:48:08 CET 2021


Hi Paul,

a few drive by comments:

On 25/02/2021 10:42, Paul Elder wrote:
> Implement and expose the symbol and functions that the new cros camera
> API requires. Since we don't actually need them, leave them empty.
> 
> Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
> ---
>  src/cros/camera3_hal.cpp  | 21 +++++++++++++++++++++
>  src/cros/meson.build      | 16 ++++++++++++++++
>  src/libcamera/meson.build |  6 ++++++
>  src/meson.build           |  4 ++++
>  4 files changed, 47 insertions(+)
>  create mode 100644 src/cros/camera3_hal.cpp
>  create mode 100644 src/cros/meson.build
> 
> diff --git a/src/cros/camera3_hal.cpp b/src/cros/camera3_hal.cpp
> new file mode 100644
> index 00000000..31ad36ac
> --- /dev/null
> +++ b/src/cros/camera3_hal.cpp
> @@ -0,0 +1,21 @@
> +/* SPDX-License-Identifier: LGPL-2.1-or-later */
> +/*
> + * Copyright (C) 2021, Google Inc.
> + *
> + * camera3_hal.cpp - cros-specific components of Android Camera HALv3 module

ChromeOS specific ?

> + */
> +
> +#include <cros-camera/cros_camera_hal.h>
> +
> +static void set_up(cros::CameraMojoChannelManagerToken *token)
> +{
> +}
> +
> +static void tear_down()
> +{
> +}
> +
> +cros::cros_camera_hal_t CROS_CAMERA_EXPORT CROS_CAMERA_HAL_INFO_SYM = {
> +	.set_up = set_up,
> +	.tear_down = tear_down
> +};
> diff --git a/src/cros/meson.build b/src/cros/meson.build
> new file mode 100644
> index 00000000..31aa58c9
> --- /dev/null
> +++ b/src/cros/meson.build
> @@ -0,0 +1,16 @@
> +# SPDX-License-Identifier: CC0-1.0
> +
> +cros_hal_include_dir = '/mnt/host/source/src/aosp/external/libchrome'
> +
> +cros_hal_info_sources = files([
> +    'camera3_hal.cpp',
> +])
> +
> +cros_hal_info = static_library('cros_hal_info',
> +                               cros_hal_info_sources,
> +                               c_args : '-Wno-shadow',
> +                               include_directories : [cros_includes,
> +                                                      cros_hal_include_dir,
> +                                                      android_includes])
> +
> +cros_hal_info_obj = cros_hal_info.extract_objects('camera3_hal.cpp')
> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
> index 4b5e33ce..c40eb41f 100644
> --- a/src/libcamera/meson.build
> +++ b/src/libcamera/meson.build
> @@ -139,6 +139,11 @@ if android_enabled
>      libcamera_deps += android_deps
>  endif
>  
> +libcamera_objects = []
> +if cros_enabled
> +    libcamera_objects += cros_hal_info_obj
> +endif
> +
>  # We add '/' to the build_rpath as a 'safe' path to act as a boolean flag.
>  # The build_rpath is stripped at install time by meson, so we determine at
>  # runtime if the library is running from an installed location by checking
> @@ -149,6 +154,7 @@ libcamera = shared_library('camera',
>                             install : true,
>                             link_with : libcamera_link_with,
>                             include_directories : includes,
> +                           objects : libcamera_objects,
>                             build_rpath : '/',
>                             dependencies : libcamera_deps)
>  
> diff --git a/src/meson.build b/src/meson.build
> index 0b26ca70..ec85cc47 100644
> --- a/src/meson.build
> +++ b/src/meson.build
> @@ -15,6 +15,10 @@ endif
>  # are included directly into the libcamera library when this is enabled.
>  subdir('android')
>  
> +if cros_enabled
> +    subdir('cros')
> +endif

Can this be the same style as the other subdirs, where it's just
subdir('cros') here, but the subdir itself returns early if
!cros_enabled or such?


> +
>  subdir('libcamera')
>  subdir('ipa')
>  
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list