From patchwork Tue Mar 7 11:48:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 18351 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 29A04BDE17 for ; Tue, 7 Mar 2023 11:48:23 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 0B595626BD; Tue, 7 Mar 2023 12:48:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1678189701; bh=yTZCZe+asRpABZTXEMdxSzftafd8+qHzj3TlxvWe8Y0=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=31GnVCco6lemk2uCPNzOAm2lv16IHlfCMlYDE8ovs+p7+Wt0CT03l/3s4R+mzGxAg SlcvtZ/3nMY7Trjd+Eoz2k1HB9ub+WfPrAjZE9LDXslJA76KZd0DBjgcM+OZaKbZzu jx5Ot91m1t+fLn97hlwaATaYcddnO1CVC2cjacyqxN9AFz7uV/zOMZY5mPfrFxS8W5 9ksKbdSvAYJpmHE6f9uRou0aPeOhiTdYzb4sL4856ij7b6uYf2xVQJe0BmPa2bfOn4 rWhedKjc05PzU7hT8Ri3ilnHwCij9Tu+17XBIspPoErz/kjWHl56UR5VmANAMu6Ep6 HUCdr5bxS7jkQ== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 95DDD6265E for ; Tue, 7 Mar 2023 12:48:19 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="F7NnQAaU"; dkim-atps=neutral Received: from uno.homenet.telecomitalia.it (host-79-47-54-87.retail.telecomitalia.it [79.47.54.87]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 9E5CD6D5; Tue, 7 Mar 2023 12:48:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1678189699; bh=yTZCZe+asRpABZTXEMdxSzftafd8+qHzj3TlxvWe8Y0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=F7NnQAaUWn2wEKDy8fA4fvhoVCB6SLd2/NxxRRxHga/Tq/092WbhHsG3yeWIHJUqP IrxZgqdN4Sm1UiR57lcT6+8W+0pvC+wNHiSZDMzqdwR2N/ADbuGTMkzy9okwlso2GJ dvxT90ymZkgv3izr+/x/vvtqWQbuKDf49in3NsYw= To: libcamera-devel@lists.libcamera.org Date: Tue, 7 Mar 2023 12:48:01 +0100 Message-Id: <20230307114804.42291-2-jacopo.mondi@ideasonboard.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230307114804.42291-1-jacopo.mondi@ideasonboard.com> References: <20230307114804.42291-1-jacopo.mondi@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 1/4] libcamera: rkisp1: Generate config using main path 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-Patchwork-Original-From: Jacopo Mondi via libcamera-devel From: Jacopo Mondi Reply-To: Jacopo Mondi Cc: Jacopo Mondi , libcamera@luigi311.com Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The generateConfiguration() implementation in the Rockchip RkISP1 pipeline handler uses by default the self path (if available) for the Viewfinder and VideoRecording StreamRoles. The validate() implementation, at the contrary, prefers using the main path, when available, for all streams. As the self-path is limited in output resolution to 1920x1920, generating a configuration using the self path limits the maximum stream size to 1920x1920, while higher resolutions can be obtained by using the main path. Align the generateConfiguration() implementation to the validate() one by using the main path by default if available. Bug: https://bugs.libcamera.org/show_bug.cgi?id=180 Reported-by: libcamera@luigi311.com Signed-off-by: Jacopo Mondi Reviewed-by: Paul Elder Reviewed-by: Laurent Pinchart --- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp index 096c9cca3a0a..ebc9bef8688a 100644 --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp @@ -647,23 +647,19 @@ PipelineHandlerRkISP1::generateConfiguration(Camera *camera, * first stream and use it for all streams. */ std::optional colorSpace; - bool mainPathAvailable = true; - bool selfPathAvailable = data->selfPath_; for (const StreamRole role : roles) { - bool useMainPath; + bool useMainPath = mainPathAvailable; switch (role) { case StreamRole::StillCapture: - useMainPath = mainPathAvailable; /* JPEG encoders typically expect sYCC. */ if (!colorSpace) colorSpace = ColorSpace::Sycc; break; case StreamRole::Viewfinder: - useMainPath = !selfPathAvailable; /* * sYCC is the YCbCr encoding of sRGB, which is commonly * used by displays. @@ -673,7 +669,6 @@ PipelineHandlerRkISP1::generateConfiguration(Camera *camera, break; case StreamRole::VideoRecording: - useMainPath = !selfPathAvailable; /* Rec. 709 is a good default for HD video recording. */ if (!colorSpace) colorSpace = ColorSpace::Rec709; @@ -686,7 +681,6 @@ PipelineHandlerRkISP1::generateConfiguration(Camera *camera, return nullptr; } - useMainPath = true; colorSpace = ColorSpace::Raw; break; @@ -703,7 +697,6 @@ PipelineHandlerRkISP1::generateConfiguration(Camera *camera, mainPathAvailable = false; } else { path = data->selfPath_; - selfPathAvailable = false; } StreamConfiguration cfg =