[{"id":34917,"web_url":"https://patchwork.libcamera.org/comment/34917/","msgid":"<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-07-17T14:04:58","subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Umang,\n\nthank you for posting the patches.  How do you suggest to proceed with\nboth the patch series (yours and mine) to avoid duplicate work and get\ncloser to merging?\n\nFrom the technical standpoint, I wonder how it works without changing\nbuffer handling in the simple pipeline.  Do you think\nhttps://patchwork.libcamera.org/patch/23785/ is not needed?\n\nUmang Jain <uajain@igalia.com> writes:\n\n> RFC series to enable raw capture on simple pipeline handler with\n> SoftISP enabled. I had a few thoughts on design of the features\n> when I was reviewing Milan's series [1]. Hence, I decided to crystallise\n> my thoughts and posted as RFC to gather more feedback (and some real\n> testing on supportedDevices[]).\n>\n> I have left few things to include from [1] for e.g. colorspace issues.\n> My goal currently is to address the core issue of raw capture with this\n> RFC.\n>\n> Testing branch [2]\n> Setup: RPi 3b + IMX219\n> Cases tested with cam:\n> \t- Single raw output\n> \t- Single processed output\n> \t- 1 Raw + 1 processed output\n>\n> One can propose more use-cases as part of their testing. If they turn\n> out to be complex, we can probably document it as \\todo, to get\n> addressed at a later stage.\n>\n> cam Output:\n> ===========\n>\n> uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -C5\n> [27:26:59.248233501] [2384]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> [27:26:59.262004021] [2384]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> [27:26:59.593703813] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> [27:26:59.594050532] [2390]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> [27:26:59.596620063] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> [27:26:59.625957459] [2384]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW\n> [27:26:59.627666834] [2390]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 0\n> cam0: Capture 5 frames\n> 98819.750177 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200\n> 98819.783504 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200\n> 98819.816829 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 4147200\n> 98819.850156 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200\n> 98819.883484 (30.00 fps) cam0-stream0 seq: 000004 bytesused: 4147200\n>\n>\n> uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=viewfinder,width=1920,height=1080 -C5\n> [27:27:09.663699747] [2391]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> [27:27:09.677708965] [2391]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> [27:27:09.933555736] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> [27:27:09.933821778] [2392]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> [27:27:09.936308080] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> Camera configuration adjusted\n> Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> [27:27:09.965424746] [2391]  INFO Camera camera.cpp:1205 configuring streams: (0) 1916x1080-XRGB8888/Unset\n> [27:27:09.967118705] [2392]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> [27:27:09.970895528] [2392]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> cam0: Capture 5 frames\n> 98830.200120 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 8277120\n> 98830.233445 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 8277120\n> 98830.266770 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 8277120\n> 98831.033291 (1.30 fps) cam0-stream0 seq: 000025 bytesused: 8277120\n> 98831.799810 (1.30 fps) cam0-stream0 seq: 000048 bytesused: 8277120\n>\n>\n> uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -srole=viewfinder,width=1920,height=1080 -C10\n> [27:27:26.239476459] [2395]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> [27:27:26.253694063] [2395]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> [27:27:26.572276146] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> [27:27:26.572539792] [2396]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> [27:27:26.574856667] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> Camera configuration adjusted\n> Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> [27:27:26.603776146] [2395]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW (1) 1916x1080-XRGB8888/Unset\n> [27:27:26.605656303] [2396]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> [27:27:26.609448803] [2396]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> cam0: Capture 10 frames\n> 98846.739621 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200 cam0-stream1 seq: 000000 bytesused: 8277120\n> 98846.772946 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200 cam0-stream1 seq: 000001 bytesused: 8277120\n> 98846.806274 (30.00 fps) cam0-stream0 seq: 000002 bytesused: 4147200 cam0-stream1 seq: 000002 bytesused: 8277120\n> 98846.839601 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200 cam0-stream1 seq: 000003 bytesused: 8277120\n> 98847.539465 (1.43 fps) cam0-stream0 seq: 000024 bytesused: 4147200 cam0-stream1 seq: 000024 bytesused: 8277120\n> 98848.206006 (1.50 fps) cam0-stream0 seq: 000044 bytesused: 4147200 cam0-stream1 seq: 000044 bytesused: 8277120\n> 98848.872546 (1.50 fps) cam0-stream0 seq: 000064 bytesused: 4147200 cam0-stream1 seq: 000064 bytesused: 8277120\n> 98849.539084 (1.50 fps) cam0-stream0 seq: 000084 bytesused: 4147200 cam0-stream1 seq: 000084 bytesused: 8277120\n> 98850.205624 (1.50 fps) cam0-stream0 seq: 000104 bytesused: 4147200 cam0-stream1 seq: 000104 bytesused: 8277120\n> 98850.872164 (1.50 fps) cam0-stream0 seq: 000124 bytesused: 4147200 cam0-stream1 seq: 000124 bytesused: 8277120\n>\n> [1]: https://patchwork.libcamera.org/project/libcamera/list/?series=5281\n> [2]: https://gitlab.freedesktop.org/uajain/libcamera/-/commits/uajain/simple/raw\n>\n> Milan Zamazal (3):\n>   libcamera: simple: Set the number of software ISP streams to 2\n>   libcamera: simple: Exclude raw configurations from output conversions\n>   libcamera: simple: Require metadata only when software ISP is used\n>\n> Umang Jain (3):\n>   libcamera: simple: Support StreamRole::Raw in generateConfiguration()\n>   libcamera: simple: Validate raw streams if requested\n>   libcamera: simple: Enable capturing of raw streams\n>\n>  src/libcamera/pipeline/simple/simple.cpp | 166 ++++++++++++++++++-----\n>  1 file changed, 131 insertions(+), 35 deletions(-)","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 E3384C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 17 Jul 2025 14:05:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AC41C68F7D;\n\tThu, 17 Jul 2025 16:05:08 +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 8647161517\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 17 Jul 2025 16:05:06 +0200 (CEST)","from mail-wm1-f71.google.com (mail-wm1-f71.google.com\n\t[209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-5-Em5veOhBNGmd_g6sA057Cg-1; Thu, 17 Jul 2025 10:05:03 -0400","by mail-wm1-f71.google.com with SMTP id\n\t5b1f17b1804b1-455e9e09afeso4504715e9.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 17 Jul 2025 07:05:03 -0700 (PDT)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-4562e89bfecsm52479475e9.27.2025.07.17.07.04.58\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 17 Jul 2025 07:04:59 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"ARyYQvRc\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1752761105;\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\tin-reply-to:in-reply-to:references:references;\n\tbh=+6SMFo/cgQmbxmhxHheVZAlWxQgnj1W0yndI+s2Ozis=;\n\tb=ARyYQvRcdGoPrJg/7MJZIa+/BF21fvilX4B6wxJCVuzcIe1Snvw32sSWgb1tBKxKJILzIh\n\tWSyWOvpFes7rO8npf+PjneJyq2AjKA7YSDy0ilUWwB9JcVKk/rQnRljOrXxT6GS6h2DJX9\n\tcOC+q+Fdu8vgQkbXNqgWyWqU9XQ4zZE=","X-MC-Unique":"Em5veOhBNGmd_g6sA057Cg-1","X-Mimecast-MFC-AGG-ID":"Em5veOhBNGmd_g6sA057Cg_1752761102","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1752761102; x=1753365902;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=+6SMFo/cgQmbxmhxHheVZAlWxQgnj1W0yndI+s2Ozis=;\n\tb=MIe5JyFHrUbm8IHH5HXs+wDO5HT/YvRo7x8fOBbdgjiu6JLrJmLpeAoJRtCXRfgf0X\n\tXRJjofD8fUI9a38b8OPCdtlN0XayFE3GA1q2sot/DPHpsTs19wzh0Vh5MQ/lbQzvhdox\n\tA4F9+tyQdoujSzrfyzQqW0r62yuP682NHDT+KjO7J2a/gLHf1FtRCG9dJAAJp25Jx1Fc\n\tJBIYgU3hFf/p9ep18tB9BB6860ep7zuiwhwY9yF2tWFbd1kF8/G83labbOO6VgUUGgKI\n\tHb/BhzwEu48iUyolUzmIDAcazfknlPRneKmuN71t5XFBQdUbhzBZRWzZvVotmHAhOsu6\n\t2X9A==","X-Gm-Message-State":"AOJu0YxhD93352gbhHSJlIiCWj9Dd12mCqUB4fib9KKgmf9Kcs2LW8ub\n\tJWEyRgJZ0xnPMZDrCR7UNLCcmNL1ZFSIiZ8ERROllIh+LPWwEWICTxKhzkC3IrkaDzwGBYfehsq\n\t6WaShokkppH1vUtivEf4Ri5foUbzfYOrUHuG+XR/YLnvyrDcxxoOexiq1o6pMuEwRvZnDH/gI4J\n\tnlE0xJ2d4=","X-Gm-Gg":"ASbGncsDFVg8btXe0bg4IwMV8GnoQRUQEBKJEjqPUH5s9jknshYg/WDUyG6P9/iF1dz\n\tTsf0rbKMs4UDdb1Xoq+27QxTUXSc43CYy++IPNu6i+qyiZ5yHy/OlJUIEV/3GSC45BSDqU3gYNO\n\t/C9UbPTAEW5q1FWniMILn0dRKvl0s9UsWSy4BT+DlLvHdbgnrQV64oTAhdCGdJYjvkGwbCPNOEK\n\tUTsSRr5mFMLoc1jqvUlzvDemG48WK5sUHVZf6nBubvPdJcAc+AzTKCTAkZ7u77Gn53xEwPf17pt\n\tqL90RWeXDVXxKTXMKtfP8tV3xIYu1GquruVVAVwqKXQRa/bZ4YE0OX3fRkNtM5ahVOalo/J7SdM\n\t16LSZtcjgin5ldqiA","X-Received":["by 2002:a05:600c:5246:b0:456:1006:5401 with SMTP id\n\t5b1f17b1804b1-4562f2a8d16mr64751795e9.5.1752761101441; \n\tThu, 17 Jul 2025 07:05:01 -0700 (PDT)","by 2002:a05:600c:5246:b0:456:1006:5401 with SMTP id\n\t5b1f17b1804b1-4562f2a8d16mr64750985e9.5.1752761100779; \n\tThu, 17 Jul 2025 07:05:00 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IGxV0p5L4FlcqVvdu34Ib7SUg+Z9AGLt90lHb18nUH/Af0hLh+J5SU4H+lCijNFf3kkE07Onw==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Umang Jain <uajain@igalia.com>","Cc":"libcamera-devel@lists.libcamera.org,  Robert Mader\n\t<robert.mader@collabora.com>","Subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","In-Reply-To":"<20250716142027.236277-1-uajain@igalia.com> (Umang Jain's\n\tmessage of \"Wed, 16 Jul 2025 19:50:20 +0530\")","References":"<20250716142027.236277-1-uajain@igalia.com>","Date":"Thu, 17 Jul 2025 16:04:58 +0200","Message-ID":"<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"kyVLTs2gJgYnuIsbv0q9_VLufJmt4ZHJzZ1WpkQmBfw_1752761102","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>"}},{"id":34920,"web_url":"https://patchwork.libcamera.org/comment/34920/","msgid":"<ebcn3dry2cqmljcfrjgorgzop6em5fljryalw2azqb36xxkbis@w7krd7jys4g6>","date":"2025-07-18T04:00:02","subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","submitter":{"id":232,"url":"https://patchwork.libcamera.org/api/people/232/","name":"Umang Jain","email":"uajain@igalia.com"},"content":"Hi Milan,\n\nOn Thu, Jul 17, 2025 at 04:04:58PM +0200, Milan Zamazal wrote:\n> Hi Umang,\n> \n> thank you for posting the patches.  How do you suggest to proceed with\n> both the patch series (yours and mine) to avoid duplicate work and get\n> closer to merging?\n\nGood question. I would suggest to test this series and see if it\naddresses use-cases for the raw capture scenarios (maybe, I missed\nsomething/corner-cases).\n\nWe can cross review each other patches for starters. I've picked 3 of\nyour patches and based my patches on that. Going forward, either of us\ncan collect the relevant reviewed patches and post a single series as\ncollaborative efforts.\n\nI would also suggest to split off parallel patches (for e.g. colorspace\npatches from your series) and see if we can progress them independently.\nThese are my thoughts, if you want to take an alternate approach - I am\nwilling to hear it as well!\n\n> \n> From the technical standpoint, I wonder how it works without changing\n> buffer handling in the simple pipeline.  Do you think\n> https://patchwork.libcamera.org/patch/23785/ is not needed?\n\nIt's changed in 6/6.\n\n> \n> Umang Jain <uajain@igalia.com> writes:\n> \n> > RFC series to enable raw capture on simple pipeline handler with\n> > SoftISP enabled. I had a few thoughts on design of the features\n> > when I was reviewing Milan's series [1]. Hence, I decided to crystallise\n> > my thoughts and posted as RFC to gather more feedback (and some real\n> > testing on supportedDevices[]).\n> >\n> > I have left few things to include from [1] for e.g. colorspace issues.\n> > My goal currently is to address the core issue of raw capture with this\n> > RFC.\n> >\n> > Testing branch [2]\n> > Setup: RPi 3b + IMX219\n> > Cases tested with cam:\n> > \t- Single raw output\n> > \t- Single processed output\n> > \t- 1 Raw + 1 processed output\n> >\n> > One can propose more use-cases as part of their testing. If they turn\n> > out to be complex, we can probably document it as \\todo, to get\n> > addressed at a later stage.\n> >\n> > cam Output:\n> > ===========\n> >\n> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -C5\n> > [27:26:59.248233501] [2384]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> > [27:26:59.262004021] [2384]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> > [27:26:59.593703813] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > [27:26:59.594050532] [2390]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > [27:26:59.596620063] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> > [27:26:59.625957459] [2384]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW\n> > [27:26:59.627666834] [2390]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 0\n> > cam0: Capture 5 frames\n> > 98819.750177 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200\n> > 98819.783504 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200\n> > 98819.816829 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 4147200\n> > 98819.850156 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200\n> > 98819.883484 (30.00 fps) cam0-stream0 seq: 000004 bytesused: 4147200\n> >\n> >\n> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=viewfinder,width=1920,height=1080 -C5\n> > [27:27:09.663699747] [2391]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> > [27:27:09.677708965] [2391]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> > [27:27:09.933555736] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > [27:27:09.933821778] [2392]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > [27:27:09.936308080] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > Camera configuration adjusted\n> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> > [27:27:09.965424746] [2391]  INFO Camera camera.cpp:1205 configuring streams: (0) 1916x1080-XRGB8888/Unset\n> > [27:27:09.967118705] [2392]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> > [27:27:09.970895528] [2392]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> > cam0: Capture 5 frames\n> > 98830.200120 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 8277120\n> > 98830.233445 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 8277120\n> > 98830.266770 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 8277120\n> > 98831.033291 (1.30 fps) cam0-stream0 seq: 000025 bytesused: 8277120\n> > 98831.799810 (1.30 fps) cam0-stream0 seq: 000048 bytesused: 8277120\n> >\n> >\n> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -srole=viewfinder,width=1920,height=1080 -C10\n> > [27:27:26.239476459] [2395]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> > [27:27:26.253694063] [2395]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> > [27:27:26.572276146] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > [27:27:26.572539792] [2396]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > [27:27:26.574856667] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > Camera configuration adjusted\n> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> > [27:27:26.603776146] [2395]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW (1) 1916x1080-XRGB8888/Unset\n> > [27:27:26.605656303] [2396]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> > [27:27:26.609448803] [2396]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> > cam0: Capture 10 frames\n> > 98846.739621 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200 cam0-stream1 seq: 000000 bytesused: 8277120\n> > 98846.772946 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200 cam0-stream1 seq: 000001 bytesused: 8277120\n> > 98846.806274 (30.00 fps) cam0-stream0 seq: 000002 bytesused: 4147200 cam0-stream1 seq: 000002 bytesused: 8277120\n> > 98846.839601 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200 cam0-stream1 seq: 000003 bytesused: 8277120\n> > 98847.539465 (1.43 fps) cam0-stream0 seq: 000024 bytesused: 4147200 cam0-stream1 seq: 000024 bytesused: 8277120\n> > 98848.206006 (1.50 fps) cam0-stream0 seq: 000044 bytesused: 4147200 cam0-stream1 seq: 000044 bytesused: 8277120\n> > 98848.872546 (1.50 fps) cam0-stream0 seq: 000064 bytesused: 4147200 cam0-stream1 seq: 000064 bytesused: 8277120\n> > 98849.539084 (1.50 fps) cam0-stream0 seq: 000084 bytesused: 4147200 cam0-stream1 seq: 000084 bytesused: 8277120\n> > 98850.205624 (1.50 fps) cam0-stream0 seq: 000104 bytesused: 4147200 cam0-stream1 seq: 000104 bytesused: 8277120\n> > 98850.872164 (1.50 fps) cam0-stream0 seq: 000124 bytesused: 4147200 cam0-stream1 seq: 000124 bytesused: 8277120\n> >\n> > [1]: https://patchwork.libcamera.org/project/libcamera/list/?series=5281\n> > [2]: https://gitlab.freedesktop.org/uajain/libcamera/-/commits/uajain/simple/raw\n> >\n> > Milan Zamazal (3):\n> >   libcamera: simple: Set the number of software ISP streams to 2\n> >   libcamera: simple: Exclude raw configurations from output conversions\n> >   libcamera: simple: Require metadata only when software ISP is used\n> >\n> > Umang Jain (3):\n> >   libcamera: simple: Support StreamRole::Raw in generateConfiguration()\n> >   libcamera: simple: Validate raw streams if requested\n> >   libcamera: simple: Enable capturing of raw streams\n> >\n> >  src/libcamera/pipeline/simple/simple.cpp | 166 ++++++++++++++++++-----\n> >  1 file changed, 131 insertions(+), 35 deletions(-)\n>","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 6787EC3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 18 Jul 2025 04:00:06 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E2AB068F8C;\n\tFri, 18 Jul 2025 06:00:04 +0200 (CEST)","from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4F34261508\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 18 Jul 2025 06:00:01 +0200 (CEST)","from [49.36.71.87] (helo=uajain) by fanzine2.igalia.com with\n\tesmtpsa \n\t(Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)\n\t(Exim) id 1uccGM-000Pmr-Vv; Fri, 18 Jul 2025 05:59:59 +0200"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=igalia.com header.i=@igalia.com\n\theader.b=\"h+fgnH02\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;\n\ts=20170329;\n\th=In-Reply-To:Content-Type:MIME-Version:References:Message-ID:\n\tSubject:Cc:To:From:Date:Sender:Reply-To:Content-Transfer-Encoding:Content-ID:\n\tContent-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n\t:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:\n\tList-Post:List-Owner:List-Archive;\n\tbh=XZ1fOy7SBKlhLhvu60JAffZcMo1tBQ820YqFtHFGpM4=;\n\tb=h+fgnH02O0GBv9iiMtNt/2WXf/\n\tzpY34vF3NPXsM1e3L/UeyHRSOV/Ksor7ugFJ688u8oHUGKRw2vtaQCLNjaxMe5mBmBiO0xFH06a+n\n\te8Aaf+5r0g4SVVMsDW7KYynZ9qQyc17d5j1AhJeiJMKcndkB5OxHMRpq9WmJ31h8jGEsMMad4e5UZ\n\tTTpJDEauxH5qEDpQsjlxo8rvqxJt0I4GvVYXrpf0Xmb5zygJb4P25RvrelcpFYbNY5B2C5rgKwdWi\n\tn5ckcIlOBd6qCyuGrLDsAph7iVpCatcOtXy02C7xQErC7L6FyeGkvdEyUcLeHgtdAjff4OT8nKvcA\n\thPxXr3yQ==;","Date":"Fri, 18 Jul 2025 09:30:02 +0530","From":"Umang Jain <uajain@igalia.com>","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"libcamera-devel@lists.libcamera.org, \n\tRobert Mader <robert.mader@collabora.com>","Subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","Message-ID":"<ebcn3dry2cqmljcfrjgorgzop6em5fljryalw2azqb36xxkbis@w7krd7jys4g6>","References":"<20250716142027.236277-1-uajain@igalia.com>\n\t<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"NeoMutt/20250510-dirty","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>"}},{"id":34929,"web_url":"https://patchwork.libcamera.org/comment/34929/","msgid":"<851pqdwx3r.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-07-18T11:35:04","subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Umang Jain <uajain@igalia.com> writes:\n\n> Hi Milan,\n>\n> On Thu, Jul 17, 2025 at 04:04:58PM +0200, Milan Zamazal wrote:\n>> Hi Umang,\n>> \n>> thank you for posting the patches.  How do you suggest to proceed with\n>> both the patch series (yours and mine) to avoid duplicate work and get\n>> closer to merging?\n>\n> Good question. I would suggest to test this series and see if it\n> addresses use-cases for the raw capture scenarios (maybe, I missed\n> something/corner-cases).\n>\n> We can cross review each other patches for starters. I've picked 3 of\n> your patches and based my patches on that. Going forward, either of us\n> can collect the relevant reviewed patches and post a single series as\n> collaborative efforts.\n>\n> I would also suggest to split off parallel patches (for e.g. colorspace\n> patches from your series) and see if we can progress them independently.\n> These are my thoughts, if you want to take an alternate approach - I am\n> willing to hear it as well!\n\nOK for me.\n\n>> From the technical standpoint, I wonder how it works without changing\n>> buffer handling in the simple pipeline.  Do you think\n>> https://patchwork.libcamera.org/patch/23785/ is not needed?\n>\n> It's changed in 6/6.\n\nAh, sorry, I was looking at patches from patchwork and that one was\nomitted there.\n\n>> Umang Jain <uajain@igalia.com> writes:\n>> \n>> > RFC series to enable raw capture on simple pipeline handler with\n>> > SoftISP enabled. I had a few thoughts on design of the features\n>> > when I was reviewing Milan's series [1]. Hence, I decided to crystallise\n>> > my thoughts and posted as RFC to gather more feedback (and some real\n>> > testing on supportedDevices[]).\n>> >\n>> > I have left few things to include from [1] for e.g. colorspace issues.\n>> > My goal currently is to address the core issue of raw capture with this\n>> > RFC.\n>> >\n>> > Testing branch [2]\n>> > Setup: RPi 3b + IMX219\n>> > Cases tested with cam:\n>> > \t- Single raw output\n>> > \t- Single processed output\n>> > \t- 1 Raw + 1 processed output\n>> >\n>> > One can propose more use-cases as part of their testing. If they turn\n>> > out to be complex, we can probably document it as \\todo, to get\n>> > addressed at a later stage.\n>> >\n>> > cam Output:\n>> > ===========\n>> >\n>> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -C5\n>> > [27:26:59.248233501] [2384]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n>> > [27:26:59.262004021] [2384]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n>> > [27:26:59.593703813] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n>> > [27:26:59.594050532] [2390]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n>> > [27:26:59.596620063] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n>> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n>> > [27:26:59.625957459] [2384]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW\n>> > [27:26:59.627666834] [2390]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 0\n>> > cam0: Capture 5 frames\n>> > 98819.750177 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200\n>> > 98819.783504 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200\n>> > 98819.816829 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 4147200\n>> > 98819.850156 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200\n>> > 98819.883484 (30.00 fps) cam0-stream0 seq: 000004 bytesused: 4147200\n>> >\n>> >\n>> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=viewfinder,width=1920,height=1080 -C5\n>> > [27:27:09.663699747] [2391]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n>> > [27:27:09.677708965] [2391]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n>> > [27:27:09.933555736] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n>> > [27:27:09.933821778] [2392]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n>> > [27:27:09.936308080] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n>> > Camera configuration adjusted\n>> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n>> > [27:27:09.965424746] [2391]  INFO Camera camera.cpp:1205 configuring streams: (0) 1916x1080-XRGB8888/Unset\n>> > [27:27:09.967118705] [2392]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n>> > [27:27:09.970895528] [2392]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n>> > cam0: Capture 5 frames\n>> > 98830.200120 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 8277120\n>> > 98830.233445 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 8277120\n>> > 98830.266770 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 8277120\n>> > 98831.033291 (1.30 fps) cam0-stream0 seq: 000025 bytesused: 8277120\n>> > 98831.799810 (1.30 fps) cam0-stream0 seq: 000048 bytesused: 8277120\n>> >\n>> >\n>> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -srole=viewfinder,width=1920,height=1080 -C10\n>> > [27:27:26.239476459] [2395]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n>> > [27:27:26.253694063] [2395]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n>> > [27:27:26.572276146] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n>> > [27:27:26.572539792] [2396]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n>> > [27:27:26.574856667] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n>> > Camera configuration adjusted\n>> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n>> > [27:27:26.603776146] [2395]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW (1) 1916x1080-XRGB8888/Unset\n>> > [27:27:26.605656303] [2396]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n>> > [27:27:26.609448803] [2396]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n>> > cam0: Capture 10 frames\n>> > 98846.739621 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200 cam0-stream1 seq: 000000 bytesused: 8277120\n>> > 98846.772946 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200 cam0-stream1 seq: 000001 bytesused: 8277120\n>> > 98846.806274 (30.00 fps) cam0-stream0 seq: 000002 bytesused: 4147200 cam0-stream1 seq: 000002 bytesused: 8277120\n>> > 98846.839601 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200 cam0-stream1 seq: 000003 bytesused: 8277120\n>> > 98847.539465 (1.43 fps) cam0-stream0 seq: 000024 bytesused: 4147200 cam0-stream1 seq: 000024 bytesused: 8277120\n>> > 98848.206006 (1.50 fps) cam0-stream0 seq: 000044 bytesused: 4147200 cam0-stream1 seq: 000044 bytesused: 8277120\n>> > 98848.872546 (1.50 fps) cam0-stream0 seq: 000064 bytesused: 4147200 cam0-stream1 seq: 000064 bytesused: 8277120\n>> > 98849.539084 (1.50 fps) cam0-stream0 seq: 000084 bytesused: 4147200 cam0-stream1 seq: 000084 bytesused: 8277120\n>> > 98850.205624 (1.50 fps) cam0-stream0 seq: 000104 bytesused: 4147200 cam0-stream1 seq: 000104 bytesused: 8277120\n>> > 98850.872164 (1.50 fps) cam0-stream0 seq: 000124 bytesused: 4147200 cam0-stream1 seq: 000124 bytesused: 8277120\n>> >\n>> > [1]: https://patchwork.libcamera.org/project/libcamera/list/?series=5281\n>> > [2]: https://gitlab.freedesktop.org/uajain/libcamera/-/commits/uajain/simple/raw\n>> >\n>> > Milan Zamazal (3):\n>> >   libcamera: simple: Set the number of software ISP streams to 2\n>> >   libcamera: simple: Exclude raw configurations from output conversions\n>> >   libcamera: simple: Require metadata only when software ISP is used\n>> >\n>> > Umang Jain (3):\n>> >   libcamera: simple: Support StreamRole::Raw in generateConfiguration()\n>> >   libcamera: simple: Validate raw streams if requested\n>> >   libcamera: simple: Enable capturing of raw streams\n>> >\n>> >  src/libcamera/pipeline/simple/simple.cpp | 166 ++++++++++++++++++-----\n>> >  1 file changed, 131 insertions(+), 35 deletions(-)\n>>","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 60DCEBE175\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 18 Jul 2025 11:35:13 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4A7FA68F9C;\n\tFri, 18 Jul 2025 13:35:12 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E65F26150F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 18 Jul 2025 13:35:10 +0200 (CEST)","from mail-wm1-f72.google.com (mail-wm1-f72.google.com\n\t[209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-56-Zejitb5zP52WDBdezKVOkA-1; Fri, 18 Jul 2025 07:35:08 -0400","by mail-wm1-f72.google.com with SMTP id\n\t5b1f17b1804b1-45624f0be48so11089365e9.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 18 Jul 2025 04:35:07 -0700 (PDT)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-4563b5a527asm17824225e9.1.2025.07.18.04.35.04\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 18 Jul 2025 04:35:05 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"TCLNByUY\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1752838509;\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\tin-reply-to:in-reply-to:references:references;\n\tbh=bD8gY0+m2v5DvQk+wgtb9vzhHM2Pe8r1BPhSa+4yL9s=;\n\tb=TCLNByUYDHJ9P5Upnbfsoz1IFYFzis4ynJIunXYrYzQtrQmw0nyKO3wglhwz42Hh7r0HPi\n\tc2WKEZV+PWVWtbLPkwNyG/4oeEfHUj8xByxIWLmNV18YGvkRLlRtlOFe0d5wqMf49esNUJ\n\tanVGyHulwpo7rcls+nsBOy2Ttben2HQ=","X-MC-Unique":"Zejitb5zP52WDBdezKVOkA-1","X-Mimecast-MFC-AGG-ID":"Zejitb5zP52WDBdezKVOkA_1752838507","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1752838506; x=1753443306;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=bD8gY0+m2v5DvQk+wgtb9vzhHM2Pe8r1BPhSa+4yL9s=;\n\tb=iEba1csWRHGqx0Z61KXeM0kXjvTCASh0vrQcB9hV/gfUfGR7LcL034lWg1+4YiuNs0\n\thgb3NSJ8C9wdoJERl8XEn/5rk6c1UJiaUv6O4cPBHx3TEshiT+w1Hc5AYGKI9ecmcbRs\n\toKRHMqfmLaT0NRQgtEPWrAPp6EF3dLWRfiV7XIgOqDmnffclXav7KePonGJxcutmrRng\n\tIRikUiqyXQkq8UW1/PGXgIedlAilpJ5FCaxmNQ85JKCF+PHGVztb7/bVepjf3xawTEOz\n\tY9J8cKojToEYr/Km+XjVh2FPgET3SOpWrLyTJkiEykgcVBh1PMfpdCrI+xb9+TiWHGrn\n\tWFtg==","X-Gm-Message-State":"AOJu0YzJXv/N0PcDXufpOo8MxnVF3vlhePKqKIpawqsM/Cqogd6RIsNr\n\tDeJajCznHf503OEAOQ5MK/cDVf4TpfszHSJcnpkSS94/ujWuCgp+3PoNSzkJN5M9kJ6bDYtaxlN\n\t3NFdTOIBWmsW9FoZ7YC8lgvnHspeJT/VbVTqNlnT62/RKzWNDeLkCw/Zx3XlJWkCQzGDJwNKsmt\n\txQAzzYTVg=","X-Gm-Gg":"ASbGncuBRQDVAzd6uEiwcmvbh/DWbRRyVPODh5aRKoY8/5tZpF3uY8Ap55ItwB4DTmM\n\t7h/zVzZs2rGS2TVYWoCR2qO62i0n9AvuYkDDULxeU5CsBM3i0yZqaRMDylGP1sEHl8ZWaa/vuXd\n\trd5nejW3a2BPaUQ3jbhXLLc2WZJXQAMFd4FW+w+Y/f9yRTA2V8o62RXY8/dHwDMI+QfQz4cff4k\n\tBiAQg6Tu7m76Yw1qIfmrSrNjlX4wCVWCHtHJJCgvOJl3K6yjFieOJ/CiHvOUrti21fjwI3lZN7o\n\tk33HM5oKhCadSSuLfhA8mVH+T95Y+p8Wnzo9rZ+TOQskWbaxkxMNjp1je2lNGfNlPb9zbQLMybj\n\tVORjiVqsJARHba2gn","X-Received":["by 2002:a05:600c:4586:b0:456:2142:7fa6 with SMTP id\n\t5b1f17b1804b1-4562e03df81mr111289285e9.12.1752838506445; \n\tFri, 18 Jul 2025 04:35:06 -0700 (PDT)","by 2002:a05:600c:4586:b0:456:2142:7fa6 with SMTP id\n\t5b1f17b1804b1-4562e03df81mr111288715e9.12.1752838505854; \n\tFri, 18 Jul 2025 04:35:05 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IFk7vrGviOGWm0r2tzVCFJzkIKoKFk/tPcRnL/v9rAIGXTEeUGM1ndPS+TFIyLYos5sDv5G6Q==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Umang Jain <uajain@igalia.com>","Cc":"libcamera-devel@lists.libcamera.org,  Robert Mader\n\t<robert.mader@collabora.com>","Subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","In-Reply-To":"<ebcn3dry2cqmljcfrjgorgzop6em5fljryalw2azqb36xxkbis@w7krd7jys4g6>\n\t(Umang Jain's message of \"Fri, 18 Jul 2025 09:30:02 +0530\")","References":"<20250716142027.236277-1-uajain@igalia.com>\n\t<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<ebcn3dry2cqmljcfrjgorgzop6em5fljryalw2azqb36xxkbis@w7krd7jys4g6>","Date":"Fri, 18 Jul 2025 13:35:04 +0200","Message-ID":"<851pqdwx3r.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"A8GUcWp2Ae4jVp-On5XfMYLzm42vb3BOFhD2I7bRYvA_1752838507","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>"}},{"id":34949,"web_url":"https://patchwork.libcamera.org/comment/34949/","msgid":"<175302633904.505382.3913794640677860558@ping.linuxembedded.co.uk>","date":"2025-07-20T15:45:39","subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi All,\n\nI'm trying to understand what the plan is on these multiple RAW series\nnow.\n\nQuoting Milan Zamazal (2025-07-18 12:35:04)\n> Umang Jain <uajain@igalia.com> writes:\n> \n> > Hi Milan,\n> >\n> > On Thu, Jul 17, 2025 at 04:04:58PM +0200, Milan Zamazal wrote:\n> >> Hi Umang,\n> >> \n> >> thank you for posting the patches.  How do you suggest to proceed with\n> >> both the patch series (yours and mine) to avoid duplicate work and get\n> >> closer to merging?\n> >\n> > Good question. I would suggest to test this series and see if it\n> > addresses use-cases for the raw capture scenarios (maybe, I missed\n> > something/corner-cases).\n> >\n> > We can cross review each other patches for starters. I've picked 3 of\n> > your patches and based my patches on that. Going forward, either of us\n> > can collect the relevant reviewed patches and post a single series as\n> > collaborative efforts.\n> >\n> > I would also suggest to split off parallel patches (for e.g. colorspace\n> > patches from your series) and see if we can progress them independently.\n> > These are my thoughts, if you want to take an alternate approach - I am\n> > willing to hear it as well!\n> \n> OK for me.\n\nThere's some curious differences between the two versions now ? On x13s\n- if I run Milans' branch I get a smaller resolution by default (and\nbetter performance because of that I guess) and also the RAW streams are\nfiltering better? \n\nkbingham@charm:~/iob/libcamera$ ./build/gcc/src/apps/cam/cam -c1 -I -srole=raw\n[1:18:54.693658992] [15767]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/build/gcc/src/ipa' to the IPA search path\n[1:18:54.698672581] [15767]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+82-1f6b50aa\n[1:18:54.736613408] [15768]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5675 24-0010': Rotation control not available, default to 0 degrees\n[1:18:54.736743817] [15768]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5675 24-0010': No sensor delays found in static properties. Assuming unverified defaults.\n[1:18:54.743968255] [15768]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n[1:18:54.744016950] [15768]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov5675.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n[1:18:54.744431351] [15768]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n[1:18:54.753486194] [15768]  INFO Pipeline pipeline_handler.cpp:646 libcamera is not installed. Loading platform configuration file from '/home/kbingham/iob/libcamera/src/libcamera/pipeline/virtual/data/virtual.yaml'\nUsing camera /base/soc@0/cci@ac4c000/i2c-bus@1/camera@10 as cam0\n0: 1296x972-SGRBG10_CSI2P/RAW\n * Pixelformat: SGRBG10_CSI2P (1296x972)-(2592x1944)/(+0,+0)\n  - 1296x972\n  - 2592x1944\n\n\nvs Umangs branch:\n\nkbingham@charm:~/iob/libcamera$ ./build/gcc/src/apps/cam/cam -c1 -I -srole=raw | grep -i pixelformat\n[1:20:02.718240596] [16578]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/build/gcc/src/ipa' to the IPA search path\n[1:20:02.725663876] [16578]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+81-d9b7a3bf\n[1:20:02.762329159] [16580]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5675 24-0010': Rotation control not available, default to 0 degrees\n[1:20:02.762467588] [16580]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5675 24-0010': No sensor delays found in static properties. Assuming unverified defaults.\n[1:20:02.769917481] [16580]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n[1:20:02.769956802] [16580]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov5675.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n[1:20:02.770373234] [16580]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n[1:20:02.780852414] [16580]  INFO Pipeline pipeline_handler.cpp:646 libcamera is not installed. Loading platform configuration file from '/home/kbingham/iob/libcamera/src/libcamera/pipeline/virtual/data/virtual.yaml'\n * Pixelformat: SGRBG10_CSI2P (4x2)-(2584x1944)/(+4,+2)\n * Pixelformat: ABGR8888 (4x2)-(2584x1944)/(+4,+2)\n * Pixelformat: XBGR8888 (4x2)-(2584x1944)/(+4,+2)\n * Pixelformat: BGR888 (4x2)-(2584x1944)/(+4,+2)\n * Pixelformat: RGB888 (4x2)-(2584x1944)/(+4,+2)\n * Pixelformat: ARGB8888 (4x2)-(2584x1944)/(+4,+2)\n * Pixelformat: XRGB8888 (4x2)-(2584x1944)/(+4,+2)\n\nSo I'm afraid I think Umangs' branch is doing something wrong at the\nmoment?\n\nI would like to target merging this RAW support by the end of this week\nprior to the next release point - could you let me know what the best\napproach is please ?\n\nRobert, could you test on your devices please ? Ultimately the RAW\nsupport is the important step we need to enable to start being able to\ncapture image cailbration images and tuning for devices...\n\nOnce this is merged we can work on enabling manual controls  for\nexposure and gain which will be the next requirements for tuning.\n\n--\nKieran\n\n\n\n> \n> >> From the technical standpoint, I wonder how it works without changing\n> >> buffer handling in the simple pipeline.  Do you think\n> >> https://patchwork.libcamera.org/patch/23785/ is not needed?\n> >\n> > It's changed in 6/6.\n> \n> Ah, sorry, I was looking at patches from patchwork and that one was\n> omitted there.\n> \n> >> Umang Jain <uajain@igalia.com> writes:\n> >> \n> >> > RFC series to enable raw capture on simple pipeline handler with\n> >> > SoftISP enabled. I had a few thoughts on design of the features\n> >> > when I was reviewing Milan's series [1]. Hence, I decided to crystallise\n> >> > my thoughts and posted as RFC to gather more feedback (and some real\n> >> > testing on supportedDevices[]).\n> >> >\n> >> > I have left few things to include from [1] for e.g. colorspace issues.\n> >> > My goal currently is to address the core issue of raw capture with this\n> >> > RFC.\n> >> >\n> >> > Testing branch [2]\n> >> > Setup: RPi 3b + IMX219\n> >> > Cases tested with cam:\n> >> >    - Single raw output\n> >> >    - Single processed output\n> >> >    - 1 Raw + 1 processed output\n> >> >\n> >> > One can propose more use-cases as part of their testing. If they turn\n> >> > out to be complex, we can probably document it as \\todo, to get\n> >> > addressed at a later stage.\n> >> >\n> >> > cam Output:\n> >> > ===========\n> >> >\n> >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -C5\n> >> > [27:26:59.248233501] [2384]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> >> > [27:26:59.262004021] [2384]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> >> > [27:26:59.593703813] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> >> > [27:26:59.594050532] [2390]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> >> > [27:26:59.596620063] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> >> > [27:26:59.625957459] [2384]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW\n> >> > [27:26:59.627666834] [2390]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 0\n> >> > cam0: Capture 5 frames\n> >> > 98819.750177 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200\n> >> > 98819.783504 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200\n> >> > 98819.816829 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 4147200\n> >> > 98819.850156 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200\n> >> > 98819.883484 (30.00 fps) cam0-stream0 seq: 000004 bytesused: 4147200\n> >> >\n> >> >\n> >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=viewfinder,width=1920,height=1080 -C5\n> >> > [27:27:09.663699747] [2391]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> >> > [27:27:09.677708965] [2391]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> >> > [27:27:09.933555736] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> >> > [27:27:09.933821778] [2392]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> >> > [27:27:09.936308080] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> >> > Camera configuration adjusted\n> >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> >> > [27:27:09.965424746] [2391]  INFO Camera camera.cpp:1205 configuring streams: (0) 1916x1080-XRGB8888/Unset\n> >> > [27:27:09.967118705] [2392]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> >> > [27:27:09.970895528] [2392]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> >> > cam0: Capture 5 frames\n> >> > 98830.200120 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 8277120\n> >> > 98830.233445 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 8277120\n> >> > 98830.266770 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 8277120\n> >> > 98831.033291 (1.30 fps) cam0-stream0 seq: 000025 bytesused: 8277120\n> >> > 98831.799810 (1.30 fps) cam0-stream0 seq: 000048 bytesused: 8277120\n> >> >\n> >> >\n> >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -srole=viewfinder,width=1920,height=1080 -C10\n> >> > [27:27:26.239476459] [2395]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> >> > [27:27:26.253694063] [2395]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> >> > [27:27:26.572276146] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> >> > [27:27:26.572539792] [2396]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> >> > [27:27:26.574856667] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> >> > Camera configuration adjusted\n> >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> >> > [27:27:26.603776146] [2395]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW (1) 1916x1080-XRGB8888/Unset\n> >> > [27:27:26.605656303] [2396]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> >> > [27:27:26.609448803] [2396]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> >> > cam0: Capture 10 frames\n> >> > 98846.739621 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200 cam0-stream1 seq: 000000 bytesused: 8277120\n> >> > 98846.772946 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200 cam0-stream1 seq: 000001 bytesused: 8277120\n> >> > 98846.806274 (30.00 fps) cam0-stream0 seq: 000002 bytesused: 4147200 cam0-stream1 seq: 000002 bytesused: 8277120\n> >> > 98846.839601 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200 cam0-stream1 seq: 000003 bytesused: 8277120\n> >> > 98847.539465 (1.43 fps) cam0-stream0 seq: 000024 bytesused: 4147200 cam0-stream1 seq: 000024 bytesused: 8277120\n> >> > 98848.206006 (1.50 fps) cam0-stream0 seq: 000044 bytesused: 4147200 cam0-stream1 seq: 000044 bytesused: 8277120\n> >> > 98848.872546 (1.50 fps) cam0-stream0 seq: 000064 bytesused: 4147200 cam0-stream1 seq: 000064 bytesused: 8277120\n> >> > 98849.539084 (1.50 fps) cam0-stream0 seq: 000084 bytesused: 4147200 cam0-stream1 seq: 000084 bytesused: 8277120\n> >> > 98850.205624 (1.50 fps) cam0-stream0 seq: 000104 bytesused: 4147200 cam0-stream1 seq: 000104 bytesused: 8277120\n> >> > 98850.872164 (1.50 fps) cam0-stream0 seq: 000124 bytesused: 4147200 cam0-stream1 seq: 000124 bytesused: 8277120\n> >> >\n> >> > [1]: https://patchwork.libcamera.org/project/libcamera/list/?series=5281\n> >> > [2]: https://gitlab.freedesktop.org/uajain/libcamera/-/commits/uajain/simple/raw\n> >> >\n> >> > Milan Zamazal (3):\n> >> >   libcamera: simple: Set the number of software ISP streams to 2\n> >> >   libcamera: simple: Exclude raw configurations from output conversions\n> >> >   libcamera: simple: Require metadata only when software ISP is used\n> >> >\n> >> > Umang Jain (3):\n> >> >   libcamera: simple: Support StreamRole::Raw in generateConfiguration()\n> >> >   libcamera: simple: Validate raw streams if requested\n> >> >   libcamera: simple: Enable capturing of raw streams\n> >> >\n> >> >  src/libcamera/pipeline/simple/simple.cpp | 166 ++++++++++++++++++-----\n> >> >  1 file changed, 131 insertions(+), 35 deletions(-)\n> >> \n>","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 C1E4AC3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 20 Jul 2025 15:45:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C87FD68FBB;\n\tSun, 20 Jul 2025 17:45:44 +0200 (CEST)","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 DAA5968F98\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 20 Jul 2025 17:45:42 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0BB1A7908;\n\tSun, 20 Jul 2025 17:45:05 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"GDjIlCH2\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1753026306;\n\tbh=ZkaNW6O3gEfUCkYqZxKjQJqlaf6v+iFR6kceZQzdNJA=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=GDjIlCH2fPG/LP/6R7ao7wqnyFDdiff2Hp4natiFksWS35VNovBNxe9VPo3at77Xk\n\ttShtmBxYWGTRhjuAAxucB+5w1ycpg5sSsz10CUgR4pibqqIuTnchR/D4chPubhh+hw\n\tKfpI6+IxyYa6+uN8HsciU5XZF3scUkPfXeUJ0D+8=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<851pqdwx3r.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","References":"<20250716142027.236277-1-uajain@igalia.com>\n\t<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<ebcn3dry2cqmljcfrjgorgzop6em5fljryalw2azqb36xxkbis@w7krd7jys4g6>\n\t<851pqdwx3r.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,\n\tRobert Mader <robert.mader@collabora.com>","To":"Milan Zamazal <mzamazal@redhat.com>, Umang Jain <uajain@igalia.com>","Date":"Sun, 20 Jul 2025 16:45:39 +0100","Message-ID":"<175302633904.505382.3913794640677860558@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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>"}},{"id":34951,"web_url":"https://patchwork.libcamera.org/comment/34951/","msgid":"<s2xf3wbtmpjlkipsxwlyhv53b5yzok7lpveoujhiqu7eziqe26@t65g4mxgw7qn>","date":"2025-07-21T04:17:30","subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","submitter":{"id":232,"url":"https://patchwork.libcamera.org/api/people/232/","name":"Umang Jain","email":"uajain@igalia.com"},"content":"Hi Kieran,\n\nOn Sun, Jul 20, 2025 at 04:45:39PM +0100, Kieran Bingham wrote:\n> Hi All,\n> \n> I'm trying to understand what the plan is on these multiple RAW series\n> now.\n\nI think I stated out a plan already and Milan seems to agree. There is a\nneed for cross-review/test cycles and one of us then need to take the lead\ntowards merging the series.\n> \n> Quoting Milan Zamazal (2025-07-18 12:35:04)\n> > Umang Jain <uajain@igalia.com> writes:\n> > \n> > > Hi Milan,\n> > >\n> > > On Thu, Jul 17, 2025 at 04:04:58PM +0200, Milan Zamazal wrote:\n> > >> Hi Umang,\n> > >> \n> > >> thank you for posting the patches.  How do you suggest to proceed with\n> > >> both the patch series (yours and mine) to avoid duplicate work and get\n> > >> closer to merging?\n> > >\n> > > Good question. I would suggest to test this series and see if it\n> > > addresses use-cases for the raw capture scenarios (maybe, I missed\n> > > something/corner-cases).\n> > >\n> > > We can cross review each other patches for starters. I've picked 3 of\n> > > your patches and based my patches on that. Going forward, either of us\n> > > can collect the relevant reviewed patches and post a single series as\n> > > collaborative efforts.\n> > >\n> > > I would also suggest to split off parallel patches (for e.g. colorspace\n> > > patches from your series) and see if we can progress them independently.\n> > > These are my thoughts, if you want to take an alternate approach - I am\n> > > willing to hear it as well!\n> > \n> > OK for me.\n> \n> There's some curious differences between the two versions now ? On x13s\n> - if I run Milans' branch I get a smaller resolution by default (and\n> better performance because of that I guess) and also the RAW streams are\n> filtering better? \n\nIf I take a look at current master branch - the status-quo I think is\nthat the filtering needs/defaults pickups needs work:\n\n[~/src/libcamera]$ git grep \\todo | grep -i 'pipeline/simple'\nsrc/libcamera/pipeline/simple/simple.cpp:\t * \\todo The sensor timestamp should be better estimated by connecting\nsrc/libcamera/pipeline/simple/simple.cpp:\t * \\todo Applying controls directly not only increases the risk of\nsrc/libcamera/pipeline/simple/simple.cpp:\t * \\todo Pick the best sensor output media bus format when the\nsrc/libcamera/pipeline/simple/simple.cpp:\t\t/* \\todo Create a libcamera core class to group format and size */\nsrc/libcamera/pipeline/simple/simple.cpp:\t * \\todo Implement a better way to pick the default format\n\nCurrently, it's just picking up the first entry in a given map etc, so I\nam not surprised there.\n\n> \n> kbingham@charm:~/iob/libcamera$ ./build/gcc/src/apps/cam/cam -c1 -I -srole=raw\n> [1:18:54.693658992] [15767]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/build/gcc/src/ipa' to the IPA search path\n> [1:18:54.698672581] [15767]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+82-1f6b50aa\n> [1:18:54.736613408] [15768]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5675 24-0010': Rotation control not available, default to 0 degrees\n> [1:18:54.736743817] [15768]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5675 24-0010': No sensor delays found in static properties. Assuming unverified defaults.\n> [1:18:54.743968255] [15768]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> [1:18:54.744016950] [15768]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov5675.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> [1:18:54.744431351] [15768]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> [1:18:54.753486194] [15768]  INFO Pipeline pipeline_handler.cpp:646 libcamera is not installed. Loading platform configuration file from '/home/kbingham/iob/libcamera/src/libcamera/pipeline/virtual/data/virtual.yaml'\n> Using camera /base/soc@0/cci@ac4c000/i2c-bus@1/camera@10 as cam0\n> 0: 1296x972-SGRBG10_CSI2P/RAW\n>  * Pixelformat: SGRBG10_CSI2P (1296x972)-(2592x1944)/(+0,+0)\n>   - 1296x972\n>   - 2592x1944\n> \n> \n> vs Umangs branch:\n> \n> kbingham@charm:~/iob/libcamera$ ./build/gcc/src/apps/cam/cam -c1 -I -srole=raw | grep -i pixelformat\n> [1:20:02.718240596] [16578]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/build/gcc/src/ipa' to the IPA search path\n> [1:20:02.725663876] [16578]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+81-d9b7a3bf\n> [1:20:02.762329159] [16580]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5675 24-0010': Rotation control not available, default to 0 degrees\n> [1:20:02.762467588] [16580]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5675 24-0010': No sensor delays found in static properties. Assuming unverified defaults.\n> [1:20:02.769917481] [16580]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> [1:20:02.769956802] [16580]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov5675.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> [1:20:02.770373234] [16580]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> [1:20:02.780852414] [16580]  INFO Pipeline pipeline_handler.cpp:646 libcamera is not installed. Loading platform configuration file from '/home/kbingham/iob/libcamera/src/libcamera/pipeline/virtual/data/virtual.yaml'\n>  * Pixelformat: SGRBG10_CSI2P (4x2)-(2584x1944)/(+4,+2)\n>  * Pixelformat: ABGR8888 (4x2)-(2584x1944)/(+4,+2)\n>  * Pixelformat: XBGR8888 (4x2)-(2584x1944)/(+4,+2)\n>  * Pixelformat: BGR888 (4x2)-(2584x1944)/(+4,+2)\n>  * Pixelformat: RGB888 (4x2)-(2584x1944)/(+4,+2)\n>  * Pixelformat: ARGB8888 (4x2)-(2584x1944)/(+4,+2)\n>  * Pixelformat: XRGB8888 (4x2)-(2584x1944)/(+4,+2)\n> \n> So I'm afraid I think Umangs' branch is doing something wrong at the\n> moment?\n\nI mostly have tested capturing points and see if the correct format/sensor\nsize are picked or not, for a given config, before sending out the RFC.\n\nThere might be some rough corners still, for e.g. you posted above where\nthe reporting of -srole=raw is giving out processed formats as well. So,\nthose rough corners needs some polishing before I post v1.\n\n> \n> I would like to target merging this RAW support by the end of this week\n> prior to the next release point - could you let me know what the best\n> approach is please ?\n\nI am not too sure, a week for proper testing, cross-reviews etc. seems\nshort. Milan what do you think ?\n\n> \n> Robert, could you test on your devices please ? Ultimately the RAW\n> support is the important step we need to enable to start being able to\n> capture image cailbration images and tuning for devices...\n> \n> Once this is merged we can work on enabling manual controls  for\n> exposure and gain which will be the next requirements for tuning.\n> \n> --\n> Kieran\n> \n> \n> \n> > \n> > >> From the technical standpoint, I wonder how it works without changing\n> > >> buffer handling in the simple pipeline.  Do you think\n> > >> https://patchwork.libcamera.org/patch/23785/ is not needed?\n> > >\n> > > It's changed in 6/6.\n> > \n> > Ah, sorry, I was looking at patches from patchwork and that one was\n> > omitted there.\n> > \n> > >> Umang Jain <uajain@igalia.com> writes:\n> > >> \n> > >> > RFC series to enable raw capture on simple pipeline handler with\n> > >> > SoftISP enabled. I had a few thoughts on design of the features\n> > >> > when I was reviewing Milan's series [1]. Hence, I decided to crystallise\n> > >> > my thoughts and posted as RFC to gather more feedback (and some real\n> > >> > testing on supportedDevices[]).\n> > >> >\n> > >> > I have left few things to include from [1] for e.g. colorspace issues.\n> > >> > My goal currently is to address the core issue of raw capture with this\n> > >> > RFC.\n> > >> >\n> > >> > Testing branch [2]\n> > >> > Setup: RPi 3b + IMX219\n> > >> > Cases tested with cam:\n> > >> >    - Single raw output\n> > >> >    - Single processed output\n> > >> >    - 1 Raw + 1 processed output\n> > >> >\n> > >> > One can propose more use-cases as part of their testing. If they turn\n> > >> > out to be complex, we can probably document it as \\todo, to get\n> > >> > addressed at a later stage.\n> > >> >\n> > >> > cam Output:\n> > >> > ===========\n> > >> >\n> > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -C5\n> > >> > [27:26:59.248233501] [2384]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> > >> > [27:26:59.262004021] [2384]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> > >> > [27:26:59.593703813] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > >> > [27:26:59.594050532] [2390]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > >> > [27:26:59.596620063] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> > >> > [27:26:59.625957459] [2384]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW\n> > >> > [27:26:59.627666834] [2390]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 0\n> > >> > cam0: Capture 5 frames\n> > >> > 98819.750177 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200\n> > >> > 98819.783504 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200\n> > >> > 98819.816829 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 4147200\n> > >> > 98819.850156 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200\n> > >> > 98819.883484 (30.00 fps) cam0-stream0 seq: 000004 bytesused: 4147200\n> > >> >\n> > >> >\n> > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=viewfinder,width=1920,height=1080 -C5\n> > >> > [27:27:09.663699747] [2391]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> > >> > [27:27:09.677708965] [2391]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> > >> > [27:27:09.933555736] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > >> > [27:27:09.933821778] [2392]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > >> > [27:27:09.936308080] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > >> > Camera configuration adjusted\n> > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> > >> > [27:27:09.965424746] [2391]  INFO Camera camera.cpp:1205 configuring streams: (0) 1916x1080-XRGB8888/Unset\n> > >> > [27:27:09.967118705] [2392]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> > >> > [27:27:09.970895528] [2392]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> > >> > cam0: Capture 5 frames\n> > >> > 98830.200120 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 8277120\n> > >> > 98830.233445 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 8277120\n> > >> > 98830.266770 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 8277120\n> > >> > 98831.033291 (1.30 fps) cam0-stream0 seq: 000025 bytesused: 8277120\n> > >> > 98831.799810 (1.30 fps) cam0-stream0 seq: 000048 bytesused: 8277120\n> > >> >\n> > >> >\n> > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -srole=viewfinder,width=1920,height=1080 -C10\n> > >> > [27:27:26.239476459] [2395]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> > >> > [27:27:26.253694063] [2395]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> > >> > [27:27:26.572276146] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > >> > [27:27:26.572539792] [2396]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > >> > [27:27:26.574856667] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > >> > Camera configuration adjusted\n> > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> > >> > [27:27:26.603776146] [2395]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW (1) 1916x1080-XRGB8888/Unset\n> > >> > [27:27:26.605656303] [2396]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> > >> > [27:27:26.609448803] [2396]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> > >> > cam0: Capture 10 frames\n> > >> > 98846.739621 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200 cam0-stream1 seq: 000000 bytesused: 8277120\n> > >> > 98846.772946 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200 cam0-stream1 seq: 000001 bytesused: 8277120\n> > >> > 98846.806274 (30.00 fps) cam0-stream0 seq: 000002 bytesused: 4147200 cam0-stream1 seq: 000002 bytesused: 8277120\n> > >> > 98846.839601 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200 cam0-stream1 seq: 000003 bytesused: 8277120\n> > >> > 98847.539465 (1.43 fps) cam0-stream0 seq: 000024 bytesused: 4147200 cam0-stream1 seq: 000024 bytesused: 8277120\n> > >> > 98848.206006 (1.50 fps) cam0-stream0 seq: 000044 bytesused: 4147200 cam0-stream1 seq: 000044 bytesused: 8277120\n> > >> > 98848.872546 (1.50 fps) cam0-stream0 seq: 000064 bytesused: 4147200 cam0-stream1 seq: 000064 bytesused: 8277120\n> > >> > 98849.539084 (1.50 fps) cam0-stream0 seq: 000084 bytesused: 4147200 cam0-stream1 seq: 000084 bytesused: 8277120\n> > >> > 98850.205624 (1.50 fps) cam0-stream0 seq: 000104 bytesused: 4147200 cam0-stream1 seq: 000104 bytesused: 8277120\n> > >> > 98850.872164 (1.50 fps) cam0-stream0 seq: 000124 bytesused: 4147200 cam0-stream1 seq: 000124 bytesused: 8277120\n> > >> >\n> > >> > [1]: https://patchwork.libcamera.org/project/libcamera/list/?series=5281\n> > >> > [2]: https://gitlab.freedesktop.org/uajain/libcamera/-/commits/uajain/simple/raw\n> > >> >\n> > >> > Milan Zamazal (3):\n> > >> >   libcamera: simple: Set the number of software ISP streams to 2\n> > >> >   libcamera: simple: Exclude raw configurations from output conversions\n> > >> >   libcamera: simple: Require metadata only when software ISP is used\n> > >> >\n> > >> > Umang Jain (3):\n> > >> >   libcamera: simple: Support StreamRole::Raw in generateConfiguration()\n> > >> >   libcamera: simple: Validate raw streams if requested\n> > >> >   libcamera: simple: Enable capturing of raw streams\n> > >> >\n> > >> >  src/libcamera/pipeline/simple/simple.cpp | 166 ++++++++++++++++++-----\n> > >> >  1 file changed, 131 insertions(+), 35 deletions(-)\n> > >> \n> >","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 55242BDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 21 Jul 2025 04:17:30 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 62E5168FBF;\n\tMon, 21 Jul 2025 06:17:29 +0200 (CEST)","from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E3EDE614F6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 21 Jul 2025 06:17:26 +0200 (CEST)","from [49.36.71.87] (helo=uajain) by fanzine2.igalia.com with\n\tesmtpsa \n\t(Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)\n\t(Exim) id 1udhxr-001YQi-M3; Mon, 21 Jul 2025 06:17:24 +0200"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=igalia.com header.i=@igalia.com\n\theader.b=\"k0RC5LLQ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;\n\ts=20170329;\n\th=In-Reply-To:Content-Transfer-Encoding:Content-Type:MIME-Version\n\t:References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:Content-ID:\n\tContent-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n\t:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:\n\tList-Post:List-Owner:List-Archive;\n\tbh=t5hlBhYNXD24bO8+6/qxwbGWbG1wzf/b+i34Z67zKdE=;\n\tb=k0RC5LLQr2m8F48+4su7OFkOrm\n\tNunrzQNjAdpL1dOv+pA0t9PG/2a4grlFpkHE81WPOE65R7x+W1rlC3uKeU6spmfdn8lbSxJhgJ30a\n\tx77MjGJ4nJgkYJR3qZ0i0v70YazUtHSnGfTyMe3OmizU6FOL+nwvXEaQ1eaOisachkxIhNrMUDLKP\n\t+dVQHUIyQVhKwQpkxIMEQZ9+DcQ9bWOXzBzAWOdeMCiC6gMh3eBDZne/zP5mGRb5Cp/RQJQIYm9UB\n\tu/eG47LRK2LjUIlTUi9epWzj9LA3CqZBhK6QvOd665vYs1QkqeGw6uhkD8C7JbszvKdwHUZFvC26M\n\t2OpJ78iQ==;","Date":"Mon, 21 Jul 2025 09:47:30 +0530","From":"Umang Jain <uajain@igalia.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Milan Zamazal <mzamazal@redhat.com>, \n\tlibcamera-devel@lists.libcamera.org,\n\tRobert Mader <robert.mader@collabora.com>","Subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","Message-ID":"<s2xf3wbtmpjlkipsxwlyhv53b5yzok7lpveoujhiqu7eziqe26@t65g4mxgw7qn>","References":"<20250716142027.236277-1-uajain@igalia.com>\n\t<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<ebcn3dry2cqmljcfrjgorgzop6em5fljryalw2azqb36xxkbis@w7krd7jys4g6>\n\t<851pqdwx3r.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<175302633904.505382.3913794640677860558@ping.linuxembedded.co.uk>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<175302633904.505382.3913794640677860558@ping.linuxembedded.co.uk>","User-Agent":"NeoMutt/20250510-dirty","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>"}},{"id":34958,"web_url":"https://patchwork.libcamera.org/comment/34958/","msgid":"<iyihd6wxnf3lgkvfmc5neuwru5b3nsrrlnlv7v37tr3z35oege@334w57lihvjb>","date":"2025-07-21T10:38:06","subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","submitter":{"id":232,"url":"https://patchwork.libcamera.org/api/people/232/","name":"Umang Jain","email":"uajain@igalia.com"},"content":"On Mon, Jul 21, 2025 at 09:47:30AM +0530, Umang Jain wrote:\n> Hi Kieran,\n> \n> On Sun, Jul 20, 2025 at 04:45:39PM +0100, Kieran Bingham wrote:\n> > Hi All,\n> > \n> > I'm trying to understand what the plan is on these multiple RAW series\n> > now.\n> \n> I think I stated out a plan already and Milan seems to agree. There is a\n> need for cross-review/test cycles and one of us then need to take the lead\n> towards merging the series.\n> > \n> > Quoting Milan Zamazal (2025-07-18 12:35:04)\n> > > Umang Jain <uajain@igalia.com> writes:\n> > > \n> > > > Hi Milan,\n> > > >\n> > > > On Thu, Jul 17, 2025 at 04:04:58PM +0200, Milan Zamazal wrote:\n> > > >> Hi Umang,\n> > > >> \n> > > >> thank you for posting the patches.  How do you suggest to proceed with\n> > > >> both the patch series (yours and mine) to avoid duplicate work and get\n> > > >> closer to merging?\n> > > >\n> > > > Good question. I would suggest to test this series and see if it\n> > > > addresses use-cases for the raw capture scenarios (maybe, I missed\n> > > > something/corner-cases).\n> > > >\n> > > > We can cross review each other patches for starters. I've picked 3 of\n> > > > your patches and based my patches on that. Going forward, either of us\n> > > > can collect the relevant reviewed patches and post a single series as\n> > > > collaborative efforts.\n> > > >\n> > > > I would also suggest to split off parallel patches (for e.g. colorspace\n> > > > patches from your series) and see if we can progress them independently.\n> > > > These are my thoughts, if you want to take an alternate approach - I am\n> > > > willing to hear it as well!\n> > > \n> > > OK for me.\n> > \n> > There's some curious differences between the two versions now ? On x13s\n> > - if I run Milans' branch I get a smaller resolution by default (and\n> > better performance because of that I guess) and also the RAW streams are\n> > filtering better? \n> \n> If I take a look at current master branch - the status-quo I think is\n> that the filtering needs/defaults pickups needs work:\n> \n> [~/src/libcamera]$ git grep \\todo | grep -i 'pipeline/simple'\n> src/libcamera/pipeline/simple/simple.cpp:\t * \\todo The sensor timestamp should be better estimated by connecting\n> src/libcamera/pipeline/simple/simple.cpp:\t * \\todo Applying controls directly not only increases the risk of\n> src/libcamera/pipeline/simple/simple.cpp:\t * \\todo Pick the best sensor output media bus format when the\n> src/libcamera/pipeline/simple/simple.cpp:\t\t/* \\todo Create a libcamera core class to group format and size */\n> src/libcamera/pipeline/simple/simple.cpp:\t * \\todo Implement a better way to pick the default format\n> \n> Currently, it's just picking up the first entry in a given map etc, so I\n> am not surprised there.\n> \n> > \n> > kbingham@charm:~/iob/libcamera$ ./build/gcc/src/apps/cam/cam -c1 -I -srole=raw\n> > [1:18:54.693658992] [15767]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/build/gcc/src/ipa' to the IPA search path\n> > [1:18:54.698672581] [15767]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+82-1f6b50aa\n> > [1:18:54.736613408] [15768]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5675 24-0010': Rotation control not available, default to 0 degrees\n> > [1:18:54.736743817] [15768]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5675 24-0010': No sensor delays found in static properties. Assuming unverified defaults.\n> > [1:18:54.743968255] [15768]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> > [1:18:54.744016950] [15768]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov5675.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > [1:18:54.744431351] [15768]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> > [1:18:54.753486194] [15768]  INFO Pipeline pipeline_handler.cpp:646 libcamera is not installed. Loading platform configuration file from '/home/kbingham/iob/libcamera/src/libcamera/pipeline/virtual/data/virtual.yaml'\n> > Using camera /base/soc@0/cci@ac4c000/i2c-bus@1/camera@10 as cam0\n> > 0: 1296x972-SGRBG10_CSI2P/RAW\n> >  * Pixelformat: SGRBG10_CSI2P (1296x972)-(2592x1944)/(+0,+0)\n> >   - 1296x972\n> >   - 2592x1944\n> > \n> > \n> > vs Umangs branch:\n> > \n> > kbingham@charm:~/iob/libcamera$ ./build/gcc/src/apps/cam/cam -c1 -I -srole=raw | grep -i pixelformat\n> > [1:20:02.718240596] [16578]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/build/gcc/src/ipa' to the IPA search path\n> > [1:20:02.725663876] [16578]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+81-d9b7a3bf\n> > [1:20:02.762329159] [16580]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5675 24-0010': Rotation control not available, default to 0 degrees\n> > [1:20:02.762467588] [16580]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5675 24-0010': No sensor delays found in static properties. Assuming unverified defaults.\n> > [1:20:02.769917481] [16580]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> > [1:20:02.769956802] [16580]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov5675.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > [1:20:02.770373234] [16580]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> > [1:20:02.780852414] [16580]  INFO Pipeline pipeline_handler.cpp:646 libcamera is not installed. Loading platform configuration file from '/home/kbingham/iob/libcamera/src/libcamera/pipeline/virtual/data/virtual.yaml'\n> >  * Pixelformat: SGRBG10_CSI2P (4x2)-(2584x1944)/(+4,+2)\n> >  * Pixelformat: ABGR8888 (4x2)-(2584x1944)/(+4,+2)\n> >  * Pixelformat: XBGR8888 (4x2)-(2584x1944)/(+4,+2)\n> >  * Pixelformat: BGR888 (4x2)-(2584x1944)/(+4,+2)\n> >  * Pixelformat: RGB888 (4x2)-(2584x1944)/(+4,+2)\n> >  * Pixelformat: ARGB8888 (4x2)-(2584x1944)/(+4,+2)\n> >  * Pixelformat: XRGB8888 (4x2)-(2584x1944)/(+4,+2)\n> > \n> > So I'm afraid I think Umangs' branch is doing something wrong at the\n> > moment?\n> \n> I mostly have tested capturing points and see if the correct format/sensor\n> size are picked or not, for a given config, before sending out the RFC.\n> \n> There might be some rough corners still, for e.g. you posted above where\n> the reporting of -srole=raw is giving out processed formats as well. So,\n> those rough corners needs some polishing before I post v1.\n> \n\nfwiw, I fixed up the RAW reporting and did some more initial testing, Output\nhere: https://paste.debian.net/1387016/\n\non my branch:\nhttps://gitlab.freedesktop.org/uajain/libcamera/-/tree/uajain/simple/raw\n> > \n> > I would like to target merging this RAW support by the end of this week\n> > prior to the next release point - could you let me know what the best\n> > approach is please ?\n> \n> I am not too sure, a week for proper testing, cross-reviews etc. seems\n> short. Milan what do you think ?\n> \n> > \n> > Robert, could you test on your devices please ? Ultimately the RAW\n> > support is the important step we need to enable to start being able to\n> > capture image cailbration images and tuning for devices...\n> > \n> > Once this is merged we can work on enabling manual controls  for\n> > exposure and gain which will be the next requirements for tuning.\n> > \n> > --\n> > Kieran\n> > \n> > \n> > \n> > > \n> > > >> From the technical standpoint, I wonder how it works without changing\n> > > >> buffer handling in the simple pipeline.  Do you think\n> > > >> https://patchwork.libcamera.org/patch/23785/ is not needed?\n> > > >\n> > > > It's changed in 6/6.\n> > > \n> > > Ah, sorry, I was looking at patches from patchwork and that one was\n> > > omitted there.\n> > > \n> > > >> Umang Jain <uajain@igalia.com> writes:\n> > > >> \n> > > >> > RFC series to enable raw capture on simple pipeline handler with\n> > > >> > SoftISP enabled. I had a few thoughts on design of the features\n> > > >> > when I was reviewing Milan's series [1]. Hence, I decided to crystallise\n> > > >> > my thoughts and posted as RFC to gather more feedback (and some real\n> > > >> > testing on supportedDevices[]).\n> > > >> >\n> > > >> > I have left few things to include from [1] for e.g. colorspace issues.\n> > > >> > My goal currently is to address the core issue of raw capture with this\n> > > >> > RFC.\n> > > >> >\n> > > >> > Testing branch [2]\n> > > >> > Setup: RPi 3b + IMX219\n> > > >> > Cases tested with cam:\n> > > >> >    - Single raw output\n> > > >> >    - Single processed output\n> > > >> >    - 1 Raw + 1 processed output\n> > > >> >\n> > > >> > One can propose more use-cases as part of their testing. If they turn\n> > > >> > out to be complex, we can probably document it as \\todo, to get\n> > > >> > addressed at a later stage.\n> > > >> >\n> > > >> > cam Output:\n> > > >> > ===========\n> > > >> >\n> > > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -C5\n> > > >> > [27:26:59.248233501] [2384]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> > > >> > [27:26:59.262004021] [2384]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> > > >> > [27:26:59.593703813] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > > >> > [27:26:59.594050532] [2390]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > > >> > [27:26:59.596620063] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> > > >> > [27:26:59.625957459] [2384]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW\n> > > >> > [27:26:59.627666834] [2390]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 0\n> > > >> > cam0: Capture 5 frames\n> > > >> > 98819.750177 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200\n> > > >> > 98819.783504 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200\n> > > >> > 98819.816829 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 4147200\n> > > >> > 98819.850156 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200\n> > > >> > 98819.883484 (30.00 fps) cam0-stream0 seq: 000004 bytesused: 4147200\n> > > >> >\n> > > >> >\n> > > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=viewfinder,width=1920,height=1080 -C5\n> > > >> > [27:27:09.663699747] [2391]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> > > >> > [27:27:09.677708965] [2391]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> > > >> > [27:27:09.933555736] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > > >> > [27:27:09.933821778] [2392]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > > >> > [27:27:09.936308080] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > > >> > Camera configuration adjusted\n> > > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> > > >> > [27:27:09.965424746] [2391]  INFO Camera camera.cpp:1205 configuring streams: (0) 1916x1080-XRGB8888/Unset\n> > > >> > [27:27:09.967118705] [2392]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> > > >> > [27:27:09.970895528] [2392]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> > > >> > cam0: Capture 5 frames\n> > > >> > 98830.200120 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 8277120\n> > > >> > 98830.233445 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 8277120\n> > > >> > 98830.266770 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 8277120\n> > > >> > 98831.033291 (1.30 fps) cam0-stream0 seq: 000025 bytesused: 8277120\n> > > >> > 98831.799810 (1.30 fps) cam0-stream0 seq: 000048 bytesused: 8277120\n> > > >> >\n> > > >> >\n> > > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -srole=viewfinder,width=1920,height=1080 -C10\n> > > >> > [27:27:26.239476459] [2395]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> > > >> > [27:27:26.253694063] [2395]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> > > >> > [27:27:26.572276146] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > > >> > [27:27:26.572539792] [2396]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > > >> > [27:27:26.574856667] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > > >> > Camera configuration adjusted\n> > > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> > > >> > [27:27:26.603776146] [2395]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW (1) 1916x1080-XRGB8888/Unset\n> > > >> > [27:27:26.605656303] [2396]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> > > >> > [27:27:26.609448803] [2396]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> > > >> > cam0: Capture 10 frames\n> > > >> > 98846.739621 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200 cam0-stream1 seq: 000000 bytesused: 8277120\n> > > >> > 98846.772946 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200 cam0-stream1 seq: 000001 bytesused: 8277120\n> > > >> > 98846.806274 (30.00 fps) cam0-stream0 seq: 000002 bytesused: 4147200 cam0-stream1 seq: 000002 bytesused: 8277120\n> > > >> > 98846.839601 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200 cam0-stream1 seq: 000003 bytesused: 8277120\n> > > >> > 98847.539465 (1.43 fps) cam0-stream0 seq: 000024 bytesused: 4147200 cam0-stream1 seq: 000024 bytesused: 8277120\n> > > >> > 98848.206006 (1.50 fps) cam0-stream0 seq: 000044 bytesused: 4147200 cam0-stream1 seq: 000044 bytesused: 8277120\n> > > >> > 98848.872546 (1.50 fps) cam0-stream0 seq: 000064 bytesused: 4147200 cam0-stream1 seq: 000064 bytesused: 8277120\n> > > >> > 98849.539084 (1.50 fps) cam0-stream0 seq: 000084 bytesused: 4147200 cam0-stream1 seq: 000084 bytesused: 8277120\n> > > >> > 98850.205624 (1.50 fps) cam0-stream0 seq: 000104 bytesused: 4147200 cam0-stream1 seq: 000104 bytesused: 8277120\n> > > >> > 98850.872164 (1.50 fps) cam0-stream0 seq: 000124 bytesused: 4147200 cam0-stream1 seq: 000124 bytesused: 8277120\n> > > >> >\n> > > >> > [1]: https://patchwork.libcamera.org/project/libcamera/list/?series=5281\n> > > >> > [2]: https://gitlab.freedesktop.org/uajain/libcamera/-/commits/uajain/simple/raw\n> > > >> >\n> > > >> > Milan Zamazal (3):\n> > > >> >   libcamera: simple: Set the number of software ISP streams to 2\n> > > >> >   libcamera: simple: Exclude raw configurations from output conversions\n> > > >> >   libcamera: simple: Require metadata only when software ISP is used\n> > > >> >\n> > > >> > Umang Jain (3):\n> > > >> >   libcamera: simple: Support StreamRole::Raw in generateConfiguration()\n> > > >> >   libcamera: simple: Validate raw streams if requested\n> > > >> >   libcamera: simple: Enable capturing of raw streams\n> > > >> >\n> > > >> >  src/libcamera/pipeline/simple/simple.cpp | 166 ++++++++++++++++++-----\n> > > >> >  1 file changed, 131 insertions(+), 35 deletions(-)\n> > > >> \n> > >","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 5B821BDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 21 Jul 2025 10:38:08 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DA1A368FCB;\n\tMon, 21 Jul 2025 12:38:07 +0200 (CEST)","from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9587E68FB1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 21 Jul 2025 12:38:04 +0200 (CEST)","from [49.36.71.87] (helo=uajain) by fanzine2.igalia.com with\n\tesmtpsa \n\t(Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)\n\t(Exim) id 1udnuC-001fP7-Vp; Mon, 21 Jul 2025 12:38:01 +0200"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=igalia.com header.i=@igalia.com\n\theader.b=\"chvEAwGL\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;\n\ts=20170329;\n\th=In-Reply-To:Content-Transfer-Encoding:Content-Type:MIME-Version\n\t:References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:Content-ID:\n\tContent-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n\t:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:\n\tList-Post:List-Owner:List-Archive;\n\tbh=47tAtoDRVll6/4Pc1ILsUD3k+o60lO3wk9ZD4IOKByk=;\n\tb=chvEAwGL6/HWOTe/8bd981VZaj\n\tfX0YEzVxmw96QQFfxvxEzOXbBhs964GwBycOdBhbjIbHZg0KrCyC6e0F2RJXWTYS4z62lEczvbCIN\n\tgkvweghh6MDfBHbuw3as9YIy5KO+mq/CcPapwUXt4lyhofIUEEmPNxXmSR1/SIxpubmA7kKf8biBN\n\ttmhSnPo3W9xHUp041R4yAm6E5h1N/vNyL+0CZ/iK8kIDjh+mbkI9ElYPvQO7ZAK0CaF0m5c7OQPja\n\tCMFLoyJGNHpFxuouh0IeMa+a3WAza7n7/QSwEu+ORf8DJjScGKmy2XKUXPadBdp0M7F3QQLnrPkTH\n\tUfHAbqgg==;","Date":"Mon, 21 Jul 2025 16:08:06 +0530","From":"Umang Jain <uajain@igalia.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Milan Zamazal <mzamazal@redhat.com>, \n\tlibcamera-devel@lists.libcamera.org,\n\tRobert Mader <robert.mader@collabora.com>","Subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","Message-ID":"<iyihd6wxnf3lgkvfmc5neuwru5b3nsrrlnlv7v37tr3z35oege@334w57lihvjb>","References":"<20250716142027.236277-1-uajain@igalia.com>\n\t<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<ebcn3dry2cqmljcfrjgorgzop6em5fljryalw2azqb36xxkbis@w7krd7jys4g6>\n\t<851pqdwx3r.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<175302633904.505382.3913794640677860558@ping.linuxembedded.co.uk>\n\t<s2xf3wbtmpjlkipsxwlyhv53b5yzok7lpveoujhiqu7eziqe26@t65g4mxgw7qn>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<s2xf3wbtmpjlkipsxwlyhv53b5yzok7lpveoujhiqu7eziqe26@t65g4mxgw7qn>","User-Agent":"NeoMutt/20250510-dirty","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>"}},{"id":34965,"web_url":"https://patchwork.libcamera.org/comment/34965/","msgid":"<175309678227.3806966.6655158146908785644@ping.linuxembedded.co.uk>","date":"2025-07-21T11:19:42","subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Umang Jain (2025-07-21 11:38:06)\n> On Mon, Jul 21, 2025 at 09:47:30AM +0530, Umang Jain wrote:\n> > Hi Kieran,\n> > \n> > On Sun, Jul 20, 2025 at 04:45:39PM +0100, Kieran Bingham wrote:\n> > > Hi All,\n> > > \n> > > I'm trying to understand what the plan is on these multiple RAW series\n> > > now.\n> > \n> > I think I stated out a plan already and Milan seems to agree. There is a\n> > need for cross-review/test cycles and one of us then need to take the lead\n> > towards merging the series.\n> > > \n> > > Quoting Milan Zamazal (2025-07-18 12:35:04)\n> > > > Umang Jain <uajain@igalia.com> writes:\n> > > > \n> > > > > Hi Milan,\n> > > > >\n> > > > > On Thu, Jul 17, 2025 at 04:04:58PM +0200, Milan Zamazal wrote:\n> > > > >> Hi Umang,\n> > > > >> \n> > > > >> thank you for posting the patches.  How do you suggest to proceed with\n> > > > >> both the patch series (yours and mine) to avoid duplicate work and get\n> > > > >> closer to merging?\n> > > > >\n> > > > > Good question. I would suggest to test this series and see if it\n> > > > > addresses use-cases for the raw capture scenarios (maybe, I missed\n> > > > > something/corner-cases).\n> > > > >\n> > > > > We can cross review each other patches for starters. I've picked 3 of\n> > > > > your patches and based my patches on that. Going forward, either of us\n> > > > > can collect the relevant reviewed patches and post a single series as\n> > > > > collaborative efforts.\n> > > > >\n> > > > > I would also suggest to split off parallel patches (for e.g. colorspace\n> > > > > patches from your series) and see if we can progress them independently.\n> > > > > These are my thoughts, if you want to take an alternate approach - I am\n> > > > > willing to hear it as well!\n\nIf there are multiple separate topics in a branch - splitting can help\nindeed. At the moment I'm only testing RAW support... as that's the\nfeature we need to be able to progress doing the calibrations for\nSoft {CPU/GPU}ISP based devices.\n\n\n> > > > \n> > > > OK for me.\n> > > \n> > > There's some curious differences between the two versions now ? On x13s\n> > > - if I run Milans' branch I get a smaller resolution by default (and\n> > > better performance because of that I guess) and also the RAW streams are\n> > > filtering better? \n> > \n> > If I take a look at current master branch - the status-quo I think is\n> > that the filtering needs/defaults pickups needs work:\n> > \n> > [~/src/libcamera]$ git grep \\todo | grep -i 'pipeline/simple'\n> > src/libcamera/pipeline/simple/simple.cpp:      * \\todo The sensor timestamp should be better estimated by connecting\n> > src/libcamera/pipeline/simple/simple.cpp:      * \\todo Applying controls directly not only increases the risk of\n> > src/libcamera/pipeline/simple/simple.cpp:      * \\todo Pick the best sensor output media bus format when the\n> > src/libcamera/pipeline/simple/simple.cpp:             /* \\todo Create a libcamera core class to group format and size */\n> > src/libcamera/pipeline/simple/simple.cpp:      * \\todo Implement a better way to pick the default format\n> > \n> > Currently, it's just picking up the first entry in a given map etc, so I\n> > am not surprised there.\n> > \n> > > \n> > > kbingham@charm:~/iob/libcamera$ ./build/gcc/src/apps/cam/cam -c1 -I -srole=raw\n> > > [1:18:54.693658992] [15767]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/build/gcc/src/ipa' to the IPA search path\n> > > [1:18:54.698672581] [15767]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+82-1f6b50aa\n> > > [1:18:54.736613408] [15768]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5675 24-0010': Rotation control not available, default to 0 degrees\n> > > [1:18:54.736743817] [15768]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5675 24-0010': No sensor delays found in static properties. Assuming unverified defaults.\n> > > [1:18:54.743968255] [15768]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> > > [1:18:54.744016950] [15768]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov5675.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > > [1:18:54.744431351] [15768]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> > > [1:18:54.753486194] [15768]  INFO Pipeline pipeline_handler.cpp:646 libcamera is not installed. Loading platform configuration file from '/home/kbingham/iob/libcamera/src/libcamera/pipeline/virtual/data/virtual.yaml'\n> > > Using camera /base/soc@0/cci@ac4c000/i2c-bus@1/camera@10 as cam0\n> > > 0: 1296x972-SGRBG10_CSI2P/RAW\n> > >  * Pixelformat: SGRBG10_CSI2P (1296x972)-(2592x1944)/(+0,+0)\n> > >   - 1296x972\n> > >   - 2592x1944\n> > > \n> > > \n> > > vs Umangs branch:\n> > > \n> > > kbingham@charm:~/iob/libcamera$ ./build/gcc/src/apps/cam/cam -c1 -I -srole=raw | grep -i pixelformat\n> > > [1:20:02.718240596] [16578]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/build/gcc/src/ipa' to the IPA search path\n> > > [1:20:02.725663876] [16578]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+81-d9b7a3bf\n> > > [1:20:02.762329159] [16580]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5675 24-0010': Rotation control not available, default to 0 degrees\n> > > [1:20:02.762467588] [16580]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5675 24-0010': No sensor delays found in static properties. Assuming unverified defaults.\n> > > [1:20:02.769917481] [16580]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> > > [1:20:02.769956802] [16580]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov5675.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > > [1:20:02.770373234] [16580]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> > > [1:20:02.780852414] [16580]  INFO Pipeline pipeline_handler.cpp:646 libcamera is not installed. Loading platform configuration file from '/home/kbingham/iob/libcamera/src/libcamera/pipeline/virtual/data/virtual.yaml'\n> > >  * Pixelformat: SGRBG10_CSI2P (4x2)-(2584x1944)/(+4,+2)\n> > >  * Pixelformat: ABGR8888 (4x2)-(2584x1944)/(+4,+2)\n> > >  * Pixelformat: XBGR8888 (4x2)-(2584x1944)/(+4,+2)\n> > >  * Pixelformat: BGR888 (4x2)-(2584x1944)/(+4,+2)\n> > >  * Pixelformat: RGB888 (4x2)-(2584x1944)/(+4,+2)\n> > >  * Pixelformat: ARGB8888 (4x2)-(2584x1944)/(+4,+2)\n> > >  * Pixelformat: XRGB8888 (4x2)-(2584x1944)/(+4,+2)\n> > > \n> > > So I'm afraid I think Umangs' branch is doing something wrong at the\n> > > moment?\n> > \n> > I mostly have tested capturing points and see if the correct format/sensor\n> > size are picked or not, for a given config, before sending out the RFC.\n> > \n> > There might be some rough corners still, for e.g. you posted above where\n> > the reporting of -srole=raw is giving out processed formats as well. So,\n> > those rough corners needs some polishing before I post v1.\n> > \n> \n> fwiw, I fixed up the RAW reporting and did some more initial testing, Output\n> here: https://paste.debian.net/1387016/\n> \n> on my branch:\n> https://gitlab.freedesktop.org/uajain/libcamera/-/tree/uajain/simple/raw\n> > > \n> > > I would like to target merging this RAW support by the end of this week\n\nSorry - I didn't mean 'this series' by saying 'this RAW' here.. I mean\nthe feature.\n\nI was looking at the point that Milan is now at v10 and was working -\nand passed on CI\n(https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1470120) -\nso I wanted to know how we get it merged - but now there is a competing\nseries ?\n\n> > > prior to the next release point - could you let me know what the best\n> > > approach is please ?\n> > \n> > I am not too sure, a week for proper testing, cross-reviews etc. seems\n> > short. Milan what do you think ?\n\nWhich leaves me confused. Is this series supposed to superceed Milan's?\nShouldn't it then have the same title and be v11 ?\n\nIf there are issues in Milan's series - would it make sense to post\nfixup patches to show the changes against that series?\n\n> > > Robert, could you test on your devices please ? Ultimately the RAW\n> > > support is the important step we need to enable to start being able to\n> > > capture image cailbration images and tuning for devices...\n> > > \n> > > Once this is merged we can work on enabling manual controls  for\n\nI said 'this' again while on the 'new' series... Perhaps I should have\ncontinued the discussion on the 'first' (milans) series?\n\nI'll wait to hear what you two decide is correct for merging RAW support\nto simple pipeline handler. At this stage a clear 'v11' might help make\nthings clearer. But please coordinate if there are two developers\nworking on the same topic.\n\n--\nKieran\n\n\n> > > exposure and gain which will be the next requirements for tuning.\n> > > \n> > > --\n> > > Kieran\n> > > \n> > > \n> > > \n> > > > \n> > > > >> From the technical standpoint, I wonder how it works without changing\n> > > > >> buffer handling in the simple pipeline.  Do you think\n> > > > >> https://patchwork.libcamera.org/patch/23785/ is not needed?\n> > > > >\n> > > > > It's changed in 6/6.\n> > > > \n> > > > Ah, sorry, I was looking at patches from patchwork and that one was\n> > > > omitted there.\n> > > > \n> > > > >> Umang Jain <uajain@igalia.com> writes:\n> > > > >> \n> > > > >> > RFC series to enable raw capture on simple pipeline handler with\n> > > > >> > SoftISP enabled. I had a few thoughts on design of the features\n> > > > >> > when I was reviewing Milan's series [1]. Hence, I decided to crystallise\n> > > > >> > my thoughts and posted as RFC to gather more feedback (and some real\n> > > > >> > testing on supportedDevices[]).\n> > > > >> >\n> > > > >> > I have left few things to include from [1] for e.g. colorspace issues.\n> > > > >> > My goal currently is to address the core issue of raw capture with this\n> > > > >> > RFC.\n> > > > >> >\n> > > > >> > Testing branch [2]\n> > > > >> > Setup: RPi 3b + IMX219\n> > > > >> > Cases tested with cam:\n> > > > >> >    - Single raw output\n> > > > >> >    - Single processed output\n> > > > >> >    - 1 Raw + 1 processed output\n> > > > >> >\n> > > > >> > One can propose more use-cases as part of their testing. If they turn\n> > > > >> > out to be complex, we can probably document it as \\todo, to get\n> > > > >> > addressed at a later stage.\n> > > > >> >\n> > > > >> > cam Output:\n> > > > >> > ===========\n> > > > >> >\n> > > > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -C5\n> > > > >> > [27:26:59.248233501] [2384]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> > > > >> > [27:26:59.262004021] [2384]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> > > > >> > [27:26:59.593703813] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > > > >> > [27:26:59.594050532] [2390]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > > > >> > [27:26:59.596620063] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > > > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> > > > >> > [27:26:59.625957459] [2384]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW\n> > > > >> > [27:26:59.627666834] [2390]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 0\n> > > > >> > cam0: Capture 5 frames\n> > > > >> > 98819.750177 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200\n> > > > >> > 98819.783504 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200\n> > > > >> > 98819.816829 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 4147200\n> > > > >> > 98819.850156 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200\n> > > > >> > 98819.883484 (30.00 fps) cam0-stream0 seq: 000004 bytesused: 4147200\n> > > > >> >\n> > > > >> >\n> > > > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=viewfinder,width=1920,height=1080 -C5\n> > > > >> > [27:27:09.663699747] [2391]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> > > > >> > [27:27:09.677708965] [2391]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> > > > >> > [27:27:09.933555736] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > > > >> > [27:27:09.933821778] [2392]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > > > >> > [27:27:09.936308080] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > > > >> > Camera configuration adjusted\n> > > > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> > > > >> > [27:27:09.965424746] [2391]  INFO Camera camera.cpp:1205 configuring streams: (0) 1916x1080-XRGB8888/Unset\n> > > > >> > [27:27:09.967118705] [2392]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> > > > >> > [27:27:09.970895528] [2392]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> > > > >> > cam0: Capture 5 frames\n> > > > >> > 98830.200120 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 8277120\n> > > > >> > 98830.233445 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 8277120\n> > > > >> > 98830.266770 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 8277120\n> > > > >> > 98831.033291 (1.30 fps) cam0-stream0 seq: 000025 bytesused: 8277120\n> > > > >> > 98831.799810 (1.30 fps) cam0-stream0 seq: 000048 bytesused: 8277120\n> > > > >> >\n> > > > >> >\n> > > > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -srole=viewfinder,width=1920,height=1080 -C10\n> > > > >> > [27:27:26.239476459] [2395]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> > > > >> > [27:27:26.253694063] [2395]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> > > > >> > [27:27:26.572276146] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > > > >> > [27:27:26.572539792] [2396]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> > > > >> > [27:27:26.574856667] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> > > > >> > Camera configuration adjusted\n> > > > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> > > > >> > [27:27:26.603776146] [2395]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW (1) 1916x1080-XRGB8888/Unset\n> > > > >> > [27:27:26.605656303] [2396]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> > > > >> > [27:27:26.609448803] [2396]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> > > > >> > cam0: Capture 10 frames\n> > > > >> > 98846.739621 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200 cam0-stream1 seq: 000000 bytesused: 8277120\n> > > > >> > 98846.772946 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200 cam0-stream1 seq: 000001 bytesused: 8277120\n> > > > >> > 98846.806274 (30.00 fps) cam0-stream0 seq: 000002 bytesused: 4147200 cam0-stream1 seq: 000002 bytesused: 8277120\n> > > > >> > 98846.839601 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200 cam0-stream1 seq: 000003 bytesused: 8277120\n> > > > >> > 98847.539465 (1.43 fps) cam0-stream0 seq: 000024 bytesused: 4147200 cam0-stream1 seq: 000024 bytesused: 8277120\n> > > > >> > 98848.206006 (1.50 fps) cam0-stream0 seq: 000044 bytesused: 4147200 cam0-stream1 seq: 000044 bytesused: 8277120\n> > > > >> > 98848.872546 (1.50 fps) cam0-stream0 seq: 000064 bytesused: 4147200 cam0-stream1 seq: 000064 bytesused: 8277120\n> > > > >> > 98849.539084 (1.50 fps) cam0-stream0 seq: 000084 bytesused: 4147200 cam0-stream1 seq: 000084 bytesused: 8277120\n> > > > >> > 98850.205624 (1.50 fps) cam0-stream0 seq: 000104 bytesused: 4147200 cam0-stream1 seq: 000104 bytesused: 8277120\n> > > > >> > 98850.872164 (1.50 fps) cam0-stream0 seq: 000124 bytesused: 4147200 cam0-stream1 seq: 000124 bytesused: 8277120\n> > > > >> >\n> > > > >> > [1]: https://patchwork.libcamera.org/project/libcamera/list/?series=5281\n> > > > >> > [2]: https://gitlab.freedesktop.org/uajain/libcamera/-/commits/uajain/simple/raw\n> > > > >> >\n> > > > >> > Milan Zamazal (3):\n> > > > >> >   libcamera: simple: Set the number of software ISP streams to 2\n> > > > >> >   libcamera: simple: Exclude raw configurations from output conversions\n> > > > >> >   libcamera: simple: Require metadata only when software ISP is used\n> > > > >> >\n> > > > >> > Umang Jain (3):\n> > > > >> >   libcamera: simple: Support StreamRole::Raw in generateConfiguration()\n> > > > >> >   libcamera: simple: Validate raw streams if requested\n> > > > >> >   libcamera: simple: Enable capturing of raw streams\n> > > > >> >\n> > > > >> >  src/libcamera/pipeline/simple/simple.cpp | 166 ++++++++++++++++++-----\n> > > > >> >  1 file changed, 131 insertions(+), 35 deletions(-)\n> > > > >> \n> > > >","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 D3C86C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 21 Jul 2025 11:19:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id F3CDA68FE1;\n\tMon, 21 Jul 2025 13:19:50 +0200 (CEST)","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 B460F68FD0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 21 Jul 2025 13:19:49 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id E15398BF;\n\tMon, 21 Jul 2025 13:19:08 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"JmUKQ0/M\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1753096749;\n\tbh=dKsjOd6FpwZ9E1zy4ocrtBr+wdmJ/TJEbQizLK28sWg=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=JmUKQ0/MLiNORUb5WZAwn0/VF1nDQraHdP+Qh1GklQejX0qNew4lxADn6RqKkZHdf\n\t9VXAyn/uj7Ta5/6CE/oTMgy2WMJi/ssxdnQLqMN6KRG/DLHJRLJo7BD9aAVn7otb8y\n\t0+YLZfg+lTXAsH7BQ/06nUWBATkYTAfpC85MoypM=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<iyihd6wxnf3lgkvfmc5neuwru5b3nsrrlnlv7v37tr3z35oege@334w57lihvjb>","References":"<20250716142027.236277-1-uajain@igalia.com>\n\t<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<ebcn3dry2cqmljcfrjgorgzop6em5fljryalw2azqb36xxkbis@w7krd7jys4g6>\n\t<851pqdwx3r.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<175302633904.505382.3913794640677860558@ping.linuxembedded.co.uk>\n\t<s2xf3wbtmpjlkipsxwlyhv53b5yzok7lpveoujhiqu7eziqe26@t65g4mxgw7qn>\n\t<iyihd6wxnf3lgkvfmc5neuwru5b3nsrrlnlv7v37tr3z35oege@334w57lihvjb>","Subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Milan Zamazal <mzamazal@redhat.com>, libcamera-devel@lists.libcamera.org,\n\tRobert Mader <robert.mader@collabora.com>","To":"Umang Jain <uajain@igalia.com>","Date":"Mon, 21 Jul 2025 12:19:42 +0100","Message-ID":"<175309678227.3806966.6655158146908785644@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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>"}},{"id":35004,"web_url":"https://patchwork.libcamera.org/comment/35004/","msgid":"<85zfcx9srh.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-07-21T20:46:26","subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Kieran,\n\nKieran Bingham <kieran.bingham@ideasonboard.com> writes:\n\n> Quoting Umang Jain (2025-07-21 11:38:06)\n>> On Mon, Jul 21, 2025 at 09:47:30AM +0530, Umang Jain wrote:\n>> > Hi Kieran,\n>\n>> > \n>> > On Sun, Jul 20, 2025 at 04:45:39PM +0100, Kieran Bingham wrote:\n>> > > Hi All,\n>> > > \n>> > > I'm trying to understand what the plan is on these multiple RAW series\n>> > > now.\n>> > \n>> > I think I stated out a plan already and Milan seems to agree. There is a\n>> > need for cross-review/test cycles and one of us then need to take the lead\n>> > towards merging the series.\n>> > > \n>> > > Quoting Milan Zamazal (2025-07-18 12:35:04)\n>> > > > Umang Jain <uajain@igalia.com> writes:\n>> > > > \n>> > > > > Hi Milan,\n>> > > > >\n>> > > > > On Thu, Jul 17, 2025 at 04:04:58PM +0200, Milan Zamazal wrote:\n>> > > > >> Hi Umang,\n>> > > > >> \n>> > > > >> thank you for posting the patches.  How do you suggest to proceed with\n>> > > > >> both the patch series (yours and mine) to avoid duplicate work and get\n>> > > > >> closer to merging?\n>> > > > >\n>> > > > > Good question. I would suggest to test this series and see if it\n>> > > > > addresses use-cases for the raw capture scenarios (maybe, I missed\n>> > > > > something/corner-cases).\n>> > > > >\n>> > > > > We can cross review each other patches for starters. I've picked 3 of\n>> > > > > your patches and based my patches on that. Going forward, either of us\n>> > > > > can collect the relevant reviewed patches and post a single series as\n>> > > > > collaborative efforts.\n>> > > > >\n>> > > > > I would also suggest to split off parallel patches (for e.g. colorspace\n>> > > > > patches from your series) and see if we can progress them independently.\n>> > > > > These are my thoughts, if you want to take an alternate approach - I am\n>> > > > > willing to hear it as well!\n>\n> If there are multiple separate topics in a branch - splitting can help\n> indeed. At the moment I'm only testing RAW support... as that's the\n> feature we need to be able to progress doing the calibrations for\n> Soft {CPU/GPU}ISP based devices.\n>\n>\n>> > > > \n>> > > > OK for me.\n>> > > \n>> > > There's some curious differences between the two versions now ? On x13s\n>> > > - if I run Milans' branch I get a smaller resolution by default (and\n>> > > better performance because of that I guess) and also the RAW streams are\n>> > > filtering better? \n>> > \n>> > If I take a look at current master branch - the status-quo I think is\n>> > that the filtering needs/defaults pickups needs work:\n>> > \n>> > [~/src/libcamera]$ git grep \\todo | grep -i 'pipeline/simple'\n>> > src/libcamera/pipeline/simple/simple.cpp: * \\todo The sensor timestamp should be better estimated by connecting\n>> > src/libcamera/pipeline/simple/simple.cpp: * \\todo Applying controls directly not only increases the risk of\n>> > src/libcamera/pipeline/simple/simple.cpp: * \\todo Pick the best sensor output media bus format when the\n>> > src/libcamera/pipeline/simple/simple.cpp: /* \\todo Create a libcamera core class to group format and size */\n>> > src/libcamera/pipeline/simple/simple.cpp: * \\todo Implement a better way to pick the default format\n>> > \n>> > Currently, it's just picking up the first entry in a given map etc, so I\n>> > am not surprised there.\n>> > \n>> > > \n>> > > kbingham@charm:~/iob/libcamera$ ./build/gcc/src/apps/cam/cam -c1 -I -srole=raw\n>> > > [1:18:54.693658992] [15767]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/build/gcc/src/ipa' to the IPA search path\n>> > > [1:18:54.698672581] [15767]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+82-1f6b50aa\n>> > > [1:18:54.736613408] [15768]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5675 24-0010': Rotation control not available, default to 0 degrees\n>> > > [1:18:54.736743817] [15768]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5675 24-0010': No sensor delays found in static properties. Assuming unverified defaults.\n>> > > [1:18:54.743968255] [15768]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n>> > > [1:18:54.744016950] [15768]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov5675.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n>> > > [1:18:54.744431351] [15768]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n>> > > [1:18:54.753486194] [15768]  INFO Pipeline pipeline_handler.cpp:646 libcamera is not installed. Loading platform configuration file from '/home/kbingham/iob/libcamera/src/libcamera/pipeline/virtual/data/virtual.yaml'\n>> > > Using camera /base/soc@0/cci@ac4c000/i2c-bus@1/camera@10 as cam0\n>> > > 0: 1296x972-SGRBG10_CSI2P/RAW\n>> > >  * Pixelformat: SGRBG10_CSI2P (1296x972)-(2592x1944)/(+0,+0)\n>> > >   - 1296x972\n>> > >   - 2592x1944\n>> > > \n>> > > \n>> > > vs Umangs branch:\n>> > > \n>> > > kbingham@charm:~/iob/libcamera$ ./build/gcc/src/apps/cam/cam -c1 -I -srole=raw | grep -i pixelformat\n>> > > [1:20:02.718240596] [16578]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/build/gcc/src/ipa' to the IPA search path\n>> > > [1:20:02.725663876] [16578]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+81-d9b7a3bf\n>> > > [1:20:02.762329159] [16580]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5675 24-0010': Rotation control not available, default to 0 degrees\n>> > > [1:20:02.762467588] [16580]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5675 24-0010': No sensor delays found in static properties. Assuming unverified defaults.\n>> > > [1:20:02.769917481] [16580]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n>> > > [1:20:02.769956802] [16580]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov5675.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n>> > > [1:20:02.770373234] [16580]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n>> > > [1:20:02.780852414] [16580]  INFO Pipeline pipeline_handler.cpp:646 libcamera is not installed. Loading platform configuration file from '/home/kbingham/iob/libcamera/src/libcamera/pipeline/virtual/data/virtual.yaml'\n>> > >  * Pixelformat: SGRBG10_CSI2P (4x2)-(2584x1944)/(+4,+2)\n>> > >  * Pixelformat: ABGR8888 (4x2)-(2584x1944)/(+4,+2)\n>> > >  * Pixelformat: XBGR8888 (4x2)-(2584x1944)/(+4,+2)\n>> > >  * Pixelformat: BGR888 (4x2)-(2584x1944)/(+4,+2)\n>> > >  * Pixelformat: RGB888 (4x2)-(2584x1944)/(+4,+2)\n>> > >  * Pixelformat: ARGB8888 (4x2)-(2584x1944)/(+4,+2)\n>> > >  * Pixelformat: XRGB8888 (4x2)-(2584x1944)/(+4,+2)\n>> > > \n>> > > So I'm afraid I think Umangs' branch is doing something wrong at the\n>> > > moment?\n>> > \n>> > I mostly have tested capturing points and see if the correct format/sensor\n>> > size are picked or not, for a given config, before sending out the RFC.\n>> > \n>> > There might be some rough corners still, for e.g. you posted above where\n>> > the reporting of -srole=raw is giving out processed formats as well. So,\n>> > those rough corners needs some polishing before I post v1.\n>> > \n>> \n>> fwiw, I fixed up the RAW reporting and did some more initial testing, Output\n>> here: https://paste.debian.net/1387016/\n>> \n>> on my branch:\n>> https://gitlab.freedesktop.org/uajain/libcamera/-/tree/uajain/simple/raw\n>> > > \n>> > > I would like to target merging this RAW support by the end of this week\n>\n> Sorry - I didn't mean 'this series' by saying 'this RAW' here.. I mean\n> the feature.\n\nWe can try but let's be careful not to break anything what hasn't been\nbroken before.\n\n> I was looking at the point that Milan is now at v10 and was working -\n> and passed on CI\n> (https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1470120) -\n> so I wanted to know how we get it merged - but now there is a competing\n> series ?\n\nI understand Umang's series as a way to demonstrate an alternative\napproach to do some of the things and my patches need improvements in\nsome of those areas.  It's indeed hard to track this for everybody but\nthe recent Umang's comments to my patches help.\n\n>> > > prior to the next release point - could you let me know what the best\n>> > > approach is please ?\n>> > \n>> > I am not too sure, a week for proper testing, cross-reviews etc. seems\n>> > short. Milan what do you think ?\n>\n> Which leaves me confused. Is this series supposed to superceed Milan's?\n> Shouldn't it then have the same title and be v11 ?\n>\n> If there are issues in Milan's series - would it make sense to post\n> fixup patches to show the changes against that series?\n>\n>> > > Robert, could you test on your devices please ? Ultimately the RAW\n>> > > support is the important step we need to enable to start being able to\n>> > > capture image cailbration images and tuning for devices...\n>> > > \n>> > > Once this is merged we can work on enabling manual controls  for\n>\n> I said 'this' again while on the 'new' series... Perhaps I should have\n> continued the discussion on the 'first' (milans) series?\n>\n> I'll wait to hear what you two decide is correct for merging RAW support\n> to simple pipeline handler. At this stage a clear 'v11' might help make\n> things clearer. But please coordinate if there are two developers\n> working on the same topic.\n\nI can work on v11 tomorrow, hopefully it brings both the series closer\nto each other.  I think simply continuing with my series is the best, as\nit evolves from an already partially reviewed and tested code and\nchanges to it can be tracked without much trouble.\n\n>\n> --\n> Kieran\n>\n>\n>> > > exposure and gain which will be the next requirements for tuning.\n>> > > \n>> > > --\n>> > > Kieran\n>> > > \n>> > > \n>> > > \n>> > > > \n>> > > > >> From the technical standpoint, I wonder how it works without changing\n>> > > > >> buffer handling in the simple pipeline.  Do you think\n>> > > > >> https://patchwork.libcamera.org/patch/23785/ is not needed?\n>> > > > >\n>> > > > > It's changed in 6/6.\n>> > > > \n>> > > > Ah, sorry, I was looking at patches from patchwork and that one was\n>> > > > omitted there.\n>> > > > \n>> > > > >> Umang Jain <uajain@igalia.com> writes:\n>> > > > >> \n>> > > > >> > RFC series to enable raw capture on simple pipeline handler with\n>> > > > >> > SoftISP enabled. I had a few thoughts on design of the features\n>> > > > >> > when I was reviewing Milan's series [1]. Hence, I decided to crystallise\n>> > > > >> > my thoughts and posted as RFC to gather more feedback (and some real\n>> > > > >> > testing on supportedDevices[]).\n>> > > > >> >\n>> > > > >> > I have left few things to include from [1] for e.g. colorspace issues.\n>> > > > >> > My goal currently is to address the core issue of raw capture with this\n>> > > > >> > RFC.\n>> > > > >> >\n>> > > > >> > Testing branch [2]\n>> > > > >> > Setup: RPi 3b + IMX219\n>> > > > >> > Cases tested with cam:\n>> > > > >> >    - Single raw output\n>> > > > >> >    - Single processed output\n>> > > > >> >    - 1 Raw + 1 processed output\n>> > > > >> >\n>> > > > >> > One can propose more use-cases as part of their testing. If they turn\n>> > > > >> > out to be complex, we can probably document it as \\todo, to get\n>> > > > >> > addressed at a later stage.\n>> > > > >> >\n>> > > > >> > cam Output:\n>> > > > >> > ===========\n>> > > > >> >\n>> > > > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -C5\n>> > > > >> > [27:26:59.248233501] [2384]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n>> > > > >> > [27:26:59.262004021] [2384]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n>> > > > >> > [27:26:59.593703813] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n>> > > > >> > [27:26:59.594050532] [2390]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n>> > > > >> > [27:26:59.596620063] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n>> > > > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n>> > > > >> > [27:26:59.625957459] [2384]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW\n>> > > > >> > [27:26:59.627666834] [2390]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 0\n>> > > > >> > cam0: Capture 5 frames\n>> > > > >> > 98819.750177 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200\n>> > > > >> > 98819.783504 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200\n>> > > > >> > 98819.816829 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 4147200\n>> > > > >> > 98819.850156 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200\n>> > > > >> > 98819.883484 (30.00 fps) cam0-stream0 seq: 000004 bytesused: 4147200\n>> > > > >> >\n>> > > > >> >\n>> > > > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=viewfinder,width=1920,height=1080 -C5\n>> > > > >> > [27:27:09.663699747] [2391]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n>> > > > >> > [27:27:09.677708965] [2391]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n>> > > > >> > [27:27:09.933555736] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n>> > > > >> > [27:27:09.933821778] [2392]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n>> > > > >> > [27:27:09.936308080] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n>> > > > >> > Camera configuration adjusted\n>> > > > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n>> > > > >> > [27:27:09.965424746] [2391]  INFO Camera camera.cpp:1205 configuring streams: (0) 1916x1080-XRGB8888/Unset\n>> > > > >> > [27:27:09.967118705] [2392]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n>> > > > >> > [27:27:09.970895528] [2392]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n>> > > > >> > cam0: Capture 5 frames\n>> > > > >> > 98830.200120 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 8277120\n>> > > > >> > 98830.233445 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 8277120\n>> > > > >> > 98830.266770 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 8277120\n>> > > > >> > 98831.033291 (1.30 fps) cam0-stream0 seq: 000025 bytesused: 8277120\n>> > > > >> > 98831.799810 (1.30 fps) cam0-stream0 seq: 000048 bytesused: 8277120\n>> > > > >> >\n>> > > > >> >\n>> > > > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -srole=viewfinder,width=1920,height=1080 -C10\n>> > > > >> > [27:27:26.239476459] [2395]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n>> > > > >> > [27:27:26.253694063] [2395]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n>> > > > >> > [27:27:26.572276146] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n>> > > > >> > [27:27:26.572539792] [2396]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n>> > > > >> > [27:27:26.574856667] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n>> > > > >> > Camera configuration adjusted\n>> > > > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n>> > > > >> > [27:27:26.603776146] [2395]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW (1) 1916x1080-XRGB8888/Unset\n>> > > > >> > [27:27:26.605656303] [2396]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n>> > > > >> > [27:27:26.609448803] [2396]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n>> > > > >> > cam0: Capture 10 frames\n>> > > > >> > 98846.739621 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200 cam0-stream1 seq: 000000 bytesused: 8277120\n>> > > > >> > 98846.772946 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200 cam0-stream1 seq: 000001 bytesused: 8277120\n>> > > > >> > 98846.806274 (30.00 fps) cam0-stream0 seq: 000002 bytesused: 4147200 cam0-stream1 seq: 000002 bytesused: 8277120\n>> > > > >> > 98846.839601 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200 cam0-stream1 seq: 000003 bytesused: 8277120\n>> > > > >> > 98847.539465 (1.43 fps) cam0-stream0 seq: 000024 bytesused: 4147200 cam0-stream1 seq: 000024 bytesused: 8277120\n>> > > > >> > 98848.206006 (1.50 fps) cam0-stream0 seq: 000044 bytesused: 4147200 cam0-stream1 seq: 000044 bytesused: 8277120\n>> > > > >> > 98848.872546 (1.50 fps) cam0-stream0 seq: 000064 bytesused: 4147200 cam0-stream1 seq: 000064 bytesused: 8277120\n>> > > > >> > 98849.539084 (1.50 fps) cam0-stream0 seq: 000084 bytesused: 4147200 cam0-stream1 seq: 000084 bytesused: 8277120\n>> > > > >> > 98850.205624 (1.50 fps) cam0-stream0 seq: 000104 bytesused: 4147200 cam0-stream1 seq: 000104 bytesused: 8277120\n>> > > > >> > 98850.872164 (1.50 fps) cam0-stream0 seq: 000124 bytesused: 4147200 cam0-stream1 seq: 000124 bytesused: 8277120\n>> > > > >> >\n>> > > > >> > [1]: https://patchwork.libcamera.org/project/libcamera/list/?series=5281\n>> > > > >> > [2]: https://gitlab.freedesktop.org/uajain/libcamera/-/commits/uajain/simple/raw\n>> > > > >> >\n>> > > > >> > Milan Zamazal (3):\n>> > > > >> >   libcamera: simple: Set the number of software ISP streams to 2\n>> > > > >> >   libcamera: simple: Exclude raw configurations from output conversions\n>> > > > >> >   libcamera: simple: Require metadata only when software ISP is used\n>> > > > >> >\n>> > > > >> > Umang Jain (3):\n>> > > > >> >   libcamera: simple: Support StreamRole::Raw in generateConfiguration()\n>> > > > >> >   libcamera: simple: Validate raw streams if requested\n>> > > > >> >   libcamera: simple: Enable capturing of raw streams\n>> > > > >> >\n>> > > > >> >  src/libcamera/pipeline/simple/simple.cpp | 166 ++++++++++++++++++-----\n>> > > > >> >  1 file changed, 131 insertions(+), 35 deletions(-)\n>> > > > >> \n>> > > >","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 364BCBDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 21 Jul 2025 20:46:37 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 36F5169017;\n\tMon, 21 Jul 2025 22:46:36 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0AB2468FB1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 21 Jul 2025 22:46:33 +0200 (CEST)","from mail-wr1-f71.google.com (mail-wr1-f71.google.com\n\t[209.85.221.71]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-416-LwItfnZcMUuvp7Ih__J9gw-1; Mon, 21 Jul 2025 16:46:30 -0400","by mail-wr1-f71.google.com with SMTP id\n\tffacd0b85a97d-3a4f8fd1847so1802576f8f.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 21 Jul 2025 13:46:30 -0700 (PDT)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\tffacd0b85a97d-3b61ca4d77bsm11507750f8f.70.2025.07.21.13.46.27\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 21 Jul 2025 13:46:27 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"J0eg3rMJ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1753130793;\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\tin-reply-to:in-reply-to:references:references;\n\tbh=Sncl4s96phAlw5Ilzai4g5btk9sko5leqmTDp7PHW2s=;\n\tb=J0eg3rMJdYYARKPED5PF87/4GOevS68Pkd8wfgoiSRh/B7YUCSUadwPZ6ut244XFfjoZQG\n\txaryCx4leVs+jktgZN76zCh5CjoTjc580wEf4iOCK7ihs+Saf75kfsXcQBZaLg8c3om0QU\n\tCd45IGw32P4vl2cUYWJUka/GzTKPwtc=","X-MC-Unique":"LwItfnZcMUuvp7Ih__J9gw-1","X-Mimecast-MFC-AGG-ID":"LwItfnZcMUuvp7Ih__J9gw_1753130790","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1753130789; x=1753735589;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=Sncl4s96phAlw5Ilzai4g5btk9sko5leqmTDp7PHW2s=;\n\tb=P34h+BLCBWi4WAShesHiNL6OcLufgWAOVDp9mc45UndZy36HZSdQVrecrfXySgtFrQ\n\tLGdBt3AjxndYvOWzkog0Ov8aHyip1uLq9NVlBwHcDl6VZX44VwbFmBVYkb/XWuqnkvDy\n\tZ6wLfjbBmpxFVPHnj/NlEZhyddk+J7ik+CwCay3M1YoY0GKYiXG1RUe51CXewWJQ9q9E\n\tRp+dPadaEDav7iGHUJlPDB+/xc4RKAVW20ZlsaGn3q9CY4iSkJHMxoV+KjofBwL+4mo9\n\tNHjaR65B7DRXXebXbfWASrTr8bsFN4vL5gixmJvEuJUhJjwCFTOZdWuAdRGFgnPyLuTS\n\t+xHg==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCVSGoVx3ILCkfo8MDOy8rAYLZ23k2WWVW8A+NIfp98ym8e+hgXh6rWRzYu8bjHl0UV+i+lnqxTYViEiw9+wMHM=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YxfYzpsjCz3KDOQhyBtuqnBPZSs7Bnz3ZeAQqRnbcSuiCRlpnun\n\tQlFtA2cLywSC9eNIlsVh1tcSW3uZYpv2VLHz8MFTIYnpzIf++v/c8d/AhtNgmse1ZR94fbkb7GD\n\t34sK+tDSq/z6Sjp5kEhgwxG0N7fNFBxhKKtu+4VSg7/pGv1AsQ90qjo7FRx9XjGwUL84cZ4Ky+B\n\toQBc3hIzg=","X-Gm-Gg":"ASbGncsbiOvrQ9HGceF6qWjT1FaD8Tp2YMoi9sU7vHdOFmzQtFZE3F2qKwEQP6Et+Ju\n\tzUNcTB85czGKh5I99twRScwT8Tl2W/HuANRC6Z1YHNboCpcE6BG+w7WwMAW5bSiopR/2XoUIqrj\n\tFcnhsSIz6Wy5U0jRF5sMZoc9+5kOXiEAFNsVux/2L8v7fUFWQqqYNOj/UHZFc61+rglNCm0uQ4l\n\tY1gwqtRUib5Zk3qOEQZ6/3PTw2V6amcs6FF6k2xrkPgIiUDIWfB1prVrqaLmSr11Xo6JI4ZcpMY\n\tJXyapFzI3+fZRBfHndmYNl0W7QYqr7fmFL9xGIPa2r/j6fyKjobp4I5QkzDd63BEzHsb6rtaPbk\n\tdKUQ+j9+dXgaXBJgN","X-Received":["by 2002:a05:6000:460a:b0:3b5:dc04:3f59 with SMTP id\n\tffacd0b85a97d-3b613e97badmr12366255f8f.37.1753130789064; \n\tMon, 21 Jul 2025 13:46:29 -0700 (PDT)","by 2002:a05:6000:460a:b0:3b5:dc04:3f59 with SMTP id\n\tffacd0b85a97d-3b613e97badmr12366238f8f.37.1753130788369; \n\tMon, 21 Jul 2025 13:46:28 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IFe8fn94whprFb+CZM0tPjTDWbHQLhsMCgqM8mhdUE4BuhDo46uB7kKbnzehOu/UfjAOCZSlg==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Umang Jain <uajain@igalia.com>,  libcamera-devel@lists.libcamera.org,\n\tRobert Mader <robert.mader@collabora.com>","Subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","In-Reply-To":"<175309678227.3806966.6655158146908785644@ping.linuxembedded.co.uk>\n\t(Kieran Bingham's message of \"Mon, 21 Jul 2025 12:19:42 +0100\")","References":"<20250716142027.236277-1-uajain@igalia.com>\n\t<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<ebcn3dry2cqmljcfrjgorgzop6em5fljryalw2azqb36xxkbis@w7krd7jys4g6>\n\t<851pqdwx3r.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<175302633904.505382.3913794640677860558@ping.linuxembedded.co.uk>\n\t<s2xf3wbtmpjlkipsxwlyhv53b5yzok7lpveoujhiqu7eziqe26@t65g4mxgw7qn>\n\t<iyihd6wxnf3lgkvfmc5neuwru5b3nsrrlnlv7v37tr3z35oege@334w57lihvjb>\n\t<175309678227.3806966.6655158146908785644@ping.linuxembedded.co.uk>","Date":"Mon, 21 Jul 2025 22:46:26 +0200","Message-ID":"<85zfcx9srh.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"QT0iPd1sCWi6-VtjqLkA10wg3HH-lAz4NdiOr9E7-hU_1753130790","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>"}},{"id":35006,"web_url":"https://patchwork.libcamera.org/comment/35006/","msgid":"<o424jxeuqrmpyxifvttc3uzpssotm7gzyrh4qbuffsbscfqpuk@vgd6mmqvxqbu>","date":"2025-07-22T04:49:17","subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","submitter":{"id":232,"url":"https://patchwork.libcamera.org/api/people/232/","name":"Umang Jain","email":"uajain@igalia.com"},"content":"On Mon, Jul 21, 2025 at 10:46:26PM +0200, Milan Zamazal wrote:\n> Hi Kieran,\n> \n> Kieran Bingham <kieran.bingham@ideasonboard.com> writes:\n> \n> > Quoting Umang Jain (2025-07-21 11:38:06)\n> >> On Mon, Jul 21, 2025 at 09:47:30AM +0530, Umang Jain wrote:\n> >> > Hi Kieran,\n> >\n> >> > \n> >> > On Sun, Jul 20, 2025 at 04:45:39PM +0100, Kieran Bingham wrote:\n> >> > > Hi All,\n> >> > > \n> >> > > I'm trying to understand what the plan is on these multiple RAW series\n> >> > > now.\n> >> > \n> >> > I think I stated out a plan already and Milan seems to agree. There is a\n> >> > need for cross-review/test cycles and one of us then need to take the lead\n> >> > towards merging the series.\n> >> > > \n> >> > > Quoting Milan Zamazal (2025-07-18 12:35:04)\n> >> > > > Umang Jain <uajain@igalia.com> writes:\n> >> > > > \n> >> > > > > Hi Milan,\n> >> > > > >\n> >> > > > > On Thu, Jul 17, 2025 at 04:04:58PM +0200, Milan Zamazal wrote:\n> >> > > > >> Hi Umang,\n> >> > > > >> \n> >> > > > >> thank you for posting the patches.  How do you suggest to proceed with\n> >> > > > >> both the patch series (yours and mine) to avoid duplicate work and get\n> >> > > > >> closer to merging?\n> >> > > > >\n> >> > > > > Good question. I would suggest to test this series and see if it\n> >> > > > > addresses use-cases for the raw capture scenarios (maybe, I missed\n> >> > > > > something/corner-cases).\n> >> > > > >\n> >> > > > > We can cross review each other patches for starters. I've picked 3 of\n> >> > > > > your patches and based my patches on that. Going forward, either of us\n> >> > > > > can collect the relevant reviewed patches and post a single series as\n> >> > > > > collaborative efforts.\n> >> > > > >\n> >> > > > > I would also suggest to split off parallel patches (for e.g. colorspace\n> >> > > > > patches from your series) and see if we can progress them independently.\n> >> > > > > These are my thoughts, if you want to take an alternate approach - I am\n> >> > > > > willing to hear it as well!\n> >\n> > If there are multiple separate topics in a branch - splitting can help\n> > indeed. At the moment I'm only testing RAW support... as that's the\n> > feature we need to be able to progress doing the calibrations for\n> > Soft {CPU/GPU}ISP based devices.\n> >\n> >\n> >> > > > \n> >> > > > OK for me.\n> >> > > \n> >> > > There's some curious differences between the two versions now ? On x13s\n> >> > > - if I run Milans' branch I get a smaller resolution by default (and\n> >> > > better performance because of that I guess) and also the RAW streams are\n> >> > > filtering better? \n> >> > \n> >> > If I take a look at current master branch - the status-quo I think is\n> >> > that the filtering needs/defaults pickups needs work:\n> >> > \n> >> > [~/src/libcamera]$ git grep \\todo | grep -i 'pipeline/simple'\n> >> > src/libcamera/pipeline/simple/simple.cpp: * \\todo The sensor timestamp should be better estimated by connecting\n> >> > src/libcamera/pipeline/simple/simple.cpp: * \\todo Applying controls directly not only increases the risk of\n> >> > src/libcamera/pipeline/simple/simple.cpp: * \\todo Pick the best sensor output media bus format when the\n> >> > src/libcamera/pipeline/simple/simple.cpp: /* \\todo Create a libcamera core class to group format and size */\n> >> > src/libcamera/pipeline/simple/simple.cpp: * \\todo Implement a better way to pick the default format\n> >> > \n> >> > Currently, it's just picking up the first entry in a given map etc, so I\n> >> > am not surprised there.\n> >> > \n> >> > > \n> >> > > kbingham@charm:~/iob/libcamera$ ./build/gcc/src/apps/cam/cam -c1 -I -srole=raw\n> >> > > [1:18:54.693658992] [15767]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/build/gcc/src/ipa' to the IPA search path\n> >> > > [1:18:54.698672581] [15767]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+82-1f6b50aa\n> >> > > [1:18:54.736613408] [15768]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5675 24-0010': Rotation control not available, default to 0 degrees\n> >> > > [1:18:54.736743817] [15768]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5675 24-0010': No sensor delays found in static properties. Assuming unverified defaults.\n> >> > > [1:18:54.743968255] [15768]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> >> > > [1:18:54.744016950] [15768]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov5675.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> >> > > [1:18:54.744431351] [15768]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> >> > > [1:18:54.753486194] [15768]  INFO Pipeline pipeline_handler.cpp:646 libcamera is not installed. Loading platform configuration file from '/home/kbingham/iob/libcamera/src/libcamera/pipeline/virtual/data/virtual.yaml'\n> >> > > Using camera /base/soc@0/cci@ac4c000/i2c-bus@1/camera@10 as cam0\n> >> > > 0: 1296x972-SGRBG10_CSI2P/RAW\n> >> > >  * Pixelformat: SGRBG10_CSI2P (1296x972)-(2592x1944)/(+0,+0)\n> >> > >   - 1296x972\n> >> > >   - 2592x1944\n> >> > > \n> >> > > \n> >> > > vs Umangs branch:\n> >> > > \n> >> > > kbingham@charm:~/iob/libcamera$ ./build/gcc/src/apps/cam/cam -c1 -I -srole=raw | grep -i pixelformat\n> >> > > [1:20:02.718240596] [16578]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/kbingham/iob/libcamera/build/gcc/src/ipa' to the IPA search path\n> >> > > [1:20:02.725663876] [16578]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+81-d9b7a3bf\n> >> > > [1:20:02.762329159] [16580]  WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5675 24-0010': Rotation control not available, default to 0 degrees\n> >> > > [1:20:02.762467588] [16580]  WARN CameraSensor camera_sensor_legacy.cpp:501 'ov5675 24-0010': No sensor delays found in static properties. Assuming unverified defaults.\n> >> > > [1:20:02.769917481] [16580]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> >> > > [1:20:02.769956802] [16580]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'ov5675.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> >> > > [1:20:02.770373234] [16580]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/kbingham/iob/libcamera/src/ipa/simple/data'\n> >> > > [1:20:02.780852414] [16580]  INFO Pipeline pipeline_handler.cpp:646 libcamera is not installed. Loading platform configuration file from '/home/kbingham/iob/libcamera/src/libcamera/pipeline/virtual/data/virtual.yaml'\n> >> > >  * Pixelformat: SGRBG10_CSI2P (4x2)-(2584x1944)/(+4,+2)\n> >> > >  * Pixelformat: ABGR8888 (4x2)-(2584x1944)/(+4,+2)\n> >> > >  * Pixelformat: XBGR8888 (4x2)-(2584x1944)/(+4,+2)\n> >> > >  * Pixelformat: BGR888 (4x2)-(2584x1944)/(+4,+2)\n> >> > >  * Pixelformat: RGB888 (4x2)-(2584x1944)/(+4,+2)\n> >> > >  * Pixelformat: ARGB8888 (4x2)-(2584x1944)/(+4,+2)\n> >> > >  * Pixelformat: XRGB8888 (4x2)-(2584x1944)/(+4,+2)\n> >> > > \n> >> > > So I'm afraid I think Umangs' branch is doing something wrong at the\n> >> > > moment?\n> >> > \n> >> > I mostly have tested capturing points and see if the correct format/sensor\n> >> > size are picked or not, for a given config, before sending out the RFC.\n> >> > \n> >> > There might be some rough corners still, for e.g. you posted above where\n> >> > the reporting of -srole=raw is giving out processed formats as well. So,\n> >> > those rough corners needs some polishing before I post v1.\n> >> > \n> >> \n> >> fwiw, I fixed up the RAW reporting and did some more initial testing, Output\n> >> here: https://paste.debian.net/1387016/\n> >> \n> >> on my branch:\n> >> https://gitlab.freedesktop.org/uajain/libcamera/-/tree/uajain/simple/raw\n> >> > > \n> >> > > I would like to target merging this RAW support by the end of this week\n> >\n> > Sorry - I didn't mean 'this series' by saying 'this RAW' here.. I mean\n> > the feature.\n> \n> We can try but let's be careful not to break anything what hasn't been\n> broken before.\n\nPrecisely why I asked for testing from h/w platforms in\nsupported_devices[].\n\n> \n> > I was looking at the point that Milan is now at v10 and was working -\n> > and passed on CI\n> > (https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1470120) -\n> > so I wanted to know how we get it merged - but now there is a competing\n> > series ?\n> \n> I understand Umang's series as a way to demonstrate an alternative\n> approach to do some of the things and my patches need improvements in\n> some of those areas.  It's indeed hard to track this for everybody but\n> the recent Umang's comments to my patches help.\n> \n> >> > > prior to the next release point - could you let me know what the best\n> >> > > approach is please ?\n> >> > \n> >> > I am not too sure, a week for proper testing, cross-reviews etc. seems\n> >> > short. Milan what do you think ?\n> >\n> > Which leaves me confused. Is this series supposed to superceed Milan's?\n> > Shouldn't it then have the same title and be v11 ?\n> >\n> > If there are issues in Milan's series - would it make sense to post\n> > fixup patches to show the changes against that series?\n> >\n> >> > > Robert, could you test on your devices please ? Ultimately the RAW\n> >> > > support is the important step we need to enable to start being able to\n> >> > > capture image cailbration images and tuning for devices...\n> >> > > \n> >> > > Once this is merged we can work on enabling manual controls  for\n> >\n> > I said 'this' again while on the 'new' series... Perhaps I should have\n> > continued the discussion on the 'first' (milans) series?\n> >\n> > I'll wait to hear what you two decide is correct for merging RAW support\n> > to simple pipeline handler. At this stage a clear 'v11' might help make\n> > things clearer. But please coordinate if there are two developers\n> > working on the same topic.\n> \n> I can work on v11 tomorrow, hopefully it brings both the series closer\n> to each other.  I think simply continuing with my series is the best, as\n> it evolves from an already partially reviewed and tested code and\n> changes to it can be tracked without much trouble.\n\nFeel free to cherry-pick patches from my branch and expand/fix as per\nyour needs.\n> \n> >\n> > --\n> > Kieran\n> >\n> >\n> >> > > exposure and gain which will be the next requirements for tuning.\n> >> > > \n> >> > > --\n> >> > > Kieran\n> >> > > \n> >> > > \n> >> > > \n> >> > > > \n> >> > > > >> From the technical standpoint, I wonder how it works without changing\n> >> > > > >> buffer handling in the simple pipeline.  Do you think\n> >> > > > >> https://patchwork.libcamera.org/patch/23785/ is not needed?\n> >> > > > >\n> >> > > > > It's changed in 6/6.\n> >> > > > \n> >> > > > Ah, sorry, I was looking at patches from patchwork and that one was\n> >> > > > omitted there.\n> >> > > > \n> >> > > > >> Umang Jain <uajain@igalia.com> writes:\n> >> > > > >> \n> >> > > > >> > RFC series to enable raw capture on simple pipeline handler with\n> >> > > > >> > SoftISP enabled. I had a few thoughts on design of the features\n> >> > > > >> > when I was reviewing Milan's series [1]. Hence, I decided to crystallise\n> >> > > > >> > my thoughts and posted as RFC to gather more feedback (and some real\n> >> > > > >> > testing on supportedDevices[]).\n> >> > > > >> >\n> >> > > > >> > I have left few things to include from [1] for e.g. colorspace issues.\n> >> > > > >> > My goal currently is to address the core issue of raw capture with this\n> >> > > > >> > RFC.\n> >> > > > >> >\n> >> > > > >> > Testing branch [2]\n> >> > > > >> > Setup: RPi 3b + IMX219\n> >> > > > >> > Cases tested with cam:\n> >> > > > >> >    - Single raw output\n> >> > > > >> >    - Single processed output\n> >> > > > >> >    - 1 Raw + 1 processed output\n> >> > > > >> >\n> >> > > > >> > One can propose more use-cases as part of their testing. If they turn\n> >> > > > >> > out to be complex, we can probably document it as \\todo, to get\n> >> > > > >> > addressed at a later stage.\n> >> > > > >> >\n> >> > > > >> > cam Output:\n> >> > > > >> > ===========\n> >> > > > >> >\n> >> > > > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -C5\n> >> > > > >> > [27:26:59.248233501] [2384]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> >> > > > >> > [27:26:59.262004021] [2384]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> >> > > > >> > [27:26:59.593703813] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> >> > > > >> > [27:26:59.594050532] [2390]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> >> > > > >> > [27:26:59.596620063] [2390]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> >> > > > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> >> > > > >> > [27:26:59.625957459] [2384]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW\n> >> > > > >> > [27:26:59.627666834] [2390]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 0\n> >> > > > >> > cam0: Capture 5 frames\n> >> > > > >> > 98819.750177 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200\n> >> > > > >> > 98819.783504 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200\n> >> > > > >> > 98819.816829 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 4147200\n> >> > > > >> > 98819.850156 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200\n> >> > > > >> > 98819.883484 (30.00 fps) cam0-stream0 seq: 000004 bytesused: 4147200\n> >> > > > >> >\n> >> > > > >> >\n> >> > > > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=viewfinder,width=1920,height=1080 -C5\n> >> > > > >> > [27:27:09.663699747] [2391]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> >> > > > >> > [27:27:09.677708965] [2391]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> >> > > > >> > [27:27:09.933555736] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> >> > > > >> > [27:27:09.933821778] [2392]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> >> > > > >> > [27:27:09.936308080] [2392]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> >> > > > >> > Camera configuration adjusted\n> >> > > > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> >> > > > >> > [27:27:09.965424746] [2391]  INFO Camera camera.cpp:1205 configuring streams: (0) 1916x1080-XRGB8888/Unset\n> >> > > > >> > [27:27:09.967118705] [2392]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> >> > > > >> > [27:27:09.970895528] [2392]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> >> > > > >> > cam0: Capture 5 frames\n> >> > > > >> > 98830.200120 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 8277120\n> >> > > > >> > 98830.233445 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 8277120\n> >> > > > >> > 98830.266770 (30.01 fps) cam0-stream0 seq: 000002 bytesused: 8277120\n> >> > > > >> > 98831.033291 (1.30 fps) cam0-stream0 seq: 000025 bytesused: 8277120\n> >> > > > >> > 98831.799810 (1.30 fps) cam0-stream0 seq: 000048 bytesused: 8277120\n> >> > > > >> >\n> >> > > > >> >\n> >> > > > >> > uajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -srole=raw,width=1920,height=1080 -srole=viewfinder,width=1920,height=1080 -C10\n> >> > > > >> > [27:27:26.239476459] [2395]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n> >> > > > >> > [27:27:26.253694063] [2395]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-c33be195\n> >> > > > >> > [27:27:26.572276146] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> >> > > > >> > [27:27:26.572539792] [2396]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n> >> > > > >> > [27:27:26.574856667] [2396]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n> >> > > > >> > Camera configuration adjusted\n> >> > > > >> > Using camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n> >> > > > >> > [27:27:26.603776146] [2395]  INFO Camera camera.cpp:1205 configuring streams: (0) 1920x1080-SRGGB10/RAW (1) 1916x1080-XRGB8888/Unset\n> >> > > > >> > [27:27:26.605656303] [2396]  INFO SimplePipeline simple.cpp:1471 data->useConversion_ : 1\n> >> > > > >> > [27:27:26.609448803] [2396]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\n> >> > > > >> > cam0: Capture 10 frames\n> >> > > > >> > 98846.739621 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200 cam0-stream1 seq: 000000 bytesused: 8277120\n> >> > > > >> > 98846.772946 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 4147200 cam0-stream1 seq: 000001 bytesused: 8277120\n> >> > > > >> > 98846.806274 (30.00 fps) cam0-stream0 seq: 000002 bytesused: 4147200 cam0-stream1 seq: 000002 bytesused: 8277120\n> >> > > > >> > 98846.839601 (30.01 fps) cam0-stream0 seq: 000003 bytesused: 4147200 cam0-stream1 seq: 000003 bytesused: 8277120\n> >> > > > >> > 98847.539465 (1.43 fps) cam0-stream0 seq: 000024 bytesused: 4147200 cam0-stream1 seq: 000024 bytesused: 8277120\n> >> > > > >> > 98848.206006 (1.50 fps) cam0-stream0 seq: 000044 bytesused: 4147200 cam0-stream1 seq: 000044 bytesused: 8277120\n> >> > > > >> > 98848.872546 (1.50 fps) cam0-stream0 seq: 000064 bytesused: 4147200 cam0-stream1 seq: 000064 bytesused: 8277120\n> >> > > > >> > 98849.539084 (1.50 fps) cam0-stream0 seq: 000084 bytesused: 4147200 cam0-stream1 seq: 000084 bytesused: 8277120\n> >> > > > >> > 98850.205624 (1.50 fps) cam0-stream0 seq: 000104 bytesused: 4147200 cam0-stream1 seq: 000104 bytesused: 8277120\n> >> > > > >> > 98850.872164 (1.50 fps) cam0-stream0 seq: 000124 bytesused: 4147200 cam0-stream1 seq: 000124 bytesused: 8277120\n> >> > > > >> >\n> >> > > > >> > [1]: https://patchwork.libcamera.org/project/libcamera/list/?series=5281\n> >> > > > >> > [2]: https://gitlab.freedesktop.org/uajain/libcamera/-/commits/uajain/simple/raw\n> >> > > > >> >\n> >> > > > >> > Milan Zamazal (3):\n> >> > > > >> >   libcamera: simple: Set the number of software ISP streams to 2\n> >> > > > >> >   libcamera: simple: Exclude raw configurations from output conversions\n> >> > > > >> >   libcamera: simple: Require metadata only when software ISP is used\n> >> > > > >> >\n> >> > > > >> > Umang Jain (3):\n> >> > > > >> >   libcamera: simple: Support StreamRole::Raw in generateConfiguration()\n> >> > > > >> >   libcamera: simple: Validate raw streams if requested\n> >> > > > >> >   libcamera: simple: Enable capturing of raw streams\n> >> > > > >> >\n> >> > > > >> >  src/libcamera/pipeline/simple/simple.cpp | 166 ++++++++++++++++++-----\n> >> > > > >> >  1 file changed, 131 insertions(+), 35 deletions(-)\n> >> > > > >> \n> >> > > >\n>","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 8721CC3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 22 Jul 2025 04:49:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6DCA869019;\n\tTue, 22 Jul 2025 06:49:17 +0200 (CEST)","from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 92D8B614EE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 22 Jul 2025 06:49:15 +0200 (CEST)","from [49.36.71.87] (helo=uajain) by fanzine2.igalia.com with\n\tesmtpsa \n\t(Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)\n\t(Exim) id 1ue4wB-001zzy-M5; Tue, 22 Jul 2025 06:49:12 +0200"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=igalia.com header.i=@igalia.com\n\theader.b=\"M1rougH0\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;\n\ts=20170329;\n\th=In-Reply-To:Content-Type:MIME-Version:References:Message-ID:\n\tSubject:Cc:To:From:Date:Sender:Reply-To:Content-Transfer-Encoding:Content-ID:\n\tContent-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n\t:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:\n\tList-Post:List-Owner:List-Archive;\n\tbh=nIFytcMoqQPPjpFE+1mRUUrVmmbHREKQcK9+p73Rz/4=;\n\tb=M1rougH02oge80fBG3mv6DAy+J\n\tWe+67bQ/qfRhIOef0n/vF9bQ9E7JAdMVjvUFpT8XkOSLxJeUWfdP2X1GgajDiHHJHq/HUXMVXbzKI\n\tmz98qLs5Mp0imzkBGw4a3FWw/KqQ4DG/K0Dgq7jW0xYRuf+3p1l/II6NGF2TUT0UPgWow4GjB7fnK\n\taxh8ZrccvR4if1ftf4nwAt+MkX/JS39m0kZQVkm/zBS2BLUg1ilD6enuc5be5QLF/W0kILFULntmm\n\tz0FOKhCriVdNt1WZwFahy2VWmAVTH0GbVuyRAxOK37Chwmo5Zwdqt7VG/jj9C9q50s9tmXmhGmL0q\n\tD2xISIMQ==;","Date":"Tue, 22 Jul 2025 10:19:17 +0530","From":"Umang Jain <uajain@igalia.com>","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>, \n\tlibcamera-devel@lists.libcamera.org,\n\tRobert Mader <robert.mader@collabora.com>","Subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","Message-ID":"<o424jxeuqrmpyxifvttc3uzpssotm7gzyrh4qbuffsbscfqpuk@vgd6mmqvxqbu>","References":"<20250716142027.236277-1-uajain@igalia.com>\n\t<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<ebcn3dry2cqmljcfrjgorgzop6em5fljryalw2azqb36xxkbis@w7krd7jys4g6>\n\t<851pqdwx3r.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<175302633904.505382.3913794640677860558@ping.linuxembedded.co.uk>\n\t<s2xf3wbtmpjlkipsxwlyhv53b5yzok7lpveoujhiqu7eziqe26@t65g4mxgw7qn>\n\t<iyihd6wxnf3lgkvfmc5neuwru5b3nsrrlnlv7v37tr3z35oege@334w57lihvjb>\n\t<175309678227.3806966.6655158146908785644@ping.linuxembedded.co.uk>\n\t<85zfcx9srh.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<85zfcx9srh.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"NeoMutt/20250510-dirty","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>"}},{"id":35059,"web_url":"https://patchwork.libcamera.org/comment/35059/","msgid":"<85wm7yvkhp.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-07-23T18:18:42","subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi,\n\nI posted v11.  It's a conservative update, the most important change\nbeing that the raw stream size is adjusted now if needed.  v11 seems to\nwork for me better than both my v10 and Umang's RFC but independent\ntesting is needed.\n\nI picked some ideas from Umang's patches while leaving others out, most\nnotably identifying the raw streams, as discussed elsewhere.\n\nRegards,\nMilan","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 19DA9BDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 23 Jul 2025 18:18:51 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 473CB6906F;\n\tWed, 23 Jul 2025 20:18:50 +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 A9A026906A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 23 Jul 2025 20:18:48 +0200 (CEST)","from mail-wm1-f72.google.com (mail-wm1-f72.google.com\n\t[209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-345-MnlpIJruMryhwgX7EAFBSQ-1; Wed, 23 Jul 2025 14:18:46 -0400","by mail-wm1-f72.google.com with SMTP id\n\t5b1f17b1804b1-456106b7c4aso6123185e9.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 23 Jul 2025 11:18:45 -0700 (PDT)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-45869199418sm29875735e9.13.2025.07.23.11.18.43\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 23 Jul 2025 11:18:43 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"OHrH0vlW\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1753294727;\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\tin-reply-to:in-reply-to:references:references;\n\tbh=4k5RVwmXsaWb9ST9OpTXpCQNTX9dO7yUdqcyPyS3ips=;\n\tb=OHrH0vlWFi4Qye1HhUxGYNHnnuCrCfGboMf1iWJmWJ091GKiKsdCouWT3zvtWjoEOCm2a7\n\tyAB3LzkbFe0l5wwILA/T3DK/0wpS8S2IvRd+WxnJ9gtEuIPzUoh9R9KMMOB0H3TcOoYou3\n\tj6cTwY+ZgPu0BE8kP0I04iK/beh6Jn8=","X-MC-Unique":"MnlpIJruMryhwgX7EAFBSQ-1","X-Mimecast-MFC-AGG-ID":"MnlpIJruMryhwgX7EAFBSQ_1753294725","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1753294725; x=1753899525;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=4k5RVwmXsaWb9ST9OpTXpCQNTX9dO7yUdqcyPyS3ips=;\n\tb=AhQkyjD9lU6oWFkteuXEiuNpQWwkpy2wLCV2mSvjn50Ww1M0VRryNWvtpA3OlRcpok\n\tk16+ZUqil87ilQgwhX76Ix1oKl6odQRlDZrYaY9RB3JLI9NHI5Qc3TU6AmOanbSfj11Q\n\t7kxaV/DipqdyxrIo6KE3nVu+v/SrSJ4cQKnvoXQ1iVYzcAT67sSgW8MWLwm1eYhIk493\n\tj4rJxu3JUC/NMkSFWlo5A4WjyH6sYPYkSkATKD3Rny88r992WFbmNNJIYCIn5X3K9bqG\n\tqNcPbidrEKb0BKcrHkfE+Yx+vI1A5vZXG2VWtciRobTJPp3V7AiJjXfTPn0Uu8CC4ObI\n\taSxQ==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCUMH1qlxHClHcP5oBN7Isqp8pHfHeB+kg+KlI3bjNsTOr06BaKH9Y2B4TD9l1LNeX0kM4ILPfYQITLqp9IGlm4=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YwcQUTV4vExSUjrv4t/cT04Nz4RXNlkmhrM4lKFc/hZVsdQhmAl\n\tL52jpLJT1dt+iHgPFr9sihs1/lcQ4HEQfx9vCyzAIJNd4HHbDHxo6HIRw3QR5dTsg6mB74TRytp\n\tyI11OiYScDubuCxa6Gb1DFhURaNiZjgv3yGFheIVGvbpatknECzRGMTUdsfS0vs2yFLiKZ8g1dq\n\tA=","X-Gm-Gg":"ASbGnct36d+E0z5n8aoggOV27MsFS3fy5DZq6gwQKW0RI+iWk6d+pFQmetLyeLcI3K4\n\t3bFpBYy/8IfTZZwbKsZ/IK6w6XxzsIov+RdYsSKuucU8O8RUgdmyyuSq/IxLkVAp+CAPrc/Y6ca\n\tfY4XEx7FUMDfIzkZI5ZHJ4vFQBBukW5ARGapizlOoO7OBwiVa2GZSCYwHK56QpNJEKw6ELt94gR\n\tZfTxYRfwA4PK0/bh8pEL6gsjHyRQaW420qpP04aNW28aLKzi0srAhpq0Y5NgcDXdgbGoAha+h/L\n\tK+kAapNzGX2l/Jdbckg9jh3lCLGdgxFBzjHUBbQ5t2gUklyQrmkgbGb17t/R43wtKm4NSMVbcae\n\tqokYQjBBeJM4KKWNj","X-Received":["by 2002:a05:600c:a089:b0:455:f7d5:1224 with SMTP id\n\t5b1f17b1804b1-45868b3c882mr34351415e9.9.1753294724879; \n\tWed, 23 Jul 2025 11:18:44 -0700 (PDT)","by 2002:a05:600c:a089:b0:455:f7d5:1224 with SMTP id\n\t5b1f17b1804b1-45868b3c882mr34351235e9.9.1753294724490; \n\tWed, 23 Jul 2025 11:18:44 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IEAPUfVgpVNTzstJ12XEXDEqxbkBRIQERuk+14r+GReIfiDvAqmkV5Zh+Z2NJ3GS0D9BSY9kg==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Umang Jain <uajain@igalia.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org,  Robert Mader\n\t<robert.mader@collabora.com>","Subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","In-Reply-To":"<o424jxeuqrmpyxifvttc3uzpssotm7gzyrh4qbuffsbscfqpuk@vgd6mmqvxqbu>\n\t(Umang Jain's message of \"Tue, 22 Jul 2025 10:19:17 +0530\")","References":"<20250716142027.236277-1-uajain@igalia.com>\n\t<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<ebcn3dry2cqmljcfrjgorgzop6em5fljryalw2azqb36xxkbis@w7krd7jys4g6>\n\t<851pqdwx3r.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<175302633904.505382.3913794640677860558@ping.linuxembedded.co.uk>\n\t<s2xf3wbtmpjlkipsxwlyhv53b5yzok7lpveoujhiqu7eziqe26@t65g4mxgw7qn>\n\t<iyihd6wxnf3lgkvfmc5neuwru5b3nsrrlnlv7v37tr3z35oege@334w57lihvjb>\n\t<175309678227.3806966.6655158146908785644@ping.linuxembedded.co.uk>\n\t<85zfcx9srh.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<o424jxeuqrmpyxifvttc3uzpssotm7gzyrh4qbuffsbscfqpuk@vgd6mmqvxqbu>","Date":"Wed, 23 Jul 2025 20:18:42 +0200","Message-ID":"<85wm7yvkhp.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"KMRxggNxseNtRfaVJqlMlA6pTvZpoPvYtoIV_c1hSXY_1753294725","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>"}},{"id":35064,"web_url":"https://patchwork.libcamera.org/comment/35064/","msgid":"<8280060cbdfc25986ad1f2851eb63e3f@igalia.com>","date":"2025-07-24T02:50:29","subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","submitter":{"id":232,"url":"https://patchwork.libcamera.org/api/people/232/","name":"Umang Jain","email":"uajain@igalia.com"},"content":"On 2025-07-23 23:48, Milan Zamazal wrote:\n> Hi,\n> \n> I posted v11.  It's a conservative update, the most important change\n> being that the raw stream size is adjusted now if needed.  v11 seems to\n> work for me better than both my v10 and Umang's RFC but independent\n> testing is needed.\n\nPerhaps you can briefly state / give testing commands to understand the\ndiff between the two implementations? \nI assume you will be using one of the supportedDevices[] platform,\nright?\n\n> \n> I picked some ideas from Umang's patches while leaving others out, most\n> notably identifying the raw streams, as discussed elsewhere.\n> \n> Regards,\n> Milan","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 10436C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 24 Jul 2025 02:50:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8518569078;\n\tThu, 24 Jul 2025 04:50:36 +0200 (CEST)","from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BDF566903A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 24 Jul 2025 04:50:34 +0200 (CEST)","from maestria.local.igalia.com ([192.168.10.14]\n\thelo=mail.igalia.com) by fanzine2.igalia.com with esmtps \n\t(Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)\n\t(Exim) id 1uem2R-002wZ7-EN; Thu, 24 Jul 2025 04:50:31 +0200","from webmail.service.igalia.com ([192.168.21.45])\n\tby mail.igalia.com with esmtp (Exim)\n\tid 1uem2P-00GDWs-DG; Thu, 24 Jul 2025 04:50:31 +0200","from localhost ([127.0.0.1] helo=webmail.igalia.com)\n\tby webmail with esmtp (Exim 4.96) (envelope-from <uajain@igalia.com>)\n\tid 1uem2O-00GU7q-2h; Thu, 24 Jul 2025 04:50:29 +0200"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=igalia.com header.i=@igalia.com\n\theader.b=\"EP9OT3dV\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;\n\ts=20170329;\n\th=Content-Transfer-Encoding:Content-Type:Message-ID:References:\n\tIn-Reply-To:Subject:Cc:To:From:Date:MIME-Version:Sender:Reply-To:Content-ID:\n\tContent-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n\t:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:\n\tList-Post:List-Owner:List-Archive;\n\tbh=qRNCj5aACi6XmNipPWxNJDKfHGkL7/sjUJdzyFvFkCY=;\n\tb=EP9OT3dViSdBeQ77wqI2VNNL91\n\tYeipqEq+LwNmHYx2vKLZ0HpMGh0Q6pGLRrLxwaSJIijFhcmb6kPwM9eWKWcp6KQfYTJMK6mX6ZRLd\n\tW/ZsX3lovKOCaLyWN25vkgVZGAkdPaav4TRQfPV7Qw/56R5HHIj74FaLwzJk+Qp5KU2YHqciuTmA/\n\tjwwFweRSrqmP0hqEcQ6qPH/WjYLhUuiyvgG5nzl+OwU/5ZganRP5DsiMzDmDNwXqg5qQQMy+GiwZy\n\thuXRpJ1MNUYCZUXULu+KjZGu3LiLLmeznrWXJKnrQeGf3VQnxCGTyQ071mByx39WLHYOyMPJO0EOA\n\tEZWg19AQ==;","MIME-Version":"1.0","Date":"Thu, 24 Jul 2025 08:20:29 +0530","From":"uajain <uajain@igalia.com>","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org, Robert Mader\n\t<robert.mader@collabora.com>","Subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","In-Reply-To":"<85wm7yvkhp.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","References":"<20250716142027.236277-1-uajain@igalia.com>\n\t<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<ebcn3dry2cqmljcfrjgorgzop6em5fljryalw2azqb36xxkbis@w7krd7jys4g6>\n\t<851pqdwx3r.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<175302633904.505382.3913794640677860558@ping.linuxembedded.co.uk>\n\t<s2xf3wbtmpjlkipsxwlyhv53b5yzok7lpveoujhiqu7eziqe26@t65g4mxgw7qn>\n\t<iyihd6wxnf3lgkvfmc5neuwru5b3nsrrlnlv7v37tr3z35oege@334w57lihvjb>\n\t<175309678227.3806966.6655158146908785644@ping.linuxembedded.co.uk>\n\t<85zfcx9srh.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<o424jxeuqrmpyxifvttc3uzpssotm7gzyrh4qbuffsbscfqpuk@vgd6mmqvxqbu>\n\t<85wm7yvkhp.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","Message-ID":"<8280060cbdfc25986ad1f2851eb63e3f@igalia.com>","X-Sender":"uajain@igalia.com","Content-Type":"text/plain; charset=US-ASCII","Content-Transfer-Encoding":"7bit","X-Spam-Report":"NO, Score=-0.4, Tests=ALL_TRUSTED=-3,AWL=1.792,BAYES_50=0.8","X-Spam-Score":"-3","X-Spam-Bar":"/","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>"}},{"id":35073,"web_url":"https://patchwork.libcamera.org/comment/35073/","msgid":"<85qzy6m59l.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-07-24T07:12:22","subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Umang,\n\nuajain <uajain@igalia.com> writes:\n\n> On 2025-07-23 23:48, Milan Zamazal wrote:\n>> Hi,\n>> \n>\n>> I posted v11.  It's a conservative update, the most important change\n>> being that the raw stream size is adjusted now if needed.  v11 seems to\n>> work for me better than both my v10 and Umang's RFC but independent\n>> testing is needed.\n>\n> Perhaps you can briefly state / give testing commands to understand the\n> diff between the two implementations? \n\nExamples of the commands I tried:\n\n- cam -c1 -C -D\n  Basic sanity check with a display output at the given display device\n  resolution.\n\n- cam -c1 -C8 -s role=raw -Ffoo#\n  Simple raw output.\n\n- ./build-swisp/src/apps/cam/cam -c1 -C8 -s role=raw,width=1920,height=1080,pixelformat=SRGGB10 -Ffoo#\n  Raw output with exact and correct parameters.\n\n- ./build-swisp/src/apps/cam/cam -c1 -C8 -s role=raw,width=2000,height=1000,pixelformat=RGB888 -Ffoo#\n  Raw output with parameters that must be adjusted.\n  (Example of a command that didn't work with v10.)\n\n- cam -c1 -C8 -s role=viewfinder,width=3276,height=2464,pixelformat=BGR888 -s role=raw,width=3280,height=2464,pixelformat=SRGGB10 -Ffoo#\n  Both processed and raw outputs, with correct parameters.\n  (Example of a command that didn't work with your RFC.)\n\n- cam -c1 -C8 -s role=viewfinder,width=3276,height=2464,pixelformat=BGR888 -s role=raw -Ffoo#\n  The same with implicit raw parameters.\n\n- cam -c1 -C8 -s role=viewfinder,width=3276,height=2464,pixelformat=BGR888 -s role=raw,width=640,height=480,pixelformat=SRGGB10 -Ffoo#\n  The same with raw output parameters that must be adjusted.\n\n> I assume you will be using one of the supportedDevices[] platform,\n> right?\n\nRight.\n\n>> I picked some ideas from Umang's patches while leaving others out, most\n>> notably identifying the raw streams, as discussed elsewhere.\n>> \n>> Regards,\n>> Milan","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 8CBEAC3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 24 Jul 2025 07:12:31 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5C186690AB;\n\tThu, 24 Jul 2025 09:12:30 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 911A76909C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 24 Jul 2025 09:12:28 +0200 (CEST)","from mail-ej1-f72.google.com (mail-ej1-f72.google.com\n\t[209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-110-B1IaZMOyN3mlGSpdmKV1bw-1; Thu, 24 Jul 2025 03:12:25 -0400","by mail-ej1-f72.google.com with SMTP id\n\ta640c23a62f3a-ae1c79fb8a9so129403066b.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 24 Jul 2025 00:12:25 -0700 (PDT)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\ta640c23a62f3a-af47c495b81sm70201966b.18.2025.07.24.00.12.22\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 24 Jul 2025 00:12:23 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"Y7TiQit3\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1753341147;\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\tin-reply-to:in-reply-to:references:references;\n\tbh=JZCkTK6x4V6K2WQuWdkEO5SGBcmhJv3tEMbn1jM8qSc=;\n\tb=Y7TiQit3kWTbHL52ubL3CaWwlJmCYE4VqDsQmczlwbTvGew1Nrg6yrHBu+Xl+KxbAKFew3\n\tGiqScAbELwvaoN5RMjgEeNoJeJc9vVUhTXBM4DkRdodTVF8xty0dQhVtE5Ai/I+OiY9a2f\n\tzWeTk15+mm2//dVsCAL1rAWqCmPEz6I=","X-MC-Unique":"B1IaZMOyN3mlGSpdmKV1bw-1","X-Mimecast-MFC-AGG-ID":"B1IaZMOyN3mlGSpdmKV1bw_1753341144","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1753341144; x=1753945944;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=JZCkTK6x4V6K2WQuWdkEO5SGBcmhJv3tEMbn1jM8qSc=;\n\tb=J1V2Lj3paEon1I/tuks4mhmDZtf5OFnamrwPGCljQKTyWLZJpwMKIAM/IvumQ47wFa\n\t/qjtCVxsXNReQcBpbS/hY7o7iLSeFRq2yTtBvE5yRftAK073cZGcyZMfyaCkxXm/Ogw1\n\ttoGwRbN+P6WNuNnhFd6iGs2kmBqTjjT3eMxAD4T3hbt/w5wHfOFP2ox8OpRU6wNFSjGg\n\tR0rXDupimGPbvWYdUXQDrsWL1EHUTnF9CdM7WmI9Jwm8N9VPqSiCzCZiEDcjJ0sFhnD1\n\tKWwUi82OXC36aGrH/k2A0Yip6N0m2qShIfmXqk+9SuC3miaovgUIGDbZOY01ehCoSQc+\n\tSDqw==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCUkI4y1KyJgZ/RDtmkh7KAm24wjodVz9H4DxTmn7IsfBi3LFCBrfa6JmgO6AjmXMqak6PIEqh/1xR3QEnzg0jA=@lists.libcamera.org","X-Gm-Message-State":"AOJu0Yw7o/9jvQA3zZ7cz/lmojQCP44TqxhSHeYehbX1dMuh/lXv5WUh\n\teLKufs2omiWQhJAo4Gt6YHPIlD3NqnD/a/G2pwxFkH36i1K44ygmzWq9bEJBxqP8ljraTAC6ztm\n\tGeTD4m/oYJtzwNz9Ie/PRGj/eif3KLnm1hrxM+wkFWD64gNPcUaFMnqFOtRLcZVB5uxICgXQ+by\n\t+M0NCqY6Y=","X-Gm-Gg":"ASbGncv5gWy/jVQy4HPGwJb9xmAXQKRFr0bwtA5stMAndKt45JaWfzSItXkyEvKpSOH\n\tgkAm+RQ+Q+HsFWXqGIAo2Tns2nguR5RPpEPhzHAQ7lkYdcuax2epHAA8VVwx6TlJAbcjg2/50Pk\n\tbobY+fl0jfRZJvwacUH9KM+JImm/6nqutHFWXiUCvlXms8iu5g8+dusKMvCJTizUJEolclg3JOq\n\trNrq3IzASCJ3yk9x16kflwKTx+lz6bGNk4Mv4WpjE/5lAaYZ4A5qZxUXR0pJcfeSUcd5rzPgKxQ\n\tYPpqSlCqAQIxQmDXlwQ73eZ8oO5EOW7NkmS1OIjQkFOUOfqmLEzj2fOfGAGFaVLfWlnYucQJtdn\n\tM4njfmIJqirDB22Lr","X-Received":["by 2002:a17:907:788:b0:af2:c9c7:7ee8 with SMTP id\n\ta640c23a62f3a-af2f928c5d2mr651436666b.55.1753341144226; \n\tThu, 24 Jul 2025 00:12:24 -0700 (PDT)","by 2002:a17:907:788:b0:af2:c9c7:7ee8 with SMTP id\n\ta640c23a62f3a-af2f928c5d2mr651433666b.55.1753341143744; \n\tThu, 24 Jul 2025 00:12:23 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IHcEUjcHEihsisEHlqr7c2lFvmbiImLFSZaTJw4DUiJkXygvPhEBEwxsl3jsvd9pT9fmlFgwg==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"uajain <uajain@igalia.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org,  Robert Mader\n\t<robert.mader@collabora.com>","Subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","In-Reply-To":"<8280060cbdfc25986ad1f2851eb63e3f@igalia.com>\n\t(uajain@igalia.com's message of \"Thu, 24 Jul 2025 08:20:29 +0530\")","References":"<20250716142027.236277-1-uajain@igalia.com>\n\t<8534auc3qt.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<ebcn3dry2cqmljcfrjgorgzop6em5fljryalw2azqb36xxkbis@w7krd7jys4g6>\n\t<851pqdwx3r.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<175302633904.505382.3913794640677860558@ping.linuxembedded.co.uk>\n\t<s2xf3wbtmpjlkipsxwlyhv53b5yzok7lpveoujhiqu7eziqe26@t65g4mxgw7qn>\n\t<iyihd6wxnf3lgkvfmc5neuwru5b3nsrrlnlv7v37tr3z35oege@334w57lihvjb>\n\t<175309678227.3806966.6655158146908785644@ping.linuxembedded.co.uk>\n\t<85zfcx9srh.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<o424jxeuqrmpyxifvttc3uzpssotm7gzyrh4qbuffsbscfqpuk@vgd6mmqvxqbu>\n\t<85wm7yvkhp.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<8280060cbdfc25986ad1f2851eb63e3f@igalia.com>","Date":"Thu, 24 Jul 2025 09:12:22 +0200","Message-ID":"<85qzy6m59l.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"TJLQi6Bh4mAiViUadx2e75cqKK4q9H8_LSYhXMgklZw_1753341144","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>"}},{"id":35104,"web_url":"https://patchwork.libcamera.org/comment/35104/","msgid":"<vxmvfdcvtugwwerpeaghs3gkwg5ydearnkc4onco5ilhlqjgow@kslcwkzlomfn>","date":"2025-07-24T14:41:03","subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","submitter":{"id":232,"url":"https://patchwork.libcamera.org/api/people/232/","name":"Umang Jain","email":"uajain@igalia.com"},"content":"On Thu, Jul 24, 2025 at 09:12:22AM +0200, Milan Zamazal wrote:\n> Hi Umang,\n> \n> uajain <uajain@igalia.com> writes:\n> \n> > On 2025-07-23 23:48, Milan Zamazal wrote:\n> >> Hi,\n> >> \n> >\n> >> I posted v11.  It's a conservative update, the most important change\n> >> being that the raw stream size is adjusted now if needed.  v11 seems to\n> >> work for me better than both my v10 and Umang's RFC but independent\n> >> testing is needed.\n> >\n> > Perhaps you can briefly state / give testing commands to understand the\n> > diff between the two implementations? \n> \n> Examples of the commands I tried:\n> \n> - cam -c1 -C -D\n>   Basic sanity check with a display output at the given display device\n>   resolution.\n> \n> - cam -c1 -C8 -s role=raw -Ffoo#\n>   Simple raw output.\n> \n> - ./build-swisp/src/apps/cam/cam -c1 -C8 -s role=raw,width=1920,height=1080,pixelformat=SRGGB10 -Ffoo#\n>   Raw output with exact and correct parameters.\n> \n> - ./build-swisp/src/apps/cam/cam -c1 -C8 -s role=raw,width=2000,height=1000,pixelformat=RGB888 -Ffoo#\n>   Raw output with parameters that must be adjusted.\n>   (Example of a command that didn't work with v10.)\n> \n> - cam -c1 -C8 -s role=viewfinder,width=3276,height=2464,pixelformat=BGR888 -s role=raw,width=3280,height=2464,pixelformat=SRGGB10 -Ffoo#\n>   Both processed and raw outputs, with correct parameters.\n>   (Example of a command that didn't work with your RFC.)\n> \n> - cam -c1 -C8 -s role=viewfinder,width=3276,height=2464,pixelformat=BGR888 -s role=raw -Ffoo#\n>   The same with implicit raw parameters.\n> \n> - cam -c1 -C8 -s role=viewfinder,width=3276,height=2464,pixelformat=BGR888 -s role=raw,width=640,height=480,pixelformat=SRGGB10 -Ffoo#\n>   The same with raw output parameters that must be adjusted.\n> \n\nThe last 3 you mentioned which doesn't seem to work, I happen to take a\nhigh level look. If you request the raw stream first on commandline, it\nseems works then - so it seems something silly.. or might be the order\nof generateConfiguration for role is called with `cam` utility,\nnot sure.\n\nuajain1@uajain:~/libcamera$ ./build-soft/src/apps/cam/cam -c1 -C10 -srole=raw,width=3280,height=2464,pixelformat=SBGGR10 -srole=viewfinder,width=3276,height=2464,pixelformat=BGR888 \n[1:29:41.500713519] [678]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n[1:29:41.524538571] [678]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+63-00e1f068\n[1:29:41.778350967] [679]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n[1:29:41.782933936] [679]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n[1:29:41.785440915] [679]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\nCamera configuration adjusted\nUsing camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n[1:29:41.816448779] [678]  INFO Camera camera.cpp:1205 configuring streams: (0) 3280x2464-SRGGB10/RAW (1) 3276x2464-BGR888/Unset\n[1:29:41.818171436] [679]  INFO SimplePipeline simple.cpp:1479 data->useConversion_ : 1\n[1:29:41.821951019] [679]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-3522, gain 1-10.6667 (0.0966667)\ncam0: Capture 10 frames\n5382.047170 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 16163840 cam0-stream1 seq: 000000 bytesused: 24226048\n5382.113823 (15.00 fps) cam0-stream0 seq: 000001 bytesused: 16163840 cam0-stream1 seq: 000001 bytesused: 24226048\n5382.180477 (15.00 fps) cam0-stream0 seq: 000002 bytesused: 16163840 cam0-stream1 seq: 000002 bytesused: 24226048\n5382.247130 (15.00 fps) cam0-stream0 seq: 000003 bytesused: 16163840 cam0-stream1 seq: 000003 bytesused: 24226048\n5385.113249 (0.35 fps) cam0-stream0 seq: 000046 bytesused: 16163840 cam0-stream1 seq: 000046 bytesused: 24226048\n...\n\nUnfortunately, I don't have much time to test and fix all these\npapercuts (which I expected for this quick implementation)\nin the short term.\n\n> > I assume you will be using one of the supportedDevices[] platform,\n> > right?\n> \n> Right.\n> \n> >> I picked some ideas from Umang's patches while leaving others out, most\n> >> notably identifying the raw streams, as discussed elsewhere.\n> >> \n> >> Regards,\n> >> Milan\n>","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 F1724C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 24 Jul 2025 14:41:06 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6ED9869112;\n\tThu, 24 Jul 2025 16:41:05 +0200 (CEST)","from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 44A3E6910B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 24 Jul 2025 16:41:02 +0200 (CEST)","from [49.36.71.87] (helo=uajain) by fanzine2.igalia.com with\n\tesmtpsa \n\t(Cipher TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)\n\t(Exim) id 1uex7y-003ETh-6a; Thu, 24 Jul 2025 16:40:58 +0200"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=igalia.com header.i=@igalia.com\n\theader.b=\"lPzSIOYB\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com;\n\ts=20170329;\n\th=In-Reply-To:Content-Type:MIME-Version:References:Message-ID:\n\tSubject:Cc:To:From:Date:Sender:Reply-To:Content-Transfer-Encoding:Content-ID:\n\tContent-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n\t:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:\n\tList-Post:List-Owner:List-Archive;\n\tbh=hkrIqBr4oLjyp+Q+xMEJed4kgvO2qwT+ZS3wUymC8ic=;\n\tb=lPzSIOYBZ8o2U9NA1uE+VJvNMo\n\tVzcGAZHMH5ZlSFmWJvJkp8Mf1OAx6pDpwA9Y3PPFt32xuE0rj8Y4PY4B92I7teCJEu3ElYAKRAHuE\n\tFECcsnmtof0oLH2ZgyUkUGygAZapo70dkT8qCzZ+iM9bEGyruMbfeAM7ImIGSeByx5oUEHDOR8EL3\n\tHTWr5aExkMKBnAyz281VEWVXwTuA8QFahzleoAQMAshVamqQtK32AdIQsA1u/oVw280LvC+7pX3kA\n\tLNHKG350M3Cqd5EmkziurL4rN53RhK0MHIjyPO4B9uDwUcWvFWdDPCe9V6QvbmfqET4emtJCM+UQX\n\tIzoyo2tA==;","Date":"Thu, 24 Jul 2025 20:11:03 +0530","From":"Umang Jain <uajain@igalia.com>","To":"Milan Zamazal <mzamazal@redhat.com>","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>, \n\tlibcamera-devel@lists.libcamera.org,\n\tRobert Mader <robert.mader@collabora.com>","Subject":"Re: [RFC PATCH 0/6] libcamera: simple: Enable Raw capture","Message-ID":"<vxmvfdcvtugwwerpeaghs3gkwg5ydearnkc4onco5ilhlqjgow@kslcwkzlomfn>","References":"<851pqdwx3r.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<175302633904.505382.3913794640677860558@ping.linuxembedded.co.uk>\n\t<s2xf3wbtmpjlkipsxwlyhv53b5yzok7lpveoujhiqu7eziqe26@t65g4mxgw7qn>\n\t<iyihd6wxnf3lgkvfmc5neuwru5b3nsrrlnlv7v37tr3z35oege@334w57lihvjb>\n\t<175309678227.3806966.6655158146908785644@ping.linuxembedded.co.uk>\n\t<85zfcx9srh.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<o424jxeuqrmpyxifvttc3uzpssotm7gzyrh4qbuffsbscfqpuk@vgd6mmqvxqbu>\n\t<85wm7yvkhp.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>\n\t<8280060cbdfc25986ad1f2851eb63e3f@igalia.com>\n\t<85qzy6m59l.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<85qzy6m59l.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"NeoMutt/20250510-dirty","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>"}}]