Show a patch.

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

{
    "id": 24048,
    "url": "https://patchwork.libcamera.org/api/patches/24048/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/24048/",
    "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": "<20250804163812.126022-2-mzamazal@redhat.com>",
    "date": "2025-08-04T16:38:04",
    "name": "[v12,1/8] libcamera: software_isp: Assign colour spaces in configurations",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "dc5dcb99feae80e2e66072d1f87ea58746335e59",
    "submitter": {
        "id": 177,
        "url": "https://patchwork.libcamera.org/api/people/177/?format=api",
        "name": "Milan Zamazal",
        "email": "mzamazal@redhat.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/24048/mbox/",
    "series": [
        {
            "id": 5355,
            "url": "https://patchwork.libcamera.org/api/series/5355/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5355",
            "date": "2025-08-04T16:38:03",
            "name": "Enable raw streams with software ISP",
            "version": 12,
            "mbox": "https://patchwork.libcamera.org/series/5355/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/24048/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/24048/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 117F5BDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  4 Aug 2025 16:38:38 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BA67969217;\n\tMon,  4 Aug 2025 18:38:37 +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 2621669217\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  4 Aug 2025 18:38:35 +0200 (CEST)",
            "from mx-prod-mc-01.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-617-Asg6FnUeM9Or6_-8NrgQbQ-1;\n\tMon, 04 Aug 2025 12:38:31 -0400",
            "from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com\n\t[10.30.177.93])\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-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS id 8E1DF195DB9A; Mon,  4 Aug 2025 16:38:29 +0000 (UTC)",
            "from mzamazal-thinkpadp1gen7.tpbc.com (unknown [10.44.32.17])\n\tby mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id 9663E1800EF2; Mon,  4 Aug 2025 16:38:21 +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=\"Cn0nk235\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1754325514;\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=2zzdDiFpTkEAZOr41i3alVO1cb4kj/y3CNtCSLhSdps=;\n\tb=Cn0nk235FJ0Rrq0OPZ65G8RbgWwAe6qVQ+S8IW0jOQgwIK1Vf7ke95lBW2pnBDY9buNEQ6\n\thO4Uk80KT2+evRqXYu+M//F/xpUvEcUcyOWzwhT/RkK3WyzTeXkfHjr7RNymzyxsat+a+G\n\tm7DmrAWbIXlBc4EHwG8SEKSQrrE9naU=",
        "X-MC-Unique": "Asg6FnUeM9Or6_-8NrgQbQ-1",
        "X-Mimecast-MFC-AGG-ID": "Asg6FnUeM9Or6_-8NrgQbQ_1754325509",
        "From": "Milan Zamazal <mzamazal@redhat.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Milan Zamazal <mzamazal@redhat.com>, Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>, =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?=\n\t<barnabas.pocze@ideasonboard.com>, Paul Elder\n\t<paul.elder@ideasonboard.com>, Umang Jain <uajain@igalia.com>",
        "Subject": "[PATCH v12 1/8] libcamera: software_isp: Assign colour spaces in\n\tconfigurations",
        "Date": "Mon,  4 Aug 2025 18:38:04 +0200",
        "Message-ID": "<20250804163812.126022-2-mzamazal@redhat.com>",
        "In-Reply-To": "<20250804163812.126022-1-mzamazal@redhat.com>",
        "References": "<20250804163812.126022-1-mzamazal@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 3.4.1 on 10.30.177.93",
        "X-Mimecast-Spam-Score": "0",
        "X-Mimecast-MFC-PROC-ID": "fEYx1_nQM3pFMHpiRnTil6KOvY1GPr2T_UZ_RR67rXc_1754325509",
        "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": "StreamConfiguration's should have colorSpace set.  This is not the case\nin the simple pipeline.  Let's set it there.  This also fixes a crash in\n`cam' due to accessing an unset colorSpace.\n\nWe set the colour spaces according to the pixel format.  This is not\ncompletely correct because pixel formats and colour spaces are\ndifferent, although not completely independent, things.  But for the\nlack of a better practical option to determine the colour space, we use\nthis.\n\nSigned-off-by: Milan Zamazal <mzamazal@redhat.com>\n---\n src/libcamera/pipeline/simple/simple.cpp | 33 ++++++++++++++++++++++++\n 1 file changed, 33 insertions(+)",
    "diff": "diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp\nindex 4323472e1..50a7e65fb 100644\n--- a/src/libcamera/pipeline/simple/simple.cpp\n+++ b/src/libcamera/pipeline/simple/simple.cpp\n@@ -25,6 +25,7 @@\n #include <libcamera/base/log.h>\n \n #include <libcamera/camera.h>\n+#include <libcamera/color_space.h>\n #include <libcamera/control_ids.h>\n #include <libcamera/request.h>\n #include <libcamera/stream.h>\n@@ -35,6 +36,7 @@\n #include \"libcamera/internal/converter.h\"\n #include \"libcamera/internal/delayed_controls.h\"\n #include \"libcamera/internal/device_enumerator.h\"\n+#include \"libcamera/internal/formats.h\"\n #include \"libcamera/internal/media_device.h\"\n #include \"libcamera/internal/pipeline_handler.h\"\n #include \"libcamera/internal/software_isp/software_isp.h\"\n@@ -1212,6 +1214,37 @@ CameraConfiguration::Status SimpleCameraConfiguration::validate()\n \t\t\tstatus = Adjusted;\n \t\t}\n \n+\t\t/*\n+\t\t * Best effort to fix the color space. If the color space is not set,\n+\t\t * set it according to the pixel format, which may not be correct (pixel\n+\t\t * formats and color spaces are different things, although somewhat\n+\t\t * related) but we don't have a better option at the moment. Then in any\n+\t\t * case, perform the standard pixel format based color space adjustment.\n+\t\t */\n+\t\tif (!cfg.colorSpace) {\n+\t\t\tconst PixelFormatInfo &info = PixelFormatInfo::info(pixelFormat);\n+\t\t\tswitch (info.colourEncoding) {\n+\t\t\tcase PixelFormatInfo::ColourEncodingRGB:\n+\t\t\t\tcfg.colorSpace = ColorSpace::Srgb;\n+\t\t\t\tbreak;\n+\t\t\tcase libcamera::PixelFormatInfo::ColourEncodingYUV:\n+\t\t\t\tcfg.colorSpace = ColorSpace::Sycc;\n+\t\t\t\tbreak;\n+\t\t\tdefault:\n+\t\t\t\tcfg.colorSpace = ColorSpace::Raw;\n+\t\t\t}\n+\t\t\tLOG(SimplePipeline, Debug)\n+\t\t\t\t<< \"Unspecified color space set to \"\n+\t\t\t\t<< cfg.colorSpace.value().toString();\n+\t\t\tstatus = Adjusted;\n+\t\t}\n+\t\tif (cfg.colorSpace->adjust(pixelFormat)) {\n+\t\t\tLOG(SimplePipeline, Debug)\n+\t\t\t\t<< \"Color space adjusted to \"\n+\t\t\t\t<< cfg.colorSpace.value().toString();\n+\t\t\tstatus = Adjusted;\n+\t\t}\n+\n \t\tif (!pipeConfig_->outputSizes.contains(cfg.size)) {\n \t\t\tSize adjustedSize = pipeConfig_->captureSize;\n \t\t\t/*\n",
    "prefixes": [
        "v12",
        "1/8"
    ]
}