From patchwork Sat Oct 12 18:44:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 2175 Return-Path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 7DE7761985 for ; Sat, 12 Oct 2019 20:44:23 +0200 (CEST) Received: from pendragon.bb.dnainternet.fi (dfj612yhrgyx302h3jwwy-3.rev.dnainternet.fi [IPv6:2001:14ba:21f5:5b00:ce28:277f:58d7:3ca4]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 204BF54C for ; Sat, 12 Oct 2019 20:44:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1570905863; bh=tFI3g3TcoFavZvD5c9z6NKP/c9qf+W3af6KFvQJ5VcQ=; h=From:To:Subject:Date:In-Reply-To:References:From; b=X2J2Lmp94/9MpqQcgDCIXT/vp7imgjVOg3Oc7cDwyiJBHGzOY5DCY+ZqnDR8VhSYi vJfZfVqcK4sSiroT9fN0Q+GsRlLEmztxWd2bhGAKm9zChYq9k5o0IsenAQuUQEXuh6 sK5jxP54BueC1w3h3TDiFPV6ulMRdgsX7puZfpyo= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Sat, 12 Oct 2019 21:44:07 +0300 Message-Id: <20191012184407.31684-15-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191012184407.31684-1-laurent.pinchart@ideasonboard.com> References: <20191012184407.31684-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 14/14] libcamera: ipa: Merge controls and v4l2controls in IPAOperationData 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-List-Received-Date: Sat, 12 Oct 2019 18:44:24 -0000 Now that the V4L2ControlList is merely a helper to construct a ControlList for V4L2 controls, without any data member, all controls can be transferred between pipeline handlers and IPAs using ControlList only. Remove the v4l2controls member for IPAOperationData and use the control member instead. Signed-off-by: Laurent Pinchart Reviewed-by: Jacopo Mondi Reviewed-by: Niklas Söderlund --- include/ipa/ipa_interface.h | 1 - src/ipa/rkisp1/rkisp1.cpp | 2 +- src/libcamera/ipa_interface.cpp | 8 -------- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 6 +++--- 4 files changed, 4 insertions(+), 13 deletions(-) diff --git a/include/ipa/ipa_interface.h b/include/ipa/ipa_interface.h index c393b64f6aa1..dfb1bcbee516 100644 --- a/include/ipa/ipa_interface.h +++ b/include/ipa/ipa_interface.h @@ -33,7 +33,6 @@ struct IPAOperationData { unsigned int operation; std::vector data; std::vector controls; - std::vector v4l2controls; }; class IPAInterface diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp index 69ced840585f..13059d99036c 100644 --- a/src/ipa/rkisp1/rkisp1.cpp +++ b/src/ipa/rkisp1/rkisp1.cpp @@ -215,7 +215,7 @@ void IPARkISP1::setControls(unsigned int frame) V4L2ControlList ctrls(ctrls_); ctrls.set(V4L2_CID_EXPOSURE, static_cast(exposure_)); ctrls.set(V4L2_CID_ANALOGUE_GAIN, static_cast(gain_)); - op.v4l2controls.push_back(ctrls); + op.controls.push_back(ctrls); queueFrameAction.emit(frame, op); } diff --git a/src/libcamera/ipa_interface.cpp b/src/libcamera/ipa_interface.cpp index 4fb178298f4c..0571b8e6bf8b 100644 --- a/src/libcamera/ipa_interface.cpp +++ b/src/libcamera/ipa_interface.cpp @@ -120,14 +120,6 @@ namespace libcamera { * by the IPA protocol. */ -/** - * \var IPAOperationData::v4l2controls - * \brief Operation V4L2 controls data - * - * The interpretation and position of different values in the array are defined - * by the IPA protocol. - */ - /** * \class IPAInterface * \brief Interface for IPA implementation diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp index 32b023730009..9b19bde8a274 100644 --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp @@ -324,7 +324,7 @@ RkISP1FrameInfo *RkISP1Frames::find(Request *request) class RkISP1ActionSetSensor : public FrameAction { public: - RkISP1ActionSetSensor(unsigned int frame, CameraSensor *sensor, V4L2ControlList controls) + RkISP1ActionSetSensor(unsigned int frame, CameraSensor *sensor, const ControlList &controls) : FrameAction(frame, SetSensor), sensor_(sensor), controls_(controls) {} protected: @@ -335,7 +335,7 @@ protected: private: CameraSensor *sensor_; - V4L2ControlList controls_; + ControlList controls_; }; class RkISP1ActionQueueBuffers : public FrameAction @@ -387,7 +387,7 @@ void RkISP1CameraData::queueFrameAction(unsigned int frame, { switch (action.operation) { case RKISP1_IPA_ACTION_V4L2_SET: { - V4L2ControlList controls = action.v4l2controls[0]; + const ControlList &controls = action.controls[0]; timeline_.scheduleAction(utils::make_unique(frame, sensor_, controls));