Show a patch.

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

{
    "id": 23899,
    "url": "https://patchwork.libcamera.org/api/patches/23899/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/23899/",
    "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": "<20250722105627.11961-4-jaslo@ziska.de>",
    "date": "2025-07-22T10:39:30",
    "name": "[v2,3/3] gstreamer: Enable bayer formats with 10/12/14/16 bits",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "67a8c9da635d1d0efe5b9aca961a98277b48bf6a",
    "submitter": {
        "id": 173,
        "url": "https://patchwork.libcamera.org/api/people/173/?format=api",
        "name": "Jaslo Ziska",
        "email": "jaslo@ziska.de"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/23899/mbox/",
    "series": [
        {
            "id": 5311,
            "url": "https://patchwork.libcamera.org/api/series/5311/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5311",
            "date": "2025-07-22T10:39:27",
            "name": "gstreamer: Miscellaneous fixes",
            "version": 2,
            "mbox": "https://patchwork.libcamera.org/series/5311/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/23899/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/23899/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 72BBCC3323\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 22 Jul 2025 10:57:22 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0D34A6903B;\n\tTue, 22 Jul 2025 12:57:22 +0200 (CEST)",
            "from mo4-p00-ob.smtp.rzone.de (mo4-p00-ob.smtp.rzone.de\n\t[81.169.146.160])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0422A69033\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 22 Jul 2025 12:57:18 +0200 (CEST)",
            "from archlinux.fritz.box by smtp.strato.de (RZmta 52.1.2 AUTH)\n\twith ESMTPSA id z685ee16MAvIHga\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits))\n\t(Client did not present a certificate);\n\tTue, 22 Jul 2025 12:57:18 +0200 (CEST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=ziska.de header.i=@ziska.de header.b=\"bFKm1bWp\";\n\tdkim=permerror (0-bit key) header.d=ziska.de header.i=@ziska.de\n\theader.b=\"lXf7v6qz\"; dkim-atps=neutral",
        "ARC-Seal": "i=1; a=rsa-sha256; t=1753181838; cv=none;\n\td=strato.com; s=strato-dkim-0002;\n\tb=ROpUsGzxtAa7aM6xl8Si+kPyM+T6U/1JD7iZIp115it96V9deNO/VMY/ETXlD/HKa1\n\tM76k4ep8LeWbrlljW+lFkAH6WnY2qSdDBHO8ihe+kT+Y0JduFaFFehAG7NDwwNzEB8/Z\n\trT/TthUG2pUVRl/Ouhiw6oZkETFtmJhuDTsuM14ONoDj6inL9bvJV4Smvkrh4iwaXfG2\n\tX6VouELMdvPa/LFPLhKt8cXfnxjhBnY5PVHKfoL0Ab4b/iE99CmhEfCzDe5HETQOnizv\n\t84zjedXzFZBD+6plwlHJwO73uCV9uqFTg3iKh4t3H+g21WI+t1CebZmpuBahI/Beg/uB\n\tSG9g==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; t=1753181838;\n\ts=strato-dkim-0002; d=strato.com;\n\th=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date:\n\tFrom:Subject:Sender;\n\tbh=0wZrZxo49g3Y3DJJFWbGIozuPMWYiuqd2fxjR2eA2hA=;\n\tb=agLuvXDZT3Q4GeY4P+CGe+3EnKye8NiimFsNJczJooyn15ZPdMpCndKzG51rsA9rdo\n\ty7pysn3DGYKblXaxcka97UHCoKMiV/Cal/KyI7Xvio7sorW7SDE3GpyCvOg3/U6Osr4D\n\thRmDKZDylG/OJ7nGWI9Xb0wsfgBJzT3PAnXzmppnZd9lvt040Vicr0LVCSQ2YJeF0sAn\n\tZlYk44DHZCPi+u6gtMxWJTQmp0bOsmZIhXnnWTz5NtoM/b9q6dGNMNS/Oh+Rb4N75gyP\n\tDt4cJ1soILiV00eqv2mYNeIDCr2GaF5OpIjKeXHbTA7TMiJqBrPDEt5Ws3ytJi6VfLWK\n\tcluA==",
        "ARC-Authentication-Results": "i=1; strato.com;\n    arc=none;\n    dkim=none",
        "X-RZG-CLASS-ID": "mo00",
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; t=1753181838;\n\ts=strato-dkim-0002; d=ziska.de;\n\th=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date:\n\tFrom:Subject:Sender;\n\tbh=0wZrZxo49g3Y3DJJFWbGIozuPMWYiuqd2fxjR2eA2hA=;\n\tb=bFKm1bWp/cC8Esd960nY1KEUGnRqP6MN1rDNvlS6ZDHuVQ5eXSk1FYvt3NmBvGoviR\n\teiQPkNVyoadinc0xP5avpRQR8Uz510oiuqi78nXNgytB5kKoMQT9Avldnj0wFYSA2Iff\n\tnpJyUHYljMiQh6H9pXdtm4HU+kxjbXVuhSIiIyCiE01+RW5Got5rK9xjWftHQpYpB7ND\n\tVSZ29Ea8Z6b/F/OR+RgqGSKXuR1TKAyn7c60EOeIcLqJX5tbwvQV8bn0zU7Us7tsFCBk\n\tRqdbLItjFmp0DfpR32Q3f8UYxE4kYYNup8IKn+tRgY6Uu8E6Wv1PxsY27OBr1yf+KxLA\n\trVoA==",
            "v=1; a=ed25519-sha256; c=relaxed/relaxed; t=1753181838;\n\ts=strato-dkim-0003; d=ziska.de;\n\th=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date:\n\tFrom:Subject:Sender;\n\tbh=0wZrZxo49g3Y3DJJFWbGIozuPMWYiuqd2fxjR2eA2hA=;\n\tb=lXf7v6qzOr+ZVN6TigcgQLoBPdbRP0PuGX2/lIrTS47muil1u2/nI3g4UXzsxY+40U\n\tBE7/fx0tdGFl3RlRcNDQ=="
        ],
        "X-RZG-AUTH": "\":Jm0XeU+IYfb0x77LHmrjN5Wlb7TBwusDqIM6Hizy8VdfzvKi4yoFC9cF0Yq5V/JaauwvHLbqWsUkNwDmHGDXQ5TkbZSP\"",
        "From": "Jaslo Ziska <jaslo@ziska.de>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Jaslo Ziska <jaslo@ziska.de>",
        "Subject": "[PATCH v2 3/3] gstreamer: Enable bayer formats with 10/12/14/16 bits",
        "Date": "Tue, 22 Jul 2025 12:39:30 +0200",
        "Message-ID": "<20250722105627.11961-4-jaslo@ziska.de>",
        "X-Mailer": "git-send-email 2.50.0",
        "In-Reply-To": "<20250722105627.11961-1-jaslo@ziska.de>",
        "References": "<20250722105627.11961-1-jaslo@ziska.de>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "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": "GStreamer supports 10/12/14/16-bit bayer formats since version 1.24.\n\nSigned-off-by: Jaslo Ziska <jaslo@ziska.de>\n---\n src/gstreamer/gstlibcamera-utils.cpp | 19 +++++++------------\n 1 file changed, 7 insertions(+), 12 deletions(-)",
    "diff": "diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp\nindex a548b0c1..c55a52d7 100644\n--- a/src/gstreamer/gstlibcamera-utils.cpp\n+++ b/src/gstreamer/gstlibcamera-utils.cpp\n@@ -20,7 +20,7 @@ static struct {\n \t/* Compressed */\n \t{ GST_VIDEO_FORMAT_ENCODED, formats::MJPEG },\n \n-\t/* Bayer formats, gstreamer only supports 8-bit */\n+\t/* Bayer formats */\n \t{ GST_VIDEO_FORMAT_ENCODED, formats::SBGGR8 },\n \t{ GST_VIDEO_FORMAT_ENCODED, formats::SGBRG8 },\n \t{ GST_VIDEO_FORMAT_ENCODED, formats::SGRBG8 },\n@@ -317,20 +317,15 @@ bare_structure_from_format(const PixelFormat &format)\n \t\treturn gst_structure_new(\"video/x-raw\", \"format\", G_TYPE_STRING,\n \t\t\t\t\t gst_video_format_to_string(gst_format), nullptr);\n \n-\tswitch (format) {\n-\tcase formats::MJPEG:\n+\tif (format == formats::MJPEG)\n \t\treturn gst_structure_new_empty(\"image/jpeg\");\n \n-\tcase formats::SBGGR8:\n-\tcase formats::SGBRG8:\n-\tcase formats::SGRBG8:\n-\tcase formats::SRGGB8:\n-\t\treturn gst_structure_new(\"video/x-bayer\", \"format\", G_TYPE_STRING,\n-\t\t\t\t\t bayer_format_to_string(format), nullptr);\n-\n-\tdefault:\n+\tconst gchar *s = bayer_format_to_string(format);\n+\tif (s)\n+\t\treturn gst_structure_new(\"video/x-bayer\", \"format\",\n+\t\t\t\t\t G_TYPE_STRING, s, nullptr);\n+\telse\n \t\treturn nullptr;\n-\t}\n }\n \n GstCaps *\n",
    "prefixes": [
        "v2",
        "3/3"
    ]
}