[{"id":4830,"web_url":"https://patchwork.libcamera.org/comment/4830/","msgid":"<20200515165112.a56h3b5hoahjvj3p@uno.localdomain>","date":"2020-05-15T16:51:12","subject":"Re: [libcamera-devel] [PATCH v2 2/3] libcamera: Move IPA headers\n\tfrom include/ipa/ to include/libcamera/ipa/","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n\nOn Fri, May 15, 2020 at 07:35:03PM +0300, Laurent Pinchart wrote:\n> The IPA headers are installed into $prefix/include/libcamera/ipa/, but\n> are located in the source tree in include/ipa/. This requires files\n> within libcamera to include them with\n>\n>  #include <ipa/foo.h>\n>\n> while a third party IPA would need to use\n>\n>  #include <libcamera/ipa/foo.h>\n>\n> Not only is this inconsistent, it can create issues later if IPA headers\n> need to include each other, as the first form of include directive\n> wouldn't be valid once the headers are installed.\n>\n> Fix the problem by moving the IPA headers to include/libcamera/ipa/.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nAcked-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n  j\n\n> ---\n>  Documentation/Doxyfile.in                             | 3 +--\n>  include/libcamera/internal/ipa_context_wrapper.h      | 2 +-\n>  include/libcamera/internal/ipa_manager.h              | 4 ++--\n>  include/libcamera/internal/ipa_module.h               | 4 ++--\n>  include/libcamera/internal/ipa_proxy.h                | 2 +-\n>  include/{ => libcamera}/ipa/ipa_controls.h            | 0\n>  include/{ => libcamera}/ipa/ipa_interface.h           | 0\n>  include/{ => libcamera}/ipa/ipa_module_info.h         | 0\n>  include/{ => libcamera}/ipa/ipa_vimc.h                | 0\n>  include/{ => libcamera}/ipa/meson.build               | 0\n>  include/{ => libcamera}/ipa/raspberrypi.h             | 0\n>  include/{ => libcamera}/ipa/rkisp1.h                  | 0\n>  include/libcamera/meson.build                         | 1 +\n>  include/meson.build                                   | 1 -\n>  src/ipa/libipa/ipa_interface_wrapper.cpp              | 2 +-\n>  src/ipa/libipa/ipa_interface_wrapper.h                | 2 +-\n>  src/ipa/raspberrypi/raspberrypi.cpp                   | 7 ++++---\n>  src/ipa/rkisp1/rkisp1.cpp                             | 7 ++++---\n>  src/ipa/vimc/vimc.cpp                                 | 6 +++---\n>  src/libcamera/control_serializer.cpp                  | 2 +-\n>  src/libcamera/ipa_controls.cpp                        | 2 +-\n>  src/libcamera/ipa_interface.cpp                       | 2 +-\n>  src/libcamera/pipeline/raspberrypi/raspberrypi.cpp    | 2 +-\n>  src/libcamera/pipeline/rkisp1/rkisp1.cpp              | 2 +-\n>  src/libcamera/pipeline/vimc/vimc.cpp                  | 4 ++--\n>  src/libcamera/proxy/ipa_proxy_linux.cpp               | 4 ++--\n>  src/libcamera/proxy/ipa_proxy_thread.cpp              | 4 ++--\n>  src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp | 2 +-\n>  test/ipa/ipa_interface_test.cpp                       | 3 +--\n>  29 files changed, 34 insertions(+), 34 deletions(-)\n>  rename include/{ => libcamera}/ipa/ipa_controls.h (100%)\n>  rename include/{ => libcamera}/ipa/ipa_interface.h (100%)\n>  rename include/{ => libcamera}/ipa/ipa_module_info.h (100%)\n>  rename include/{ => libcamera}/ipa/ipa_vimc.h (100%)\n>  rename include/{ => libcamera}/ipa/meson.build (100%)\n>  rename include/{ => libcamera}/ipa/raspberrypi.h (100%)\n>  rename include/{ => libcamera}/ipa/rkisp1.h (100%)\n>\n> diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in\n> index c3fe5f663f7c..5f4847523c53 100644\n> --- a/Documentation/Doxyfile.in\n> +++ b/Documentation/Doxyfile.in\n> @@ -794,8 +794,7 @@ WARN_LOGFILE           =\n>  # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING\n>  # Note: If this tag is empty the current directory is searched.\n>\n> -INPUT                  = \"@TOP_SRCDIR@/include/ipa\" \\\n> -\t\t\t \"@TOP_SRCDIR@/include/libcamera\" \\\n> +INPUT                  = \"@TOP_SRCDIR@/include/libcamera\" \\\n>  \t\t\t \"@TOP_SRCDIR@/src/ipa/libipa\" \\\n>  \t\t\t \"@TOP_SRCDIR@/src/libcamera\" \\\n>  \t\t\t \"@TOP_BUILDDIR@/include/libcamera\" \\\n> diff --git a/include/libcamera/internal/ipa_context_wrapper.h b/include/libcamera/internal/ipa_context_wrapper.h\n> index a717d4067498..bd770e132c0c 100644\n> --- a/include/libcamera/internal/ipa_context_wrapper.h\n> +++ b/include/libcamera/internal/ipa_context_wrapper.h\n> @@ -7,7 +7,7 @@\n>  #ifndef __LIBCAMERA_IPA_CONTEXT_WRAPPER_H__\n>  #define __LIBCAMERA_IPA_CONTEXT_WRAPPER_H__\n>\n> -#include <ipa/ipa_interface.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n>\n>  #include \"libcamera/internal/control_serializer.h\"\n>\n> diff --git a/include/libcamera/internal/ipa_manager.h b/include/libcamera/internal/ipa_manager.h\n> index f07d91fc7bbf..2412d75746ac 100644\n> --- a/include/libcamera/internal/ipa_manager.h\n> +++ b/include/libcamera/internal/ipa_manager.h\n> @@ -10,8 +10,8 @@\n>  #include <stdint.h>\n>  #include <vector>\n>\n> -#include <ipa/ipa_interface.h>\n> -#include <ipa/ipa_module_info.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n> +#include <libcamera/ipa/ipa_module_info.h>\n>\n>  #include \"libcamera/internal/ipa_module.h\"\n>  #include \"libcamera/internal/pipeline_handler.h\"\n> diff --git a/include/libcamera/internal/ipa_module.h b/include/libcamera/internal/ipa_module.h\n> index 2f569db0b848..5b54cb31a48a 100644\n> --- a/include/libcamera/internal/ipa_module.h\n> +++ b/include/libcamera/internal/ipa_module.h\n> @@ -11,8 +11,8 @@\n>  #include <string>\n>  #include <vector>\n>\n> -#include <ipa/ipa_interface.h>\n> -#include <ipa/ipa_module_info.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n> +#include <libcamera/ipa/ipa_module_info.h>\n>\n>  #include \"libcamera/internal/log.h\"\n>  #include \"libcamera/internal/pipeline_handler.h\"\n> diff --git a/include/libcamera/internal/ipa_proxy.h b/include/libcamera/internal/ipa_proxy.h\n> index 1111065b36a7..e9a36608bd31 100644\n> --- a/include/libcamera/internal/ipa_proxy.h\n> +++ b/include/libcamera/internal/ipa_proxy.h\n> @@ -11,7 +11,7 @@\n>  #include <string>\n>  #include <vector>\n>\n> -#include <ipa/ipa_interface.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n>\n>  namespace libcamera {\n>\n> diff --git a/include/ipa/ipa_controls.h b/include/libcamera/ipa/ipa_controls.h\n> similarity index 100%\n> rename from include/ipa/ipa_controls.h\n> rename to include/libcamera/ipa/ipa_controls.h\n> diff --git a/include/ipa/ipa_interface.h b/include/libcamera/ipa/ipa_interface.h\n> similarity index 100%\n> rename from include/ipa/ipa_interface.h\n> rename to include/libcamera/ipa/ipa_interface.h\n> diff --git a/include/ipa/ipa_module_info.h b/include/libcamera/ipa/ipa_module_info.h\n> similarity index 100%\n> rename from include/ipa/ipa_module_info.h\n> rename to include/libcamera/ipa/ipa_module_info.h\n> diff --git a/include/ipa/ipa_vimc.h b/include/libcamera/ipa/ipa_vimc.h\n> similarity index 100%\n> rename from include/ipa/ipa_vimc.h\n> rename to include/libcamera/ipa/ipa_vimc.h\n> diff --git a/include/ipa/meson.build b/include/libcamera/ipa/meson.build\n> similarity index 100%\n> rename from include/ipa/meson.build\n> rename to include/libcamera/ipa/meson.build\n> diff --git a/include/ipa/raspberrypi.h b/include/libcamera/ipa/raspberrypi.h\n> similarity index 100%\n> rename from include/ipa/raspberrypi.h\n> rename to include/libcamera/ipa/raspberrypi.h\n> diff --git a/include/ipa/rkisp1.h b/include/libcamera/ipa/rkisp1.h\n> similarity index 100%\n> rename from include/ipa/rkisp1.h\n> rename to include/libcamera/ipa/rkisp1.h\n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index f9c8e64bd50c..32b8d14211a4 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -24,6 +24,7 @@ libcamera_api = files([\n>  include_dir = join_paths(libcamera_include_dir, 'libcamera')\n>\n>  subdir('internal')\n> +subdir('ipa')\n>\n>  install_headers(libcamera_api,\n>                  subdir : include_dir)\n> diff --git a/include/meson.build b/include/meson.build\n> index 4f41c9ceeb4c..2ac9a3a049f2 100644\n> --- a/include/meson.build\n> +++ b/include/meson.build\n> @@ -3,5 +3,4 @@\n>  libcamera_include_dir = 'libcamera'\n>\n>  subdir('android')\n> -subdir('ipa')\n>  subdir('libcamera')\n> diff --git a/src/ipa/libipa/ipa_interface_wrapper.cpp b/src/ipa/libipa/ipa_interface_wrapper.cpp\n> index 90f270c021a9..2a2e43abc708 100644\n> --- a/src/ipa/libipa/ipa_interface_wrapper.cpp\n> +++ b/src/ipa/libipa/ipa_interface_wrapper.cpp\n> @@ -12,7 +12,7 @@\n>  #include <unistd.h>\n>  #include <vector>\n>\n> -#include <ipa/ipa_interface.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n>\n>  #include \"libcamera/internal/byte_stream_buffer.h\"\n>  #include \"libcamera/internal/camera_sensor.h\"\n> diff --git a/src/ipa/libipa/ipa_interface_wrapper.h b/src/ipa/libipa/ipa_interface_wrapper.h\n> index b426034d551d..a1c701599b56 100644\n> --- a/src/ipa/libipa/ipa_interface_wrapper.h\n> +++ b/src/ipa/libipa/ipa_interface_wrapper.h\n> @@ -9,7 +9,7 @@\n>\n>  #include <memory>\n>\n> -#include <ipa/ipa_interface.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n>\n>  #include \"libcamera/internal/control_serializer.h\"\n>\n> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp\n> index 46b244538e32..9669f2126e6c 100644\n> --- a/src/ipa/raspberrypi/raspberrypi.cpp\n> +++ b/src/ipa/raspberrypi/raspberrypi.cpp\n> @@ -12,14 +12,15 @@\n>  #include <string.h>\n>  #include <sys/mman.h>\n>\n> -#include <ipa/ipa_interface.h>\n> -#include <ipa/ipa_module_info.h>\n> -#include <ipa/raspberrypi.h>\n>  #include <libcamera/buffer.h>\n>  #include <libcamera/control_ids.h>\n>  #include <libcamera/controls.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n> +#include <libcamera/ipa/ipa_module_info.h>\n> +#include <libcamera/ipa/raspberrypi.h>\n>  #include <libcamera/request.h>\n>  #include <libcamera/span.h>\n> +\n>  #include <libipa/ipa_interface_wrapper.h>\n>\n>  #include \"libcamera/internal/camera_sensor.h\"\n> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp\n> index 4f6e0342dac1..fbdc908fc816 100644\n> --- a/src/ipa/rkisp1/rkisp1.cpp\n> +++ b/src/ipa/rkisp1/rkisp1.cpp\n> @@ -14,12 +14,13 @@\n>\n>  #include <linux/rkisp1-config.h>\n>\n> -#include <ipa/ipa_interface.h>\n> -#include <ipa/ipa_module_info.h>\n> -#include <ipa/rkisp1.h>\n>  #include <libcamera/buffer.h>\n>  #include <libcamera/control_ids.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n> +#include <libcamera/ipa/ipa_module_info.h>\n> +#include <libcamera/ipa/rkisp1.h>\n>  #include <libcamera/request.h>\n> +\n>  #include <libipa/ipa_interface_wrapper.h>\n>\n>  #include \"libcamera/internal/log.h\"\n> diff --git a/src/ipa/vimc/vimc.cpp b/src/ipa/vimc/vimc.cpp\n> index 3fa6be6535e2..af278a482b8a 100644\n> --- a/src/ipa/vimc/vimc.cpp\n> +++ b/src/ipa/vimc/vimc.cpp\n> @@ -5,7 +5,7 @@\n>   * ipa_vimc.cpp - Vimc Image Processing Algorithm module\n>   */\n>\n> -#include <ipa/ipa_vimc.h>\n> +#include <libcamera/ipa/ipa_vimc.h>\n>\n>  #include <fcntl.h>\n>  #include <string.h>\n> @@ -14,8 +14,8 @@\n>\n>  #include <iostream>\n>\n> -#include <ipa/ipa_interface.h>\n> -#include <ipa/ipa_module_info.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n> +#include <libcamera/ipa/ipa_module_info.h>\n>\n>  #include <libipa/ipa_interface_wrapper.h>\n>\n> diff --git a/src/libcamera/control_serializer.cpp b/src/libcamera/control_serializer.cpp\n> index bf162b6cc471..258db6dfbf5a 100644\n> --- a/src/libcamera/control_serializer.cpp\n> +++ b/src/libcamera/control_serializer.cpp\n> @@ -11,9 +11,9 @@\n>  #include <memory>\n>  #include <vector>\n>\n> -#include <ipa/ipa_controls.h>\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> diff --git a/src/libcamera/ipa_controls.cpp b/src/libcamera/ipa_controls.cpp\n> index b1d14190e3fe..8fd726513182 100644\n> --- a/src/libcamera/ipa_controls.cpp\n> +++ b/src/libcamera/ipa_controls.cpp\n> @@ -5,7 +5,7 @@\n>   * ipa_controls.cpp - IPA control handling\n>   */\n>\n> -#include <ipa/ipa_controls.h>\n> +#include <libcamera/ipa/ipa_controls.h>\n>\n>  /**\n>   * \\file ipa_controls.h\n> diff --git a/src/libcamera/ipa_interface.cpp b/src/libcamera/ipa_interface.cpp\n> index c890eadaf6c8..69835e63ab46 100644\n> --- a/src/libcamera/ipa_interface.cpp\n> +++ b/src/libcamera/ipa_interface.cpp\n> @@ -5,7 +5,7 @@\n>   * ipa_interface.cpp - Image Processing Algorithm interface\n>   */\n>\n> -#include <ipa/ipa_interface.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n>\n>  /**\n>   * \\file ipa_interface.h\n> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> index e254e5558d92..07ca9f5d7f53 100644\n> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> @@ -11,9 +11,9 @@\n>  #include <queue>\n>  #include <sys/mman.h>\n>\n> -#include <ipa/raspberrypi.h>\n>  #include <libcamera/camera.h>\n>  #include <libcamera/control_ids.h>\n> +#include <libcamera/ipa/raspberrypi.h>\n>  #include <libcamera/logging.h>\n>  #include <libcamera/request.h>\n>  #include <libcamera/stream.h>\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> index 7a0c8771ba54..d807fc2cf535 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> @@ -13,10 +13,10 @@\n>\n>  #include <linux/media-bus-format.h>\n>\n> -#include <ipa/rkisp1.h>\n>  #include <libcamera/buffer.h>\n>  #include <libcamera/camera.h>\n>  #include <libcamera/control_ids.h>\n> +#include <libcamera/ipa/rkisp1.h>\n>  #include <libcamera/request.h>\n>  #include <libcamera/stream.h>\n>\n> diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp\n> index 50a9f2df4c24..ca36348a5eb6 100644\n> --- a/src/libcamera/pipeline/vimc/vimc.cpp\n> +++ b/src/libcamera/pipeline/vimc/vimc.cpp\n> @@ -14,11 +14,11 @@\n>  #include <linux/media-bus-format.h>\n>  #include <linux/version.h>\n>\n> -#include <ipa/ipa_interface.h>\n> -#include <ipa/ipa_module_info.h>\n>  #include <libcamera/camera.h>\n>  #include <libcamera/control_ids.h>\n>  #include <libcamera/controls.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n> +#include <libcamera/ipa/ipa_module_info.h>\n>  #include <libcamera/request.h>\n>  #include <libcamera/stream.h>\n>\n> diff --git a/src/libcamera/proxy/ipa_proxy_linux.cpp b/src/libcamera/proxy/ipa_proxy_linux.cpp\n> index 7d6f8799f8ff..be34f20aa857 100644\n> --- a/src/libcamera/proxy/ipa_proxy_linux.cpp\n> +++ b/src/libcamera/proxy/ipa_proxy_linux.cpp\n> @@ -7,8 +7,8 @@\n>\n>  #include <vector>\n>\n> -#include <ipa/ipa_interface.h>\n> -#include <ipa/ipa_module_info.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n> +#include <libcamera/ipa/ipa_module_info.h>\n>\n>  #include \"libcamera/internal/ipa_module.h\"\n>  #include \"libcamera/internal/ipa_proxy.h\"\n> diff --git a/src/libcamera/proxy/ipa_proxy_thread.cpp b/src/libcamera/proxy/ipa_proxy_thread.cpp\n> index 03d4c0d927b9..6fbebed2ba72 100644\n> --- a/src/libcamera/proxy/ipa_proxy_thread.cpp\n> +++ b/src/libcamera/proxy/ipa_proxy_thread.cpp\n> @@ -7,8 +7,8 @@\n>\n>  #include <memory>\n>\n> -#include <ipa/ipa_interface.h>\n> -#include <ipa/ipa_module_info.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n> +#include <libcamera/ipa/ipa_module_info.h>\n>\n>  #include \"libcamera/internal/ipa_context_wrapper.h\"\n>  #include \"libcamera/internal/ipa_module.h\"\n> diff --git a/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp b/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp\n> index 9ba94d01d0ca..0c4687f737a3 100644\n> --- a/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp\n> +++ b/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp\n> @@ -9,8 +9,8 @@\n>  #include <sys/types.h>\n>  #include <unistd.h>\n>\n> -#include <ipa/ipa_interface.h>\n>  #include <libcamera/event_dispatcher.h>\n> +#include <libcamera/ipa/ipa_interface.h>\n>  #include <libcamera/logging.h>\n>\n>  #include \"libcamera/internal/ipa_module.h\"\n> diff --git a/test/ipa/ipa_interface_test.cpp b/test/ipa/ipa_interface_test.cpp\n> index c394377dacd0..2f02af49cce9 100644\n> --- a/test/ipa/ipa_interface_test.cpp\n> +++ b/test/ipa/ipa_interface_test.cpp\n> @@ -14,10 +14,9 @@\n>\n>  #include <libcamera/event_dispatcher.h>\n>  #include <libcamera/event_notifier.h>\n> +#include <libcamera/ipa/ipa_vimc.h>\n>  #include <libcamera/timer.h>\n>\n> -#include <ipa/ipa_vimc.h>\n> -\n>  #include \"libcamera/internal/device_enumerator.h\"\n>  #include \"libcamera/internal/ipa_manager.h\"\n>  #include \"libcamera/internal/ipa_module.h\"\n> --\n> Regards,\n>\n> Laurent Pinchart\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net\n\t[217.70.183.197])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 29B5860DF9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 15 May 2020 18:47:59 +0200 (CEST)","from uno.localdomain (93-34-118-233.ip49.fastwebnet.it\n\t[93.34.118.233]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay5-d.mail.gandi.net (Postfix) with ESMTPSA id A65A41C000E;\n\tFri, 15 May 2020 16:47:58 +0000 (UTC)"],"X-Originating-IP":"93.34.118.233","Date":"Fri, 15 May 2020 18:51:12 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20200515165112.a56h3b5hoahjvj3p@uno.localdomain>","References":"<20200515163505.24330-1-laurent.pinchart@ideasonboard.com>\n\t<20200515163505.24330-2-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20200515163505.24330-2-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v2 2/3] libcamera: Move IPA headers\n\tfrom include/ipa/ to include/libcamera/ipa/","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>","X-List-Received-Date":"Fri, 15 May 2020 16:47:59 -0000"}}]