From patchwork Tue May 19 03:24:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 3812 X-Patchwork-Delegate: laurent.pinchart@ideasonboard.com Return-Path: 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 E1BD660E2A for ; Tue, 19 May 2020 05:25:18 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="mFCYP7c4"; dkim-atps=neutral Received: from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi [81.175.216.236]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 770749CD for ; Tue, 19 May 2020 05:25:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1589858718; bh=LOk3AEjLrVVhMAvdxqTcaHifTmaqBlnpgfSeS4tLBqY=; h=From:To:Subject:Date:In-Reply-To:References:From; b=mFCYP7c4+Xw5aSZnIz8pTjxeOGrdONE6MMZp7LdOKIyEs4v3Fm4+JVnllo0uzOHUS W0HRRCbJeAs+EZCG2CXRBVHGu9R75Ta+gAuHibcTwDiKPnm00NJH9lJYSo7ZlOgXyr a6B9e6RYp69RyqBeFY38feOAYsMWcuetTk0s/wfQ= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Tue, 19 May 2020 06:24:58 +0300 Message-Id: <20200519032505.17307-2-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200519032505.17307-1-laurent.pinchart@ideasonboard.com> References: <20200519032505.17307-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 1/8] cam: Pass stream roles to Capture class 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: Tue, 19 May 2020 03:25:19 -0000 The stream roles will be needed in the Capture class to verify the configuration. Store they in the CamApp class and pass them to the Capture class constructor. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham --- src/cam/capture.cpp | 5 +++-- src/cam/capture.h | 4 +++- src/cam/main.cpp | 9 +++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/cam/capture.cpp b/src/cam/capture.cpp index 55fa2dabcee9..b7e06bcc9463 100644 --- a/src/cam/capture.cpp +++ b/src/cam/capture.cpp @@ -16,8 +16,9 @@ using namespace libcamera; -Capture::Capture(std::shared_ptr camera, CameraConfiguration *config) - : camera_(camera), config_(config), writer_(nullptr) +Capture::Capture(std::shared_ptr camera, CameraConfiguration *config, + const StreamRoles &roles) + : camera_(camera), config_(config), roles_(roles), writer_(nullptr) { } diff --git a/src/cam/capture.h b/src/cam/capture.h index 9bca5661070e..c0e697b831fb 100644 --- a/src/cam/capture.h +++ b/src/cam/capture.h @@ -24,7 +24,8 @@ class Capture { public: Capture(std::shared_ptr camera, - libcamera::CameraConfiguration *config); + libcamera::CameraConfiguration *config, + const libcamera::StreamRoles &roles); int run(EventLoop *loop, const OptionsParser::Options &options); private: @@ -35,6 +36,7 @@ private: std::shared_ptr camera_; libcamera::CameraConfiguration *config_; + libcamera::StreamRoles roles_; std::map streamName_; BufferWriter *writer_; diff --git a/src/cam/main.cpp b/src/cam/main.cpp index 2512fe9da782..cdd29d500202 100644 --- a/src/cam/main.cpp +++ b/src/cam/main.cpp @@ -47,6 +47,7 @@ private: OptionsParser::Options options_; CameraManager *cm_; std::shared_ptr camera_; + StreamRoles roles_; std::unique_ptr config_; EventLoop *loop_; }; @@ -194,10 +195,10 @@ int CamApp::parseOptions(int argc, char *argv[]) int CamApp::prepareConfig() { - StreamRoles roles = StreamKeyValueParser::roles(options_[OptStream]); + roles_ = StreamKeyValueParser::roles(options_[OptStream]); - config_ = camera_->generateConfiguration(roles); - if (!config_ || config_->size() != roles.size()) { + config_ = camera_->generateConfiguration(roles_); + if (!config_ || config_->size() != roles_.size()) { std::cerr << "Failed to get default stream configuration" << std::endl; return -EINVAL; @@ -326,7 +327,7 @@ int CamApp::run() } if (options_.isSet(OptCapture)) { - Capture capture(camera_, config_.get()); + Capture capture(camera_, config_.get(), roles_); return capture.run(loop_, options_); }