Show a cover letter.

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

{
    "id": 21571,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/21571/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/21571/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/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": "<20241009200110.275544-1-hdegoede@redhat.com>",
    "date": "2024-10-09T20:01:06",
    "name": "[RFC,0/4] libcamera: swstats_cpu: Add processFrame() method",
    "submitter": {
        "id": 102,
        "url": "https://patchwork.libcamera.org/api/1.1/people/102/?format=api",
        "name": "Hans de Goede",
        "email": "hdegoede@redhat.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/21571/mbox/",
    "series": [
        {
            "id": 4678,
            "url": "https://patchwork.libcamera.org/api/1.1/series/4678/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4678",
            "date": "2024-10-09T20:01:06",
            "name": "libcamera: swstats_cpu: Add processFrame() method",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/4678/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/21571/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 85A66C32DE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  9 Oct 2024 20:01:18 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8B1DF63538;\n\tWed,  9 Oct 2024 22:01:17 +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 33008618C5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  9 Oct 2024 22:01:16 +0200 (CEST)",
            "from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com\n\t(ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63])\n\tby relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n\tcipher=TLS_AES_256_GCM_SHA384) id us-mta-616-03ofAUpPNU6GE9Nwn9P_9A-1;\n\tWed, 09 Oct 2024 16:01:13 -0400",
            "from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com\n\t[10.30.177.17])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (2048 bits)\n\tserver-digest SHA256) (No client certificate requested)\n\tby mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS\n\tid 0F2601955F45 for <libcamera-devel@lists.libcamera.org>;\n\tWed,  9 Oct 2024 20:01:13 +0000 (UTC)",
            "from shalem.redhat.com (unknown [10.39.192.36])\n\tby mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id 9F3C019560A3; Wed,  9 Oct 2024 20:01:11 +0000 (UTC)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"YyimiAIp\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1728504075;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding;\n\tbh=HSfuuPk+v3JhOrl08+A970gSoAPohpPGYgXFJ5VtFJw=;\n\tb=YyimiAIpdeijD8VhOX/YS9OZZ1iWoLJkplyvzWzyMX6eUWKQ2byssSHlpp3fXkxfH4cgRb\n\td0XgjsLWgbNimkqnR4n8TqUvZ603wPnAmoJ5j217lVsudE2X1i+mY1NRH+ub+nnJ8tp1d+\n\tx/BVPUNKJaFGsEES0JQgRo3vfDH79Ms=",
        "X-MC-Unique": "03ofAUpPNU6GE9Nwn9P_9A-1",
        "From": "Hans de Goede <hdegoede@redhat.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Milan Zamazal <mzamazal@redhat.com>, Maxime Ripard <mripard@redhat.com>, \n\tHans de Goede <hdegoede@redhat.com>",
        "Subject": "[RFC 0/4] libcamera: swstats_cpu: Add processFrame() method",
        "Date": "Wed,  9 Oct 2024 22:01:06 +0200",
        "Message-ID": "<20241009200110.275544-1-hdegoede@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 3.0 on 10.30.177.17",
        "X-Mimecast-Spam-Score": "0",
        "X-Mimecast-Originator": "redhat.com",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain; charset=\"US-ASCII\"; x-default=true",
        "X-BeenThere": "libcamera-devel@lists.libcamera.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "<libcamera-devel.lists.libcamera.org>",
        "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>",
        "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>",
        "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>",
        "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>",
        "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "Hi All,\n\nHere is a patch series adding a processFrame() method to gather\nstatistics on an entire frame in one go, rather then using the\nline by line approach which is used by the somewhat tightly coupled\nDebayerCpu class.\n\nATM there are no users for processFrame() yet, so the code is\ncompile tested only which is why it is marked as RFC.\n\nI see at least 3 possible use-cases for this:\n\n1. Gathering sw statistics for 3A on raw bayer buffers before\npassing them along for a to-be-added software CPU ISP raw mode.\n\n2. Gathering sw statistics for 3A on raw bayer buffers before\ndoing further processing on the GPU for the software GPU ISP\n(possibly as an intermediate step until the stats are gathered\non the GPU too and/or as a way to compare CPU vs GPU stats\nfor verification purposes).\n\n3. I'm working on a pipeline handler for the atomISP2, where\nthere is a working hw ISP but no usable statistics.\nThe plan is to gather sw statistics on the output buffers\n(so on e.g. YUV images) and then re-use the 3A code from\nthe software ISP (I realize gathering statistics on the\npipeline output buffers is not ideal, but the atomISP driver\nhas no way to access the raw bayer data).\n\nUsage would look something like this:\n\nonce:\n\n\tif (stats_->configure(inputCfg) != 0)\n\t\treturn -EINVAL;\n\n\tstats_->setWindow(Rectangle(window_.size()));\n\nper frame:\n\n\tstats_->startFrame();\n\tstats_->processFrame(inputFrameBuffer);\n\tstats_->finishFrame(frameNo, bufferID);\n\nRegards,\n\nHans\n\n\nHans de Goede (4):\n  libcamera: swstats_cpu: Update statsProcessFn() / processLine0()\n    documentation\n  libcamera: swstats_cpu: Drop patternSize_ documentation\n  libcamera: software_isp: Move benchmark code to its own class\n  libcamera: swstats_cpu: Add processFrame() method\n\n src/libcamera/software_isp/benchmark.cpp   |  78 +++++++++++++++\n src/libcamera/software_isp/benchmark.h     |  36 +++++++\n src/libcamera/software_isp/debayer_cpu.cpp |  32 +-----\n src/libcamera/software_isp/debayer_cpu.h   |   7 +-\n src/libcamera/software_isp/meson.build     |   1 +\n src/libcamera/software_isp/swstats_cpu.cpp | 108 +++++++++++++++++----\n src/libcamera/software_isp/swstats_cpu.h   |  10 ++\n 7 files changed, 216 insertions(+), 56 deletions(-)\n create mode 100644 src/libcamera/software_isp/benchmark.cpp\n create mode 100644 src/libcamera/software_isp/benchmark.h"
}