From patchwork Mon Oct 5 10:46:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 9958 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 7723AC3B5D for ; Mon, 5 Oct 2020 10:47:43 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 40C0A63BFE; Mon, 5 Oct 2020 12:47:43 +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="fsKpfWAd"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id E43C363C23 for ; Mon, 5 Oct 2020 12:47:37 +0200 (CEST) Received: from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 7D0CD59E; Mon, 5 Oct 2020 12:47:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1601894857; bh=mvN0I6FK3ed1Qwneht64CEk1suW1Vz1q+JMDrACRHGU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fsKpfWAdkxHJZNnp5r1Bm0g1ofUIUbZlyfUIZbJuR99XZjpSBBhpNjaSKTce9zyrb 5DS101MDEkDhetAduDWDoLx8gSqtraCivsqgHwxhHRE/vWnXXGEdPprAru+MTdyuH1 G53fIWiC5GrrN6ezZ8GfXrheK9nnfOhMQDndGQ7c= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Mon, 5 Oct 2020 13:46:45 +0300 Message-Id: <20201005104649.10812-12-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20201005104649.10812-1-laurent.pinchart@ideasonboard.com> References: <20201005104649.10812-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 11/15] 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" From: Jacopo Mondi Loop over the CameraStream instances and use their interface to perform CameraStream configuration after the Camera::configure(). Signed-off-by: Jacopo Mondi Reviewed-by: Kieran Bingham --- src/android/camera_device.cpp | 10 ++++------ src/android/camera_stream.cpp | 4 ++-- src/android/camera_stream.h | 3 ++- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index 537883b63f15..62307726aea9 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -1298,17 +1298,15 @@ 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->streamConfiguration(); + for (CameraStream &cameraStream : streams_) { + camera3_stream_t *stream = cameraStream.androidStream(); - int ret = cameraStream->configure(cfg); + int ret = cameraStream.configure(); if (ret) return ret; /* Use the bufferCount confirmed by the validation process. */ - stream->max_buffers = cfg.bufferCount; + stream->max_buffers = cameraStream.streamConfiguration().bufferCount; } return 0; diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp index 76e7d240f4e7..dbde1e786300 100644 --- a/src/android/camera_stream.cpp +++ b/src/android/camera_stream.cpp @@ -56,10 +56,10 @@ const Size &CameraStream::size() const return streamConfiguration().size; } -int CameraStream::configure(const libcamera::StreamConfiguration &cfg) +int CameraStream::configure() { if (encoder_) { - int ret = encoder_->configure(cfg); + int ret = encoder_->configure(streamConfiguration()); if (ret) return ret; } diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h index e399e17b2a2f..c6ff79230b7e 100644 --- a/src/android/camera_stream.h +++ b/src/android/camera_stream.h @@ -116,13 +116,14 @@ public: int outputFormat() const { return androidStream_->format; } Type type() const { return type_; } + camera3_stream_t *androidStream() const { return androidStream_; } const libcamera::StreamConfiguration &streamConfiguration() const; libcamera::Stream *stream() const; const libcamera::PixelFormat &format() const; const libcamera::Size &size() const; - int configure(const libcamera::StreamConfiguration &cfg); + int configure(); int process(libcamera::FrameBuffer *source, MappedCamera3Buffer *dest, CameraMetadata *metadata);