[{"id":17766,"web_url":"https://patchwork.libcamera.org/comment/17766/","msgid":"<CAO5uPHOB=78rALB_zbw-uRnEkrMSufUYFAftugLrA2O-Y9Xf+A@mail.gmail.com>","date":"2021-06-25T04:15:54","subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","submitter":{"id":63,"url":"https://patchwork.libcamera.org/api/people/63/","name":"Hirokazu Honda","email":"hiroh@chromium.org"},"content":"Hi Kieran, thank you for the patch.\n\nOn Fri, Jun 25, 2021 at 10:35 AM Kieran Bingham\n<kieran.bingham@ideasonboard.com> wrote:\n>\n> Move span, and adjust the Doxygen exlusion as well.\n\ns/exlusion/exclusion/\n>\n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>  Documentation/Doxyfile.in                       | 2 +-\n>  include/libcamera/base/file.h                   | 3 +--\n>  include/libcamera/base/meson.build              | 1 +\n>  include/libcamera/{ => base}/span.h             | 0\n>  include/libcamera/controls.h                    | 2 +-\n>  include/libcamera/internal/buffer.h             | 2 +-\n>  include/libcamera/internal/byte_stream_buffer.h | 3 +--\n>  include/libcamera/internal/pub_key.h            | 2 +-\n>  include/libcamera/internal/v4l2_device.h        | 2 +-\n>  include/libcamera/meson.build                   | 1 -\n>  src/android/camera_buffer.h                     | 3 +--\n>  src/android/jpeg/encoder.h                      | 3 ++-\n>  src/android/jpeg/exif.h                         | 3 ++-\n>  src/ipa/libipa/histogram.h                      | 2 +-\n>  src/ipa/raspberrypi/cam_helper.hpp              | 3 +--\n>  src/ipa/raspberrypi/md_parser.hpp               | 2 +-\n>  src/ipa/raspberrypi/raspberrypi.cpp             | 2 +-\n>  src/libcamera/control_serializer.cpp            | 2 +-\n>  src/libcamera/ipa_module.cpp                    | 3 +--\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.h     | 2 +-\n>  test/span.cpp                                   | 2 +-\n>  test/utils.cpp                                  | 6 +++---\n>  22 files changed, 24 insertions(+), 27 deletions(-)\n>  rename include/libcamera/{ => base}/span.h (100%)\n>\n> diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in\n> index 8305f56af7a8..a79d37706faf 100644\n> --- a/Documentation/Doxyfile.in\n> +++ b/Documentation/Doxyfile.in\n> @@ -834,7 +834,7 @@ RECURSIVE              = YES\n>  # Note that relative paths are relative to the directory from which doxygen is\n>  # run.\n>\n> -EXCLUDE                = @TOP_SRCDIR@/include/libcamera/span.h \\\n> +EXCLUDE                = @TOP_SRCDIR@/include/libcamera/base/span.h \\\n>                          @TOP_SRCDIR@/include/libcamera/internal/device_enumerator_sysfs.h \\\n>                          @TOP_SRCDIR@/include/libcamera/internal/device_enumerator_udev.h \\\n>                          @TOP_SRCDIR@/include/libcamera/internal/ipc_pipe_unixsocket.h \\\n> diff --git a/include/libcamera/base/file.h b/include/libcamera/base/file.h\n> index cecbb254591f..c3c7ca6013a8 100644\n> --- a/include/libcamera/base/file.h\n> +++ b/include/libcamera/base/file.h\n> @@ -13,8 +13,7 @@\n>\n>  #include <libcamera/base/class.h>\n>  #include <libcamera/base/private.h>\n> -\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>\n>  namespace libcamera {\n>\n> diff --git a/include/libcamera/base/meson.build b/include/libcamera/base/meson.build\n> index aaac324d7149..7c499b558fb0 100644\n> --- a/include/libcamera/base/meson.build\n> +++ b/include/libcamera/base/meson.build\n> @@ -15,6 +15,7 @@ libcamera_base_headers = files([\n>      'private.h',\n>      'semaphore.h',\n>      'signal.h',\n> +    'span.h',\n>      'thread.h',\n>      'timer.h',\n>      'utils.h',\n> diff --git a/include/libcamera/span.h b/include/libcamera/base/span.h\n> similarity index 100%\n\nShall we change a header guard?\n\nIsn't span not one which should not be exposed to public?\n\n> rename from include/libcamera/span.h\n> rename to include/libcamera/base/span.h\n> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n> index f62b6cf055d6..1bc958a43b22 100644\n> --- a/include/libcamera/controls.h\n> +++ b/include/libcamera/controls.h\n> @@ -15,9 +15,9 @@\n>  #include <vector>\n>\n>  #include <libcamera/base/class.h>\n> +#include <libcamera/base/span.h>\n>\n>  #include <libcamera/geometry.h>\n> -#include <libcamera/span.h>\n>\n>  namespace libcamera {\n>\n> diff --git a/include/libcamera/internal/buffer.h b/include/libcamera/internal/buffer.h\n> index 91dd24969385..beae0cb98544 100644\n> --- a/include/libcamera/internal/buffer.h\n> +++ b/include/libcamera/internal/buffer.h\n> @@ -11,9 +11,9 @@\n>  #include <vector>\n>\n>  #include <libcamera/base/class.h>\n> +#include <libcamera/base/span.h>\n>\n>  #include <libcamera/buffer.h>\n> -#include <libcamera/span.h>\n>\n>  namespace libcamera {\n>\n> diff --git a/include/libcamera/internal/byte_stream_buffer.h b/include/libcamera/internal/byte_stream_buffer.h\n> index 7eefb1a71f07..d0f0df5ee87b 100644\n> --- a/include/libcamera/internal/byte_stream_buffer.h\n> +++ b/include/libcamera/internal/byte_stream_buffer.h\n> @@ -12,8 +12,7 @@\n>  #include <type_traits>\n>\n>  #include <libcamera/base/class.h>\n> -\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>\n>  namespace libcamera {\n>\n> diff --git a/include/libcamera/internal/pub_key.h b/include/libcamera/internal/pub_key.h\n> index f5f988b58f74..9261c9c2a0ee 100644\n> --- a/include/libcamera/internal/pub_key.h\n> +++ b/include/libcamera/internal/pub_key.h\n> @@ -9,7 +9,7 @@\n>\n>  #include <stdint.h>\n>\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>\n>  #if HAVE_GNUTLS\n>  struct gnutls_pubkey_st;\n> diff --git a/include/libcamera/internal/v4l2_device.h b/include/libcamera/internal/v4l2_device.h\n> index 1edd664a9aef..77b835b3cb80 100644\n> --- a/include/libcamera/internal/v4l2_device.h\n> +++ b/include/libcamera/internal/v4l2_device.h\n> @@ -15,9 +15,9 @@\n>\n>  #include <libcamera/base/log.h>\n>  #include <libcamera/base/signal.h>\n> +#include <libcamera/base/span.h>\n>\n>  #include <libcamera/controls.h>\n> -#include <libcamera/span.h>\n>\n>  namespace libcamera {\n>\n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index d08bb3096aff..9a120d13346e 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -12,7 +12,6 @@ libcamera_public_headers = files([\n>      'logging.h',\n>      'pixel_format.h',\n>      'request.h',\n> -    'span.h',\n>      'stream.h',\n>      'transform.h',\n>  ])\n> diff --git a/src/android/camera_buffer.h b/src/android/camera_buffer.h\n> index e850c4e36668..2617ff6b11a1 100644\n> --- a/src/android/camera_buffer.h\n> +++ b/src/android/camera_buffer.h\n> @@ -10,8 +10,7 @@\n>  #include <hardware/camera3.h>\n>\n>  #include <libcamera/base/class.h>\n> -\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>\n>  class CameraBuffer final : public libcamera::Extensible\n>  {\n> diff --git a/src/android/jpeg/encoder.h b/src/android/jpeg/encoder.h\n> index 8d449369869f..28e7f92a3ecb 100644\n> --- a/src/android/jpeg/encoder.h\n> +++ b/src/android/jpeg/encoder.h\n> @@ -7,8 +7,9 @@\n>  #ifndef __ANDROID_JPEG_ENCODER_H__\n>  #define __ANDROID_JPEG_ENCODER_H__\n>\n> +#include <libcamera/base/span.h>\n> +\n>  #include <libcamera/buffer.h>\n> -#include <libcamera/span.h>\n>  #include <libcamera/stream.h>\n>\n>  class Encoder\n> diff --git a/src/android/jpeg/exif.h b/src/android/jpeg/exif.h\n> index 8aa1b123a737..23b0e0974459 100644\n> --- a/src/android/jpeg/exif.h\n> +++ b/src/android/jpeg/exif.h\n> @@ -13,8 +13,9 @@\n>\n>  #include <libexif/exif-data.h>\n>\n> +#include <libcamera/base/span.h>\n> +\n>  #include <libcamera/geometry.h>\n> -#include <libcamera/span.h>\n>\n>  class Exif\n>  {\n> diff --git a/src/ipa/libipa/histogram.h b/src/ipa/libipa/histogram.h\n> index e06f1884395e..c2761cb29e7a 100644\n> --- a/src/ipa/libipa/histogram.h\n> +++ b/src/ipa/libipa/histogram.h\n> @@ -13,7 +13,7 @@\n>\n>  #include <vector>\n>\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>\n>  namespace libcamera {\n>\n> diff --git a/src/ipa/raspberrypi/cam_helper.hpp b/src/ipa/raspberrypi/cam_helper.hpp\n> index a66648197140..b19c95f67453 100644\n> --- a/src/ipa/raspberrypi/cam_helper.hpp\n> +++ b/src/ipa/raspberrypi/cam_helper.hpp\n> @@ -8,8 +8,7 @@\n>\n>  #include <string>\n>\n> -#include <libcamera/span.h>\n> -\n> +#include <libcamera/base/span.h>\n>  #include <libcamera/base/utils.h>\n>\n>  #include \"camera_mode.h\"\n> diff --git a/src/ipa/raspberrypi/md_parser.hpp b/src/ipa/raspberrypi/md_parser.hpp\n> index 65aab02d51b6..8497216f8db7 100644\n> --- a/src/ipa/raspberrypi/md_parser.hpp\n> +++ b/src/ipa/raspberrypi/md_parser.hpp\n> @@ -8,7 +8,7 @@\n>\n>  #include <stdint.h>\n>\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>\n>  /*\n>   * Camera metadata parser class. Usage as shown below.\n> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp\n> index a3f014495e80..4d09a84f6532 100644\n> --- a/src/ipa/raspberrypi/raspberrypi.cpp\n> +++ b/src/ipa/raspberrypi/raspberrypi.cpp\n> @@ -16,6 +16,7 @@\n>  #include <linux/bcm2835-isp.h>\n>\n>  #include <libcamera/base/log.h>\n> +#include <libcamera/base/span.h>\n>\n>  #include <libcamera/buffer.h>\n>  #include <libcamera/control_ids.h>\n> @@ -26,7 +27,6 @@\n>  #include <libcamera/ipa/raspberrypi.h>\n>  #include <libcamera/ipa/raspberrypi_ipa_interface.h>\n>  #include <libcamera/request.h>\n> -#include <libcamera/span.h>\n>\n>  #include \"libcamera/internal/buffer.h\"\n>\n> diff --git a/src/libcamera/control_serializer.cpp b/src/libcamera/control_serializer.cpp\n> index dd5a26083747..300466285a57 100644\n> --- a/src/libcamera/control_serializer.cpp\n> +++ b/src/libcamera/control_serializer.cpp\n> @@ -12,11 +12,11 @@\n>  #include <vector>\n>\n>  #include <libcamera/base/log.h>\n> +#include <libcamera/base/span.h>\n>\n>  #include <libcamera/control_ids.h>\n>  #include <libcamera/controls.h>\n>  #include <libcamera/ipa/ipa_controls.h>\n> -#include <libcamera/span.h>\n>\n>  #include \"libcamera/internal/byte_stream_buffer.h\"\n>\n> diff --git a/src/libcamera/ipa_module.cpp b/src/libcamera/ipa_module.cpp\n> index 984c1fed9bdb..adfb8d407697 100644\n> --- a/src/libcamera/ipa_module.cpp\n> +++ b/src/libcamera/ipa_module.cpp\n> @@ -21,10 +21,9 @@\n>  #include <sys/types.h>\n>  #include <unistd.h>\n>\n> -#include <libcamera/span.h>\n> -\n>  #include <libcamera/base/file.h>\n>  #include <libcamera/base/log.h>\n> +#include <libcamera/base/span.h>\n>  #include <libcamera/base/utils.h>\n>\n>  #include \"libcamera/internal/pipeline_handler.h\"\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.h b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> index c185ac3992dd..91757600ccdc 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> @@ -11,11 +11,11 @@\n>  #include <vector>\n>\n>  #include <libcamera/base/signal.h>\n> +#include <libcamera/base/span.h>\n>\n>  #include <libcamera/camera.h>\n>  #include <libcamera/geometry.h>\n>  #include <libcamera/pixel_format.h>\n> -#include <libcamera/span.h>\n>\n>  #include \"libcamera/internal/media_object.h\"\n>  #include \"libcamera/internal/v4l2_videodevice.h\"\n> diff --git a/test/span.cpp b/test/span.cpp\n> index ca037c8f02fa..abf3a5d681bf 100644\n> --- a/test/span.cpp\n> +++ b/test/span.cpp\n> @@ -9,7 +9,7 @@\n>   * Include first to ensure the header is self-contained, as there's no span.cpp\n>   * in libcamera.\n>   */\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>\n>  #include <array>\n>  #include <iostream>\n> diff --git a/test/utils.cpp b/test/utils.cpp\n> index 9cd2cd070cb9..d7f810e95e7a 100644\n> --- a/test/utils.cpp\n> +++ b/test/utils.cpp\n> @@ -11,11 +11,11 @@\n>  #include <string>\n>  #include <vector>\n>\n> -#include <libcamera/geometry.h>\n> -#include <libcamera/span.h>\n> -\n> +#include <libcamera/base/span.h>\n>  #include <libcamera/base/utils.h>\n>\n> +#include <libcamera/geometry.h>\n> +\n>  #include \"test.h\"\n>\n>  using namespace std;\n> --\n> 2.30.2\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 4C86DC321D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 25 Jun 2021 04:16:06 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B94C7684CF;\n\tFri, 25 Jun 2021 06:16:05 +0200 (CEST)","from mail-ej1-x635.google.com (mail-ej1-x635.google.com\n\t[IPv6:2a00:1450:4864:20::635])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8C53660508\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 25 Jun 2021 06:16:04 +0200 (CEST)","by mail-ej1-x635.google.com with SMTP id hz1so13011684ejc.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 24 Jun 2021 21:16:04 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"gqvAEUH4\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; \n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=NLvezPuNqCagcuALiW5zbDo/hKI4HKtLJPmh7ub+TxU=;\n\tb=gqvAEUH4EEoLwJB2cmLW7blH+gXd0n2p+b5g4DfmzJJcBKLQ5oQtI4HdChwqkZNnuN\n\tcfHwcSjuEu/pYEcT7H3hFaCEUyqyUPDsvsod4vQ6pFwHrPFuIJ5s73sg69VLtoddEoX9\n\tvemEVIGoLiY7N5V57P9oImiFkmMFDbeC0Dvq4=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=NLvezPuNqCagcuALiW5zbDo/hKI4HKtLJPmh7ub+TxU=;\n\tb=qSdVzyH2y44aXAbqjRrXv7/i7mFUShTCH5Z6ymZVaZ+ImyRfWkQIRNjLu4xA0ZckVi\n\tj6kZIzmLVcSmxNuFFpaz72blRB9gh3P1ais8roNmiE7NuyjmBnCwh4q2ljMOGMDL3hZ8\n\tHhM5GGBj2zaok87JmD58W3S0UtOR+BNjrV8W81yxW8FedoehF0sf3QrlBJlSi+XR6izv\n\tysK5kK/6wT8ice/YI32JpBdf6d1K3MSeEl1/nAxr2lP/vpRr9hQvrhs8kjARGevcT5mQ\n\tIfY1cs89L1KuzFq64iG3dqjuSicj3RzxY44srwbLZuNOT5iWi6MLvcRd+MfzI7+0PTcw\n\tIRYA==","X-Gm-Message-State":"AOAM5328Qa7fYp1AZvV4rsYhyju+VTHcaOFo9vIJfwIGZphMTQ/30dTS\n\tsUfgXiKAzDFIT084cL3EHmeiVzfp1EYSTDDvfi9tgw==","X-Google-Smtp-Source":"ABdhPJyLkoTihUs4a9HXxKThNppvgWInkIcy8aQpNiQnxGGUMIhrZMbpv5Z2k7AN6ZCYNAs4RAN5Qj+C5qqW5NFRZpE=","X-Received":"by 2002:a17:906:a20b:: with SMTP id\n\tr11mr8578891ejy.221.1624594564209; \n\tThu, 24 Jun 2021 21:16:04 -0700 (PDT)","MIME-Version":"1.0","References":"<20210625013539.625803-1-kieran.bingham@ideasonboard.com>\n\t<20210625013539.625803-14-kieran.bingham@ideasonboard.com>","In-Reply-To":"<20210625013539.625803-14-kieran.bingham@ideasonboard.com>","From":"Hirokazu Honda <hiroh@chromium.org>","Date":"Fri, 25 Jun 2021 13:15:54 +0900","Message-ID":"<CAO5uPHOB=78rALB_zbw-uRnEkrMSufUYFAftugLrA2O-Y9Xf+A@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":17773,"web_url":"https://patchwork.libcamera.org/comment/17773/","msgid":"<20210625081145.GM2599@pyrite.rasen.tech>","date":"2021-06-25T08:11:45","subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Hi Kieran,\n\nOn Fri, Jun 25, 2021 at 02:35:36AM +0100, Kieran Bingham wrote:\n> Move span, and adjust the Doxygen exlusion as well.\n> \n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nWith the typo fix and the header guard as suggested by Hiro,\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  Documentation/Doxyfile.in                       | 2 +-\n>  include/libcamera/base/file.h                   | 3 +--\n>  include/libcamera/base/meson.build              | 1 +\n>  include/libcamera/{ => base}/span.h             | 0\n>  include/libcamera/controls.h                    | 2 +-\n>  include/libcamera/internal/buffer.h             | 2 +-\n>  include/libcamera/internal/byte_stream_buffer.h | 3 +--\n>  include/libcamera/internal/pub_key.h            | 2 +-\n>  include/libcamera/internal/v4l2_device.h        | 2 +-\n>  include/libcamera/meson.build                   | 1 -\n>  src/android/camera_buffer.h                     | 3 +--\n>  src/android/jpeg/encoder.h                      | 3 ++-\n>  src/android/jpeg/exif.h                         | 3 ++-\n>  src/ipa/libipa/histogram.h                      | 2 +-\n>  src/ipa/raspberrypi/cam_helper.hpp              | 3 +--\n>  src/ipa/raspberrypi/md_parser.hpp               | 2 +-\n>  src/ipa/raspberrypi/raspberrypi.cpp             | 2 +-\n>  src/libcamera/control_serializer.cpp            | 2 +-\n>  src/libcamera/ipa_module.cpp                    | 3 +--\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.h     | 2 +-\n>  test/span.cpp                                   | 2 +-\n>  test/utils.cpp                                  | 6 +++---\n>  22 files changed, 24 insertions(+), 27 deletions(-)\n>  rename include/libcamera/{ => base}/span.h (100%)\n> \n> diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in\n> index 8305f56af7a8..a79d37706faf 100644\n> --- a/Documentation/Doxyfile.in\n> +++ b/Documentation/Doxyfile.in\n> @@ -834,7 +834,7 @@ RECURSIVE              = YES\n>  # Note that relative paths are relative to the directory from which doxygen is\n>  # run.\n>  \n> -EXCLUDE                = @TOP_SRCDIR@/include/libcamera/span.h \\\n> +EXCLUDE                = @TOP_SRCDIR@/include/libcamera/base/span.h \\\n>  \t\t\t @TOP_SRCDIR@/include/libcamera/internal/device_enumerator_sysfs.h \\\n>  \t\t\t @TOP_SRCDIR@/include/libcamera/internal/device_enumerator_udev.h \\\n>  \t\t\t @TOP_SRCDIR@/include/libcamera/internal/ipc_pipe_unixsocket.h \\\n> diff --git a/include/libcamera/base/file.h b/include/libcamera/base/file.h\n> index cecbb254591f..c3c7ca6013a8 100644\n> --- a/include/libcamera/base/file.h\n> +++ b/include/libcamera/base/file.h\n> @@ -13,8 +13,7 @@\n>  \n>  #include <libcamera/base/class.h>\n>  #include <libcamera/base/private.h>\n> -\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  namespace libcamera {\n>  \n> diff --git a/include/libcamera/base/meson.build b/include/libcamera/base/meson.build\n> index aaac324d7149..7c499b558fb0 100644\n> --- a/include/libcamera/base/meson.build\n> +++ b/include/libcamera/base/meson.build\n> @@ -15,6 +15,7 @@ libcamera_base_headers = files([\n>      'private.h',\n>      'semaphore.h',\n>      'signal.h',\n> +    'span.h',\n>      'thread.h',\n>      'timer.h',\n>      'utils.h',\n> diff --git a/include/libcamera/span.h b/include/libcamera/base/span.h\n> similarity index 100%\n> rename from include/libcamera/span.h\n> rename to include/libcamera/base/span.h\n> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n> index f62b6cf055d6..1bc958a43b22 100644\n> --- a/include/libcamera/controls.h\n> +++ b/include/libcamera/controls.h\n> @@ -15,9 +15,9 @@\n>  #include <vector>\n>  \n>  #include <libcamera/base/class.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <libcamera/geometry.h>\n> -#include <libcamera/span.h>\n>  \n>  namespace libcamera {\n>  \n> diff --git a/include/libcamera/internal/buffer.h b/include/libcamera/internal/buffer.h\n> index 91dd24969385..beae0cb98544 100644\n> --- a/include/libcamera/internal/buffer.h\n> +++ b/include/libcamera/internal/buffer.h\n> @@ -11,9 +11,9 @@\n>  #include <vector>\n>  \n>  #include <libcamera/base/class.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <libcamera/buffer.h>\n> -#include <libcamera/span.h>\n>  \n>  namespace libcamera {\n>  \n> diff --git a/include/libcamera/internal/byte_stream_buffer.h b/include/libcamera/internal/byte_stream_buffer.h\n> index 7eefb1a71f07..d0f0df5ee87b 100644\n> --- a/include/libcamera/internal/byte_stream_buffer.h\n> +++ b/include/libcamera/internal/byte_stream_buffer.h\n> @@ -12,8 +12,7 @@\n>  #include <type_traits>\n>  \n>  #include <libcamera/base/class.h>\n> -\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  namespace libcamera {\n>  \n> diff --git a/include/libcamera/internal/pub_key.h b/include/libcamera/internal/pub_key.h\n> index f5f988b58f74..9261c9c2a0ee 100644\n> --- a/include/libcamera/internal/pub_key.h\n> +++ b/include/libcamera/internal/pub_key.h\n> @@ -9,7 +9,7 @@\n>  \n>  #include <stdint.h>\n>  \n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #if HAVE_GNUTLS\n>  struct gnutls_pubkey_st;\n> diff --git a/include/libcamera/internal/v4l2_device.h b/include/libcamera/internal/v4l2_device.h\n> index 1edd664a9aef..77b835b3cb80 100644\n> --- a/include/libcamera/internal/v4l2_device.h\n> +++ b/include/libcamera/internal/v4l2_device.h\n> @@ -15,9 +15,9 @@\n>  \n>  #include <libcamera/base/log.h>\n>  #include <libcamera/base/signal.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <libcamera/controls.h>\n> -#include <libcamera/span.h>\n>  \n>  namespace libcamera {\n>  \n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index d08bb3096aff..9a120d13346e 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -12,7 +12,6 @@ libcamera_public_headers = files([\n>      'logging.h',\n>      'pixel_format.h',\n>      'request.h',\n> -    'span.h',\n>      'stream.h',\n>      'transform.h',\n>  ])\n> diff --git a/src/android/camera_buffer.h b/src/android/camera_buffer.h\n> index e850c4e36668..2617ff6b11a1 100644\n> --- a/src/android/camera_buffer.h\n> +++ b/src/android/camera_buffer.h\n> @@ -10,8 +10,7 @@\n>  #include <hardware/camera3.h>\n>  \n>  #include <libcamera/base/class.h>\n> -\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  class CameraBuffer final : public libcamera::Extensible\n>  {\n> diff --git a/src/android/jpeg/encoder.h b/src/android/jpeg/encoder.h\n> index 8d449369869f..28e7f92a3ecb 100644\n> --- a/src/android/jpeg/encoder.h\n> +++ b/src/android/jpeg/encoder.h\n> @@ -7,8 +7,9 @@\n>  #ifndef __ANDROID_JPEG_ENCODER_H__\n>  #define __ANDROID_JPEG_ENCODER_H__\n>  \n> +#include <libcamera/base/span.h>\n> +\n>  #include <libcamera/buffer.h>\n> -#include <libcamera/span.h>\n>  #include <libcamera/stream.h>\n>  \n>  class Encoder\n> diff --git a/src/android/jpeg/exif.h b/src/android/jpeg/exif.h\n> index 8aa1b123a737..23b0e0974459 100644\n> --- a/src/android/jpeg/exif.h\n> +++ b/src/android/jpeg/exif.h\n> @@ -13,8 +13,9 @@\n>  \n>  #include <libexif/exif-data.h>\n>  \n> +#include <libcamera/base/span.h>\n> +\n>  #include <libcamera/geometry.h>\n> -#include <libcamera/span.h>\n>  \n>  class Exif\n>  {\n> diff --git a/src/ipa/libipa/histogram.h b/src/ipa/libipa/histogram.h\n> index e06f1884395e..c2761cb29e7a 100644\n> --- a/src/ipa/libipa/histogram.h\n> +++ b/src/ipa/libipa/histogram.h\n> @@ -13,7 +13,7 @@\n>  \n>  #include <vector>\n>  \n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  namespace libcamera {\n>  \n> diff --git a/src/ipa/raspberrypi/cam_helper.hpp b/src/ipa/raspberrypi/cam_helper.hpp\n> index a66648197140..b19c95f67453 100644\n> --- a/src/ipa/raspberrypi/cam_helper.hpp\n> +++ b/src/ipa/raspberrypi/cam_helper.hpp\n> @@ -8,8 +8,7 @@\n>  \n>  #include <string>\n>  \n> -#include <libcamera/span.h>\n> -\n> +#include <libcamera/base/span.h>\n>  #include <libcamera/base/utils.h>\n>  \n>  #include \"camera_mode.h\"\n> diff --git a/src/ipa/raspberrypi/md_parser.hpp b/src/ipa/raspberrypi/md_parser.hpp\n> index 65aab02d51b6..8497216f8db7 100644\n> --- a/src/ipa/raspberrypi/md_parser.hpp\n> +++ b/src/ipa/raspberrypi/md_parser.hpp\n> @@ -8,7 +8,7 @@\n>  \n>  #include <stdint.h>\n>  \n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  /*\n>   * Camera metadata parser class. Usage as shown below.\n> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp\n> index a3f014495e80..4d09a84f6532 100644\n> --- a/src/ipa/raspberrypi/raspberrypi.cpp\n> +++ b/src/ipa/raspberrypi/raspberrypi.cpp\n> @@ -16,6 +16,7 @@\n>  #include <linux/bcm2835-isp.h>\n>  \n>  #include <libcamera/base/log.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <libcamera/buffer.h>\n>  #include <libcamera/control_ids.h>\n> @@ -26,7 +27,6 @@\n>  #include <libcamera/ipa/raspberrypi.h>\n>  #include <libcamera/ipa/raspberrypi_ipa_interface.h>\n>  #include <libcamera/request.h>\n> -#include <libcamera/span.h>\n>  \n>  #include \"libcamera/internal/buffer.h\"\n>  \n> diff --git a/src/libcamera/control_serializer.cpp b/src/libcamera/control_serializer.cpp\n> index dd5a26083747..300466285a57 100644\n> --- a/src/libcamera/control_serializer.cpp\n> +++ b/src/libcamera/control_serializer.cpp\n> @@ -12,11 +12,11 @@\n>  #include <vector>\n>  \n>  #include <libcamera/base/log.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <libcamera/control_ids.h>\n>  #include <libcamera/controls.h>\n>  #include <libcamera/ipa/ipa_controls.h>\n> -#include <libcamera/span.h>\n>  \n>  #include \"libcamera/internal/byte_stream_buffer.h\"\n>  \n> diff --git a/src/libcamera/ipa_module.cpp b/src/libcamera/ipa_module.cpp\n> index 984c1fed9bdb..adfb8d407697 100644\n> --- a/src/libcamera/ipa_module.cpp\n> +++ b/src/libcamera/ipa_module.cpp\n> @@ -21,10 +21,9 @@\n>  #include <sys/types.h>\n>  #include <unistd.h>\n>  \n> -#include <libcamera/span.h>\n> -\n>  #include <libcamera/base/file.h>\n>  #include <libcamera/base/log.h>\n> +#include <libcamera/base/span.h>\n>  #include <libcamera/base/utils.h>\n>  \n>  #include \"libcamera/internal/pipeline_handler.h\"\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.h b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> index c185ac3992dd..91757600ccdc 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> @@ -11,11 +11,11 @@\n>  #include <vector>\n>  \n>  #include <libcamera/base/signal.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <libcamera/camera.h>\n>  #include <libcamera/geometry.h>\n>  #include <libcamera/pixel_format.h>\n> -#include <libcamera/span.h>\n>  \n>  #include \"libcamera/internal/media_object.h\"\n>  #include \"libcamera/internal/v4l2_videodevice.h\"\n> diff --git a/test/span.cpp b/test/span.cpp\n> index ca037c8f02fa..abf3a5d681bf 100644\n> --- a/test/span.cpp\n> +++ b/test/span.cpp\n> @@ -9,7 +9,7 @@\n>   * Include first to ensure the header is self-contained, as there's no span.cpp\n>   * in libcamera.\n>   */\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <array>\n>  #include <iostream>\n> diff --git a/test/utils.cpp b/test/utils.cpp\n> index 9cd2cd070cb9..d7f810e95e7a 100644\n> --- a/test/utils.cpp\n> +++ b/test/utils.cpp\n> @@ -11,11 +11,11 @@\n>  #include <string>\n>  #include <vector>\n>  \n> -#include <libcamera/geometry.h>\n> -#include <libcamera/span.h>\n> -\n> +#include <libcamera/base/span.h>\n>  #include <libcamera/base/utils.h>\n>  \n> +#include <libcamera/geometry.h>\n> +\n>  #include \"test.h\"\n>  \n>  using namespace std;\n> -- \n> 2.30.2\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id CEADAC321D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 25 Jun 2021 08:11:55 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 27D79684CA;\n\tFri, 25 Jun 2021 10:11:55 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A0391684CA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 25 Jun 2021 10:11:53 +0200 (CEST)","from pyrite.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:2c71:1b79:d06d:5032])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 326C64FB;\n\tFri, 25 Jun 2021 10:11:51 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"gncrKC1B\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1624608713;\n\tbh=tRHpdV+U7qKozPjy+TZFHueMa5C9jJyqR1EjD52z+o4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=gncrKC1BvIlxeohoAda148egrqsnA6AY2/dEpJ9f1YK0tu2whwYixAS1qQg6jXuHW\n\txtxzrh4x1Jgv2aChWXW5uAScS+rd3vxna2gEABJ7r7ETfXwB5WDkxoLNQq515mRaPl\n\txHYemYZr7+MmqVPKTGMB0rhhU4vd8ljVSwczEW+Y=","Date":"Fri, 25 Jun 2021 17:11:45 +0900","From":"paul.elder@ideasonboard.com","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20210625081145.GM2599@pyrite.rasen.tech>","References":"<20210625013539.625803-1-kieran.bingham@ideasonboard.com>\n\t<20210625013539.625803-14-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20210625013539.625803-14-kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":17786,"web_url":"https://patchwork.libcamera.org/comment/17786/","msgid":"<a1aafee9-0ec3-9da9-e65f-95e0fa6271ff@ideasonboard.com>","date":"2021-06-25T09:39:17","subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Hiro,\n\nOn 25/06/2021 05:15, Hirokazu Honda wrote:\n> Hi Kieran, thank you for the patch.\n> \n> On Fri, Jun 25, 2021 at 10:35 AM Kieran Bingham\n> <kieran.bingham@ideasonboard.com> wrote:\n>>\n>> Move span, and adjust the Doxygen exlusion as well.\n> \n> s/exlusion/exclusion/\n\nThanks, hrmm another one I moved last night - I can guess what else is\nmissing already before I get there. ..\n\n\n>>\n>> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>> ---\n>>  Documentation/Doxyfile.in                       | 2 +-\n>>  include/libcamera/base/file.h                   | 3 +--\n>>  include/libcamera/base/meson.build              | 1 +\n>>  include/libcamera/{ => base}/span.h             | 0\n>>  include/libcamera/controls.h                    | 2 +-\n>>  include/libcamera/internal/buffer.h             | 2 +-\n>>  include/libcamera/internal/byte_stream_buffer.h | 3 +--\n>>  include/libcamera/internal/pub_key.h            | 2 +-\n>>  include/libcamera/internal/v4l2_device.h        | 2 +-\n>>  include/libcamera/meson.build                   | 1 -\n>>  src/android/camera_buffer.h                     | 3 +--\n>>  src/android/jpeg/encoder.h                      | 3 ++-\n>>  src/android/jpeg/exif.h                         | 3 ++-\n>>  src/ipa/libipa/histogram.h                      | 2 +-\n>>  src/ipa/raspberrypi/cam_helper.hpp              | 3 +--\n>>  src/ipa/raspberrypi/md_parser.hpp               | 2 +-\n>>  src/ipa/raspberrypi/raspberrypi.cpp             | 2 +-\n>>  src/libcamera/control_serializer.cpp            | 2 +-\n>>  src/libcamera/ipa_module.cpp                    | 3 +--\n>>  src/libcamera/pipeline/rkisp1/rkisp1_path.h     | 2 +-\n>>  test/span.cpp                                   | 2 +-\n>>  test/utils.cpp                                  | 6 +++---\n>>  22 files changed, 24 insertions(+), 27 deletions(-)\n>>  rename include/libcamera/{ => base}/span.h (100%)\n>>\n>> diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in\n>> index 8305f56af7a8..a79d37706faf 100644\n>> --- a/Documentation/Doxyfile.in\n>> +++ b/Documentation/Doxyfile.in\n>> @@ -834,7 +834,7 @@ RECURSIVE              = YES\n>>  # Note that relative paths are relative to the directory from which doxygen is\n>>  # run.\n>>\n>> -EXCLUDE                = @TOP_SRCDIR@/include/libcamera/span.h \\\n>> +EXCLUDE                = @TOP_SRCDIR@/include/libcamera/base/span.h \\\n>>                          @TOP_SRCDIR@/include/libcamera/internal/device_enumerator_sysfs.h \\\n>>                          @TOP_SRCDIR@/include/libcamera/internal/device_enumerator_udev.h \\\n>>                          @TOP_SRCDIR@/include/libcamera/internal/ipc_pipe_unixsocket.h \\\n>> diff --git a/include/libcamera/base/file.h b/include/libcamera/base/file.h\n>> index cecbb254591f..c3c7ca6013a8 100644\n>> --- a/include/libcamera/base/file.h\n>> +++ b/include/libcamera/base/file.h\n>> @@ -13,8 +13,7 @@\n>>\n>>  #include <libcamera/base/class.h>\n>>  #include <libcamera/base/private.h>\n>> -\n>> -#include <libcamera/span.h>\n>> +#include <libcamera/base/span.h>\n>>\n>>  namespace libcamera {\n>>\n>> diff --git a/include/libcamera/base/meson.build b/include/libcamera/base/meson.build\n>> index aaac324d7149..7c499b558fb0 100644\n>> --- a/include/libcamera/base/meson.build\n>> +++ b/include/libcamera/base/meson.build\n>> @@ -15,6 +15,7 @@ libcamera_base_headers = files([\n>>      'private.h',\n>>      'semaphore.h',\n>>      'signal.h',\n>> +    'span.h',\n>>      'thread.h',\n>>      'timer.h',\n>>      'utils.h',\n>> diff --git a/include/libcamera/span.h b/include/libcamera/base/span.h\n>> similarity index 100%\n> \n> Shall we change a header guard?\n\nYes, I completely failed at this last night (this-morning) but at least\nI was consistent in my failure :S hehe\n\n> \n> Isn't span not one which should not be exposed to public?\n\nOh that's interesting - I thought span was used in the public API\nsomewhere, but now I can't see it - I'll check and move to private if it\ncan go there.\n\n\n\n>> rename from include/libcamera/span.h\n>> rename to include/libcamera/base/span.h\n>> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n>> index f62b6cf055d6..1bc958a43b22 100644\n>> --- a/include/libcamera/controls.h\n>> +++ b/include/libcamera/controls.h\n>> @@ -15,9 +15,9 @@\n>>  #include <vector>\n>>\n>>  #include <libcamera/base/class.h>\n>> +#include <libcamera/base/span.h>\n>>\n>>  #include <libcamera/geometry.h>\n>> -#include <libcamera/span.h>\n>>\n>>  namespace libcamera {\n>>\n>> diff --git a/include/libcamera/internal/buffer.h b/include/libcamera/internal/buffer.h\n>> index 91dd24969385..beae0cb98544 100644\n>> --- a/include/libcamera/internal/buffer.h\n>> +++ b/include/libcamera/internal/buffer.h\n>> @@ -11,9 +11,9 @@\n>>  #include <vector>\n>>\n>>  #include <libcamera/base/class.h>\n>> +#include <libcamera/base/span.h>\n>>\n>>  #include <libcamera/buffer.h>\n>> -#include <libcamera/span.h>\n>>\n>>  namespace libcamera {\n>>\n>> diff --git a/include/libcamera/internal/byte_stream_buffer.h b/include/libcamera/internal/byte_stream_buffer.h\n>> index 7eefb1a71f07..d0f0df5ee87b 100644\n>> --- a/include/libcamera/internal/byte_stream_buffer.h\n>> +++ b/include/libcamera/internal/byte_stream_buffer.h\n>> @@ -12,8 +12,7 @@\n>>  #include <type_traits>\n>>\n>>  #include <libcamera/base/class.h>\n>> -\n>> -#include <libcamera/span.h>\n>> +#include <libcamera/base/span.h>\n>>\n>>  namespace libcamera {\n>>\n>> diff --git a/include/libcamera/internal/pub_key.h b/include/libcamera/internal/pub_key.h\n>> index f5f988b58f74..9261c9c2a0ee 100644\n>> --- a/include/libcamera/internal/pub_key.h\n>> +++ b/include/libcamera/internal/pub_key.h\n>> @@ -9,7 +9,7 @@\n>>\n>>  #include <stdint.h>\n>>\n>> -#include <libcamera/span.h>\n>> +#include <libcamera/base/span.h>\n>>\n>>  #if HAVE_GNUTLS\n>>  struct gnutls_pubkey_st;\n>> diff --git a/include/libcamera/internal/v4l2_device.h b/include/libcamera/internal/v4l2_device.h\n>> index 1edd664a9aef..77b835b3cb80 100644\n>> --- a/include/libcamera/internal/v4l2_device.h\n>> +++ b/include/libcamera/internal/v4l2_device.h\n>> @@ -15,9 +15,9 @@\n>>\n>>  #include <libcamera/base/log.h>\n>>  #include <libcamera/base/signal.h>\n>> +#include <libcamera/base/span.h>\n>>\n>>  #include <libcamera/controls.h>\n>> -#include <libcamera/span.h>\n>>\n>>  namespace libcamera {\n>>\n>> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n>> index d08bb3096aff..9a120d13346e 100644\n>> --- a/include/libcamera/meson.build\n>> +++ b/include/libcamera/meson.build\n>> @@ -12,7 +12,6 @@ libcamera_public_headers = files([\n>>      'logging.h',\n>>      'pixel_format.h',\n>>      'request.h',\n>> -    'span.h',\n>>      'stream.h',\n>>      'transform.h',\n>>  ])\n>> diff --git a/src/android/camera_buffer.h b/src/android/camera_buffer.h\n>> index e850c4e36668..2617ff6b11a1 100644\n>> --- a/src/android/camera_buffer.h\n>> +++ b/src/android/camera_buffer.h\n>> @@ -10,8 +10,7 @@\n>>  #include <hardware/camera3.h>\n>>\n>>  #include <libcamera/base/class.h>\n>> -\n>> -#include <libcamera/span.h>\n>> +#include <libcamera/base/span.h>\n>>\n>>  class CameraBuffer final : public libcamera::Extensible\n>>  {\n>> diff --git a/src/android/jpeg/encoder.h b/src/android/jpeg/encoder.h\n>> index 8d449369869f..28e7f92a3ecb 100644\n>> --- a/src/android/jpeg/encoder.h\n>> +++ b/src/android/jpeg/encoder.h\n>> @@ -7,8 +7,9 @@\n>>  #ifndef __ANDROID_JPEG_ENCODER_H__\n>>  #define __ANDROID_JPEG_ENCODER_H__\n>>\n>> +#include <libcamera/base/span.h>\n>> +\n>>  #include <libcamera/buffer.h>\n>> -#include <libcamera/span.h>\n>>  #include <libcamera/stream.h>\n>>\n>>  class Encoder\n>> diff --git a/src/android/jpeg/exif.h b/src/android/jpeg/exif.h\n>> index 8aa1b123a737..23b0e0974459 100644\n>> --- a/src/android/jpeg/exif.h\n>> +++ b/src/android/jpeg/exif.h\n>> @@ -13,8 +13,9 @@\n>>\n>>  #include <libexif/exif-data.h>\n>>\n>> +#include <libcamera/base/span.h>\n>> +\n>>  #include <libcamera/geometry.h>\n>> -#include <libcamera/span.h>\n>>\n>>  class Exif\n>>  {\n>> diff --git a/src/ipa/libipa/histogram.h b/src/ipa/libipa/histogram.h\n>> index e06f1884395e..c2761cb29e7a 100644\n>> --- a/src/ipa/libipa/histogram.h\n>> +++ b/src/ipa/libipa/histogram.h\n>> @@ -13,7 +13,7 @@\n>>\n>>  #include <vector>\n>>\n>> -#include <libcamera/span.h>\n>> +#include <libcamera/base/span.h>\n>>\n>>  namespace libcamera {\n>>\n>> diff --git a/src/ipa/raspberrypi/cam_helper.hpp b/src/ipa/raspberrypi/cam_helper.hpp\n>> index a66648197140..b19c95f67453 100644\n>> --- a/src/ipa/raspberrypi/cam_helper.hpp\n>> +++ b/src/ipa/raspberrypi/cam_helper.hpp\n>> @@ -8,8 +8,7 @@\n>>\n>>  #include <string>\n>>\n>> -#include <libcamera/span.h>\n>> -\n>> +#include <libcamera/base/span.h>\n>>  #include <libcamera/base/utils.h>\n>>\n>>  #include \"camera_mode.h\"\n>> diff --git a/src/ipa/raspberrypi/md_parser.hpp b/src/ipa/raspberrypi/md_parser.hpp\n>> index 65aab02d51b6..8497216f8db7 100644\n>> --- a/src/ipa/raspberrypi/md_parser.hpp\n>> +++ b/src/ipa/raspberrypi/md_parser.hpp\n>> @@ -8,7 +8,7 @@\n>>\n>>  #include <stdint.h>\n>>\n>> -#include <libcamera/span.h>\n>> +#include <libcamera/base/span.h>\n>>\n>>  /*\n>>   * Camera metadata parser class. Usage as shown below.\n>> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp\n>> index a3f014495e80..4d09a84f6532 100644\n>> --- a/src/ipa/raspberrypi/raspberrypi.cpp\n>> +++ b/src/ipa/raspberrypi/raspberrypi.cpp\n>> @@ -16,6 +16,7 @@\n>>  #include <linux/bcm2835-isp.h>\n>>\n>>  #include <libcamera/base/log.h>\n>> +#include <libcamera/base/span.h>\n>>\n>>  #include <libcamera/buffer.h>\n>>  #include <libcamera/control_ids.h>\n>> @@ -26,7 +27,6 @@\n>>  #include <libcamera/ipa/raspberrypi.h>\n>>  #include <libcamera/ipa/raspberrypi_ipa_interface.h>\n>>  #include <libcamera/request.h>\n>> -#include <libcamera/span.h>\n>>\n>>  #include \"libcamera/internal/buffer.h\"\n>>\n>> diff --git a/src/libcamera/control_serializer.cpp b/src/libcamera/control_serializer.cpp\n>> index dd5a26083747..300466285a57 100644\n>> --- a/src/libcamera/control_serializer.cpp\n>> +++ b/src/libcamera/control_serializer.cpp\n>> @@ -12,11 +12,11 @@\n>>  #include <vector>\n>>\n>>  #include <libcamera/base/log.h>\n>> +#include <libcamera/base/span.h>\n>>\n>>  #include <libcamera/control_ids.h>\n>>  #include <libcamera/controls.h>\n>>  #include <libcamera/ipa/ipa_controls.h>\n>> -#include <libcamera/span.h>\n>>\n>>  #include \"libcamera/internal/byte_stream_buffer.h\"\n>>\n>> diff --git a/src/libcamera/ipa_module.cpp b/src/libcamera/ipa_module.cpp\n>> index 984c1fed9bdb..adfb8d407697 100644\n>> --- a/src/libcamera/ipa_module.cpp\n>> +++ b/src/libcamera/ipa_module.cpp\n>> @@ -21,10 +21,9 @@\n>>  #include <sys/types.h>\n>>  #include <unistd.h>\n>>\n>> -#include <libcamera/span.h>\n>> -\n>>  #include <libcamera/base/file.h>\n>>  #include <libcamera/base/log.h>\n>> +#include <libcamera/base/span.h>\n>>  #include <libcamera/base/utils.h>\n>>\n>>  #include \"libcamera/internal/pipeline_handler.h\"\n>> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.h b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n>> index c185ac3992dd..91757600ccdc 100644\n>> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n>> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n>> @@ -11,11 +11,11 @@\n>>  #include <vector>\n>>\n>>  #include <libcamera/base/signal.h>\n>> +#include <libcamera/base/span.h>\n>>\n>>  #include <libcamera/camera.h>\n>>  #include <libcamera/geometry.h>\n>>  #include <libcamera/pixel_format.h>\n>> -#include <libcamera/span.h>\n>>\n>>  #include \"libcamera/internal/media_object.h\"\n>>  #include \"libcamera/internal/v4l2_videodevice.h\"\n>> diff --git a/test/span.cpp b/test/span.cpp\n>> index ca037c8f02fa..abf3a5d681bf 100644\n>> --- a/test/span.cpp\n>> +++ b/test/span.cpp\n>> @@ -9,7 +9,7 @@\n>>   * Include first to ensure the header is self-contained, as there's no span.cpp\n>>   * in libcamera.\n>>   */\n>> -#include <libcamera/span.h>\n>> +#include <libcamera/base/span.h>\n>>\n>>  #include <array>\n>>  #include <iostream>\n>> diff --git a/test/utils.cpp b/test/utils.cpp\n>> index 9cd2cd070cb9..d7f810e95e7a 100644\n>> --- a/test/utils.cpp\n>> +++ b/test/utils.cpp\n>> @@ -11,11 +11,11 @@\n>>  #include <string>\n>>  #include <vector>\n>>\n>> -#include <libcamera/geometry.h>\n>> -#include <libcamera/span.h>\n>> -\n>> +#include <libcamera/base/span.h>\n>>  #include <libcamera/base/utils.h>\n>>\n>> +#include <libcamera/geometry.h>\n>> +\n>>  #include \"test.h\"\n>>\n>>  using namespace std;\n>> --\n>> 2.30.2\n>>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 4090FC321D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 25 Jun 2021 09:39:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B04F7684D0;\n\tFri, 25 Jun 2021 11:39:21 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9D075684CB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 25 Jun 2021 11:39:20 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id ED5EC501;\n\tFri, 25 Jun 2021 11:39:19 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"HYK3sYhH\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1624613960;\n\tbh=uQE1zsN1Dk9i4liaG05a2JQ3KwGenhKx7DM70YzW308=;\n\th=From:Subject:To:Cc:References:Date:In-Reply-To:From;\n\tb=HYK3sYhHVHfvPD0+MynwIzoW8sN/3+TNtkUS0QCnrLZ/2df+w6OyKG2MjSpuRPC7T\n\tWnCvEQL4OPXy6XIzovg3TY7Px09Hzg3mEeCVeXh+xrmqgCqO3evk2KgAjxSNSBj6wA\n\tmECx7GkDtXlP+YMyF52nowqQ+2bthmO1dUcV5hXs=","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Hirokazu Honda <hiroh@chromium.org>","References":"<20210625013539.625803-1-kieran.bingham@ideasonboard.com>\n\t<20210625013539.625803-14-kieran.bingham@ideasonboard.com>\n\t<CAO5uPHOB=78rALB_zbw-uRnEkrMSufUYFAftugLrA2O-Y9Xf+A@mail.gmail.com>","Message-ID":"<a1aafee9-0ec3-9da9-e65f-95e0fa6271ff@ideasonboard.com>","Date":"Fri, 25 Jun 2021 10:39:17 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.11.0","MIME-Version":"1.0","In-Reply-To":"<CAO5uPHOB=78rALB_zbw-uRnEkrMSufUYFAftugLrA2O-Y9Xf+A@mail.gmail.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":17796,"web_url":"https://patchwork.libcamera.org/comment/17796/","msgid":"<2b20f0ba-9f76-6ddb-be61-20ef7c26e95d@ideasonboard.com>","date":"2021-06-25T10:59:38","subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Hiro,\n\nOn 25/06/2021 10:39, Kieran Bingham wrote:\n> \n>>\n>> Isn't span not one which should not be exposed to public?\n> \n> Oh that's interesting - I thought span was used in the public API\n> somewhere, but now I can't see it - I'll check and move to private if it\n> can go there.\n\nWe use spans for controls, which form part of the public-api.\n\nSo base/span.h is currently public, and will stay there (until C++20? :D)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id A1ABAC321A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 25 Jun 2021 10:59:43 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1DB32684CA;\n\tFri, 25 Jun 2021 12:59:43 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 425F4684C9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 25 Jun 2021 12:59:41 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id AFF02501;\n\tFri, 25 Jun 2021 12:59:40 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"GgQ2RMP5\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1624618780;\n\tbh=64L9hwtvUZqPEXo9QRMVb8s0ujQ/etM1LCUvLxrqM2s=;\n\th=Subject:From:To:Cc:References:Reply-To:Date:In-Reply-To:From;\n\tb=GgQ2RMP5tfb+rUUNgVAU4MNMCWOITizjV/F4Ds6ng4FR/8BwBdbLAGCNabRG+xMmr\n\tYQxBdKRz/xYYrBvvz4LFmprUQ7tIrEieoPGG8yfJ51Nsa7+UfJZRFXMe34Medscojx\n\tJqzT/8T1pKixMRaMl/qm/xoc4o4oQ+gC3gtP9azw=","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Hirokazu Honda <hiroh@chromium.org>","References":"<20210625013539.625803-1-kieran.bingham@ideasonboard.com>\n\t<20210625013539.625803-14-kieran.bingham@ideasonboard.com>\n\t<CAO5uPHOB=78rALB_zbw-uRnEkrMSufUYFAftugLrA2O-Y9Xf+A@mail.gmail.com>\n\t<a1aafee9-0ec3-9da9-e65f-95e0fa6271ff@ideasonboard.com>","Organization":"Ideas on Board","Message-ID":"<2b20f0ba-9f76-6ddb-be61-20ef7c26e95d@ideasonboard.com>","Date":"Fri, 25 Jun 2021 11:59:38 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.11.0","MIME-Version":"1.0","In-Reply-To":"<a1aafee9-0ec3-9da9-e65f-95e0fa6271ff@ideasonboard.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Reply-To":"kieran.bingham@ideasonboard.com","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":17804,"web_url":"https://patchwork.libcamera.org/comment/17804/","msgid":"<YNXNHyUHOqE/3qbs@pendragon.ideasonboard.com>","date":"2021-06-25T12:33:35","subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Fri, Jun 25, 2021 at 11:59:38AM +0100, Kieran Bingham wrote:\n> On 25/06/2021 10:39, Kieran Bingham wrote:\n> >>\n> >> Isn't span not one which should not be exposed to public?\n> > \n> > Oh that's interesting - I thought span was used in the public API\n> > somewhere, but now I can't see it - I'll check and move to private if it\n> > can go there.\n> \n> We use spans for controls, which form part of the public-api.\n> \n> So base/span.h is currently public, and will stay there (until C++20? :D)\n\nLooking forward to that ;-)","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id DE0B1C321A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 25 Jun 2021 12:34:08 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9D7E3684CE;\n\tFri, 25 Jun 2021 14:34:08 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6EBA6684CA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 25 Jun 2021 14:34:07 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1986C8B6;\n\tFri, 25 Jun 2021 14:34:06 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"lWsLVToF\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1624624447;\n\tbh=W42xWQh8V9+AEjgu4PsRvGnjaCgG6qVUczq6ha329Ps=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=lWsLVToFnvvsEKcAGQJWhaZjrnTKqAR84Qf8eVlejOVLRtFGi+GdIc6AcUKMP/xmc\n\tNpTS6SzoPxKw5eJFk76A3swnUGxueFakperJKEh8oO2GYgKk6AJg3pAdbRUqJ0s95z\n\t936FnYchCePrTAIWrON4pV6t8ygcvDFLJtRuwT+w=","Date":"Fri, 25 Jun 2021 15:33:35 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YNXNHyUHOqE/3qbs@pendragon.ideasonboard.com>","References":"<20210625013539.625803-1-kieran.bingham@ideasonboard.com>\n\t<20210625013539.625803-14-kieran.bingham@ideasonboard.com>\n\t<CAO5uPHOB=78rALB_zbw-uRnEkrMSufUYFAftugLrA2O-Y9Xf+A@mail.gmail.com>\n\t<a1aafee9-0ec3-9da9-e65f-95e0fa6271ff@ideasonboard.com>\n\t<2b20f0ba-9f76-6ddb-be61-20ef7c26e95d@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<2b20f0ba-9f76-6ddb-be61-20ef7c26e95d@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":17805,"web_url":"https://patchwork.libcamera.org/comment/17805/","msgid":"<YNXNo3M72JGD6HQJ@pendragon.ideasonboard.com>","date":"2021-06-25T12:35:47","subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nThank you for the patch.\n\nOn Fri, Jun 25, 2021 at 02:35:36AM +0100, Kieran Bingham wrote:\n> Move span, and adjust the Doxygen exlusion as well.\n> \n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nWith the fixes pointed out by Hiro,\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> ---\n>  Documentation/Doxyfile.in                       | 2 +-\n>  include/libcamera/base/file.h                   | 3 +--\n>  include/libcamera/base/meson.build              | 1 +\n>  include/libcamera/{ => base}/span.h             | 0\n>  include/libcamera/controls.h                    | 2 +-\n>  include/libcamera/internal/buffer.h             | 2 +-\n>  include/libcamera/internal/byte_stream_buffer.h | 3 +--\n>  include/libcamera/internal/pub_key.h            | 2 +-\n>  include/libcamera/internal/v4l2_device.h        | 2 +-\n>  include/libcamera/meson.build                   | 1 -\n>  src/android/camera_buffer.h                     | 3 +--\n>  src/android/jpeg/encoder.h                      | 3 ++-\n>  src/android/jpeg/exif.h                         | 3 ++-\n>  src/ipa/libipa/histogram.h                      | 2 +-\n>  src/ipa/raspberrypi/cam_helper.hpp              | 3 +--\n>  src/ipa/raspberrypi/md_parser.hpp               | 2 +-\n>  src/ipa/raspberrypi/raspberrypi.cpp             | 2 +-\n>  src/libcamera/control_serializer.cpp            | 2 +-\n>  src/libcamera/ipa_module.cpp                    | 3 +--\n>  src/libcamera/pipeline/rkisp1/rkisp1_path.h     | 2 +-\n>  test/span.cpp                                   | 2 +-\n>  test/utils.cpp                                  | 6 +++---\n>  22 files changed, 24 insertions(+), 27 deletions(-)\n>  rename include/libcamera/{ => base}/span.h (100%)\n> \n> diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in\n> index 8305f56af7a8..a79d37706faf 100644\n> --- a/Documentation/Doxyfile.in\n> +++ b/Documentation/Doxyfile.in\n> @@ -834,7 +834,7 @@ RECURSIVE              = YES\n>  # Note that relative paths are relative to the directory from which doxygen is\n>  # run.\n>  \n> -EXCLUDE                = @TOP_SRCDIR@/include/libcamera/span.h \\\n> +EXCLUDE                = @TOP_SRCDIR@/include/libcamera/base/span.h \\\n>  \t\t\t @TOP_SRCDIR@/include/libcamera/internal/device_enumerator_sysfs.h \\\n>  \t\t\t @TOP_SRCDIR@/include/libcamera/internal/device_enumerator_udev.h \\\n>  \t\t\t @TOP_SRCDIR@/include/libcamera/internal/ipc_pipe_unixsocket.h \\\n> diff --git a/include/libcamera/base/file.h b/include/libcamera/base/file.h\n> index cecbb254591f..c3c7ca6013a8 100644\n> --- a/include/libcamera/base/file.h\n> +++ b/include/libcamera/base/file.h\n> @@ -13,8 +13,7 @@\n>  \n>  #include <libcamera/base/class.h>\n>  #include <libcamera/base/private.h>\n> -\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  namespace libcamera {\n>  \n> diff --git a/include/libcamera/base/meson.build b/include/libcamera/base/meson.build\n> index aaac324d7149..7c499b558fb0 100644\n> --- a/include/libcamera/base/meson.build\n> +++ b/include/libcamera/base/meson.build\n> @@ -15,6 +15,7 @@ libcamera_base_headers = files([\n>      'private.h',\n>      'semaphore.h',\n>      'signal.h',\n> +    'span.h',\n>      'thread.h',\n>      'timer.h',\n>      'utils.h',\n> diff --git a/include/libcamera/span.h b/include/libcamera/base/span.h\n> similarity index 100%\n> rename from include/libcamera/span.h\n> rename to include/libcamera/base/span.h\n> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h\n> index f62b6cf055d6..1bc958a43b22 100644\n> --- a/include/libcamera/controls.h\n> +++ b/include/libcamera/controls.h\n> @@ -15,9 +15,9 @@\n>  #include <vector>\n>  \n>  #include <libcamera/base/class.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <libcamera/geometry.h>\n> -#include <libcamera/span.h>\n>  \n>  namespace libcamera {\n>  \n> diff --git a/include/libcamera/internal/buffer.h b/include/libcamera/internal/buffer.h\n> index 91dd24969385..beae0cb98544 100644\n> --- a/include/libcamera/internal/buffer.h\n> +++ b/include/libcamera/internal/buffer.h\n> @@ -11,9 +11,9 @@\n>  #include <vector>\n>  \n>  #include <libcamera/base/class.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <libcamera/buffer.h>\n> -#include <libcamera/span.h>\n>  \n>  namespace libcamera {\n>  \n> diff --git a/include/libcamera/internal/byte_stream_buffer.h b/include/libcamera/internal/byte_stream_buffer.h\n> index 7eefb1a71f07..d0f0df5ee87b 100644\n> --- a/include/libcamera/internal/byte_stream_buffer.h\n> +++ b/include/libcamera/internal/byte_stream_buffer.h\n> @@ -12,8 +12,7 @@\n>  #include <type_traits>\n>  \n>  #include <libcamera/base/class.h>\n> -\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  namespace libcamera {\n>  \n> diff --git a/include/libcamera/internal/pub_key.h b/include/libcamera/internal/pub_key.h\n> index f5f988b58f74..9261c9c2a0ee 100644\n> --- a/include/libcamera/internal/pub_key.h\n> +++ b/include/libcamera/internal/pub_key.h\n> @@ -9,7 +9,7 @@\n>  \n>  #include <stdint.h>\n>  \n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #if HAVE_GNUTLS\n>  struct gnutls_pubkey_st;\n> diff --git a/include/libcamera/internal/v4l2_device.h b/include/libcamera/internal/v4l2_device.h\n> index 1edd664a9aef..77b835b3cb80 100644\n> --- a/include/libcamera/internal/v4l2_device.h\n> +++ b/include/libcamera/internal/v4l2_device.h\n> @@ -15,9 +15,9 @@\n>  \n>  #include <libcamera/base/log.h>\n>  #include <libcamera/base/signal.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <libcamera/controls.h>\n> -#include <libcamera/span.h>\n>  \n>  namespace libcamera {\n>  \n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index d08bb3096aff..9a120d13346e 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -12,7 +12,6 @@ libcamera_public_headers = files([\n>      'logging.h',\n>      'pixel_format.h',\n>      'request.h',\n> -    'span.h',\n>      'stream.h',\n>      'transform.h',\n>  ])\n> diff --git a/src/android/camera_buffer.h b/src/android/camera_buffer.h\n> index e850c4e36668..2617ff6b11a1 100644\n> --- a/src/android/camera_buffer.h\n> +++ b/src/android/camera_buffer.h\n> @@ -10,8 +10,7 @@\n>  #include <hardware/camera3.h>\n>  \n>  #include <libcamera/base/class.h>\n> -\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  class CameraBuffer final : public libcamera::Extensible\n>  {\n> diff --git a/src/android/jpeg/encoder.h b/src/android/jpeg/encoder.h\n> index 8d449369869f..28e7f92a3ecb 100644\n> --- a/src/android/jpeg/encoder.h\n> +++ b/src/android/jpeg/encoder.h\n> @@ -7,8 +7,9 @@\n>  #ifndef __ANDROID_JPEG_ENCODER_H__\n>  #define __ANDROID_JPEG_ENCODER_H__\n>  \n> +#include <libcamera/base/span.h>\n> +\n>  #include <libcamera/buffer.h>\n> -#include <libcamera/span.h>\n>  #include <libcamera/stream.h>\n>  \n>  class Encoder\n> diff --git a/src/android/jpeg/exif.h b/src/android/jpeg/exif.h\n> index 8aa1b123a737..23b0e0974459 100644\n> --- a/src/android/jpeg/exif.h\n> +++ b/src/android/jpeg/exif.h\n> @@ -13,8 +13,9 @@\n>  \n>  #include <libexif/exif-data.h>\n>  \n> +#include <libcamera/base/span.h>\n> +\n>  #include <libcamera/geometry.h>\n> -#include <libcamera/span.h>\n>  \n>  class Exif\n>  {\n> diff --git a/src/ipa/libipa/histogram.h b/src/ipa/libipa/histogram.h\n> index e06f1884395e..c2761cb29e7a 100644\n> --- a/src/ipa/libipa/histogram.h\n> +++ b/src/ipa/libipa/histogram.h\n> @@ -13,7 +13,7 @@\n>  \n>  #include <vector>\n>  \n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  namespace libcamera {\n>  \n> diff --git a/src/ipa/raspberrypi/cam_helper.hpp b/src/ipa/raspberrypi/cam_helper.hpp\n> index a66648197140..b19c95f67453 100644\n> --- a/src/ipa/raspberrypi/cam_helper.hpp\n> +++ b/src/ipa/raspberrypi/cam_helper.hpp\n> @@ -8,8 +8,7 @@\n>  \n>  #include <string>\n>  \n> -#include <libcamera/span.h>\n> -\n> +#include <libcamera/base/span.h>\n>  #include <libcamera/base/utils.h>\n>  \n>  #include \"camera_mode.h\"\n> diff --git a/src/ipa/raspberrypi/md_parser.hpp b/src/ipa/raspberrypi/md_parser.hpp\n> index 65aab02d51b6..8497216f8db7 100644\n> --- a/src/ipa/raspberrypi/md_parser.hpp\n> +++ b/src/ipa/raspberrypi/md_parser.hpp\n> @@ -8,7 +8,7 @@\n>  \n>  #include <stdint.h>\n>  \n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  /*\n>   * Camera metadata parser class. Usage as shown below.\n> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp\n> index a3f014495e80..4d09a84f6532 100644\n> --- a/src/ipa/raspberrypi/raspberrypi.cpp\n> +++ b/src/ipa/raspberrypi/raspberrypi.cpp\n> @@ -16,6 +16,7 @@\n>  #include <linux/bcm2835-isp.h>\n>  \n>  #include <libcamera/base/log.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <libcamera/buffer.h>\n>  #include <libcamera/control_ids.h>\n> @@ -26,7 +27,6 @@\n>  #include <libcamera/ipa/raspberrypi.h>\n>  #include <libcamera/ipa/raspberrypi_ipa_interface.h>\n>  #include <libcamera/request.h>\n> -#include <libcamera/span.h>\n>  \n>  #include \"libcamera/internal/buffer.h\"\n>  \n> diff --git a/src/libcamera/control_serializer.cpp b/src/libcamera/control_serializer.cpp\n> index dd5a26083747..300466285a57 100644\n> --- a/src/libcamera/control_serializer.cpp\n> +++ b/src/libcamera/control_serializer.cpp\n> @@ -12,11 +12,11 @@\n>  #include <vector>\n>  \n>  #include <libcamera/base/log.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <libcamera/control_ids.h>\n>  #include <libcamera/controls.h>\n>  #include <libcamera/ipa/ipa_controls.h>\n> -#include <libcamera/span.h>\n>  \n>  #include \"libcamera/internal/byte_stream_buffer.h\"\n>  \n> diff --git a/src/libcamera/ipa_module.cpp b/src/libcamera/ipa_module.cpp\n> index 984c1fed9bdb..adfb8d407697 100644\n> --- a/src/libcamera/ipa_module.cpp\n> +++ b/src/libcamera/ipa_module.cpp\n> @@ -21,10 +21,9 @@\n>  #include <sys/types.h>\n>  #include <unistd.h>\n>  \n> -#include <libcamera/span.h>\n> -\n>  #include <libcamera/base/file.h>\n>  #include <libcamera/base/log.h>\n> +#include <libcamera/base/span.h>\n>  #include <libcamera/base/utils.h>\n>  \n>  #include \"libcamera/internal/pipeline_handler.h\"\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.h b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> index c185ac3992dd..91757600ccdc 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> @@ -11,11 +11,11 @@\n>  #include <vector>\n>  \n>  #include <libcamera/base/signal.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <libcamera/camera.h>\n>  #include <libcamera/geometry.h>\n>  #include <libcamera/pixel_format.h>\n> -#include <libcamera/span.h>\n>  \n>  #include \"libcamera/internal/media_object.h\"\n>  #include \"libcamera/internal/v4l2_videodevice.h\"\n> diff --git a/test/span.cpp b/test/span.cpp\n> index ca037c8f02fa..abf3a5d681bf 100644\n> --- a/test/span.cpp\n> +++ b/test/span.cpp\n> @@ -9,7 +9,7 @@\n>   * Include first to ensure the header is self-contained, as there's no span.cpp\n>   * in libcamera.\n>   */\n> -#include <libcamera/span.h>\n> +#include <libcamera/base/span.h>\n>  \n>  #include <array>\n>  #include <iostream>\n> diff --git a/test/utils.cpp b/test/utils.cpp\n> index 9cd2cd070cb9..d7f810e95e7a 100644\n> --- a/test/utils.cpp\n> +++ b/test/utils.cpp\n> @@ -11,11 +11,11 @@\n>  #include <string>\n>  #include <vector>\n>  \n> -#include <libcamera/geometry.h>\n> -#include <libcamera/span.h>\n> -\n> +#include <libcamera/base/span.h>\n>  #include <libcamera/base/utils.h>\n>  \n> +#include <libcamera/geometry.h>\n> +\n>  #include \"test.h\"\n>  \n>  using namespace std;","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id E0F1AC321D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 25 Jun 2021 12:36:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3E539684CF;\n\tFri, 25 Jun 2021 14:36:20 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5CB05684C9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 25 Jun 2021 14:36:18 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C760C8B6;\n\tFri, 25 Jun 2021 14:36:17 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"giWOlBOq\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1624624578;\n\tbh=YtiGRv06zVzlGErzA7umK6m+r6GAynDAu6eOVZMVBDc=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=giWOlBOqNoKUmuRxynq+7Z8uueffcmXeJ8upA8yFldUl8uNCKdNTtEiYh2E66RZuR\n\tHAL2GGLBc7W9EuHmXqgtu1+m2tZLJ+0IT3igZEhZxWC/giM6NFH86xoEJmXtQTFXuv\n\tegvw8EW/z8m6gT7vf0512DMio3+zePApCI9phJ7w=","Date":"Fri, 25 Jun 2021 15:35:47 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YNXNo3M72JGD6HQJ@pendragon.ideasonboard.com>","References":"<20210625013539.625803-1-kieran.bingham@ideasonboard.com>\n\t<20210625013539.625803-14-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210625013539.625803-14-kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":17850,"web_url":"https://patchwork.libcamera.org/comment/17850/","msgid":"<CAO5uPHOFG4RYKbWsXZVcd+AFZ2xG+Fk1EmKy9k8oEUPosHahNA@mail.gmail.com>","date":"2021-06-28T04:28:09","subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","submitter":{"id":63,"url":"https://patchwork.libcamera.org/api/people/63/","name":"Hirokazu Honda","email":"hiroh@chromium.org"},"content":"Hi Kieran,\n\nOn Fri, Jun 25, 2021 at 7:59 PM Kieran Bingham\n<kieran.bingham@ideasonboard.com> wrote:\n>\n> Hi Hiro,\n>\n> On 25/06/2021 10:39, Kieran Bingham wrote:\n> >\n> >>\n> >> Isn't span not one which should not be exposed to public?\n> >\n> > Oh that's interesting - I thought span was used in the public API\n> > somewhere, but now I can't see it - I'll check and move to private if it\n> > can go there.\n>\n> We use spans for controls, which form part of the public-api.\n\nAh, I see. Acknowledged.\n\nReviewed-by: Hirokazu Honda <hiroh@chromium.org>\n>\n> So base/span.h is currently public, and will stay there (until C++20? :D)\n>\n> --\n> Regards\n> --\n> Kieran","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 0AD1DC321A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 28 Jun 2021 04:28:23 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 41293684D5;\n\tMon, 28 Jun 2021 06:28:22 +0200 (CEST)","from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com\n\t[IPv6:2a00:1450:4864:20::62d])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8B82D6028C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 28 Jun 2021 06:28:20 +0200 (CEST)","by mail-ej1-x62d.google.com with SMTP id gn32so27583262ejc.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 27 Jun 2021 21:28:20 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"lcdcxmTB\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; \n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=TpB56PoVBNIVPgViO7M8Yk8aQZl8oZrxbFUStum5JsA=;\n\tb=lcdcxmTBIAN27HEEj+56+kZB26q0+z+Pj99BNb5Q23bcgVOKdIdIUE/Fm9Xz61JuT8\n\tvp5Ce+3zKKgPq1sRGo9XtbdsHA/9URZEE10BfvIw+Od4jKOK5flxW+Ni8xJ8dWyAcRMM\n\tflZJ7NAae5fLBU2qsOyYnSYvXOcQJFq7XuWrA=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=TpB56PoVBNIVPgViO7M8Yk8aQZl8oZrxbFUStum5JsA=;\n\tb=Whk4KamWalLr2gIF7xPtX2kkgCsCXl0eKz/K+mp90m3QVuZ0ylHWehC3u/yH+985bm\n\tWMtTbR/hDq3c34xMUOm/45+tGr6NohGk16/nZNIIzoqKoTfxqOQpPxicWXcfL9p+dKsW\n\tz7mBpekj7H0K2u99K4kL/fGEjQ8W0ooRWsOWPzDo9p232qkXIZbQf0So0BQnxqxe3Sxf\n\t3X9qKGfI5JVJyDc4V1yFfCPje28jTBrHRRpOcpG5PhjPvN89/YVnHTe0nYEObOISFWQX\n\tndTB0SooAw6aYqG9kuhbEDgPZOlugyJzrrDF99K0DLht1AaNfvtiod3FBSFr/6ByL0f0\n\thm8Q==","X-Gm-Message-State":"AOAM533o+Vq5ilu78K80Qh9Z+z7H5yoVhwix1+ZN8Nel0Lrcs+r/LO5M\n\tC6F/rFAGlE/1FZ7oJiUl0FtUkHXw6/NoqU+zwIoL5g==","X-Google-Smtp-Source":"ABdhPJyV4/scvC6tPZ75/tpLgBLXdAHDqmAqjiuDZ3YYBflS1hSJmM4rt6xhatdfN4IqEnQN6Z2fPLoMwepm8mi2wBY=","X-Received":"by 2002:a17:907:20da:: with SMTP id\n\tqq26mr21777782ejb.42.1624854500277; \n\tSun, 27 Jun 2021 21:28:20 -0700 (PDT)","MIME-Version":"1.0","References":"<20210625013539.625803-1-kieran.bingham@ideasonboard.com>\n\t<20210625013539.625803-14-kieran.bingham@ideasonboard.com>\n\t<CAO5uPHOB=78rALB_zbw-uRnEkrMSufUYFAftugLrA2O-Y9Xf+A@mail.gmail.com>\n\t<a1aafee9-0ec3-9da9-e65f-95e0fa6271ff@ideasonboard.com>\n\t<2b20f0ba-9f76-6ddb-be61-20ef7c26e95d@ideasonboard.com>","In-Reply-To":"<2b20f0ba-9f76-6ddb-be61-20ef7c26e95d@ideasonboard.com>","From":"Hirokazu Honda <hiroh@chromium.org>","Date":"Mon, 28 Jun 2021 13:28:09 +0900","Message-ID":"<CAO5uPHOFG4RYKbWsXZVcd+AFZ2xG+Fk1EmKy9k8oEUPosHahNA@mail.gmail.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH 13/16] libcamera/base: Move span to\n\tbase library","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]