From patchwork Tue Sep 28 16:25:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Umang Jain X-Patchwork-Id: 13969 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 4573BC3243 for ; Tue, 28 Sep 2021 16:25:49 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 9EDE869191; Tue, 28 Sep 2021 18:25:48 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="d4dW+fFd"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 3169469188 for ; Tue, 28 Sep 2021 18:25:47 +0200 (CEST) Received: from perceval.ideasonboard.com (unknown [IPv6:2405:204:8500:b152:4879:ab55:a9fb:2b15]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id AB5253F1; Tue, 28 Sep 2021 18:25:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1632846346; bh=UtXIBlrX0KddaTJYdXckW5QWO8yaiocZxVhNSPHMFms=; h=From:To:Cc:Subject:Date:From; b=d4dW+fFdTYVfCiModNFYqEwp7VnylEAlN0yhCiQC6svlqyIIYnLuAlKjzeSi3n8jw 0bgdF7VzVWeYFqEWj0ehZReP46ETOfXzIpNSHtJmRrEgRlGJXExT93CMIWKKaAP8o8 /gfwzkgOpJ6LrJmR5tQ4D+lmwrpgCgBbGy21gbV0= From: Umang Jain To: libcamera-devel@lists.libcamera.org Date: Tue, 28 Sep 2021 21:55:33 +0530 Message-Id: <20210928162536.227475-1-umang.jain@ideasonboard.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 0/3] Camera3RequestDescriptors std::map => std::queue 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" As per the extended design discussion for libcamera HAL, this series addresses the part I of the design that will lead to new iterations for async post-processor eventually. The series mainly ports storage of Camera3RequestDescriptor from std::map => queue while fixing out-of-order request completion from abortRequest(). The series also accounts for a singular location to send back capture results to the framework (find sendCaptureResults()). The series has been validated on CTS: 230 / 231 (carrying [PATCH v3 0/1] android: Wait on acquisition fences in CameraStream) \wip: Checkstyle isn't happy with 2/3's camera_device.h, not sure why! Changes in v2: - Use queue instead of deque - Fix a race between abortRequest() and queuing a descriptor in 2/3 - address general comments in v1 review. Umang Jain (3): android: camera_worker: Use Camera3RequestDescriptor as cookie android: camera_device: Transform descriptors_ map to queue android: camera_device: Send capture results by inspecting the queue src/android/camera_device.cpp | 133 +++++++++++++++++++++------------- src/android/camera_device.h | 18 ++++- src/android/camera_worker.cpp | 4 +- src/android/camera_worker.h | 3 +- 4 files changed, 101 insertions(+), 57 deletions(-)