[libcamera-devel] [PATCH v3 0/6] android: Add initial Camera HAL implementation

Jacopo Mondi jacopo at jmondi.org
Fri Aug 9 12:03:59 CEST 2019


Hello,
  third version of initial Android Camera HAL implementation.

I addressed (most) of Laurent's comments on v2, except the one making the
CameraHalManager a singleton and point the camera_module_t operations to its
static methods.

I think the result is almost ready for merge, one last thing is the deletion of
the components created at CameraHalManager::init() time, such as proxies and
their associated data. Valgrind shows a big leak of camera_metadata_t packages,
created when static informations are required for the first time or when a
template request is requested, and deleted at CameraDevice delete time.
Being the CameraHalManager a static member of the camera module, its destructor
does not called at library unload time, causing memory to be effectively leaked.

While this might be a minor issue, as library unloading should only happens at
system teardown time, this is something worth reporting and maybe investigating.

Thanks
   j

Jacopo Mondi (6):
  licenses: add Apache-2.0 license
  include: android: Add Android headers from Cros
  include: android: Add SPDX tags
  android: Add camera metadata library
  android: metadata: Add SPDX tag
  android: hal: Add Camera3 HAL

 .../libhardware/include/hardware/camera3.h    | 3094 +++++++++++++++++
 .../include/hardware/camera_common.h          |  917 +++++
 .../libhardware/include/hardware/fb.h         |  174 +
 .../libhardware/include/hardware/gralloc.h    |  385 ++
 .../libhardware/include/hardware/hardware.h   |  239 ++
 include/android/meson.build                   |    5 +
 .../android/metadata/camera_metadata_hidden.h |  101 +
 .../android/metadata/system/camera_metadata.h |  581 ++++
 .../metadata/system/camera_metadata_tags.h    | 1006 ++++++
 .../metadata/system/camera_vendor_tags.h      |  159 +
 .../android/system/core/include/android/log.h |  145 +
 .../system/core/include/cutils/compiler.h     |   45 +
 .../core/include/cutils/native_handle.h       |   70 +
 .../system/core/include/system/camera.h       |  299 ++
 .../system/core/include/system/graphics.h     |  764 ++++
 .../system/core/include/system/window.h       |  955 +++++
 include/meson.build                           |    1 +
 licenses/apache-2.0.txt                       |  202 ++
 meson_options.txt                             |    5 +
 src/android/camera3_hal.cpp                   |  111 +
 src/android/camera_device.cpp                 |  817 +++++
 src/android/camera_device.h                   |   63 +
 src/android/camera_hal_manager.cpp            |  142 +
 src/android/camera_hal_manager.h              |   47 +
 src/android/camera_proxy.cpp                  |  199 ++
 src/android/camera_proxy.h                    |   45 +
 src/android/meson.build                       |   15 +
 src/android/metadata/camera_metadata.c        | 1205 +++++++
 .../metadata/camera_metadata_tag_info.c       | 2812 +++++++++++++++
 src/android/thread_rpc.cpp                    |   42 +
 src/android/thread_rpc.h                      |   54 +
 src/libcamera/meson.build                     |    9 +
 src/meson.build                               |    4 +
 33 files changed, 14712 insertions(+)
 create mode 100644 include/android/hardware/libhardware/include/hardware/camera3.h
 create mode 100644 include/android/hardware/libhardware/include/hardware/camera_common.h
 create mode 100644 include/android/hardware/libhardware/include/hardware/fb.h
 create mode 100644 include/android/hardware/libhardware/include/hardware/gralloc.h
 create mode 100644 include/android/hardware/libhardware/include/hardware/hardware.h
 create mode 100644 include/android/meson.build
 create mode 100644 include/android/metadata/camera_metadata_hidden.h
 create mode 100644 include/android/metadata/system/camera_metadata.h
 create mode 100644 include/android/metadata/system/camera_metadata_tags.h
 create mode 100644 include/android/metadata/system/camera_vendor_tags.h
 create mode 100644 include/android/system/core/include/android/log.h
 create mode 100644 include/android/system/core/include/cutils/compiler.h
 create mode 100644 include/android/system/core/include/cutils/native_handle.h
 create mode 100644 include/android/system/core/include/system/camera.h
 create mode 100644 include/android/system/core/include/system/graphics.h
 create mode 100644 include/android/system/core/include/system/window.h
 create mode 100644 licenses/apache-2.0.txt
 create mode 100644 src/android/camera3_hal.cpp
 create mode 100644 src/android/camera_device.cpp
 create mode 100644 src/android/camera_device.h
 create mode 100644 src/android/camera_hal_manager.cpp
 create mode 100644 src/android/camera_hal_manager.h
 create mode 100644 src/android/camera_proxy.cpp
 create mode 100644 src/android/camera_proxy.h
 create mode 100644 src/android/meson.build
 create mode 100644 src/android/metadata/camera_metadata.c
 create mode 100644 src/android/metadata/camera_metadata_tag_info.c
 create mode 100644 src/android/thread_rpc.cpp
 create mode 100644 src/android/thread_rpc.h

--
2.22.0



More information about the libcamera-devel mailing list