[libcamera-devel] [PATCH 08/16] libcamera/base: Move class helpers to the base library

Hirokazu Honda hiroh at chromium.org
Fri Jun 25 12:26:49 CEST 2021


Hi Kieran,

On Fri, Jun 25, 2021 at 7:07 PM Kieran Bingham
<kieran.bingham at ideasonboard.com> wrote:
>
> Hi Hiro,
>
> On 25/06/2021 04:38, Hirokazu Honda wrote:
> > Hi Kieran,
> >
> > On Fri, Jun 25, 2021 at 10:35 AM Kieran Bingham
> > <kieran.bingham at ideasonboard.com> wrote:
> >>
> >> Move the class support infrastructure to the base library.
> >>
> >> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> >> ---
> >>  include/libcamera/{ => base}/class.h            | 0
> >>  include/libcamera/base/meson.build              | 1 +
> >>  include/libcamera/buffer.h                      | 3 ++-
> >>  include/libcamera/camera.h                      | 3 ++-
> >>  include/libcamera/camera_manager.h              | 3 ++-
> >>  include/libcamera/controls.h                    | 3 ++-
> >>  include/libcamera/framebuffer_allocator.h       | 2 +-
> >>  include/libcamera/internal/buffer.h             | 3 ++-
> >>  include/libcamera/internal/byte_stream_buffer.h | 3 ++-
> >>  include/libcamera/internal/camera_sensor.h      | 3 ++-
> >>  include/libcamera/internal/file.h               | 3 ++-
> >>  include/libcamera/internal/log.h                | 3 +--
> >>  include/libcamera/internal/media_object.h       | 2 +-
> >>  include/libcamera/internal/pipeline_handler.h   | 3 ++-
> >>  include/libcamera/internal/v4l2_subdevice.h     | 3 ++-
> >>  include/libcamera/internal/v4l2_videodevice.h   | 3 ++-
> >>  include/libcamera/meson.build                   | 1 -
> >>  include/libcamera/request.h                     | 3 ++-
> >>  src/android/camera_buffer.h                     | 3 ++-
> >>  src/android/camera_capabilities.h               | 3 ++-
> >>  src/android/camera_hal_config.h                 | 2 +-
> >>  src/libcamera/{ => base}/class.cpp              | 2 +-
> >>  src/libcamera/base/meson.build                  | 1 +
> >>  src/libcamera/meson.build                       | 1 -
> >>  24 files changed, 35 insertions(+), 22 deletions(-)
> >>  rename include/libcamera/{ => base}/class.h (100%)
> >>  rename src/libcamera/{ => base}/class.cpp (99%)
> >>
> >> diff --git a/include/libcamera/class.h b/include/libcamera/base/class.h
> >> similarity index 100%
> >> rename from include/libcamera/class.h
> >> rename to include/libcamera/base/class.h
> >
> > Shall we change a header guard from __LIBCAMERA_CLASS_H__ to
> > __LIBCAMERA_BASE_CLASS_H__?
>
>
> Ayee - I missed it - absolutely.
>
> I've updated with:
>
> diff --git a/include/libcamera/base/class.h b/include/libcamera/base/class.h
> index f384a4889588..a07dac057331 100644
> --- a/include/libcamera/base/class.h
> +++ b/include/libcamera/base/class.h
> @@ -4,8 +4,8 @@
>   *
>   * class.h - Utilities and helpers for classes
>   */
> -#ifndef __LIBCAMERA_CLASS_H__
> -#define __LIBCAMERA_CLASS_H__
> +#ifndef __LIBCAMERA_BASE_CLASS_H__
> +#define __LIBCAMERA_BASE_CLASS_H__
>
>  #include <memory>
>
> (1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? y
> @@ -102,4 +102,4 @@ private:
>
>  } /* namespace libcamera */
>
> -#endif /* __LIBCAMERA_CLASS_H__ */
> +#endif /* __LIBCAMERA_BASE_CLASS_H__ */
>
> And I've missed these on the other files I moved in the early hours of
> this morning, so I'll make the same changes to those as well.
>
> Does your tag apply with this change added?
>

Yep, with the fix,
Reviewed-by: Hirokazu Honda <hiroh at chromium.org>

Thanks,
-Hiro

> (although I suspect I'm going to have to send this series out as a v2
> anyway).
>
>
> >> diff --git a/include/libcamera/base/meson.build b/include/libcamera/base/meson.build
> >> index 9f0ba6b0e10c..2db756c504c9 100644
> >> --- a/include/libcamera/base/meson.build
> >> +++ b/include/libcamera/base/meson.build
> >> @@ -3,6 +3,7 @@
> >>  libcamera_base_include_dir = libcamera_include_dir / 'base'
> >>
> >>  libcamera_base_headers = files([
> >> +    'class.h',
> >>      'utils.h',
> >>  ])
> >>
> >> diff --git a/include/libcamera/buffer.h b/include/libcamera/buffer.h
> >> index e0af00900409..323d1cba41a9 100644
> >> --- a/include/libcamera/buffer.h
> >> +++ b/include/libcamera/buffer.h
> >> @@ -10,7 +10,8 @@
> >>  #include <stdint.h>
> >>  #include <vector>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/file_descriptor.h>
> >>
> >>  namespace libcamera {
> >> diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h
> >> index d71641805c0a..ea0914009c2b 100644
> >> --- a/include/libcamera/camera.h
> >> +++ b/include/libcamera/camera.h
> >> @@ -12,7 +12,8 @@
> >>  #include <stdint.h>
> >>  #include <string>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/controls.h>
> >>  #include <libcamera/object.h>
> >>  #include <libcamera/request.h>
> >> diff --git a/include/libcamera/camera_manager.h b/include/libcamera/camera_manager.h
> >> index c2f0b786da8e..5deede035115 100644
> >> --- a/include/libcamera/camera_manager.h
> >> +++ b/include/libcamera/camera_manager.h
> >> @@ -12,7 +12,8 @@
> >>  #include <sys/types.h>
> >>  #include <vector>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/object.h>
> >>  #include <libcamera/signal.h>
> >>
> >> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h
> >> index 1c9b37e617bc..f62b6cf055d6 100644
> >> --- a/include/libcamera/controls.h
> >> +++ b/include/libcamera/controls.h
> >> @@ -14,7 +14,8 @@
> >>  #include <unordered_map>
> >>  #include <vector>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/geometry.h>
> >>  #include <libcamera/span.h>
> >>
> >> diff --git a/include/libcamera/framebuffer_allocator.h b/include/libcamera/framebuffer_allocator.h
> >> index 0c85631a1da2..cbc9ce101889 100644
> >> --- a/include/libcamera/framebuffer_allocator.h
> >> +++ b/include/libcamera/framebuffer_allocator.h
> >> @@ -11,7 +11,7 @@
> >>  #include <memory>
> >>  #include <vector>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >>
> >>  namespace libcamera {
> >>
> >> diff --git a/include/libcamera/internal/buffer.h b/include/libcamera/internal/buffer.h
> >> index 9da1fbd12c27..91dd24969385 100644
> >> --- a/include/libcamera/internal/buffer.h
> >> +++ b/include/libcamera/internal/buffer.h
> >> @@ -10,7 +10,8 @@
> >>  #include <sys/mman.h>
> >>  #include <vector>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/buffer.h>
> >>  #include <libcamera/span.h>
> >>
> >> diff --git a/include/libcamera/internal/byte_stream_buffer.h b/include/libcamera/internal/byte_stream_buffer.h
> >> index 866cb9b0b2a6..7eefb1a71f07 100644
> >> --- a/include/libcamera/internal/byte_stream_buffer.h
> >> +++ b/include/libcamera/internal/byte_stream_buffer.h
> >> @@ -11,7 +11,8 @@
> >>  #include <stdint.h>
> >>  #include <type_traits>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/span.h>
> >>
> >>  namespace libcamera {
> >> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h
> >> index e133ebf45bf7..7bc540619721 100644
> >> --- a/include/libcamera/internal/camera_sensor.h
> >> +++ b/include/libcamera/internal/camera_sensor.h
> >> @@ -11,7 +11,8 @@
> >>  #include <string>
> >>  #include <vector>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/controls.h>
> >>  #include <libcamera/geometry.h>
> >>  #include <libcamera/ipa/core_ipa_interface.h>
> >> diff --git a/include/libcamera/internal/file.h b/include/libcamera/internal/file.h
> >> index f0b313a5faae..44621ceb4c19 100644
> >> --- a/include/libcamera/internal/file.h
> >> +++ b/include/libcamera/internal/file.h
> >> @@ -11,7 +11,8 @@
> >>  #include <string>
> >>  #include <sys/types.h>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/span.h>
> >>
> >>  namespace libcamera {
> >> diff --git a/include/libcamera/internal/log.h b/include/libcamera/internal/log.h
> >> index 9c2beab6a33a..82e55a623e04 100644
> >> --- a/include/libcamera/internal/log.h
> >> +++ b/include/libcamera/internal/log.h
> >> @@ -10,8 +10,7 @@
> >>  #include <chrono>
> >>  #include <sstream>
> >>
> >> -#include <libcamera/class.h>
> >> -
> >> +#include <libcamera/base/class.h>
> >>  #include <libcamera/base/utils.h>
> >>
> >>  namespace libcamera {
> >> diff --git a/include/libcamera/internal/media_object.h b/include/libcamera/internal/media_object.h
> >> index 1c82c27928a8..2f5d33e1903e 100644
> >> --- a/include/libcamera/internal/media_object.h
> >> +++ b/include/libcamera/internal/media_object.h
> >> @@ -12,7 +12,7 @@
> >>
> >>  #include <linux/media.h>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >>
> >>  namespace libcamera {
> >>
> >> diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h
> >> index 31dadf285a58..8beb6b76dd3f 100644
> >> --- a/include/libcamera/internal/pipeline_handler.h
> >> +++ b/include/libcamera/internal/pipeline_handler.h
> >> @@ -15,7 +15,8 @@
> >>  #include <sys/types.h>
> >>  #include <vector>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/controls.h>
> >>  #include <libcamera/object.h>
> >>  #include <libcamera/stream.h>
> >> diff --git a/include/libcamera/internal/v4l2_subdevice.h b/include/libcamera/internal/v4l2_subdevice.h
> >> index d2b9ca55439e..d07dd6b444d0 100644
> >> --- a/include/libcamera/internal/v4l2_subdevice.h
> >> +++ b/include/libcamera/internal/v4l2_subdevice.h
> >> @@ -11,7 +11,8 @@
> >>  #include <string>
> >>  #include <vector>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/geometry.h>
> >>
> >>  #include "libcamera/internal/formats.h"
> >> diff --git a/include/libcamera/internal/v4l2_videodevice.h b/include/libcamera/internal/v4l2_videodevice.h
> >> index 7938343bba8d..227d015e8937 100644
> >> --- a/include/libcamera/internal/v4l2_videodevice.h
> >> +++ b/include/libcamera/internal/v4l2_videodevice.h
> >> @@ -16,8 +16,9 @@
> >>
> >>  #include <linux/videodev2.h>
> >>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/buffer.h>
> >> -#include <libcamera/class.h>
> >>  #include <libcamera/geometry.h>
> >>  #include <libcamera/pixel_format.h>
> >>  #include <libcamera/signal.h>
> >> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build
> >> index 1fa1bf4a4e78..7cba3de6ca96 100644
> >> --- a/include/libcamera/meson.build
> >> +++ b/include/libcamera/meson.build
> >> @@ -5,7 +5,6 @@ libcamera_public_headers = files([
> >>      'buffer.h',
> >>      'camera.h',
> >>      'camera_manager.h',
> >> -    'class.h',
> >>      'compiler.h',
> >>      'controls.h',
> >>      'file_descriptor.h',
> >> diff --git a/include/libcamera/request.h b/include/libcamera/request.h
> >> index 5596901ddd8e..00c646fea7f2 100644
> >> --- a/include/libcamera/request.h
> >> +++ b/include/libcamera/request.h
> >> @@ -13,7 +13,8 @@
> >>  #include <string>
> >>  #include <unordered_set>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/controls.h>
> >>  #include <libcamera/signal.h>
> >>
> >> diff --git a/src/android/camera_buffer.h b/src/android/camera_buffer.h
> >> index c88124b2b3f3..e850c4e36668 100644
> >> --- a/src/android/camera_buffer.h
> >> +++ b/src/android/camera_buffer.h
> >> @@ -9,7 +9,8 @@
> >>
> >>  #include <hardware/camera3.h>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/span.h>
> >>
> >>  class CameraBuffer final : public libcamera::Extensible
> >> diff --git a/src/android/camera_capabilities.h b/src/android/camera_capabilities.h
> >> index f511607bbd90..4f5be82595d6 100644
> >> --- a/src/android/camera_capabilities.h
> >> +++ b/src/android/camera_capabilities.h
> >> @@ -11,8 +11,9 @@
> >>  #include <memory>
> >>  #include <vector>
> >>
> >> +#include <libcamera/base/class.h>
> >> +
> >>  #include <libcamera/camera.h>
> >> -#include <libcamera/class.h>
> >>  #include <libcamera/formats.h>
> >>  #include <libcamera/geometry.h>
> >>
> >> diff --git a/src/android/camera_hal_config.h b/src/android/camera_hal_config.h
> >> index 97dc69c1def5..a79d5d6c42dc 100644
> >> --- a/src/android/camera_hal_config.h
> >> +++ b/src/android/camera_hal_config.h
> >> @@ -10,7 +10,7 @@
> >>  #include <map>
> >>  #include <string>
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >>
> >>  struct CameraConfigData {
> >>         int facing = -1;
> >> diff --git a/src/libcamera/class.cpp b/src/libcamera/base/class.cpp
> >> similarity index 99%
> >> rename from src/libcamera/class.cpp
> >> rename to src/libcamera/base/class.cpp
> >> index 28c35633d7db..165beafc243d 100644
> >> --- a/src/libcamera/class.cpp
> >> +++ b/src/libcamera/base/class.cpp
> >> @@ -5,7 +5,7 @@
> >>   * class.cpp - Utilities and helpers for classes
> >>   */
> >>
> >> -#include <libcamera/class.h>
> >> +#include <libcamera/base/class.h>
> >>
> >>  /**
> >>   * \file class.h
> >> diff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build
> >> index 6d9ec37414f8..302a288685d3 100644
> >> --- a/src/libcamera/base/meson.build
> >> +++ b/src/libcamera/base/meson.build
> >> @@ -1,6 +1,7 @@
> >>  # SPDX-License-Identifier: CC0-1.0
> >>
> >>  libcamera_base_sources = files([
> >> +    'class.cpp',
> >>      'utils.cpp',
> >>  ])
> >>
> >> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
> >> index ac401c25d498..a341004c0c19 100644
> >> --- a/src/libcamera/meson.build
> >> +++ b/src/libcamera/meson.build
> >> @@ -10,7 +10,6 @@ libcamera_sources = files([
> >>      'camera_manager.cpp',
> >>      'camera_sensor.cpp',
> >>      'camera_sensor_properties.cpp',
> >> -    'class.cpp',
> >>      'controls.cpp',
> >>      'control_serializer.cpp',
> >>      'control_validator.cpp',
> >> --
> >> 2.30.2
> >>


More information about the libcamera-devel mailing list