From patchwork Wed Oct 7 10:17:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 10001 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 7748DBEEE1 for ; Wed, 7 Oct 2020 10:14:03 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 3CDE360557; Wed, 7 Oct 2020 12:14:03 +0200 (CEST) Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 31AF560494 for ; Wed, 7 Oct 2020 12:14:02 +0200 (CEST) X-Originating-IP: 93.34.118.233 Received: from uno.lan (93-34-118-233.ip49.fastwebnet.it [93.34.118.233]) (Authenticated sender: jacopo@jmondi.org) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 47D0F60014; Wed, 7 Oct 2020 10:14:01 +0000 (UTC) From: Jacopo Mondi To: libcamera-devel@lists.libcamera.org Date: Wed, 7 Oct 2020 12:17:41 +0200 Message-Id: <20201007101745.15104-10-jacopo@jmondi.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201007101745.15104-1-jacopo@jmondi.org> References: <20201007101745.15104-1-jacopo@jmondi.org> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 09/13] android: camera_device: Make CameraStream configuration nicer 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" Loop over the CameraStream instances and use their interface to perform CameraStream configuration. Modify CameraStream::configure() to configure the android stream buffer count and to retrieve the StreamConfiguration by index instead of receiving it as a parameter. Reviewed-by: Laurent Pinchart Reviewed-by: Kieran Bingham Signed-off-by: Jacopo Mondi --- src/android/camera_device.cpp | 15 +++++---------- src/android/camera_stream.cpp | 11 ++++++++--- src/android/camera_stream.h | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index 678dca609003..1e2cbeeb92d1 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -1287,17 +1287,12 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list) * StreamConfiguration and set the number of required buffers in * the Android camera3_stream_t. */ - for (unsigned int i = 0; i < stream_list->num_streams; ++i) { - camera3_stream_t *stream = stream_list->streams[i]; - CameraStream *cameraStream = static_cast(stream->priv); - const StreamConfiguration &cfg = cameraStream->configuration(); - - int ret = cameraStream->configure(cfg); - if (ret) + for (CameraStream &cameraStream : streams_) { + int ret = cameraStream.configure(); + if (ret) { + LOG(HAL, Error) << "Failed to configure camera stream"; return ret; - - /* Use the bufferCount confirmed by the validation process. */ - stream->max_buffers = cfg.bufferCount; + } } /* diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp index 3946a2cdf844..f899be4fe007 100644 --- a/src/android/camera_stream.cpp +++ b/src/android/camera_stream.cpp @@ -38,10 +38,15 @@ Stream *CameraStream::stream() const return configuration().stream(); } -int CameraStream::configure(const libcamera::StreamConfiguration &cfg) +int CameraStream::configure() { - if (encoder_) - return encoder_->configure(cfg); + if (encoder_) { + int ret = encoder_->configure(configuration()); + if (ret) + return ret; + } + + camera3Stream_->max_buffers = configuration().bufferCount; return 0; } diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h index f46cfd605d03..4c51f0fb3393 100644 --- a/src/android/camera_stream.h +++ b/src/android/camera_stream.h @@ -114,7 +114,7 @@ public: const libcamera::StreamConfiguration &configuration() const; libcamera::Stream *stream() const; - int configure(const libcamera::StreamConfiguration &cfg); + int configure(); int process(const libcamera::FrameBuffer &source, MappedCamera3Buffer *dest, CameraMetadata *metadata);