From patchwork Thu Jan 30 11:50:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= X-Patchwork-Id: 22664 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id ECEC7BDB1C for ; Thu, 30 Jan 2025 11:50:36 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 9A77268573; Thu, 30 Jan 2025 12:50:36 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=protonmail.com header.i=@protonmail.com header.b="VExqVamV"; dkim-atps=neutral Received: from mail-40133.protonmail.ch (mail-40133.protonmail.ch [185.70.40.133]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 6FD526856C for ; Thu, 30 Jan 2025 12:50:35 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1738237834; x=1738497034; bh=Klx7IcoKgJV3qjhnSO9CDQ1s7CvtjwXIleZI5ZQBElI=; h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector: List-Unsubscribe:List-Unsubscribe-Post; b=VExqVamV01dNM3PclB1JQdGk6z+6qr21tCsPbD/9NMH2QNK/VBwaXBXH36FOGdYPs +uOhP5r4sDnihg2Vb2xHs5sEg0ByTs1w97sqycEdbmv+OHRGUfoPt8t0aQCuSQeIi0 nRkwEkHhAxSX/t2bDvPQv2cjE70UGP8OtGi1wyz7J3jfiIrOM41sOYmhYTPXHxFlBo PVItPsofh2FzLaQ6WMkUQWaibvtvsj0jb6KN82fJycRtqhJxxdw6PqOT2cVzhBuBOR aaxOGYEUXg7ZYFxvIuPxQ/e6Ey6+zmxOrfo7lr1dvczQ3Lm4GJ3eq7BPyzMwR66YZU GDqpPBDfb1OhQ== 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?= 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 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" This changeset adds multi-stream tests based on the last two commits of https://patchwork.libcamera.org/project/libcamera/list/?series=4234 Similarly, only two commits here deal with multi-stream tests directly: * Support multiple streams in helpers * Add multi-stream tests Most other changes are non-functional changes. One notable difference compared to the last patch of the aforementioned series is that no new test is created, the current tests are kept and are simply run with multiple streams. Another notable change is that the `CaptureBalanced` and `CaptureUnbalanced` are merged into the `Capture` base class. Changes in v3: * propagate exceptions from deferred calls * cancel related deferred calls when capture session is stopped * make `EventLoop` a member of `Capture` * rename `CaptureUnbalanced` to `StopWithRequestsQueued` Changes in v2: * add a couple small `EventLoop` changes * remove https://patchwork.libcamera.org/patch/22442/ * merge `CaptureBalanced` and `CaptureUnbalanced` * run request completion handler in "main" thread v2: https://patchwork.libcamera.org/project/libcamera/list/?series=4951 v1: https://patchwork.libcamera.org/project/libcamera/list/?series=4923 Barnabás Pőcze (21): apps: common: event_loop: Take callbacks by rvalue ref apps: common: event_loop: Disable copy/move apps: common: event_loop: Use `std::deque` instead of `std::list` apps: common: event_loop: Use single event source for deferred calls apps: common: event_loop: Remove unused type alias apps: common: event_loop: Add way to cancel deferred calls apps: common: event_loop: Make it possible to exit with exception apps: lc-compliance: Initialize `CameraManager` pointer in `Environment` apps: lc-compliance: Put tests into anonymous namespace apps: lc-compliance: Optimize `std::shared_ptr` usage apps: lc-compliance: Remove redundant getter call apps: lc-compliance: Don't allocate `FrameBufferAllocator` dynamically apps: lc-compliance: Use `std::vector` for argument array apps: lc-compliance: Use array instead of `std::vector` apps: lc-compliance: Add message to `GTEST_SKIP()` apps: lc-compliance: Merge `CaptureBalanced` and `CaptureUnbalanced` apps: lc-compliance: Support multiple streams in helpers apps: lc-compliance: Add multi-stream tests apps: lc-compliance: Run request completion handler in "main" thread apps: lc-compliance: Make `EventLoop` a member apps: lc-compliance: Rename `CaptureUnbalanced` src/apps/common/event_loop.cpp | 109 ++++++--- src/apps/common/event_loop.h | 31 ++- src/apps/lc-compliance/environment.h | 2 +- src/apps/lc-compliance/helpers/capture.cpp | 218 +++++++++--------- src/apps/lc-compliance/helpers/capture.h | 54 ++--- src/apps/lc-compliance/main.cpp | 42 +--- src/apps/lc-compliance/tests/capture_test.cpp | 102 ++++---- 7 files changed, 289 insertions(+), 269 deletions(-) --- 2.48.1