Show a cover letter.

GET /api/covers/23776/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 23776,
    "url": "https://patchwork.libcamera.org/api/covers/23776/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/23776/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20250709134229.135949-1-uajain@igalia.com>",
    "date": "2025-07-09T13:42:27",
    "name": "[0/2] libcamera: simple: Enable RPi's unicam+SoftISP",
    "submitter": {
        "id": 232,
        "url": "https://patchwork.libcamera.org/api/people/232/?format=api",
        "name": "Umang Jain",
        "email": "uajain@igalia.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/23776/mbox/",
    "series": [
        {
            "id": 5279,
            "url": "https://patchwork.libcamera.org/api/series/5279/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5279",
            "date": "2025-07-09T13:42:27",
            "name": "libcamera: simple: Enable RPi's unicam+SoftISP",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/5279/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/23776/comments/",
    "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 E6526C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  9 Jul 2025 13:42:34 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E0A4D68EEC;\n\tWed,  9 Jul 2025 15:42:33 +0200 (CEST)",
            "from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 135CD68E8A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  9 Jul 2025 15:42:32 +0200 (CEST)",
            "from [49.36.71.19] (helo=uajain) by fanzine2.igalia.com with\n\tesmtpsa \n\t(Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)\n\t(Exim) id 1uZV4A-00EUOy-P2; Wed, 09 Jul 2025 15:42:31 +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=\"WmKCyDUH\"; 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:MIME-Version:Message-ID:Date:Subject:\n\tCc:To:From:Sender:Reply-To:Content-Type:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tIn-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:\n\tList-Post:List-Owner:List-Archive;\n\tbh=punazOBrIq+aJ16/QDhVlIQkysQXyIoWN+uPXYYnd8w=;\n\tb=WmKCyDUHpzNzxNlOLbqyOiGMVi\n\tX75gR+m8rk8hof2mnB0O3pqS670UqtCxsVdMfIVTKPVBNBGZa2zWYT6efq8QaLG4BUstlqZs3QmIO\n\tl6CwSiAS99TUwvLz2PMuv/4xUoJ+YF1dMb55Cy1+2S4F5sYdL9TYezhhiuvQUeuPwj7+hfD/dcMJu\n\t/69P0SwEaYQX5eHbNuud8ZJ4z18aMo5MYJCAFhueoY7ibulZ1hgnta+nBKb15vkS6rMuLV3WJwG9K\n\tZN6ch2n5a4v1lNKGqm1Abz/qzsDgPHIWs2Z4QudjvxvXXowtx63wcsAMXeEbYgaeUoZozTdnw3o9F\n\t5nqkdgYg==;",
        "From": "Umang Jain <uajain@igalia.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Umang Jain <uajain@igalia.com>",
        "Subject": "[PATCH 0/2] libcamera: simple: Enable RPi's unicam+SoftISP",
        "Date": "Wed,  9 Jul 2025 19:12:27 +0530",
        "Message-ID": "<20250709134229.135949-1-uajain@igalia.com>",
        "X-Mailer": "git-send-email 2.50.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "libcamera-devel@lists.libcamera.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "<libcamera-devel.lists.libcamera.org>",
        "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>",
        "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>",
        "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>",
        "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "Couple of patches to stream RPi+IMX219 setup with simple pipeline\nhandler and SoftISP.\n\nPatch 1/2 fixes up bayer pattern changes on the sensor due to transforms\nbeing applied, which then configures the video node correctly.\n\nPatch 2/2 enables the unicam driver in simple pipeline handler with\nSoftISP.\n\nDemo/Test:\n```\nuajain1@uajain:~/libcamera$ LIBCAMERA_LOG_LEVELS=SimplePipeline:0 ./build-soft/src/apps/cam/cam -c1 -swidth=640,height=480 -C\n[11:19:01.616919614] [1594]  INFO IPAManager ipa_manager.cpp:137 libcamera is not installed. Adding '/home/uajain1/libcamera/build-soft/src/ipa' to the IPA search path\n[11:19:01.632115916] [1594]  INFO Camera camera_manager.cpp:326 libcamera v0.5.1+48-e019f6ba\n[11:19:01.703818520] [1595] DEBUG SimplePipeline simple.cpp:1712 Sensor found for /dev/media0\n[11:19:01.705714926] [1595] DEBUG SimplePipeline simple.cpp:479 Found capture device unicam-image\n[11:19:01.726536697] [1595] DEBUG SimplePipeline simple.cpp:553 Found pipeline: [imx219 10-0010|0] -> [0|unicam-image]\n[11:19:01.886387895] [1595]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n[11:19:01.886763989] [1595]  WARN IPAProxy ipa_proxy.cpp:177 Configuration file 'imx219.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'\n[11:19:01.889230603] [1595]  INFO IPAProxy ipa_proxy.cpp:151 libcamera is not installed. Loading IPA configuration from '/home/uajain1/libcamera/src/ipa/simple/data'\n[11:19:01.902451281] [1595] DEBUG SimplePipeline simple.cpp:843 Link 'imx219 10-0010'[0] -> 'unicam-image'[0]: configured with format 640x480-SRGGB10_1X10\n[11:19:01.903327531] [1595] DEBUG SimplePipeline simple.cpp:694 Adding configuration for 640x480 in pixel formats [ RG10, pRAA ]\n[11:19:01.905158676] [1595] DEBUG SimplePipeline simple.cpp:843 Link 'imx219 10-0010'[0] -> 'unicam-image'[0]: configured with format 1640x1232-SRGGB10_1X10\n[11:19:01.905657322] [1595] DEBUG SimplePipeline simple.cpp:694 Adding configuration for 1640x1232 in pixel formats [ RG10, pRAA ]\n[11:19:01.907001593] [1595] DEBUG SimplePipeline simple.cpp:843 Link 'imx219 10-0010'[0] -> 'unicam-image'[0]: configured with format 1920x1080-SRGGB10_1X10\n[11:19:01.907442843] [1595] DEBUG SimplePipeline simple.cpp:694 Adding configuration for 1920x1080 in pixel formats [ RG10, pRAA ]\n[11:19:01.908831801] [1595] DEBUG SimplePipeline simple.cpp:843 Link 'imx219 10-0010'[0] -> 'unicam-image'[0]: configured with format 3280x2464-SRGGB10_1X10\n[11:19:01.909281020] [1595] DEBUG SimplePipeline simple.cpp:694 Adding configuration for 3280x2464 in pixel formats [ RG10, pRAA ]\n[11:19:01.910646228] [1595] DEBUG SimplePipeline simple.cpp:843 Link 'imx219 10-0010'[0] -> 'unicam-image'[0]: configured with format 640x480-SRGGB8_1X8\n[11:19:01.911075239] [1595] DEBUG SimplePipeline simple.cpp:694 Adding configuration for 640x480 in pixel formats [ RGGB ]\n[11:19:01.912636072] [1595] DEBUG SimplePipeline simple.cpp:843 Link 'imx219 10-0010'[0] -> 'unicam-image'[0]: configured with format 1640x1232-SRGGB8_1X8\n[11:19:01.913076697] [1595] DEBUG SimplePipeline simple.cpp:694 Adding configuration for 1640x1232 in pixel formats [ RGGB ]\n[11:19:01.914325968] [1595] DEBUG SimplePipeline simple.cpp:843 Link 'imx219 10-0010'[0] -> 'unicam-image'[0]: configured with format 1920x1080-SRGGB8_1X8\n[11:19:01.914727687] [1595] DEBUG SimplePipeline simple.cpp:694 Adding configuration for 1920x1080 in pixel formats [ RGGB ]\n[11:19:01.915933520] [1595] DEBUG SimplePipeline simple.cpp:843 Link 'imx219 10-0010'[0] -> 'unicam-image'[0]: configured with format 3280x2464-SRGGB8_1X8\n[11:19:01.916384458] [1595] DEBUG SimplePipeline simple.cpp:694 Adding configuration for 3280x2464 in pixel formats [ RGGB ]\n[11:19:01.922179510] [1594] DEBUG SimplePipeline simple.cpp:1122 Largest stream size is 3272x2464\n[11:19:01.922443208] [1594] DEBUG SimplePipeline simple.cpp:1174 Picked 3280x2464-SRGGB10_1X10 -> 3280x2464-SRGGB10 for max stream size 3272x2464\n[11:19:01.923014249] [1594] DEBUG SimplePipeline simple.cpp:1122 Largest stream size is 640x480\n[11:19:01.923137843] [1594] DEBUG SimplePipeline simple.cpp:1174 Picked 640x480-SRGGB10_1X10 -> 640x480-SRGGB10 for max stream size 640x480\n[11:19:01.923285239] [1594] DEBUG SimplePipeline simple.cpp:1223 Adjusting size from 640x480 to 636x480\nCamera configuration adjusted\nUsing camera /base/soc/i2c0mux/i2c@1/imx219@10 as cam0\n[11:19:01.923578781] [1594] DEBUG SimplePipeline simple.cpp:1122 Largest stream size is 636x480\n[11:19:01.923698312] [1594] DEBUG SimplePipeline simple.cpp:1174 Picked 640x480-SRGGB10_1X10 -> 640x480-SRGGB10 for max stream size 636x480\n[11:19:01.923864874] [1594]  INFO Camera camera.cpp:1205 configuring streams: (0) 636x480-ABGR8888/Unset\n[11:19:01.925430812] [1595] DEBUG SimplePipeline simple.cpp:843 Link 'imx219 10-0010'[0] -> 'unicam-image'[0]: configured with format 640x480-SBGGR10_1X10\n[11:19:01.929379301] [1595]  INFO IPASoft soft_simple.cpp:264 IPASoft: Exposure 4-1759, gain 1-10.6667 (0.0966667)\ncam0: Capture until user interrupts by SIGINT\n40742.019745 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 1221120\n40742.053071 (30.01 fps) cam0-stream0 seq: 000001 bytesused: 1221120\n40742.086400 (30.00 fps) cam0-stream0 seq: 000002 bytesused: 1221120\n40742.186379 (10.00 fps) cam0-stream0 seq: 000005 bytesused: 1221120\n40742.319686 (7.50 fps) cam0-stream0 seq: 000009 bytesused: 1221120\n40742.419668 (10.00 fps) cam0-stream0 seq: 000012 bytesused: 1221120\n40742.552976 (7.50 fps) cam0-stream0 seq: 000016 bytesused: 1221120\n40742.652957 (10.00 fps) cam0-stream0 seq: 000019 bytesused: 1221120\n40742.786264 (7.50 fps) cam0-stream0 seq: 000023 bytesused: 1221120\n40742.886247 (10.00 fps) cam0-stream0 seq: 000026 bytesused: 1221120\n40743.019553 (7.50 fps) cam0-stream0 seq: 000030 bytesused: 1221120\n40743.119535 (10.00 fps) cam0-stream0 seq: 000033 bytesused: 1221120\n40743.252843 (7.50 fps) cam0-stream0 seq: 000037 bytesused: 1221120\n40743.352824 (10.00 fps) cam0-stream0 seq: 000040 bytesused: 1221120\n40743.486131 (7.50 fps) cam0-stream0 seq: 000044 bytesused: 1221120\n40743.586113 (10.00 fps) cam0-stream0 seq: 000047 bytesused: 1221120\n40743.719421 (7.50 fps) cam0-stream0 seq: 000051 bytesused: 1221120\n40743.819402 (10.00 fps) cam0-stream0 seq: 000054 bytesused: 1221120\n```\n\nQuestion:\nUnicam does support packed and unpacked CSI2 pixel formats. Would it be\nin interest for simple pipeline handler to support the packed formats ?\nor is it something specific to RPi (and we shouldn't include that in the\ngeneric simple pipeline handler) ?\n\nUmang Jain (2):\n  libcamera: simple: Detect Bayer pattern change during configure()\n  libcamera: simple: Support RPi's unicam CSI-2 receiver\n\n src/libcamera/pipeline/simple/simple.cpp | 17 +++++++++++++++--\n 1 file changed, 15 insertions(+), 2 deletions(-)"
}