From patchwork Tue Aug 10 16:11:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kieran Bingham X-Patchwork-Id: 13293 X-Patchwork-Delegate: kieran.bingham@ideasonboard.com 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 BC334C3242 for ; Tue, 10 Aug 2021 16:11:41 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id DF3EF6888C; Tue, 10 Aug 2021 18:11:40 +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="kqYpNDlR"; dkim-atps=neutral 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 BE2DE687F0 for ; Tue, 10 Aug 2021 18:11:37 +0200 (CEST) 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 6E4E43F0; Tue, 10 Aug 2021 18:11:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1628611897; bh=E2al2TTS7/EVKTrISR8n83R4O7/TJ9m2ZkLc/j+JELA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kqYpNDlReDZzpkw/indMPExyF+CJ3g/1P0FuT969e4kPcJyWgJHn7xx0+XixFNKSY uA8xD6Ppog6Pqym3fnpp9A786F8tIY6QqUqpa959Gn3hQgLIbawYqq8oz0VWZFeIha XLa9212mcwePh2NPDpb1bIeGvvzvujbJ1EdhWc5w= From: Kieran Bingham To: libcamera devel Date: Tue, 10 Aug 2021 17:11:34 +0100 Message-Id: <20210810161134.2243796-4-kieran.bingham@ideasonboard.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210810161134.2243796-1-kieran.bingham@ideasonboard.com> References: <20210810161134.2243796-1-kieran.bingham@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 3/3] libcamera: request: Use external CameraControlValidator 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" Each Request is currently creating its own CameraControlValidator using the Camera instance at construction. Now that the Camera exposes its own CameraControlValidator on its private interface, use that one on all Requests. Signed-off-by: Kieran Bingham --- include/libcamera/request.h | 1 - src/libcamera/request.cpp | 11 ++++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/include/libcamera/request.h b/include/libcamera/request.h index 2d361c9d97dc..d16904e6b679 100644 --- a/include/libcamera/request.h +++ b/include/libcamera/request.h @@ -71,7 +71,6 @@ private: bool completeBuffer(FrameBuffer *buffer); Camera *camera_; - CameraControlValidator *validator_; ControlList *controls_; ControlList *metadata_; BufferMap bufferMap_; diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp index f95ce4db5eaa..4cb4963ea352 100644 --- a/src/libcamera/request.cpp +++ b/src/libcamera/request.cpp @@ -17,6 +17,7 @@ #include #include +#include "libcamera/internal/camera.h" #include "libcamera/internal/camera_controls.h" #include "libcamera/internal/framebuffer.h" #include "libcamera/internal/tracepoints.h" @@ -77,12 +78,9 @@ Request::Request(Camera *camera, uint64_t cookie) : camera_(camera), sequence_(0), cookie_(cookie), status_(RequestPending), cancelled_(false) { - /** - * \todo Should the Camera expose a validator instance, to avoid - * creating a new instance for each request? - */ - validator_ = new CameraControlValidator(camera); - controls_ = new ControlList(controls::controls, validator_); + const CameraControlValidator &validator = camera->_d()->validator(); + + controls_ = new ControlList(controls::controls, &validator); /** * \todo: Add a validator for metadata controls. @@ -100,7 +98,6 @@ Request::~Request() delete metadata_; delete controls_; - delete validator_; } /**