Show a patch.

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

{
    "id": 11639,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/11639/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/11639/",
    "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": "<20210322104242.31107-3-m.cichy@pengutronix.de>",
    "date": "2021-03-22T10:42:41",
    "name": "[libcamera-devel,2/3] pipeline: simple: Add FrameDurations to stream configuration",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "f084195a167c9c96b8dae4d26b488861a55cbc11",
    "submitter": {
        "id": 80,
        "url": "https://patchwork.libcamera.org/api/1.1/people/80/?format=api",
        "name": "Marian Cichy",
        "email": "m.cichy@pengutronix.de"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/11639/mbox/",
    "series": [
        {
            "id": 1812,
            "url": "https://patchwork.libcamera.org/api/1.1/series/1812/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1812",
            "date": "2021-03-22T10:42:39",
            "name": "Add frame duration to stream configuration",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/1812/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/11639/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/11639/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 BC905C32E1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 22 Mar 2021 10:43:14 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3DF2A68D72;\n\tMon, 22 Mar 2021 11:43:12 +0100 (CET)",
            "from metis.ext.pengutronix.de (metis.ext.pengutronix.de\n\t[IPv6:2001:67c:670:201:290:27ff:fe1d:cc33])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DE7B568D62\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 22 Mar 2021 11:43:08 +0100 (CET)",
            "from dude02.hi.pengutronix.de ([2001:67c:670:100:1d::28])\n\tby metis.ext.pengutronix.de with esmtps\n\t(TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)\n\t(envelope-from <mci@pengutronix.de>)\n\tid 1lOI1c-0008Cf-2q; Mon, 22 Mar 2021 11:43:08 +0100",
            "from mci by dude02.hi.pengutronix.de with local (Exim 4.92)\n\t(envelope-from <mci@pengutronix.de>)\n\tid 1lOI1b-00087Y-QO; Mon, 22 Mar 2021 11:43:07 +0100"
        ],
        "From": "Marian Cichy <m.cichy@pengutronix.de>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Mon, 22 Mar 2021 11:42:41 +0100",
        "Message-Id": "<20210322104242.31107-3-m.cichy@pengutronix.de>",
        "X-Mailer": "git-send-email 2.29.2",
        "In-Reply-To": "<20210322104242.31107-1-m.cichy@pengutronix.de>",
        "References": "<20210322104242.31107-1-m.cichy@pengutronix.de>",
        "MIME-Version": "1.0",
        "X-SA-Exim-Connect-IP": "2001:67c:670:100:1d::28",
        "X-SA-Exim-Mail-From": "mci@pengutronix.de",
        "X-SA-Exim-Scanned": "No (on metis.ext.pengutronix.de);\n\tSAEximRunCond expanded to false",
        "X-PTX-Original-Recipient": "libcamera-devel@lists.libcamera.org",
        "Subject": "[libcamera-devel] [PATCH 2/3] pipeline: simple: Add FrameDurations\n\tto stream configuration",
        "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": "graphics@pengutronix.de, Marian Cichy <m.cichy@pengutronix.de>",
        "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": "Add a instance of CameraSensorInfo to the simple pipeline and populate\nit with the sensorInfo from the sensor. With the informations from the\nsensor, compute the frame duration by using lineLength, minFrameLength\nand pixelRate and save it in the controlList of the stream.\n\nSigned-off-by: Marian Cichy <m.cichy@pengutronix.de>\n---\n src/libcamera/pipeline/simple/simple.cpp | 9 +++++++++\n 1 file changed, 9 insertions(+)",
    "diff": "diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp\nindex 24d940fc..2df83302 100644\n--- a/src/libcamera/pipeline/simple/simple.cpp\n+++ b/src/libcamera/pipeline/simple/simple.cpp\n@@ -22,6 +22,8 @@\n #include <linux/media-bus-format.h>\n \n #include <libcamera/camera.h>\n+#include <libcamera/controls.h>\n+#include <libcamera/control_ids.h>\n #include <libcamera/request.h>\n #include <libcamera/stream.h>\n \n@@ -176,6 +178,7 @@ public:\n \n \tstd::vector<Stream> streams_;\n \tstd::unique_ptr<CameraSensor> sensor_;\n+\tCameraSensorInfo sensorInfo_;\n \tstd::list<Entity> entities_;\n \tV4L2VideoDevice *video_;\n \n@@ -339,6 +342,8 @@ SimpleCameraData::SimpleCameraData(SimplePipelineHandler *pipe,\n \tret = sensor_->init();\n \tif (ret)\n \t\tsensor_.reset();\n+\n+\tsensor_->sensorInfo(&sensorInfo_);\n }\n \n int SimpleCameraData::init()\n@@ -679,6 +684,10 @@ CameraConfiguration *SimplePipelineHandler::generateConfiguration(Camera *camera\n \t\tStreamConfiguration cfg{ StreamFormats{ formats } };\n \t\tcfg.pixelFormat = formats.begin()->first;\n \t\tcfg.size = formats.begin()->second[0].max;\n+\t\tdouble frameDuration = (data->sensorInfo_.minFrameLength * data->sensorInfo_.lineLength) /\n+\t\t\t\t       (data->sensorInfo_.pixelRate / 1'000'000);\n+\t\tcfg.controls.set(controls::FrameDurations, { static_cast<int64_t>(frameDuration),\n+\t\t\t\t\t\t\t     static_cast<int64_t>(frameDuration) });\n \n \t\tconfig->addConfiguration(cfg);\n \t}\n",
    "prefixes": [
        "libcamera-devel",
        "2/3"
    ]
}