From patchwork Thu Jul 21 12:12:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kieran Bingham X-Patchwork-Id: 16712 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 47DD0BD1F1 for ; Thu, 21 Jul 2022 12:13:17 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id EEBEE6331A; Thu, 21 Jul 2022 14:13:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1658405596; bh=BxI9rv3Asd5Gc2CNU7E/zg7FlxNj0mzA/EZT4KSOrLI=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=wgM+Yo4aT8+48kSRgiXiZ9EiOTgJRkjexNvlXyS+RtNHN8BKdASwsJ8pVA0Z8A41c wRR+1GUX1Fsf047JKO818B1/Tmqmj3996Du3h+eWjRAOnTiebvheuKxSByZ6hHBzQa WOaui0VyG1G1EbuPKO+w+v2driIHeKs8/mr47uFjpEQCfrSedfyw7R2S9KYQ/BfD42 l0HY9cJKtgv+xZl6PXUPWOWZPLeBryjM/M4ondcAyEd7ARCey+oeYMlOj1aIa/+KB3 GjAM/YdYSduWKgGemvwnjfVzZcxJmL/V2Jhpaw3oZa/aohmFl8/hV3F92qypuqoRb9 eKQusJVdj14Zg== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id BE9B0601B8 for ; Thu, 21 Jul 2022 14:13:13 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="nC4vWkYd"; dkim-atps=neutral Received: from Monstersaurus.local (cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 38B1C825; Thu, 21 Jul 2022 14:13:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1658405593; bh=BxI9rv3Asd5Gc2CNU7E/zg7FlxNj0mzA/EZT4KSOrLI=; h=From:To:Cc:Subject:Date:From; b=nC4vWkYduETfVmxieFywfoYSKaivhenY1w3qHzf60nmV1VeP9Z1+dfHCRdZ9mH2Cf 4GIYV7yYwdeuXIBpEvoVKHxMHOTf5f2gVlF+67DBLKwioGGksWY6TgIgaXxhLxiGND KH/LSGMCvyqTs1k5BDIKaazbkT7xfSZ/ZbZgZrXA= To: libcamera devel Date: Thu, 21 Jul 2022 13:12:58 +0100 Message-Id: <20220721121310.1286862-1-kieran.bingham@ideasonboard.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [libcamera-devel] [RFC PATCH 00/12] libcamera: Align IPU3 and RKISP1 interfaces 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: , X-Patchwork-Original-From: Kieran Bingham via libcamera-devel From: Kieran Bingham Reply-To: Kieran Bingham Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" This series pulls together several separate work items to align both the IPU3 and the RKISP1 to use the same interfaces, facilitate reporting errors in requests, introduce a FrameContext for both modules and brings in part of Florian's series to extend the queueRequest call to the algorithms. Note that while errors may be set on the FrameContext, they are not yet conveyed to the Pipeline handler to merge with the Request. Florian Sylvestre (2): ipa: libipa: algorithm: Add queueRequest() to the Algorithm class ipa: rkisp1: Transfer queueRequest() call to each algorithm Kieran Bingham (8): libcamera: pipeline: uvcvideo: Report control errors libcamera: request: Add PFCError flag ipa: rkisp1: Rename frameContext to activeState ipa: libipa: Provide a common base for FrameContexts ipa: rkisp1: Convert to use the FCQueue ipa: libipa: algorithm: prepare(): Pass frame and frame Context ipa: libipa: algorithm: process(): Pass frame number ipa: ipu3: Transfer queueRequest() call to each algorithm Paul Elder (1): libcamera: request: Add support for error flags Umang Jain (1): ipa: ipu3: Move the Frame Context queue to libipa include/libcamera/internal/request.h | 3 + include/libcamera/request.h | 10 ++ src/ipa/ipu3/algorithms/af.cpp | 10 +- src/ipa/ipu3/algorithms/af.h | 8 +- src/ipa/ipu3/algorithms/agc.cpp | 11 +- src/ipa/ipu3/algorithms/agc.h | 5 +- src/ipa/ipu3/algorithms/awb.cpp | 9 +- src/ipa/ipu3/algorithms/awb.h | 8 +- src/ipa/ipu3/algorithms/blc.cpp | 6 +- src/ipa/ipu3/algorithms/blc.h | 4 +- src/ipa/ipu3/algorithms/tone_mapping.cpp | 9 +- src/ipa/ipu3/algorithms/tone_mapping.h | 6 +- src/ipa/ipu3/ipa_context.cpp | 43 +------ src/ipa/ipu3/ipa_context.h | 16 +-- src/ipa/ipu3/ipu3.cpp | 19 +-- src/ipa/ipu3/module.h | 2 +- src/ipa/libipa/algorithm.cpp | 20 ++++ src/ipa/libipa/algorithm.h | 14 ++- src/ipa/libipa/fc_queue.cpp | 117 +++++++++++++++++++ src/ipa/libipa/fc_queue.h | 99 ++++++++++++++++ src/ipa/libipa/meson.build | 2 + src/ipa/rkisp1/algorithms/agc.cpp | 28 +++-- src/ipa/rkisp1/algorithms/agc.h | 7 +- src/ipa/rkisp1/algorithms/awb.cpp | 42 ++++--- src/ipa/rkisp1/algorithms/awb.h | 7 +- src/ipa/rkisp1/algorithms/blc.cpp | 4 +- src/ipa/rkisp1/algorithms/blc.h | 4 +- src/ipa/rkisp1/ipa_context.h | 11 +- src/ipa/rkisp1/module.h | 2 +- src/ipa/rkisp1/rkisp1.cpp | 33 ++++-- src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 7 +- src/libcamera/request.cpp | 51 ++++++++ 32 files changed, 485 insertions(+), 132 deletions(-) create mode 100644 src/ipa/libipa/fc_queue.cpp create mode 100644 src/ipa/libipa/fc_queue.h