Patch Detail
Show a patch.
GET /api/1.1/patches/8762/?format=api
{ "id": 8762, "url": "https://patchwork.libcamera.org/api/1.1/patches/8762/?format=api", "web_url": "https://patchwork.libcamera.org/patch/8762/", "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": "<20200713132451.2944673-2-kieran.bingham@ideasonboard.com>", "date": "2020-07-13T13:24:43", "name": "[libcamera-devel,1/9] libcamera: pipeline: Introduce skeleton Vivid Pipeline", "commit_ref": null, "pull_url": null, "state": "awaiting-upstream", "archived": false, "hash": "0a38a808d11bcba8a5977e8cbff7fe9e38cf19a7", "submitter": { "id": 4, "url": "https://patchwork.libcamera.org/api/1.1/people/4/?format=api", "name": "Kieran Bingham", "email": "kieran.bingham@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/8762/mbox/", "series": [ { "id": 1102, "url": "https://patchwork.libcamera.org/api/1.1/series/1102/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1102", "date": "2020-07-13T13:24:42", "name": "Introduce a new PipelineHandler", "version": 1, "mbox": "https://patchwork.libcamera.org/series/1102/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/8762/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/8762/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 31EE2BD792\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 13 Jul 2020 13:24:59 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D1FEF6073D;\n\tMon, 13 Jul 2020 15:24:58 +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 03B08605A9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 13 Jul 2020 15:24:57 +0200 (CEST)", "from Q.local (cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net\n\t[86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 303F457B;\n\tMon, 13 Jul 2020 15:24:55 +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=\"fdyEkr6m\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1594646695;\n\tbh=kAsaX01WVyuH8g33teb8kEK+o9iSkdLjMdxHUcZs3b4=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=fdyEkr6m0k3qPzkhSD0QjhqpbF0FWsrMLHr9cm4r4z7lMzjKqGUFsRMWE8dyaMwhx\n\tGZ9Q1MnJRmJgs+VA461MGSjISAlx/XZ1FgF+ObadRxFsvAZQbEwAWw379ZivwlShes\n\tGdokj/aJC9mDjAUfS+3z2E5wjq2es1e0d6Ki4tKg=", "From": "Kieran Bingham <kieran.bingham@ideasonboard.com>", "To": "libcamera devel <libcamera-devel@lists.libcamera.org>", "Date": "Mon, 13 Jul 2020 14:24:43 +0100", "Message-Id": "<20200713132451.2944673-2-kieran.bingham@ideasonboard.com>", "X-Mailer": "git-send-email 2.25.1", "In-Reply-To": "<20200713132451.2944673-1-kieran.bingham@ideasonboard.com>", "References": "<20200713132451.2944673-1-kieran.bingham@ideasonboard.com>", "MIME-Version": "1.0", "Subject": "[libcamera-devel] [PATCH 1/9] libcamera: pipeline: Introduce\n\tskeleton Vivid Pipeline", "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": "Chris Ward <chris@gregariousmammal.com>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Provide all of the skeleton stubs to succesfully compile\nand register a new Pipeline Handler for the Vivid test device.\n\nMeson must be reconfigured to ensure that this pipeline handler is\nincluded in the selected pipelines configuration, and after building, we\ncan test that the PipelineHandler is successfully registered by listing\nthe cameras on the system with LIBCAMERA_LOG_LEVELS enabled:\n\n\"\"\"\nLIBCAMERA_LOG_LEVELS=Pipeline:0 ./build-vivid/src/cam/cam -l\n[230:30:03.624102821] [2867886] DEBUG Pipeline pipeline_handler.cpp:680 Registered pipeline handler \"PipelineHandlerVivid\"\nAvailable cameras:\n\"\"\"\n\nSigned-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\n meson_options.txt | 2 +-\n src/libcamera/pipeline/vivid/meson.build | 5 ++\n src/libcamera/pipeline/vivid/vivid.cpp | 78 ++++++++++++++++++++++++\n 3 files changed, 84 insertions(+), 1 deletion(-)\n create mode 100644 src/libcamera/pipeline/vivid/meson.build\n create mode 100644 src/libcamera/pipeline/vivid/vivid.cpp", "diff": "diff --git a/meson_options.txt b/meson_options.txt\nindex e9e815fde366..ea38f1553240 100644\n--- a/meson_options.txt\n+++ b/meson_options.txt\n@@ -16,7 +16,7 @@ option('gstreamer',\n \n option('pipelines',\n type : 'array',\n- choices : ['ipu3', 'raspberrypi', 'rkisp1', 'simple', 'uvcvideo', 'vimc'],\n+ choices : ['ipu3', 'raspberrypi', 'rkisp1', 'simple', 'uvcvideo', 'vimc', 'vivid'],\n description : 'Select which pipeline handlers to include')\n \n option('qcam',\ndiff --git a/src/libcamera/pipeline/vivid/meson.build b/src/libcamera/pipeline/vivid/meson.build\nnew file mode 100644\nindex 000000000000..086bb825387c\n--- /dev/null\n+++ b/src/libcamera/pipeline/vivid/meson.build\n@@ -0,0 +1,5 @@\n+# SPDX-License-Identifier: CC0-1.0\n+\n+libcamera_sources += files([\n+ 'vivid.cpp',\n+])\ndiff --git a/src/libcamera/pipeline/vivid/vivid.cpp b/src/libcamera/pipeline/vivid/vivid.cpp\nnew file mode 100644\nindex 000000000000..4418f616fe84\n--- /dev/null\n+++ b/src/libcamera/pipeline/vivid/vivid.cpp\n@@ -0,0 +1,78 @@\n+/* SPDX-License-Identifier: LGPL-2.1-or-later */\n+/*\n+ * Copyright (C) 2020, Google Inc.\n+ *\n+ * vivid.cpp - Pipeline handler for the vivid capture device\n+ */\n+\n+#include \"libcamera/internal/log.h\"\n+#include \"libcamera/internal/pipeline_handler.h\"\n+\n+namespace libcamera {\n+\n+LOG_DEFINE_CATEGORY(VIVID)\n+\n+class PipelineHandlerVivid : public PipelineHandler\n+{\n+public:\n+\tPipelineHandlerVivid(CameraManager *manager);\n+\n+\tCameraConfiguration *generateConfiguration(Camera *camera,\n+\t\t\t\t\t\t const StreamRoles &roles) override;\n+\tint configure(Camera *camera, CameraConfiguration *config) override;\n+\n+\tint exportFrameBuffers(Camera *camera, Stream *stream,\n+\t\t\t std::vector<std::unique_ptr<FrameBuffer>> *buffers) override;\n+\n+\tint start(Camera *camera) override;\n+\tvoid stop(Camera *camera) override;\n+\n+\tint queueRequestDevice(Camera *camera, Request *request) override;\n+\n+\tbool match(DeviceEnumerator *enumerator) override;\n+};\n+\n+PipelineHandlerVivid::PipelineHandlerVivid(CameraManager *manager)\n+\t: PipelineHandler(manager)\n+{\n+}\n+\n+CameraConfiguration *PipelineHandlerVivid::generateConfiguration(Camera *camera,\n+\t\t\t\t\t\t\t\t const StreamRoles &roles)\n+{\n+\treturn nullptr;\n+}\n+\n+int PipelineHandlerVivid::configure(Camera *camera, CameraConfiguration *config)\n+{\n+\treturn -1;\n+}\n+\n+int PipelineHandlerVivid::exportFrameBuffers(Camera *camera, Stream *stream,\n+\t\t\t\t\t std::vector<std::unique_ptr<FrameBuffer>> *buffers)\n+{\n+\treturn -1;\n+}\n+\n+int PipelineHandlerVivid::start(Camera *camera)\n+{\n+\treturn -1;\n+}\n+\n+void PipelineHandlerVivid::stop(Camera *camera)\n+{\n+}\n+\n+int PipelineHandlerVivid::queueRequestDevice(Camera *camera, Request *request)\n+{\n+\treturn -1;\n+}\n+\n+bool PipelineHandlerVivid::match(DeviceEnumerator *enumerator)\n+{\n+\treturn false;\n+}\n+\n+REGISTER_PIPELINE_HANDLER(PipelineHandlerVivid);\n+\n+} /* namespace libcamera */\n", "prefixes": [ "libcamera-devel", "1/9" ] }