Patch Detail
Show a patch.
GET /api/1.1/patches/12341/?format=api
{ "id": 12341, "url": "https://patchwork.libcamera.org/api/1.1/patches/12341/?format=api", "web_url": "https://patchwork.libcamera.org/patch/12341/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20210521132823.322076-2-umang.jain@ideasonboard.com>", "date": "2021-05-21T13:28:18", "name": "[libcamera-devel,v3,1/6] ipa: Move core IPA interface documentation to a .cpp file", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "cdd24a2fef6e9f0aa452653b14a0d49506346c85", "submitter": { "id": 86, "url": "https://patchwork.libcamera.org/api/1.1/people/86/?format=api", "name": "Umang Jain", "email": "umang.jain@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/12341/mbox/", "series": [ { "id": 2043, "url": "https://patchwork.libcamera.org/api/1.1/series/2043/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2043", "date": "2021-05-21T13:28:17", "name": "External IPU3 IPA Support", "version": 3, "mbox": "https://patchwork.libcamera.org/series/2043/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/12341/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/12341/checks/", "tags": {}, "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 D42A1C31FF\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 21 May 2021 13:28:38 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 92BC16891B;\n\tFri, 21 May 2021 15:28:38 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 768646891A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 21 May 2021 15:28:36 +0200 (CEST)", "from perceval.ideasonboard.com (unknown [103.251.226.162])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id CE9F18D8;\n\tFri, 21 May 2021 15:28:34 +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=\"k/o4VXN5\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1621603716;\n\tbh=g38HyueAJ+Vmlrc7qz3++i+2qACfN+lGQGpsxnSOR9U=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=k/o4VXN51MOx0YaGjMkcWN2a488RStcFHeZEBulx9OMntjo8PZqLAZOwNA1kMiApV\n\tUkeRWVnln/pWDAErSwCDKa5XA0QBN69dTAa/8mWZWJcpvjRaJX0ObVuhWBuz3Pzh1m\n\tKNRIQSzFb+AFtjCP2cUlZ8RV5DrYCg5IRspKvjdE=", "From": "Umang Jain <umang.jain@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Fri, 21 May 2021 18:58:18 +0530", "Message-Id": "<20210521132823.322076-2-umang.jain@ideasonboard.com>", "X-Mailer": "git-send-email 2.26.2", "In-Reply-To": "<20210521132823.322076-1-umang.jain@ideasonboard.com>", "References": "<20210521132823.322076-1-umang.jain@ideasonboard.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v3 1/6] ipa: Move core IPA interface\n\tdocumentation to a .cpp file", "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>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Moving the core.mojom documentation to its corresponding .cpp file\n(core_ipa_interface.cpp). This will allow Doxygen to generate the\ndocumentation for IPABuffer, IPASettings and IPAStream structures.\nSince the .mojom files are placed in include/ directory, the .cpp file\nwill live in $sourcedir/src/libcamera/ipa/ - which can also contain\ndocumentation for other mojom generated IPA interfaces in subsequent\ncommit.\n\nAlso, fix the Doxygen warning for the above IPA structs regarding their\nconstructors not being documented.\n\nSigned-off-by: Umang Jain <umang.jain@ideasonboard.com>\nAcked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\n Documentation/Doxyfile.in | 8 +-\n Documentation/meson.build | 1 +\n include/libcamera/ipa/core.mojom | 72 ----------------\n include/libcamera/ipa/ipu3.mojom | 5 ++\n include/libcamera/ipa/raspberrypi.mojom | 5 ++\n include/libcamera/ipa/rkisp1.mojom | 5 ++\n include/libcamera/ipa/vimc.mojom | 5 ++\n src/libcamera/ipa/core_ipa_interface.cpp | 105 +++++++++++++++++++++++\n src/libcamera/ipa/meson.build | 5 ++\n src/libcamera/meson.build | 1 +\n 10 files changed, 138 insertions(+), 74 deletions(-)\n create mode 100644 src/libcamera/ipa/core_ipa_interface.cpp\n create mode 100644 src/libcamera/ipa/meson.build", "diff": "diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in\nindex af006724..f4d578fa 100644\n--- a/Documentation/Doxyfile.in\n+++ b/Documentation/Doxyfile.in\n@@ -844,7 +844,6 @@ EXCLUDE = @TOP_SRCDIR@/include/libcamera/span.h \\\n \t\t\t @TOP_SRCDIR@/src/libcamera/pipeline/ \\\n \t\t\t @TOP_SRCDIR@/src/libcamera/tracepoints.cpp \\\n \t\t\t @TOP_BUILDDIR@/include/libcamera/internal/tracepoints.h \\\n-\t\t\t @TOP_BUILDDIR@/include/libcamera/ipa/ \\\n \t\t\t @TOP_BUILDDIR@/src/libcamera/proxy/\n \n # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or\n@@ -861,7 +860,12 @@ EXCLUDE_SYMLINKS = NO\n # Note that the wildcards are matched against the file with absolute path, so to\n # exclude all test directories for example use the pattern */test/*\n \n-EXCLUDE_PATTERNS =\n+EXCLUDE_PATTERNS = @TOP_BUILDDIR@/include/libcamera/ipa/*_serializer.h \\\n+ @TOP_BUILDDIR@/include/libcamera/ipa/*_proxy.h \\\n+ @TOP_BUILDDIR@/include/libcamera/ipa/raspberrypi_*.h \\\n+ @TOP_BUILDDIR@/include/libcamera/ipa/vimc_*.h \\\n+ @TOP_BUILDDIR@/include/libcamera/ipa/rkisp1_*.h \\\n+ @TOP_BUILDDIR@/include/libcamera/ipa/ipu3_*.h \\\n \n # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names\n # (namespaces, classes, functions, etc.) that should be excluded from the\ndiff --git a/Documentation/meson.build b/Documentation/meson.build\nindex c8521574..9ecf4dfc 100644\n--- a/Documentation/meson.build\n+++ b/Documentation/meson.build\n@@ -24,6 +24,7 @@ if doxygen.found() and dot.found()\n doxyfile,\n libcamera_internal_headers,\n libcamera_ipa_headers,\n+ libcamera_ipa_interfaces,\n libcamera_public_headers,\n libcamera_sources,\n libipa_headers,\ndiff --git a/include/libcamera/ipa/core.mojom b/include/libcamera/ipa/core.mojom\nindex 6caaa63e..e49815d8 100644\n--- a/include/libcamera/ipa/core.mojom\n+++ b/include/libcamera/ipa/core.mojom\n@@ -94,88 +94,16 @@ module libcamera;\n \tuint32 maxFrameLength;\n };\n \n-/**\n- * \\struct IPABuffer\n- * \\brief Buffer information for the IPA interface\n- *\n- * The IPABuffer structure associates buffer memory with a unique ID. It is\n- * used to map buffers to the IPA with IPAInterface::mapBuffers(), after which\n- * buffers will be identified by their ID in the IPA interface.\n- */\n-\n-/**\n- * \\var IPABuffer::id\n- * \\brief The buffer unique ID\n- *\n- * Buffers mapped to the IPA are identified by numerical unique IDs. The IDs\n- * are chosen by the pipeline handler to fulfil the following constraints:\n- *\n- * - IDs shall be positive integers different than zero\n- * - IDs shall be unique among all mapped buffers\n- *\n- * When buffers are unmapped with IPAInterface::unmapBuffers() their IDs are\n- * freed and may be reused for new buffer mappings.\n- */\n-\n-/**\n- * \\var IPABuffer::planes\n- * \\brief The buffer planes description\n- *\n- * Stores the dmabuf handle and length for each plane of the buffer.\n- */\n-\n struct IPABuffer {\n \tuint32 id;\n \t[hasFd] array<FrameBuffer.Plane> planes;\n };\n \n-/**\n- * \\struct IPASettings\n- * \\brief IPA interface initialization settings\n- *\n- * The IPASettings structure stores data passed to the IPAInterface::init()\n- * function. The data contains settings that don't depend on a particular camera\n- * or pipeline configuration and are valid for the whole life time of the IPA\n- * interface.\n- */\n-\n-/**\n- * \\var IPASettings::configurationFile\n- * \\brief The name of the IPA configuration file\n- *\n- * This field may be an empty string if the IPA doesn't require a configuration\n- * file.\n- */\n-\n- /**\n- * \\var IPASettings::sensorModel\n- * \\brief The sensor model name\n- *\n- * Provides the sensor model name to the IPA.\n- */\n struct IPASettings {\n \tstring configurationFile;\n \tstring sensorModel;\n };\n \n-/**\n- * \\struct IPAStream\n- * \\brief Stream configuration for the IPA interface\n- *\n- * The IPAStream structure stores stream configuration parameters needed by the\n- * IPAInterface::configure() method. It mirrors the StreamConfiguration class\n- * that is not suitable for this purpose due to not being serializable.\n- */\n-\n-/**\n- * \\var IPAStream::pixelFormat\n- * \\brief The stream pixel format\n- */\n-\n-/**\n- * \\var IPAStream::size\n- * \\brief The stream size in pixels\n- */\n struct IPAStream {\n \tuint32 pixelFormat;\n \tSize size;\ndiff --git a/include/libcamera/ipa/ipu3.mojom b/include/libcamera/ipa/ipu3.mojom\nindex a717b1e6..9e3cd885 100644\n--- a/include/libcamera/ipa/ipu3.mojom\n+++ b/include/libcamera/ipa/ipu3.mojom\n@@ -1,5 +1,10 @@\n /* SPDX-License-Identifier: LGPL-2.1-or-later */\n \n+/*\n+ * \\todo Document the interface as src/libcamera/ipa/ipu3_ipa_interface.cpp\n+ * and remove the EXCLUDE_PATTERNS entry in Doxygen.in for its generation.\n+ */\n+\n module ipa.ipu3;\n \n import \"include/libcamera/ipa/core.mojom\";\ndiff --git a/include/libcamera/ipa/raspberrypi.mojom b/include/libcamera/ipa/raspberrypi.mojom\nindex 42321bee..770e3049 100644\n--- a/include/libcamera/ipa/raspberrypi.mojom\n+++ b/include/libcamera/ipa/raspberrypi.mojom\n@@ -1,5 +1,10 @@\n /* SPDX-License-Identifier: LGPL-2.1-or-later */\n \n+/*\n+ * \\todo Document the interface as src/libcamera/ipa/raspberrypi_ipa_interface.cpp\n+ * and remove the EXCLUDE_PATTERNS entry in Doxygen.in for its generation.\n+ */\n+\n module ipa.RPi;\n \n import \"include/libcamera/ipa/core.mojom\";\ndiff --git a/include/libcamera/ipa/rkisp1.mojom b/include/libcamera/ipa/rkisp1.mojom\nindex cca871a0..da6646df 100644\n--- a/include/libcamera/ipa/rkisp1.mojom\n+++ b/include/libcamera/ipa/rkisp1.mojom\n@@ -1,5 +1,10 @@\n /* SPDX-License-Identifier: LGPL-2.1-or-later */\n \n+/*\n+ * \\todo Document the interface as src/libcamera/ipa/rkisp1_ipa_interface.cpp\n+ * and remove the EXCLUDE_PATTERNS entry in Doxygen.in for its generation.\n+ */\n+\n module ipa.rkisp1;\n \n import \"include/libcamera/ipa/core.mojom\";\ndiff --git a/include/libcamera/ipa/vimc.mojom b/include/libcamera/ipa/vimc.mojom\nindex be4b85b8..9ffd93bb 100644\n--- a/include/libcamera/ipa/vimc.mojom\n+++ b/include/libcamera/ipa/vimc.mojom\n@@ -1,5 +1,10 @@\n /* SPDX-License-Identifier: LGPL-2.1-or-later */\n \n+/*\n+ * \\todo Document the interface as src/libcamera/ipa/vimc_ipa_interface.cpp\n+ * and remove the EXCLUDE_PATTERNS entry in Doxygen.in for its generation.\n+ */\n+\n module ipa.vimc;\n \n import \"include/libcamera/ipa/core.mojom\";\ndiff --git a/src/libcamera/ipa/core_ipa_interface.cpp b/src/libcamera/ipa/core_ipa_interface.cpp\nnew file mode 100644\nindex 00000000..fe1ecce6\n--- /dev/null\n+++ b/src/libcamera/ipa/core_ipa_interface.cpp\n@@ -0,0 +1,105 @@\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n+/*\n+ * Copyright (C) 2021, Google Inc.\n+ *\n+ * core_ipa_interface.cpp - Docs file for core.mojom generated header\n+ */\n+\n+namespace libcamera {\n+\n+/**\n+ * \\struct IPABuffer\n+ * \\brief Buffer information for the IPA interface\n+ *\n+ * The IPABuffer structure associates buffer memory with a unique ID. It is\n+ * used to map buffers to the IPA with IPAInterface::mapBuffers(), after which\n+ * buffers will be identified by their ID in the IPA interface.\n+ */\n+\n+/**\n+ * \\fn IPABuffer::IPABuffer(uint32_t id, const std::vector<FrameBuffer::Plane> &planes)\n+ * \\param[in] id\n+ * \\param[in] planes\n+ * \\sa id and planes\n+ */\n+\n+/**\n+ * \\var IPABuffer::id\n+ * \\brief The buffer unique ID\n+ *\n+ * Buffers mapped to the IPA are identified by numerical unique IDs. The IDs\n+ * are chosen by the pipeline handler to fulfil the following constraints:\n+ *\n+ * - IDs shall be positive integers different than zero\n+ * - IDs shall be unique among all mapped buffers\n+ *\n+ * When buffers are unmapped with IPAInterface::unmapBuffers() their IDs are\n+ * freed and may be reused for new buffer mappings.\n+ */\n+\n+/**\n+ * \\var IPABuffer::planes\n+ * \\brief The buffer planes description\n+ *\n+ * Stores the dmabuf handle and length for each plane of the buffer.\n+ */\n+\n+/**\n+ * \\struct IPASettings\n+ * \\brief IPA interface initialization settings\n+ *\n+ * The IPASettings structure stores data passed to the IPAInterface::init()\n+ * function. The data contains settings that don't depend on a particular camera\n+ * or pipeline configuration and are valid for the whole life time of the IPA\n+ * interface.\n+ */\n+\n+/**\n+ * \\fn IPASettings::IPASettings(const std::string &configurationFile, const std::string &sensorModel)\n+ * \\param[in] configurationFile\n+ * \\param[in] sensorModel\n+ * \\sa configurationFile and sensorModel\n+ */\n+\n+/**\n+ * \\var IPASettings::configurationFile\n+ * \\brief The name of the IPA configuration file\n+ *\n+ * This field may be an empty string if the IPA doesn't require a configuration\n+ * file.\n+ */\n+\n+/**\n+ * \\var IPASettings::sensorModel\n+ * \\brief The sensor model name\n+ *\n+ * Provides the sensor model name to the IPA.\n+ */\n+\n+/**\n+ * \\struct IPAStream\n+ * \\brief Stream configuration for the IPA interface\n+ *\n+ * The IPAStream structure stores stream configuration parameters needed by the\n+ * IPAInterface::configure() method. It mirrors the StreamConfiguration class\n+ * that is not suitable for this purpose due to not being serializable.\n+ */\n+\n+/**\n+ * \\fn IPAStream::IPAStream(uint32_t pixelFormat, const Size &size)\n+ * \\param[in] pixelFormat\n+ * \\param[in] size\n+ * \\sa pixelFormat and size\n+ */\n+\n+/**\n+ * \\var IPAStream::pixelFormat\n+ * \\brief The stream pixel format\n+ */\n+\n+/**\n+ * \\var IPAStream::size\n+ * \\brief The stream size in pixels\n+ */\n+\n+} /* namespace libcamera */\ndiff --git a/src/libcamera/ipa/meson.build b/src/libcamera/ipa/meson.build\nnew file mode 100644\nindex 00000000..0a16d197\n--- /dev/null\n+++ b/src/libcamera/ipa/meson.build\n@@ -0,0 +1,5 @@\n+# SPDX-License-Identifier: LGPL-2.1-or-later\n+\n+libcamera_ipa_interfaces = files([\n+ 'core_ipa_interface.cpp',\n+])\ndiff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\nindex 7bc59b84..61b5fe21 100644\n--- a/src/libcamera/meson.build\n+++ b/src/libcamera/meson.build\n@@ -67,6 +67,7 @@ includes = [\n libcamera_includes,\n ]\n \n+subdir('ipa')\n subdir('pipeline')\n subdir('proxy')\n \n", "prefixes": [ "libcamera-devel", "v3", "1/6" ] }