{"id":25559,"url":"https://patchwork.libcamera.org/api/patches/25559/?format=json","web_url":"https://patchwork.libcamera.org/patch/25559/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20251215145305.4187195-2-julien.vuillaumier@nxp.com>","date":"2025-12-15T14:53:05","name":"[v1,1/1] gstreamer: Add raw support to libcamerasrc stream-role property","commit_ref":"34c5cf2480bb096689424c404ec0c1949f38b279","pull_url":null,"state":"accepted","archived":false,"hash":"24ae72959a5cd72631c0b5e979209c6e6524d707","submitter":{"id":190,"url":"https://patchwork.libcamera.org/api/people/190/?format=json","name":"Julien Vuillaumier","email":"julien.vuillaumier@nxp.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/25559/mbox/","series":[{"id":5664,"url":"https://patchwork.libcamera.org/api/series/5664/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5664","date":"2025-12-15T14:53:04","name":"gstreamer: Add raw support to libcamerasrc stream-role property","version":1,"mbox":"https://patchwork.libcamera.org/series/5664/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/25559/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/25559/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 7E293C326C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 15 Dec 2025 14:53:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0EA5B61985;\n\tMon, 15 Dec 2025 15:53:56 +0100 (CET)","from DUZPR83CU001.outbound.protection.outlook.com\n\t(mail-northeuropeazlp170120005.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:c200::5])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 14E6261973\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Dec 2025 15:53:53 +0100 (CET)","from AM9PR04MB8147.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:3e0::22)\n\tby DB8PR04MB7098.eurprd04.prod.outlook.com (2603:10a6:10:fd::19) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.13;\n\tMon, 15 Dec 2025 14:53:51 +0000","from AM9PR04MB8147.eurprd04.prod.outlook.com\n\t([fe80::b387:72c6:e33c:8656]) by\n\tAM9PR04MB8147.eurprd04.prod.outlook.com\n\t([fe80::b387:72c6:e33c:8656%7]) with mapi id 15.20.9412.011;\n\tMon, 15 Dec 2025 14:53:51 +0000"],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"lweAXc/L\";\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=tqnJpehlhtCf1H7Ch8MoR8Cn+75bb0QfFsuybPYAVDmCgNLz5QYWlZ5YBrRbetRt6Yf9wt4nTgrRfIvhVSIILoRAsF4Hwemx9xugP9w0v/R7TP/mAvlDp4MaLec/KvHK7zXSHCGDf360mPpZRUWHgF6is4YFy0Xdzoh1R2qNNilSJeAvDCk1Q8aGzojNsVuGFAs7joFEdpvMEMNbzKiQYhkaQFrcv8dLL+j9SCeK/BmxKndWMpeLrjMz0hf3DfIhbX6ZiZ4A03o558fHmePVmI6tCSQ4X6MMIJBgSKthBYRFpzDqqTKJ6gGzIzP7iUPsRgHdVt8GLHwTJcV7DXLhgw==","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=I3ScKmgZHM4d8F+gcboueSossColnSX4zI3fzZiK5Go=;\n\tb=uHiCfrMYY03hPOarx6WWdNp+9bjVWmMzujOWmiep0ELdovzxqxmdb/lZ8kqvmydK0djSC2nZqWSTj7KwnCbXgDo/PyFO1PSOARrwIyNxKqxqR95wAiuQ46v6HO1TeKRotKH04Y14uhFVm5zeSUnvmjb4OzKZ35PErdVodjrnyDCoqmljF8P7umsnlDEh3Pmu93r/jjCZUq20A4Aj5zPDqDySUpmCU6AWhm7fMfByWUpjy/FdWrOVBHLo3EcH8ApJQ0SQWxx2fZLjuRkK/1xw2vyCH4RTGFtVG4n48YY/EUaQYYl2mCFTp2dLjDIPc1pQpoPN5fHvrXRuXHDsLQ99Aw==","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=I3ScKmgZHM4d8F+gcboueSossColnSX4zI3fzZiK5Go=;\n\tb=lweAXc/LJ0gXBoP5W1fHoQ1kWyNpNHAy5O0lRnQgJpbs/FeV/DdO9fkJdIIvCNd1c3kD1H8eUWNBC4NBFvQpSm+SWBHt+rWnvE8p9lc/N23qtv/mkVEMo4LaVM3TpjkSDoCFPQSXx0k+L50oW0RBhflWEjMIl6IvSlQuWS5iIJTcamnOSfJnVAZBlsSB0Kl5tDiUv6w81pR0RMXhTG/VesnDVmW3fRzzt4hLSAufPYvvlEQibErdi8XN7KxquoMr2fDUfDplsAj85aNpj+sh7gG4PyIiGWQsMjkOiXv+P4TiZDpkISsSBm87OnFIHFoeBPIcdCelzqjDnuVrq5X5Fw==","From":"Julien Vuillaumier <julien.vuillaumier@nxp.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Julien Vuillaumier <julien.vuillaumier@nxp.com>","Subject":"[PATCH v1 1/1] gstreamer: Add raw support to libcamerasrc\n\tstream-role property","Date":"Mon, 15 Dec 2025 15:53:05 +0100","Message-Id":"<20251215145305.4187195-2-julien.vuillaumier@nxp.com>","X-Mailer":"git-send-email 2.34.1","In-Reply-To":"<20251215145305.4187195-1-julien.vuillaumier@nxp.com>","References":"<20251215145305.4187195-1-julien.vuillaumier@nxp.com>","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-ClientProxiedBy":"AM0PR02CA0180.eurprd02.prod.outlook.com\n\t(2603:10a6:20b:28e::17) To AM9PR04MB8147.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:3e0::22)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"AM9PR04MB8147:EE_|DB8PR04MB7098:EE_","X-MS-Office365-Filtering-Correlation-Id":"1e0ba104-65a3-4bc7-e777-08de3be9c2bd","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n\tARA:13230040|19092799006|366016|1800799024|52116014|376014|38350700014;","X-Microsoft-Antispam-Message-Info":"/qVE34i5z8LJZdlBelfbn1aXNoXKB/kee5o/ckAioC9YyOLQOSVX6IRMJ+6vZiEAu5l1b6QMuPvBKNh2q/6FM289YmjUfPeo/A09pLBbrj8taw4Ox/8RzC9iV/XHiPOi0Kn3SStuVm/Nxr/oV2X9TWjg79/yZy+wGERjkM0Bw4vLmt/8sb+nTdfWCZLEmHF77baYz34E7JjBImXzkGXm7yw29JoipvGjPnHSXEJ70rQtWobLhOuJ/NYvapFliz8EHvKfc7wD4l9FlCu6DQFabqAWCRnDIYePG+r1E7+O5vdQjz9lmHpKLNquljHryHmBIgEsRYvafb+2lwVAN5kTSHkb5MOe1kWc+bxtGwI7f8B4k/NpvktgzPJ1X7o6DoCLKp5zRkplESWMX2qMkgVnVYUiPcdGoT66HTaW5G/HVA2FzFLErEHAXWVq5LvbbGp88kPVslVdIIVKoZ4N0XBHE88pEG/5iftcH6h1LtD59z71/59VvYQvoN+6qfHGQh/Y/yFzlEYf2zhREIgEnbNbZqdJR+IK5rHob3Ecoew/8ylQksJrk0RNWxa/L6KI5tgfZmZhIY3BfraEFHJR2Gm2Ms7MVyzHhieFYd3rMiwXhZW7SNugK6cAmf2lSGrNsaPNkVW7iRYtYxNNuqKr8ccCHJBcTKrX9LnqyXPqi8WIWfxMET8qiOfZP2iRfA6RA0j9aoXHyxM56bTBVqS0EdW//AEVrNCSut1lv/jlLsAPe721+zyB320WCXx58cj5qfZDaCWiTKani0KqJrAFdfP2J126AvQEMFOVg+JFTTc5fGd50klBYxurf2FyJ4bJaYQa8xJHP/1mho9S8dH8HzinAlifVBYQ8o1yf2/v88xOV5uZHehkJjnyky8IRbLw9Rbx2xGyYNYdzEkMuGzjnDZS9R6UHR+InS8GBOSG2/S0yiHt9j9tx1NYgAFqqkVShmgL6+g0rDTRTiYvZ9ayRhrIkso4i8uFUKk/Rdcc15aR/eMGEkyWD+bMPntc+E3Hogzq2j5yFXIfZzMArFTH1lFKioqR47y7XgJilxDon5epP9SC9JC9LKrGYbCbkKkJ17QAWgjI5qm7SnzdKRjqbWCw067yYFXy//lXg28AV69uuN/BKEvD/h0l9emXiIJXJ6zJCbg6hnqlSfphhns6myxFl8hao+90Mqx2TmvQoletEX6gy59tIDzilPk2Ibt6q4i5QwJcCKn8t64A8Cd7Hk1MmpFs4EyePjNLOmrXiVD5EFs9vjl8Gp2T2VltVJSIC6+pUJVzxr5AuexX4AycSrwIBAdjlxxKq/TSIA1TCYuVsOuA/nMIpylksKYuY6fAjfvSjdecSGm+m4mpyMy25BjCYblRSmG32tPtM9fNT9kIs7mgeoif02oWuBl8u2UR4mLTNHuM/M8TfRz8U5izIKvOssHRZYxb9UrNpO484+GXaCiX0xzpFxCMXC8igJ17iiSkV+XJNLXsHteskphzE720tDYQHenLsMQ4pcBTNR9PU6j2hlYw2ZJu2xPXuYNP4CP0","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n\tIPV:NLI; SFV:NSPM; H:AM9PR04MB8147.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230040)(19092799006)(366016)(1800799024)(52116014)(376014)(38350700014);\n\tDIR:OUT; SFP:1101; ","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"pQofZV9AUEORFxgCNAlxePdv6Ze7KN9grVtDPJD8nzyMM91VBJnGvu7tJBcEcIAH0EBfI7oZm4n4COEOu9hXXoXKb8Kyaz6KdkqYXe4HLQ2lLArwdujLJ+StuQzwVu71mFV1BuVbiL4WXH6w9xAN3UUh9kpKrZ0dr5br7fdjfbA0nMnnYlbluTNM83c5i0vOAiMSVRk0+H28KRWeLpP0NIXbDKLTg/QvZ6xdcUd9dYHsuAcQZiY2xI6ccnPXAVpQIrZVkMVAMNw6Am7yE+4xM6mDsUubNVmop/g3a6r09fjnB8q7/331n9aRgKJzIaK02qfPlHX3EtMXtwTUW0euuP5fvTtCclked/nvKrp6pHMzi1adgBFEtOE3tRR0mVRi6MbR+5kwsBpQzwgh38YSFniXciKhU9qGv3Kinom7a9mDnQipvvOfd2MekyjBooHbHsn9/hV0B12ylUKPeJSVmfX0iNTQV5n3hXNTCZqMtSNgveyNhSTcjWyBILyNzxSf+Foxas7O4g/OohufG3VvRTyKs7zZUjLDsLuYBccFaLMMyEg+pzaHJ1frMyjwAduH2GnpgclC4sUWbIdEV2jLrjjcAU86vWcmlHS4+9TabHs+GemYK9V+YzEuiNTJ8Nk7Gk+VSbva6Jmb4TCWdAdtSJ5KvvcZviXf4A4rx7wVdoDRivA3jIQewkmDzb+GkLhWkBT63iNLqzAq4DErkQlu5o4s6rbiVFUxjdPhz+thL2pPOYt4L/eFVaNvCrV+URUtbZtDLs2bxn973MoRpsr2LaWV1siXwq4ugzO1bkoITFLdLv2o5zKwqA5XEEYO2VI4N1m806N5UeXE4JGpHRHmNeZxg5LnAc/wmqJRu4hP056vAUHCybLmWNmxHPI0l+zJ1V1FENzujVTmE6SElgD/qZw8sueEsnJ48xX/hrlq0Qpc4oVdoEJFOUn4WmfYofyk8m7WtuNXMu9ef4I1DHvsJPHUG7HnXF7DpwvOkzQHkjVdVU3hCpUxdH5p474cBIc1x897QsB35rhOpUNdGnDma/0YCcUz9HdonDjrUsFQ6Xsk2DQD+v6/x6RK1hV8VPCV8QPyq6UFU5e9ZQ3ucWNcPBhi/GC80nen0bFG7MNjjcCU7msYTOMMS174CLa07MrV4dx6BCm+9q/3xY4+ply7wrtjYWroxIXtSA+wUMaE0m6m7buJoOTKNFvR37VjDeoWWFb4Rz39ziaDLAuLP/47pksse0XGhIXB2R+zjlsSMGfOc5NcAU7/+6/c+nARJ0rD63lN+sY7/jLv3qYktU2VGclaxzAppWsRPFw+11BsezrWMI8wB4D80Z/8PfTg+hdMXIEt3EvGWEL1IGRijm8CMYr1ACCokLfqyLNWWdlYf3aREVn52LG0jYuao5PF2hrJlg4Y4NTi7W/lq/8hLTR+YdHheZrY2C1XLrEuJk5rFWluatnTL5DJ6Wf0jUA1c7Tdd+EaEnsZ1PguJHu7xQisP22ZXmq1SDgeuWm7i9WmfcA2fcdFmwVd+kgShIq+xd+uEj9FGuu9GWe6WDxbzkbvCCNSU2c40Ee8XtPCBdj3cJATlt+iIzjYJxaBH4Y6yscJ7C4uV9GPu5xx6tFmK4Zi1Q==","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"1e0ba104-65a3-4bc7-e777-08de3be9c2bd","X-MS-Exchange-CrossTenant-AuthSource":"AM9PR04MB8147.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"15 Dec 2025 14:53:51.5389\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":"NBz3A8i+WWSLROtBmmG7eEn/zdeywSW1ByUJH+lbeKW8xSaDlRMiEELCkQrzmULgJ5kHAXybHHTrbduTcqSIAmHqs0f1DY/8IFy8afSLYUw=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DB8PR04MB7098","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 current definition of the stream-role property of libcamerasrc\nelement does not allow for the Raw (0) value to be assigned.\nThat property is used to query the pipeline handlers through\ngenerateConfiguration(roles) to retrieve the formats exposed to\nthe user. Not being able to specify the raw stream-role, bayer\nformats are not reported so can not be used for caps negotiation.\n\nAdding value stream-role=raw enables usage of bayer GStreamer pipelines\nlike:\n\n`gst-launch-1.0 libcamerasrc camera-name=<name> src::stream-role=raw !\n    video/x-bayer, format=bggr16le ! ...`\n\nSigned-off-by: Julien Vuillaumier <julien.vuillaumier@nxp.com>\n---\n src/gstreamer/gstlibcamerapad.cpp | 4 ++++\n 1 file changed, 4 insertions(+)","diff":"diff --git a/src/gstreamer/gstlibcamerapad.cpp b/src/gstreamer/gstlibcamerapad.cpp\nindex b37c4b340..c1f7f16e8 100644\n--- a/src/gstreamer/gstlibcamerapad.cpp\n+++ b/src/gstreamer/gstlibcamerapad.cpp\n@@ -95,6 +95,10 @@ gst_libcamera_stream_role_get_type()\n \tstatic GType type = 0;\n \tstatic const GEnumValue values[] = {\n \t\t{\n+\t\t\tstatic_cast<gint>(StreamRole::Raw),\n+\t\t\t\"libcamera::Raw\",\n+\t\t\t\"raw\",\n+\t\t}, {\n \t\t\tstatic_cast<gint>(StreamRole::StillCapture),\n \t\t\t\"libcamera::StillCapture\",\n \t\t\t\"still-capture\",\n","prefixes":["v1","1/1"]}