Show a cover letter.

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

{
    "id": 22664,
    "url": "https://patchwork.libcamera.org/api/covers/22664/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/22664/",
    "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": "<20250130115001.1129305-1-pobrn@protonmail.com>",
    "date": "2025-01-30T11:50:04",
    "name": "[RFC,v3,00/21] apps: lc-compliance: Multi-stream tests",
    "submitter": {
        "id": 133,
        "url": "https://patchwork.libcamera.org/api/people/133/?format=api",
        "name": "Pőcze Barnabás",
        "email": "pobrn@protonmail.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/22664/mbox/",
    "series": [
        {
            "id": 4978,
            "url": "https://patchwork.libcamera.org/api/series/4978/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4978",
            "date": "2025-01-30T11:50:08",
            "name": "apps: lc-compliance: Multi-stream tests",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/4978/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/22664/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 ECEC7BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 30 Jan 2025 11:50:36 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9A77268573;\n\tThu, 30 Jan 2025 12:50:36 +0100 (CET)",
            "from mail-40133.protonmail.ch (mail-40133.protonmail.ch\n\t[185.70.40.133])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6FD526856C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 30 Jan 2025 12:50:35 +0100 (CET)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=protonmail.com header.i=@protonmail.com\n\theader.b=\"VExqVamV\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;\n\ts=protonmail3; t=1738237834; x=1738497034;\n\tbh=Klx7IcoKgJV3qjhnSO9CDQ1s7CvtjwXIleZI5ZQBElI=;\n\th=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date:\n\tSubject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector:\n\tList-Unsubscribe:List-Unsubscribe-Post;\n\tb=VExqVamV01dNM3PclB1JQdGk6z+6qr21tCsPbD/9NMH2QNK/VBwaXBXH36FOGdYPs\n\t+uOhP5r4sDnihg2Vb2xHs5sEg0ByTs1w97sqycEdbmv+OHRGUfoPt8t0aQCuSQeIi0\n\tnRkwEkHhAxSX/t2bDvPQv2cjE70UGP8OtGi1wyz7J3jfiIrOM41sOYmhYTPXHxFlBo\n\tPVItPsofh2FzLaQ6WMkUQWaibvtvsj0jb6KN82fJycRtqhJxxdw6PqOT2cVzhBuBOR\n\taaxOGYEUXg7ZYFxvIuPxQ/e6Ey6+zmxOrfo7lr1dvczQ3Lm4GJ3eq7BPyzMwR66YZU\n\tGDqpPBDfb1OhQ==",
        "Date": "Thu, 30 Jan 2025 11:50:04 +0000",
        "To": "libcamera-devel@lists.libcamera.org",
        "From": "=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <pobrn@protonmail.com>",
        "Subject": "[RFC PATCH v3 00/21] apps: lc-compliance: Multi-stream tests",
        "Message-ID": "<20250130115001.1129305-1-pobrn@protonmail.com>",
        "Feedback-ID": "20568564:user:proton",
        "X-Pm-Message-ID": "509a2aa33d4b6bb2487ad4e35a9dce5f0e486082",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=utf-8",
        "Content-Transfer-Encoding": "quoted-printable",
        "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": "This changeset adds multi-stream tests based on the last two commits of\nhttps://patchwork.libcamera.org/project/libcamera/list/?series=4234\n\nSimilarly, only two commits here deal with multi-stream tests directly:\n  * Support multiple streams in helpers\n  * Add multi-stream tests\n\nMost other changes are non-functional changes.\n\nOne notable difference compared to the last patch of the aforementioned\nseries is that no new test is created, the current tests are kept\nand are simply run with multiple streams.\n\nAnother notable change is that the `CaptureBalanced` and `CaptureUnbalanced`\nare merged into the `Capture` base class.\n\nChanges in v3:\n * propagate exceptions from deferred calls\n * cancel related deferred calls when capture session is stopped\n * make `EventLoop` a member of `Capture`\n * rename `CaptureUnbalanced` to `StopWithRequestsQueued`\n\nChanges in v2:\n * add a couple small `EventLoop` changes\n * remove https://patchwork.libcamera.org/patch/22442/\n * merge `CaptureBalanced` and `CaptureUnbalanced`\n * run request completion handler in \"main\" thread\n\nv2: https://patchwork.libcamera.org/project/libcamera/list/?series=4951\nv1: https://patchwork.libcamera.org/project/libcamera/list/?series=4923\n\nBarnabás Pőcze (21):\n  apps: common: event_loop: Take callbacks by rvalue ref\n  apps: common: event_loop: Disable copy/move\n  apps: common: event_loop: Use `std::deque` instead of `std::list`\n  apps: common: event_loop: Use single event source for deferred calls\n  apps: common: event_loop: Remove unused type alias\n  apps: common: event_loop: Add way to cancel deferred calls\n  apps: common: event_loop: Make it possible to exit with exception\n  apps: lc-compliance: Initialize `CameraManager` pointer in\n    `Environment`\n  apps: lc-compliance: Put tests into anonymous namespace\n  apps: lc-compliance: Optimize `std::shared_ptr` usage\n  apps: lc-compliance: Remove redundant getter call\n  apps: lc-compliance: Don't allocate `FrameBufferAllocator` dynamically\n  apps: lc-compliance: Use `std::vector` for argument array\n  apps: lc-compliance: Use array instead of `std::vector`\n  apps: lc-compliance: Add message to `GTEST_SKIP()`\n  apps: lc-compliance: Merge `CaptureBalanced` and `CaptureUnbalanced`\n  apps: lc-compliance: Support multiple streams in helpers\n  apps: lc-compliance: Add multi-stream tests\n  apps: lc-compliance: Run request completion handler in \"main\" thread\n  apps: lc-compliance: Make `EventLoop` a member\n  apps: lc-compliance: Rename `CaptureUnbalanced`\n\n src/apps/common/event_loop.cpp                | 109 ++++++---\n src/apps/common/event_loop.h                  |  31 ++-\n src/apps/lc-compliance/environment.h          |   2 +-\n src/apps/lc-compliance/helpers/capture.cpp    | 218 +++++++++---------\n src/apps/lc-compliance/helpers/capture.h      |  54 ++---\n src/apps/lc-compliance/main.cpp               |  42 +---\n src/apps/lc-compliance/tests/capture_test.cpp | 102 ++++----\n 7 files changed, 289 insertions(+), 269 deletions(-)\n\n--\n2.48.1"
}