Patch Detail
Show a patch.
GET /api/patches/42/?format=api
{ "id": 42, "url": "https://patchwork.libcamera.org/api/patches/42/?format=api", "web_url": "https://patchwork.libcamera.org/patch/42/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/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": "<1544634282-19854-1-git-send-email-jacopo@jmondi.org>", "date": "2018-12-12T17:04:42", "name": "[libcamera-devel] libcamera: Add pipeline manager file hierarchy", "commit_ref": null, "pull_url": null, "state": "rejected", "archived": false, "hash": "be7baaa3c5dab25e33ed761d47eb50582ee899fc", "submitter": { "id": 3, "url": "https://patchwork.libcamera.org/api/people/3/?format=api", "name": "Jacopo Mondi", "email": "jacopo@jmondi.org" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/42/mbox/", "series": [ { "id": 20, "url": "https://patchwork.libcamera.org/api/series/20/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=20", "date": "2018-12-12T17:04:42", "name": "[libcamera-devel] libcamera: Add pipeline manager file hierarchy", "version": 1, "mbox": "https://patchwork.libcamera.org/series/20/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/42/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/42/checks/", "tags": {}, "headers": { "Return-Path": "<jacopo@jmondi.org>", "Received": [ "from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net\n\t[217.70.183.193])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 34CAE60A71\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 12 Dec 2018 18:04:50 +0100 (CET)", "from w540.lan (2-224-242-101.ip172.fastwebnet.it [2.224.242.101])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay1-d.mail.gandi.net (Postfix) with ESMTPSA id A255E24000A;\n\tWed, 12 Dec 2018 17:04:49 +0000 (UTC)" ], "X-Originating-IP": "2.224.242.101", "From": "Jacopo Mondi <jacopo@jmondi.org>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Wed, 12 Dec 2018 18:04:42 +0100", "Message-Id": "<1544634282-19854-1-git-send-email-jacopo@jmondi.org>", "X-Mailer": "git-send-email 2.7.4", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH] libcamera: Add pipeline manager file\n\thierarchy", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.23", "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": "Wed, 12 Dec 2018 17:04:50 -0000" }, "content": "Add a pure virtual base class to define the PipelineManager interface\nand an empty IPU3 implementation of the hierarchy.\n\nThis commit mostly validates the file hierarchy, build system and\ndoxygen documentation.\n\nSigned-off-by: Jacopo Mondi <jacopo@jmondi.org>\n\n---\nPatch based on current master + Laurent's Doxygen series + mine std=c++11 patch\n\nThe resulting file hierarchy in the 'src' dir is the following one:\n\n$ tree src/\nsrc/\n├── libcamera\n│ ├── hw\n│ │ ├── ipu3\n│ │ │ ├── ipu3_pipeline_manager.cpp\n│ │ │ └── meson.build\n│ │ └── meson.build\n│ ├── include\n│ │ ├── hw\n│ │ │ └── ipu3\n│ │ │ └── ipu3_pipeline_manager.h\n│ │ ├── log.h\n│ │ ├── pipeline_manager.h\n│ │ └── utils.h\n│ ├── log.cpp\n│ ├── main.cpp\n│ └── meson.build\n└── meson.build\n\n6 directories, 11 files\n---\n src/libcamera/hw/ipu3/ipu3_pipeline_manager.cpp | 36 ++++++++++++++++++++++\n src/libcamera/hw/ipu3/meson.build | 3 ++\n src/libcamera/hw/meson.build | 1 +\n .../include/hw/ipu3/ipu3_pipeline_manager.h | 22 +++++++++++++\n src/libcamera/include/pipeline_manager.h | 36 ++++++++++++++++++++++\n src/libcamera/main.cpp | 7 +++++\n src/libcamera/meson.build | 2 ++\n 7 files changed, 107 insertions(+)\n create mode 100644 src/libcamera/hw/ipu3/ipu3_pipeline_manager.cpp\n create mode 100644 src/libcamera/hw/ipu3/meson.build\n create mode 100644 src/libcamera/hw/meson.build\n create mode 100644 src/libcamera/include/hw/ipu3/ipu3_pipeline_manager.h\n create mode 100644 src/libcamera/include/pipeline_manager.h\n\n--\n2.7.4", "diff": "diff --git a/src/libcamera/hw/ipu3/ipu3_pipeline_manager.cpp b/src/libcamera/hw/ipu3/ipu3_pipeline_manager.cpp\nnew file mode 100644\nindex 0000000..4593fb3\n--- /dev/null\n+++ b/src/libcamera/hw/ipu3/ipu3_pipeline_manager.cpp\n@@ -0,0 +1,36 @@\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n+/*\n+ * Copyright (C) 2018, Google Inc.\n+ *\n+ * ipu3_pipeline_manager.cpp - Intel IPU3 pipeline manager\n+ */\n+\n+#include \"hw/ipu3/ipu3_pipeline_manager.h\"\n+\n+/**\n+ * \\file ipu3_pipeline_manager.h\n+ * \\brief Intel IPU3 pipeline manager\n+ */\n+\n+namespace libcamera {\n+\n+/**\n+ * \\class IPU3PipelineManager\n+ * \\brief Intel IPU3 pipeline manager\n+ */\n+\n+/**\n+ * \\fn int IPU3PipelineManager::init()\n+ * \\brief Initialize the IPU3 pipeline manager\n+ *\n+ * The Intel IPU3 ISP exposes two media controllers, one for the\n+ * cio2 interface, and one for the imgU unit.\n+ *\n+ * Open and enumerate entities from both the media graphs.\n+ */\n+int IPU3PipelineManager::init()\n+{\n+\treturn 0;\n+}\n+\n+} /* namespace libcamera */\ndiff --git a/src/libcamera/hw/ipu3/meson.build b/src/libcamera/hw/ipu3/meson.build\nnew file mode 100644\nindex 0000000..e5a74a9\n--- /dev/null\n+++ b/src/libcamera/hw/ipu3/meson.build\n@@ -0,0 +1,3 @@\n+libcamera_sources += files([\n+ 'ipu3_pipeline_manager.cpp',\n+])\ndiff --git a/src/libcamera/hw/meson.build b/src/libcamera/hw/meson.build\nnew file mode 100644\nindex 0000000..f434c79\n--- /dev/null\n+++ b/src/libcamera/hw/meson.build\n@@ -0,0 +1 @@\n+subdir('ipu3')\ndiff --git a/src/libcamera/include/hw/ipu3/ipu3_pipeline_manager.h b/src/libcamera/include/hw/ipu3/ipu3_pipeline_manager.h\nnew file mode 100644\nindex 0000000..74d0a11\n--- /dev/null\n+++ b/src/libcamera/include/hw/ipu3/ipu3_pipeline_manager.h\n@@ -0,0 +1,22 @@\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n+/*\n+ * Copyright (C) 2018, Google Inc.\n+ *\n+ * ipu3_pipeline_manager.h - Intel IPU3 pipeline manager\n+ */\n+#ifndef __LIBCAMERA_HW_IPU3_PIPELINE_MANAGER_H__\n+#define __LIBCAMERA_HW_IPU3_PIPELINE_MANAGER_H__\n+\n+#include \"pipeline_manager.h\"\n+\n+namespace libcamera {\n+\n+class IPU3PipelineManager : public PipelineManager\n+{\n+public:\n+\t~IPU3PipelineManager() { }\n+\tint init(void);\n+};\n+\n+} /* namespace libcamera */\n+#endif /* __LIBCAMERA_HW_IPU3_PIPELINE_MANAGER_H__ */\ndiff --git a/src/libcamera/include/pipeline_manager.h b/src/libcamera/include/pipeline_manager.h\nnew file mode 100644\nindex 0000000..1722d77\n--- /dev/null\n+++ b/src/libcamera/include/pipeline_manager.h\n@@ -0,0 +1,36 @@\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n+/*\n+ * Copyright (C) 2018, Google Inc.\n+ *\n+ * pipeline_manager.h - Media pipeline managers interface definition\n+ */\n+#ifndef __LIBCAMERA_PIPELINE_MANAGER_H__\n+#define __LIBCAMERA_PIPELINE_MANAGER_H__\n+\n+/**\n+ * \\file pipeline_manager.h\n+ */\n+\n+namespace libcamera {\n+\n+/**\n+ * \\class PipelineManager\n+ * \\brief Pure virtual pipeline manager base class\n+ *\n+ * The PipelineManager abstract class defines the pipeline manager\n+ * interface that HW-specific implementations have to realize.\n+ */\n+class PipelineManager\n+{\n+public:\n+\tvirtual ~PipelineManager() { };\n+\n+\t/**\n+\t * \\fn int PipelineManager::init()\n+\t * \\brief Initialize the pipeline manager\n+\t */\n+\tvirtual int init(void) = 0;\n+};\n+\n+} /* namespace libcamera */\n+#endif /* __LIBCAMERA_PIPELINE_MANAGER_H__ */\ndiff --git a/src/libcamera/main.cpp b/src/libcamera/main.cpp\nindex 7ed37df..ef327b0 100644\n--- a/src/libcamera/main.cpp\n+++ b/src/libcamera/main.cpp\n@@ -8,11 +8,18 @@\n #include <libcamera/libcamera.h>\n\n #include \"log.h\"\n+#include \"pipeline_manager.h\"\n+#include \"hw/ipu3/ipu3_pipeline_manager.h\"\n\n namespace libcamera {\n\n void libcamera::init_lib(void)\n {\n+\tPipelineManager *pipeline = new IPU3PipelineManager;\n+\tint ret = pipeline->init();\n+\tif (ret)\n+\t\tLOG(Error) << \"Failed to initialize pipeline manager: \" << ret;\n+\n \tLOG(Info) << \"Lib Camera Init\";\n }\n\ndiff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\nindex 0c44b5a..10a71a6 100644\n--- a/src/libcamera/meson.build\n+++ b/src/libcamera/meson.build\n@@ -13,6 +13,8 @@ includes = [\n include_directories('include'),\n ]\n\n+subdir('hw')\n+\n libcamera = shared_library('camera',\n libcamera_sources,\n install : true,\n", "prefixes": [ "libcamera-devel" ] }