Show a patch.

GET /api/1.1/patches/42/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 42,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/42/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/42/",
    "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": "<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/1.1/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/1.1/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"
    ]
}