From patchwork Mon Mar 22 10:42:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marian Cichy X-Patchwork-Id: 11639 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 BC905C32E1 for ; Mon, 22 Mar 2021 10:43:14 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 3DF2A68D72; Mon, 22 Mar 2021 11:43:12 +0100 (CET) Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id DE7B568D62 for ; Mon, 22 Mar 2021 11:43:08 +0100 (CET) Received: from dude02.hi.pengutronix.de ([2001:67c:670:100:1d::28]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lOI1c-0008Cf-2q; Mon, 22 Mar 2021 11:43:08 +0100 Received: from mci by dude02.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1lOI1b-00087Y-QO; Mon, 22 Mar 2021 11:43:07 +0100 From: Marian Cichy To: libcamera-devel@lists.libcamera.org Date: Mon, 22 Mar 2021 11:42:41 +0100 Message-Id: <20210322104242.31107-3-m.cichy@pengutronix.de> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210322104242.31107-1-m.cichy@pengutronix.de> References: <20210322104242.31107-1-m.cichy@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2001:67c:670:100:1d::28 X-SA-Exim-Mail-From: mci@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: libcamera-devel@lists.libcamera.org Subject: [libcamera-devel] [PATCH 2/3] pipeline: simple: Add FrameDurations to stream configuration 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: , Cc: graphics@pengutronix.de, Marian Cichy Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Add a instance of CameraSensorInfo to the simple pipeline and populate it with the sensorInfo from the sensor. With the informations from the sensor, compute the frame duration by using lineLength, minFrameLength and pixelRate and save it in the controlList of the stream. Signed-off-by: Marian Cichy --- src/libcamera/pipeline/simple/simple.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp index 24d940fc..2df83302 100644 --- a/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp @@ -22,6 +22,8 @@ #include #include +#include +#include #include #include @@ -176,6 +178,7 @@ public: std::vector streams_; std::unique_ptr sensor_; + CameraSensorInfo sensorInfo_; std::list entities_; V4L2VideoDevice *video_; @@ -339,6 +342,8 @@ SimpleCameraData::SimpleCameraData(SimplePipelineHandler *pipe, ret = sensor_->init(); if (ret) sensor_.reset(); + + sensor_->sensorInfo(&sensorInfo_); } int SimpleCameraData::init() @@ -679,6 +684,10 @@ CameraConfiguration *SimplePipelineHandler::generateConfiguration(Camera *camera StreamConfiguration cfg{ StreamFormats{ formats } }; cfg.pixelFormat = formats.begin()->first; cfg.size = formats.begin()->second[0].max; + double frameDuration = (data->sensorInfo_.minFrameLength * data->sensorInfo_.lineLength) / + (data->sensorInfo_.pixelRate / 1'000'000); + cfg.controls.set(controls::FrameDurations, { static_cast(frameDuration), + static_cast(frameDuration) }); config->addConfiguration(cfg); }