From patchwork Thu Nov 12 08:52:15 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: GuyliandeJong X-Patchwork-Id: 28872 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 95BDCC3304 for ; Thu, 12 Nov 2026 08:52:23 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 388BC69213; Thu, 12 Nov 2026 09:52:23 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=proton.me header.i=@proton.me header.b="X03Rf7dt"; dkim-atps=neutral Received: from mail-4316.protonmail.ch (mail-4316.protonmail.ch [185.70.43.16]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 6625069146 for ; Thu, 12 Nov 2026 09:52:19 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proton.me; s=protonmail2; t=1794473538; x=1794732738; bh=8Vab2uQuuErvYy+k5NJTMeSyvaqorBkp9aRt2DNoLJw=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=X03Rf7dtb2XOL9GS392M1G7mwp6b0JvFERX9BroQzD8rgkaA4OaEMaYkxdqNQP4Kz EOt17tx32YmNkecwH1kVHFLpLSatU8HXzxzDNzOfyUHiODFA+QctkeG3npuiromEe6 vFBhgou63QhRCXLtkD3nFvXOPqKFSzIXOLcMoYkSlO/RONRJkEwitJYRRpVmY2hEqI //Oc85dZI3sV0mMqsWoTIu91CoEvzrzJINx4+mxubGoUp7YZ1eih66aniBr8mc8ToR 0U58+i4/Y1SWlgLZPZQ5sV2izgg49xpN33M9NPbBpKJ4FrBMMlUW30xL/KpJ/omXOW YsOezMrwI2hQw== Date: Thu, 12 Nov 2026 08:52:15 +0000 To: libcamera-devel@lists.libcamera.org From: GuyliandeJong Cc: Barnabas Pocze , Afonso Figuinha Subject: [PATCH v2 3/3] libcamera: pipeline: ipu3: Bound viewfinder size to the ImgU limits Message-ID: <20261112085159.14289-4-guyliandejong@proton.me> In-Reply-To: <20261112085159.14289-1-guyliandejong@proton.me> References: <20261103104131.87331-1-guyliandejong@proton.me> <20261112085159.14289-1-guyliandejong@proton.me> Feedback-ID: 112452169:user:proton X-Pm-Message-ID: e1827460abe99e7c83bfc799136fb42faf1afdb3 MIME-Version: 1.0 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" The default size of the Viewfinder and VideoRecording streams is 1280x720, bounded by the sensor resolution. It is also used as the maximum size of the StreamFormats ranges reported for these roles. validate() requires the ImgU outputs to be strictly smaller than the CIO2 output, aligned down to 64x32. For a sensor no wider than 1280 pixels or no taller than 736 lines, the default size is then larger than what validate() accepts. With the OV9734 (1296x734) on a Surface Laptop 2, 1280x720 is reported while validate() adjusts it to 1280x704. Applications that pick sizes from StreamFormats, such as PipeWire, get configurations adjusted behind their back, which made WirePlumber abort. Apply the same margin to the sensor resolution as validate() and as the StillCapture role already does, before bounding it to 1280x720. Larger sensors are not affected. Signed-off-by: GuyliandeJong Tested-by: Afonso Figuinha --- src/libcamera/pipeline/ipu3/ipu3.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index 46af776e..df493819 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -444,10 +444,14 @@ PipelineHandlerIPU3::generateConfiguration(Camera *camera, std::span