Show a patch.

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

{
    "id": 24921,
    "url": "https://patchwork.libcamera.org/api/patches/24921/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/24921/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/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": "<20251030165816.1095180-18-barnabas.pocze@ideasonboard.com>",
    "date": "2025-10-30T16:58:11",
    "name": "[RFC,v3,17/22] guides: pipeline_handler: Document PipelineHandler::metadataAvailable",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "5323f569a1ef2e34c2b75970630b3a17235f3936",
    "submitter": {
        "id": 216,
        "url": "https://patchwork.libcamera.org/api/people/216/?format=api",
        "name": "Barnabás Pőcze",
        "email": "barnabas.pocze@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/24921/mbox/",
    "series": [
        {
            "id": 5545,
            "url": "https://patchwork.libcamera.org/api/series/5545/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5545",
            "date": "2025-10-30T16:57:54",
            "name": "libcamera: Add `MetadataList`",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/5545/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/24921/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/24921/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 77DEBC3335\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 30 Oct 2025 16:58:49 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EEC496098A;\n\tThu, 30 Oct 2025 17:58:48 +0100 (CET)",
            "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 D629460971\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 30 Oct 2025 17:58:25 +0100 (CET)",
            "from pb-laptop.local (185.221.140.239.nat.pool.zt.hu\n\t[185.221.140.239])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id BB2C51FDD;\n\tThu, 30 Oct 2025 17:56:35 +0100 (CET)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Fsw6TiOz\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1761843395;\n\tbh=fNow8kYY66Y88AJgtTvr3Ua//1UnW2NR2OS57QMmAWc=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=Fsw6TiOzk8G8VzmEaqKQxXz02EHypUHlYveNBsXoqPzowW6AZJtrjSC9WFlUoTJr6\n\tf6UBkJSEPYBE7x7rdXgEIuvAaFxB0tp6p0sdlNV0LrdFVkaq2TT7j+zscSHj39dh4t\n\t/yopVpCe96B9swoiciiZV1pzWkdZukiGQTX45fJc=",
        "From": "=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Jacopo Mondi <jacopo.mondi@ideasonboard.com>",
        "Subject": "[RFC PATCH v3 17/22] guides: pipeline_handler: Document\n\tPipelineHandler::metadataAvailable",
        "Date": "Thu, 30 Oct 2025 17:58:11 +0100",
        "Message-ID": "<20251030165816.1095180-18-barnabas.pocze@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.51.1",
        "In-Reply-To": "<20251030165816.1095180-1-barnabas.pocze@ideasonboard.com>",
        "References": "<20251030165816.1095180-1-barnabas.pocze@ideasonboard.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "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": "From: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n\nDocument the new available helpers to accumulate metadata results in\nRequest::metadata and notify applications about metadata availability.\n\nSigned-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\nSigned-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n---\nOriginal: https://patchwork.libcamera.org/patch/22230/\n\nchanges in v3:\n  * reword some parts\n---\n Documentation/guides/pipeline-handler.rst | 21 +++++++++++++++------\n 1 file changed, 15 insertions(+), 6 deletions(-)",
    "diff": "diff --git a/Documentation/guides/pipeline-handler.rst b/Documentation/guides/pipeline-handler.rst\nindex 85d9cc8700..9ec0da01b9 100644\n--- a/Documentation/guides/pipeline-handler.rst\n+++ b/Documentation/guides/pipeline-handler.rst\n@@ -1358,18 +1358,27 @@ and Slot <Signal>` classes documentation.\n .. _Qt Signals and Slots: https://doc.qt.io/qt-6/signalsandslots.html\n \n In order to notify applications about the availability of new frames and data,\n-the ``Camera`` device exposes two ``Signals`` to which applications can connect\n-to be notified of frame completion events. The ``bufferComplete`` signal serves\n-to report to applications the completion event of a single ``Stream`` part of a\n+the ``Camera`` device exposes three ``Signals`` to which applications can\n+connect to be notified of frame completion and metadata availability events.\n+\n+The ``metadataAvailable`` signal serves to notify about the availability of\n+metadata for a particular ``Request``. The ``bufferComplete`` signal serves to\n+report to applications the completion event of a single ``Stream`` part of a\n ``Request``, while the ``requestComplete`` signal notifies the completion of all\n the ``Streams`` and data submitted as part of a request. This mechanism allows\n implementation of partial request completion, which allows an application to\n inspect completed buffers associated with the single streams without waiting for\n all of them to be ready.\n \n-The ``bufferComplete`` and ``requestComplete`` signals are emitted by the\n-``Camera`` device upon notifications received from the pipeline handler, which\n-tracks the buffers and request completion status.\n+The ``metadataAvailable``, ``bufferComplete`` and ``requestComplete`` signals\n+are emitted by the ``Camera`` device upon notifications received from the\n+pipeline handler, which tracks the metadata, buffers and request completion\n+status.\n+\n+Metadata availability is signalled by the pipeline handlers by calling the\n+PipelineHandler base class ``metadataAvailable`` function. This function\n+notifies applications about metadata availability and accumulates metadata\n+results in the ``Request::metadata()`` list.\n \n The single buffer completion notification is implemented by pipeline handlers\n by :doxy-int:`connecting <Signal::connect>` the ``bufferReady`` signal of the\n",
    "prefixes": [
        "RFC",
        "v3",
        "17/22"
    ]
}