Show a cover letter.

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

{
    "id": 10612,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/10612/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/10612/",
    "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": "<20201208204441.9356-1-david.plowman@raspberrypi.com>",
    "date": "2020-12-08T20:44:35",
    "name": "[libcamera-devel,v3,0/6] Raspberry Pi AGC: initial frame drop count",
    "submitter": {
        "id": 42,
        "url": "https://patchwork.libcamera.org/api/1.1/people/42/?format=api",
        "name": "David Plowman",
        "email": "david.plowman@raspberrypi.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/10612/mbox/",
    "series": [
        {
            "id": 1515,
            "url": "https://patchwork.libcamera.org/api/1.1/series/1515/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1515",
            "date": "2020-12-08T20:44:35",
            "name": "Raspberry Pi AGC: initial frame drop count",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/1515/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/10612/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 9475EBDB20\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  8 Dec 2020 20:44:46 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0150667F07;\n\tTue,  8 Dec 2020 21:44:45 +0100 (CET)",
            "from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com\n\t[IPv6:2a00:1450:4864:20::52d])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B7286600FF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  8 Dec 2020 21:44:44 +0100 (CET)",
            "by mail-ed1-x52d.google.com with SMTP id p22so6957431edu.11\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 08 Dec 2020 12:44:44 -0800 (PST)",
            "from pi4-davidp.lan (plowpeople3.plus.com. [80.229.223.72])\n\tby smtp.gmail.com with ESMTPSA id\n\tbe6sm18441471edb.29.2020.12.08.12.44.42\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 08 Dec 2020 12:44:43 -0800 (PST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"SjQ2g2fh\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=Oy3y0oI/LefNt2zuXvefULVdEtlRSXx9n66JYsw1e74=;\n\tb=SjQ2g2fhnm6ryelLUD8CUuPF51Z/bSflKGuj1iPSHdZrbZisVVTEPxUZf/hu33YAWV\n\tquWPR0VIQSwc8qcmN8Xrf4Omq6a+bBfhKIA4pEqGQvp/HV+l/oS8TjGRhEkInTng3oaL\n\t9lhbA7VDjWBclPFn99jd4RTu84lliSgDML5G1m8BNcp6zYziNhfwtUuSv1yH8tlWB0U4\n\tT4ncGfV5BfhRrAc5qwAgtNAfaO/wOOtrasrlYeypM/hHffX82BtCHfGChDbDWkA2OiFI\n\tRqeuWhh/CCXn5miAJJdV+3AqCChVnVi+25bfo16sUZM+8BHT/471goSdGNdRNJZ49d/2\n\tOY8Q==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=Oy3y0oI/LefNt2zuXvefULVdEtlRSXx9n66JYsw1e74=;\n\tb=T/vQXsfeiAIx+Nx+SuDy3zzh0YSwF2ns4Db+6bObYvgGk4by+8OVcNy3Irf447ZEwJ\n\tnubvkJDquzul4YaS1wVIuCE/E0tCNjRZxkevf/HdGDWKzhw84unLVSP4x4ObRU41n/Aq\n\tLcu6XNEv8qujs1wvWmTK33wybvzGByE7ecDfosxKRISSIkslz5xKxuNFdTkcya4CR1qh\n\tmIe3wQgp6zAbcboIK0AseU1/JDpP0+tSxvIja0vHEYhkdlY2S1nn09gBR3/5hk3M97O0\n\tcvkhV81s1ZdtaIjVhc2gJ8EVYCHx/P7YS5wMD64nmZ+MNtiHxY2asBolxO1tCLFc6B9R\n\tW/eQ==",
        "X-Gm-Message-State": "AOAM533EkphZqG+caFFtoUuX0e+DNHcg9k3BhhG0+xk5I8A7LZ5XlXVv\n\tycVZT+zrpLhdtLo/iT1PqiSembTvn9SoTj6M",
        "X-Google-Smtp-Source": "ABdhPJyqNZghpToPOJuyQVWQ00rxqyRrj7Km7pMRG+wmJvLjPe4B5lgnPaRLYkFMoFnP+5iSvhZbKg==",
        "X-Received": "by 2002:a05:6402:4cf:: with SMTP id\n\tn15mr26347476edw.241.1607460283782; \n\tTue, 08 Dec 2020 12:44:43 -0800 (PST)",
        "From": "David Plowman <david.plowman@raspberrypi.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Tue,  8 Dec 2020 20:44:35 +0000",
        "Message-Id": "<20201208204441.9356-1-david.plowman@raspberrypi.com>",
        "X-Mailer": "git-send-email 2.20.1",
        "MIME-Version": "1.0",
        "Subject": "[libcamera-devel] [PATCH v3 0/6] Raspberry Pi AGC: initial frame\n\tdrop count",
        "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>",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "Hi everyone\n\nThanks for all the reviews, comments and discussion! I've lost track a\nlittle bit of which comments were in which thread, so perhaps I can\naddress a few of the remaining issues here.\n\n1. Hide/Mistrust frames at Startup/ModeSwitch\n\nYes, I see that some of these are the same now. I'm slightly inclined\nto keep all 4 variants for the moment as it seems to me they might be\ndifferent, however, if it transpires that new cameras that come along\nstill don't need them maybe we do some simplification then?\n\n2. Should GetConvergenceFrames be in the Algorithm class?\n\nAgain, I'm slightly inclined to avoid it just because there are only 2\nimplementations of this, yet there are actually over a dozen\n\"algorithms\". But like all things, we keep an eye on it!\n\n3. \"Hiding\" vs. \"Mistrusting\"\n\nJust to clarify the distinction here, \"hiding\" means \"do not show this\nto the user because it will look unexpected in some\nway\". \"Mistrusting\" means \"do not allow algorithms to process this\nframe because it will cause them to wobble or do something bad\".\n\n\"Mistrusting\" includes both statistics and metadata from the device. I\nsuppose if the ISP statistics are bad then the frame may be bad too,\nso it would feature in the \"hide\" number already. It is possible that\nyou could get frames that look OK but where the device is lying about\nits metadata, so there is a distinction between the two.\n\nYet perhaps this distinction never really happens in practice - so\nthis should go on this list of things we keep an eye on with a view to\nsimplification.\n\nAs regards the patches themselves, they are structured exactly as\nbefore. The main differences are:\n\n1. No change.\n\n2. and 3. GetConvergenceFrames has dropped the parameter (that's\nhandled back in the IPA now, patch 6).\n\n4. Pwl::Inverse is a bit more careful about adding to its existing end\npoints as it goes.\n\n5. No more std::move.\n\n6. The adding of the \"mistrusted\" frames is handled here now.\n\nAnd I think that's it, please remind me if anything has slipped\nthrough the cracks!\n\nThanks and best regards\nDavid\n\nDavid Plowman (6):\n  src: raspberrypi: Pass the drop frame count in start, not configure\n  src: ipa: raspberrypi: agc: Add GetConvergenceFrames method to AGC\n    base class\n  src: ipa: raspberrypi: awb: Add GetConvergenceFrames method to AWB\n    base class\n  src: ipa: raspberrypi: Compute inverse of piecewise linear function\n  src: ipa: raspberrypi: Estimate the colour temerature if starting with\n    fixed colour gains\n  src: ipa: raspberrypi: Move initial frame drop decision to AGC/AWB\n\n src/ipa/raspberrypi/cam_helper.cpp            |  6 +-\n src/ipa/raspberrypi/cam_helper_ov5647.cpp     | 10 +++\n .../raspberrypi/controller/agc_algorithm.hpp  |  1 +\n .../raspberrypi/controller/awb_algorithm.hpp  |  1 +\n src/ipa/raspberrypi/controller/pwl.cpp        | 30 ++++++++\n src/ipa/raspberrypi/controller/pwl.hpp        |  3 +\n src/ipa/raspberrypi/controller/rpi/agc.cpp    | 11 +++\n src/ipa/raspberrypi/controller/rpi/agc.hpp    |  2 +\n src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  6 +-\n src/ipa/raspberrypi/controller/rpi/awb.cpp    | 25 +++++++\n src/ipa/raspberrypi/controller/rpi/awb.hpp    |  3 +\n src/ipa/raspberrypi/raspberrypi.cpp           | 73 ++++++++++++++-----\n .../pipeline/raspberrypi/raspberrypi.cpp      | 25 ++++---\n 13 files changed, 160 insertions(+), 36 deletions(-)"
}