Show a patch.

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

{
    "id": 17746,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/17746/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/17746/",
    "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": "<20221102135614.657444-2-umang.jain@ideasonboard.com>",
    "date": "2022-11-02T13:56:13",
    "name": "[libcamera-devel,v6,1/2] gstreamer: Do not expose the caps before configuring the camera",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "d78143dd95fdd32b1dd3e4c27b716ad6df5c4303",
    "submitter": {
        "id": 86,
        "url": "https://patchwork.libcamera.org/api/1.1/people/86/?format=api",
        "name": "Umang Jain",
        "email": "umang.jain@ideasonboard.com"
    },
    "delegate": {
        "id": 12,
        "url": "https://patchwork.libcamera.org/api/1.1/users/12/?format=api",
        "username": "uajain",
        "first_name": "Umang",
        "last_name": "Jain",
        "email": "umang.jain@ideasonboard.com"
    },
    "mbox": "https://patchwork.libcamera.org/patch/17746/mbox/",
    "series": [
        {
            "id": 3593,
            "url": "https://patchwork.libcamera.org/api/1.1/series/3593/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=3593",
            "date": "2022-11-02T13:56:12",
            "name": "Provide framerate support for libcamerasrc",
            "version": 6,
            "mbox": "https://patchwork.libcamera.org/series/3593/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/17746/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/17746/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 E7155C3285\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  2 Nov 2022 13:56:28 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 51B8463075;\n\tWed,  2 Nov 2022 14:56:28 +0100 (CET)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 06E7F63075\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  2 Nov 2022 14:56:27 +0100 (CET)",
            "from umang.jainideasonboard.com (unknown [103.251.226.107])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 488ED1226;\n\tWed,  2 Nov 2022 14:56:24 +0100 (CET)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1667397388;\n\tbh=5J5VroM+40BTYAyivO//Zbssg3S73q4p/fVwcAjZERY=;\n\th=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=SlNIPIbW8lc/jOfMtMv4j1Yrt1vXB5E5XTxk2uSDmRQklYX2sx3DkbKkDp6gpLeGZ\n\t01KYPAoVw9W/nrfFYf3+N9CfzySMWMyG2oedMvtbwnqeXmMR4eRoxtcex480RHAdDr\n\tH37NiklstmsWZLUl2kxpfV98ZOXwoY0ItB1v90aKxDteq/+Hw0SK8zxNW2UJ637eME\n\tv4JldW0e80/eFalh4jiddilD268qP+VM9PQnxpu2i3Sk4aHlGsJ9QP4826dGq735A/\n\t+0VIXSE0kLbIz6VOn1yPIBPkDGc/e0Ij9EyKFY7lkFcGykb2Sz0w6aeE9OsSw5Y6nF\n\tdh36v2bAOD70Q==",
            "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1667397386;\n\tbh=5J5VroM+40BTYAyivO//Zbssg3S73q4p/fVwcAjZERY=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=UJk5+QOcoZuQSxaMwIH9s9a+wXGnkKAnqcja/q8A9+oBJHLf7uAewqQ3U4Wi5XnPM\n\tAOYIcGtr9eK1chD66le7XBkqtKGg0FeMzglGEkQ0eGGDPuZwous3mk+c4F81iXbICX\n\teQD7ZJ1VX+WN8H/RbW30K38nL6dh3ySAdnUonvq8="
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"UJk5+QOc\"; dkim-atps=neutral",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Wed,  2 Nov 2022 19:26:13 +0530",
        "Message-Id": "<20221102135614.657444-2-umang.jain@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.37.3",
        "In-Reply-To": "<20221102135614.657444-1-umang.jain@ideasonboard.com>",
        "References": "<20221102135614.657444-1-umang.jain@ideasonboard.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v6 1/2] gstreamer: Do not expose the caps\n\tbefore configuring the camera",
        "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>",
        "From": "Umang Jain via libcamera-devel <libcamera-devel@lists.libcamera.org>",
        "Reply-To": "Umang Jain <umang.jain@ideasonboard.com>",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "From: Rishikesh Donadkar <rishikeshdonadkar@gmail.com>\n\nConfigure the camera before exposing the caps valid controls values\n(and bounds) are available. These control values might be of interest\nto be exposed on the capabilites, which otherwise, would not be\navailable if the camera is configured after the update caps event.\n\nFor instance, the FrameDurationLimits are computed by RPi's IPA in\nits configure(). Hence, we need to Camera::configure() to happen in\norder to know the FrameDurationLimits, that can be exposed in the caps.\nThis ties into the framerate support for libcamerasrc which will happen\nin a follow-up commit.\n\nSigned-off-by: Rishikesh Donadkar <rishikeshdonadkar@gmail.com>\nSigned-off-by: Umang Jain <umang.jain@ideasonboard.com>\nTested-by: Umang Jain <umang.jain@ideasonboard.com>\nReviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n---\n src/gstreamer/gstlibcamerasrc.cpp | 19 ++++++++++---------\n 1 file changed, 10 insertions(+), 9 deletions(-)",
    "diff": "diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp\nindex 16d70fea..60032236 100644\n--- a/src/gstreamer/gstlibcamerasrc.cpp\n+++ b/src/gstreamer/gstlibcamerasrc.cpp\n@@ -515,6 +515,16 @@ gst_libcamera_src_task_enter(GstTask *task, [[maybe_unused]] GThread *thread,\n \t\tgoto done;\n \t}\n \n+\tret = state->cam_->configure(state->config_.get());\n+\tif (ret) {\n+\t\tGST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,\n+\t\t\t\t  (\"Failed to configure camera: %s\", g_strerror(-ret)),\n+\t\t\t\t  (\"Camera::configure() failed with error code %i\", ret));\n+\t\tgst_task_stop(task);\n+\t\tflow_ret = GST_FLOW_NOT_NEGOTIATED;\n+\t\tgoto done;\n+\t}\n+\n \t/*\n \t * Regardless if it has been modified, create clean caps and push the\n \t * caps event. Downstream will decide if the caps are acceptable.\n@@ -535,15 +545,6 @@ gst_libcamera_src_task_enter(GstTask *task, [[maybe_unused]] GThread *thread,\n \t\tgst_pad_push_event(srcpad, gst_event_new_segment(&segment));\n \t}\n \n-\tret = state->cam_->configure(state->config_.get());\n-\tif (ret) {\n-\t\tGST_ELEMENT_ERROR(self, RESOURCE, SETTINGS,\n-\t\t\t\t  (\"Failed to configure camera: %s\", g_strerror(-ret)),\n-\t\t\t\t  (\"Camera::configure() failed with error code %i\", ret));\n-\t\tgst_task_stop(task);\n-\t\treturn;\n-\t}\n-\n \tself->allocator = gst_libcamera_allocator_new(state->cam_, state->config_.get());\n \tif (!self->allocator) {\n \t\tGST_ELEMENT_ERROR(self, RESOURCE, NO_SPACE_LEFT,\n",
    "prefixes": [
        "libcamera-devel",
        "v6",
        "1/2"
    ]
}