Show a patch.

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

{
    "id": 20978,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/20978/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/20978/",
    "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": "<20240820195016.16028-3-hdegoede@redhat.com>",
    "date": "2024-08-20T19:50:13",
    "name": "[2/5] pipeline_handler: Call releaseDevice() before unlocking media devices",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "b90610e11cf8d8c3d51b367b10df055bd0c6bc5e",
    "submitter": {
        "id": 102,
        "url": "https://patchwork.libcamera.org/api/1.1/people/102/?format=api",
        "name": "Hans de Goede",
        "email": "hdegoede@redhat.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/20978/mbox/",
    "series": [
        {
            "id": 4530,
            "url": "https://patchwork.libcamera.org/api/1.1/series/4530/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4530",
            "date": "2024-08-20T19:50:11",
            "name": "Fix uvcvideo pipelinehandler keeping /dev/video# open",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/4530/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/20978/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/20978/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 83A94C323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 20 Aug 2024 19:50:32 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1BCAE633D4;\n\tTue, 20 Aug 2024 21:50:32 +0200 (CEST)",
            "from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 80B8F633B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 20 Aug 2024 21:50:28 +0200 (CEST)",
            "from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com\n\t(ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63])\n\tby relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n\tcipher=TLS_AES_256_GCM_SHA384) id us-mta-591-fq5iPKk9Ojus9Iq5kvpe9w-1;\n\tTue, 20 Aug 2024 15:50:26 -0400",
            "from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com\n\t[10.30.177.12])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (2048 bits)\n\tserver-digest SHA256) (No client certificate requested)\n\tby mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS\n\tid 10A231955D4F for <libcamera-devel@lists.libcamera.org>;\n\tTue, 20 Aug 2024 19:50:25 +0000 (UTC)",
            "from x1.localdomain.com (unknown [10.39.192.41])\n\tby mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id 19B5319560AA; Tue, 20 Aug 2024 19:50:22 +0000 (UTC)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"L+7b2cyZ\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1724183427;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=zzoACSzC5ZhKcEGmCQkp5fYiwhW+Bg+dB+FPk8jWc1I=;\n\tb=L+7b2cyZN5LBacORhT3zqLdmEIKKoeUD2mnF1Mlt2U8oZBVLmSk39M64n3y/ODfflyq4Be\n\tl0b3y8Apy+C15aBQEgT71e6EIsOnTS7p5YH5cWq8WnEPlQgEPZ1Q0771Aqi5TCYF644XZs\n\tv3ND0VWEo4fQplyglxq7wwy4VQbLMjo=",
        "X-MC-Unique": "fq5iPKk9Ojus9Iq5kvpe9w-1",
        "From": "Hans de Goede <hdegoede@redhat.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Maxime Ripard <mripard@redhat.com>, Milan Zamazal <mzamazal@redhat.com>, \n\tHans de Goede <hdegoede@redhat.com>",
        "Subject": "[PATCH 2/5] pipeline_handler: Call releaseDevice() before unlocking\n\tmedia devices",
        "Date": "Tue, 20 Aug 2024 21:50:13 +0200",
        "Message-ID": "<20240820195016.16028-3-hdegoede@redhat.com>",
        "In-Reply-To": "<20240820195016.16028-1-hdegoede@redhat.com>",
        "References": "<20240820195016.16028-1-hdegoede@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 3.0 on 10.30.177.12",
        "X-Mimecast-Spam-Score": "0",
        "X-Mimecast-Originator": "redhat.com",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain; charset=\"US-ASCII\"; x-default=true",
        "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>",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "It is better / more logical to call releaseDevice() before unlocking\nthe devices. ATM the only pipeline handler implementing releaseDevice()\nis the rpi pipeline handler which releases buffers from its releaseDevice()\nimplementation.\n\nReleasing buffers before unlocking the media devices is ok to do\nand arguably it is better to release the buffers before unlocking.\n\nSigned-off-by: Hans de Goede <hdegoede@redhat.com>\n---\n src/libcamera/pipeline_handler.cpp | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp\nindex a20cd27d..1fc22d6a 100644\n--- a/src/libcamera/pipeline_handler.cpp\n+++ b/src/libcamera/pipeline_handler.cpp\n@@ -205,11 +205,11 @@ void PipelineHandler::release(Camera *camera)\n \n \tASSERT(useCount_);\n \n+\treleaseDevice(camera);\n+\n \tif (useCount_ == 1)\n \t\tunlockMediaDevices();\n \n-\treleaseDevice(camera);\n-\n \t--useCount_;\n }\n \n",
    "prefixes": [
        "2/5"
    ]
}