Show a patch.

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

{
    "id": 21861,
    "url": "https://patchwork.libcamera.org/api/patches/21861/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/21861/",
    "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": "<20241108091203.3751671-1-qi.hou@nxp.com>",
    "date": "2024-11-08T09:12:03",
    "name": "gstreamer: Handle GST_VIDEO_TRANSFER_BT601",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "d9f1019f6e8e4d89e94a98101c483c063d3616c8",
    "submitter": {
        "id": 195,
        "url": "https://patchwork.libcamera.org/api/people/195/?format=api",
        "name": "Qi Hou",
        "email": "qi.hou@nxp.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/21861/mbox/",
    "series": [
        {
            "id": 4779,
            "url": "https://patchwork.libcamera.org/api/series/4779/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4779",
            "date": "2024-11-08T09:12:03",
            "name": "gstreamer: Handle GST_VIDEO_TRANSFER_BT601",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/4779/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/21861/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/21861/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 D081DC323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  8 Nov 2024 09:12:32 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DFAA06548C;\n\tFri,  8 Nov 2024 10:12:31 +0100 (CET)",
            "from EUR05-VI1-obe.outbound.protection.outlook.com\n\t(mail-vi1eur05on2061f.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:2613::61f])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6ECC960589\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  8 Nov 2024 10:12:30 +0100 (CET)",
            "from PAXPR04MB8285.eurprd04.prod.outlook.com\n\t(2603:10a6:102:1ca::15)\n\tby DBBPR04MB7834.eurprd04.prod.outlook.com (2603:10a6:10:1ee::18)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8137.21;\n\tFri, 8 Nov 2024 09:12:26 +0000",
            "from PAXPR04MB8285.eurprd04.prod.outlook.com\n\t([fe80::e003:8fb:64ea:acfd]) by\n\tPAXPR04MB8285.eurprd04.prod.outlook.com\n\t([fe80::e003:8fb:64ea:acfd%3]) with mapi id 15.20.8137.018;\n\tFri, 8 Nov 2024 09:12:25 +0000"
        ],
        "Authentication-Results": [
            "lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"QjzWPhF9\";\n\tdkim-atps=neutral",
            "dkim=none (message not signed)\n\theader.d=none;dmarc=none action=none header.from=nxp.com;"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n\tb=dbasCs1bKmftXWeyKokXh5z2DOEovMKDlO/Mkgi7D2gFX7B7haTtkcP4z92Q6vsgJc6cSS7qZRcH0kW6pimy/f/Li99eT3FnX1uEYD0JWA+SeFag/nlYV88VlsA19ABd+RDdyf6g/MTKJI0UlWGJlWq4/JE4/cxAJAFEUoys9HrkSuiUwIlPgDyRwhFA3CKTAbFL+YB6Fj3j8/hbZCGg21VCSkx+pNleXCwVm+ol9J/SFxU5YdrI1bWmg+enw52m1i/4CGyqyizIcDZpfWycurlLJojNh1gDvfLYMtHguKr2WAwLI2QZW5vSxkyjfasAskL2hN9zSKm/LCBgVJ33kw==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n\ts=arcselector10001;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n\tbh=BjLsWZ31MQJ71dVxabE8VNDMVMORKrSSq0GWVWrx8fc=;\n\tb=I13ZVfyyiNt51CMBS5teOhizizwjb9RruC9WkZ5oz6ez8Lqx0/AI5zSgCyBf4PRPqVXqH6zZNxJLyie1IaIQIO4TRC//VSyLB1/t7wRZoEvHilmEfqWlwiOVto70mvqyTzuBDGIzpewrzVBJ9/fkH/YnWz0oQwERELsYo5e7fTjQDFkGlR8LvBmrloDTMGthTOqPnw3D11Nls+VQhcxeqNQzNsC7cei47tEZTq7wHwpp5Q1WQBYaeq2AzDZbVngZzFUiTBX36cRHTw5LxKn2hj8c0aps7wMEbJTcVfBBoEnqRDoQ5Jd8ritEaYobcQo1zOU4ErkS+2QusMHmzATxQA==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n\tsmtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com;\n\tdkim=pass header.d=nxp.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=BjLsWZ31MQJ71dVxabE8VNDMVMORKrSSq0GWVWrx8fc=;\n\tb=QjzWPhF9OkbDoEO/V9hyzkpIdUXYffhQGL5ef+OeH21cvwBZ17oVjjYFuWX+fFK1XW+M87xrNl4ZXPnzmgStfY/oUI9WRY43jdIfbE23bKeIxyaBNVmAQY3jx0OpkteiPvElH0vaE0FBH3oaQFupfs3Bs4Si6ncVNSfy1GwCS4fKz0xmw2byLkLn00hDPriFcn1Ug5ocZAg8W2/x26tBe0L2qObWzn2MvZGCYUvb1OSYN6EOpox7ArJKt49J3rS1wpFgkAO5E2befKO56UB4X2GhJ3DI8FDKtrwZ/u5HoB2S60gB5dDuGL+RGopoPIyiO/N2rA2+RHd4dbjQagsbdw==",
        "From": "Hou Qi <qi.hou@nxp.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "jared.hu@nxp.com,\n\tqi.hou@nxp.com,\n\tjulien.vuillaumier@nxp.com",
        "Subject": "[PATCH] gstreamer: Handle GST_VIDEO_TRANSFER_BT601",
        "Date": "Fri,  8 Nov 2024 18:12:03 +0900",
        "Message-Id": "<20241108091203.3751671-1-qi.hou@nxp.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "SGAP274CA0021.SGPP274.PROD.OUTLOOK.COM\n\t(2603:1096:4:b6::33)\n\tTo PAXPR04MB8285.eurprd04.prod.outlook.com\n\t(2603:10a6:102:1ca::15)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "PAXPR04MB8285:EE_|DBBPR04MB7834:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "61bd1c74-55dd-498a-0e13-08dcffd57639",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n\tARA:13230040|366016|376014|1800799024|52116014|38350700014; ",
        "X-Microsoft-Antispam-Message-Info": "/c1iclfa3PFpz0ennfCO3ZBps7vd8YP/XSsdkmkIbjEv8gtYGwUcaaBknORoY4EeEbnwBx/CIfJA1nQ6LdynPNHfJJDy9D9mkWAI7eGTKDX6sXIX11tKAnNJ0Z8OVKzHLp8BSHnp1g+6e/rDQRj5vRA3h53bGPvveO7PhqLJWLbreyzNZNzrDHHjPYaSDatLOegjfYQHnWoEZtUstRRrf0paodkRZLyoNv5A6ZgEZOFjcKQ0+WkhRZD31ZXfIqObLovw5VDXXD2cQpEqyLn3RWIM9rAXiouKUX0IO0tiAfzLZwrUjRcw1wghF/9Zmuft6YVS1X4PeIJanSEptKwfLvVRebPlRDlEOZRp8xLEc4d3GcOj48g88tXKW/034kU/H9g3d2doqo4+lHUEwicpEf7DyC7l3hbJz0xsvGZ2zKSzDOGy/t+CZPUWJQwhda3+0ul1kqb8D5PXycnu0LUZ5vIFncTH50X541vmj6ArU9/6O28vJc7mN8vzw+Q/Nl0BLMZsS3MYMOeru9AlWKEAQW9wqF0EeZBy2D/MaVO+AV8xF8LOrry0sXawlOZo6xoPIT/F+BG3rPrToOgMXb5KYqUwSElg5Z36u+wZsl2ecjWRxyztxMZcl73fXU2aBA0gTBsj7Fd8JcXAKQ4cPYr47prYjvk9jA0MM9QNXgPlY1rdYpbnMTrBC+YAkqwe0JkQGxMIA/hZll/ncN9qW0QaIPNWH7zdj38RFgKniilx6iyEMMjGVhzIASX1zUDkYkmD7DaCsPrrLWsrDF1wcetXcLAU55Cw7aCNI01ru1d0L78eBx4LxqRTtozK7TG0T5az1GaeqiFLu0D41xh2oWqsFJAkxfkVauTeQS22ZuZal1GZLfgzk4gYyt0XtHxGURpVMhZ4g+uGPvz2UKa2weB1KXo8PxxBTewreFi0lUX/uOW/rZIPmB15oPPeo5+qlKe4KjZTROXQ5FtXEaF7UXplFrWixSiW0MBYIH7el9YvX5UNjrChp825VOpnUChv+VAZUfihUhld4egzF9RnhMZTm+2WA3K5+BVeYAiuGoak2MIpn6wBIhmSHeLMeHJnID523oYc8KnfZXK11gpKVXb5LIti02bZjS4n0UDoEafTAXYlxGaW/vOWs5OiBlxp9w5/WXqvv8ckOhyIFHzSS0OWw/YNVCXaS9Nyznw1Lrr3k06IrOY7ySehS5+uhs71QmA5vf538XRKNQ4e1ulWUUSk48wOsLEoaaJJxk3Hsz6BDrnHjmfjLfSzIA5reFgMHJJO5p1OtgPuw5okQRlc+uqmHn7uxxYvOp8JxzjRQ2TkSI8sy0jQ6bmJ0urNIRb/4pA9",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n\tIPV:NLI; SFV:NSPM; H:PAXPR04MB8285.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230040)(366016)(376014)(1800799024)(52116014)(38350700014);\n\tDIR:OUT; SFP:1101; ",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "Ep3CzAKD9VaSD8UZL8sEqmwtACbjJugre8rh67aGC0ccclZIHF62Hb7UK8c8aIvFJWvPzJWv13dwctiHxxUY9mOExSRKlbe6Ls1uJGOq0j9Xgc3gHeo+ngZJPot7tORNe/dgoYh6Nak9N/Tc2ohOHRbUIvJwtASd2LbyxAxJ/aaR+k028IAIK5MzcS43cjkI+CqSk1xiKvap0dmoHDcQHuTN9V3jy/o2PWDk+906r3mlzagRgv9IbNENa8hSBKlKAI9sVWI/xk0j5xt0tw7uMNd9fCmDmhVkCV1Mer8UAEGRm2XAndyCnreNwx0f+fRn6l4WffGLIWVgh6iLu0gYoQ+dU1w8WEJANr2IDrYmn+fFe/0xmvOGN7SHtokCCUYkUnwJG1rL2tZhBLQYRi4Ro6tjY2P+lVSyxVwc3AsVdrqpDWBr7nnsoI0IkQXtfPFw1ZoHtvoXy70j5WIG14JgviX9nC3gt5x85k+O5sk1ACc5X4AH5U+IsQGQ5nN2i75Xe7xSQDuPCvOrZeVpaNrJTWC/hn/fe9A2kkNMkuCNSWVXgFUCr6Nu9lFrnDES+albz3bpRYjoyVoQ4BTdHIO0ydjcwMdMoZCe+R3GadgYzIgq9gKgkJIU0QW2RJuHM3SZtMsYbuzdwPGCzUG3wUizS0c/Yk/wFYEqH+siBXIgIeXKWnGGQOEK689uSrKSig3a/5cvxSKBzNF9KH/zABO3rvPT6tXCtCqzCXHZZijTICRb7CFFt/VHZMUY8KUlHGXuoG7EYFMUExaicnj0KHDedAaScxN6Hnoc52zhCzxgPMX1VjtKY505JHpn3CIVGSeHY/n71Rm0hRTGlbor0+0a4Sci1ciWQ3fsOcKkxC26/2H8nKoG6rk2Pz3G62ruXhY25wlG1HKXKL+1YPjIcdqFhoh3FBD0sq63aOvF12OKcp2i5/wCvGeobc+qGbk2o8IYOhHk+Y4D1P5kF+iaJ/ptJGaIwAGModAUsgXF73Uv7UMqZWEjP+3ZMWqldpoSAZdRWZ6gPSewD7VOpOajV80dM2z2XKAZHAVpc2wCa515dwItxNtiHsZsNscR4PI6WIoC2itBSf4TGZxhWQ2SpTEu2+P9yjvs/7WZRdDkGU8KuY6OMiJG9LuYSwzTFYpBwKzmN1Bjm15yTvRns/UCwar7T5Lqlx8mncrnMg2WF3jilqDSk7EMoYrXH3RB4Wgg5FxyPdxkj811dj9IJhUMReX2X6Us9DuIGkvUiS92M8fmBaQZmsc+FbWpi2JtXTH7ZJUYd8Qwh1/DgGtR5sCjmmYfnWqUZU4I6j1ncuJcusJXAKyV6aaocPZn+pQMHVHwtL+Q/HvaY2PwXmd+MVf57js77+Q2E9j3v4xlkab9+QEVmlCpFxntzE1rDs5KbAdAeb2MJHv5W1kQmTeWhzPGbERGynOIDYUwYB/WeJVF0nLQZTwIO95vVR/VwCNoJU5qhXv/gWOMdYvuCylXh5Lsr7EZJRR1JeibbKKZNBjP7LLkC2Oa0TUT6nX/6zdqA2crT2SEETLYCz/nSLR2hnmLpo6xnr8zDYl6jRRJ0oJKtF3OnjI=",
        "X-OriginatorOrg": "nxp.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "61bd1c74-55dd-498a-0e13-08dcffd57639",
        "X-MS-Exchange-CrossTenant-AuthSource": "PAXPR04MB8285.eurprd04.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "08 Nov 2024 09:12:25.9331\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "686ea1d3-bc2b-4c6f-a92c-d99c5c301635",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "mlJSdWepCZxZYhEQ8AhH+y/rZR0lYmHMCgb5+6nq1wQ0bR/UWQfwggDlwhxy9DYp",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DBBPR04MB7834",
        "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": "The conversions back and forth between GStreamer colorimetry and\nlibcamera color space are not invariant for the bt601 colorimetry.\nThe reason is that Rec709 transfer function defined in GStreamer\nas GST_VIDEO_TRANSFER_BT709 (5), is to be replaced by its alias\nGST_VIDEO_TRANSFER_BT601 (16) only for the case of bt601 (aka 2:4:16:4)\ncolorimetry - see [1].\n\nCurrently the composition of the GStreamer/libcamera conversions:\ncolorimetry_from_colorspace (colorspace_from_colorimetry (bt601))\nreturns 2:4:5:4 instead of the expected 2:4:16:4 (bt601). This\ncauses negotiation error when the downstream element explicitly\nexpects bt601 colorimetry.\n\nMinimal example to reproduce the issue is with a pipeline handler\nthat do not set the optional color space in the stream configuration,\nfor instance vimc or imx8-isi:\nexport LIBCAMERA_PIPELINES_MATCH_LIST=\"vimc,imx8-isi\"\ngst-launch-1.0 -v libcamerasrc ! video/x-raw,colorimetry=bt601 ! fakesink\n\nAbove pipeline fails to start. This change updates colorimetry_from_colorspace()\nto use the expected GST_VIDEO_TRANSFER_BT601 (16) alternative\ndefinition for the Rec709 transfer function, in order to fix the\nconversion from libcamera color space towards the bt601 colorimetry.\nThis bt601 colorimetry special case is identified by the usage of\nthe Rec709 transfer function combined with the primaries\nGST_VIDEO_COLOR_PRIMARIES_SMPTE170M (4).\n\n[1] https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/724\n\nSigned-off-by: Hou Qi <qi.hou@nxp.com>\n---\n src/gstreamer/gstlibcamera-utils.cpp | 7 +++++++\n 1 file changed, 7 insertions(+)",
    "diff": "diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp\nindex 732987ef..b2d64733 100644\n--- a/src/gstreamer/gstlibcamera-utils.cpp\n+++ b/src/gstreamer/gstlibcamera-utils.cpp\n@@ -112,7 +112,14 @@ colorimetry_from_colorspace(const ColorSpace &colorSpace)\n \t\tcolorimetry.transfer = GST_VIDEO_TRANSFER_SRGB;\n \t\tbreak;\n \tcase ColorSpace::TransferFunction::Rec709:\n+#if GST_CHECK_VERSION(1, 18, 0)\n+\t\tif (colorSpace.primaries == ColorSpace::Primaries::Smpte170m)\n+\t\t\tcolorimetry.transfer = GST_VIDEO_TRANSFER_BT601;\n+\t\telse\n+\t\t\tcolorimetry.transfer = GST_VIDEO_TRANSFER_BT709;\n+#else\n \t\tcolorimetry.transfer = GST_VIDEO_TRANSFER_BT709;\n+#endif\n \t\tbreak;\n \t}\n \n",
    "prefixes": []
}