From patchwork Mon Jul 31 11:31:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 18910 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 36D19BDB13 for ; Mon, 31 Jul 2023 11:31:36 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8A603627EC; Mon, 31 Jul 2023 13:31:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1690803095; bh=GDBfGnMOlo7ioe3mtNtor+DM7EQVblL3VdTNjE/WKso=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=pDlPVgHa02IpLkrbpxTwuMRy84okWNRyKfKxDq2fXaldt942q60IghfXEfLWEca8p J5ugeqbvbzdLhx65tOCugpsRCMN6CG0pMWiXWLE/CYPNEbYu98nKu6ZFY3QcAcKdpz IVuALX6LIqh+XNXjITuYUdeBNEjIvhfeiOZHPHTZRTK7QIInXD9BEPmQb5n51YqT7B ovbLXVcArj1GKAxgHyNs8hfaX2Ya7AEgWVBadQAv+ja+RkeSKUVWbWouFIUDuJY5S8 Zm7rz/6tr+35CoIfEGf6O8li1j5f2owTgqw0ZmZRtTyARqZjkbWfjDhtNysIhArD9i 90AbC5lQoEHgg== 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 392D06037D for ; Mon, 31 Jul 2023 13:31:34 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="huOQ3yGG"; dkim-atps=neutral Received: from uno.localdomain (mob-5-90-53-43.net.vodafone.it [5.90.53.43]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id A7EFA2E4; Mon, 31 Jul 2023 13:30:31 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1690803031; bh=GDBfGnMOlo7ioe3mtNtor+DM7EQVblL3VdTNjE/WKso=; h=From:To:Cc:Subject:Date:From; b=huOQ3yGGoiU0Rhmpp6RXzGq/A9AyvDMPzimWggGANib3WlkoTFWtRMCoMhRnVnxca 9IykGq9iMx6tTY9btCsPYwyc1pRXnEOLDmtWpAbdV/w+0hX+5F2lQy7z2gYwXhUxAr p2vtrYlUTpMZV55gE4XGy5/AuOXrIok+x59Yu1Sw= To: libcamera-devel@lists.libcamera.org Date: Mon, 31 Jul 2023 13:31:11 +0200 Message-Id: <20230731113115.5915-1-jacopo.mondi@ideasonboard.com> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 0/4] libcamera: Introduce SensorConfiguration 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 Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Hello, the series introduces a slightly more formally defined camera sensor model used to model a SensorConfiguration class, an instance of which is added to the CameraConfiguration class. The newly introduced class allows to control the sensor configuration without abusing the RAW stream configuration, reason being some platforms do not allow to capture RAW frames as they get produced by the sensor. Introduce a model for the SensorConfiguration class and implement its handling on the RaspberryPi pipeline handler as a proof of concept. Tested with an imx219, configured to capture frames with different sensor configurations, without using any RAW stream. v1->v2: - Fix spelling in 2/4 as suggested by Naush - Add Naush's tags Jacopo Mondi (4): documentation: Introduce Camera Sensor Model libcamera: camera: Introduce SensorConfiguration libcamera: camera_sensor: Add function to apply a config libcamera: rpi: Handle SensorConfiguration Documentation/binning.png | Bin 0 -> 66004 bytes Documentation/camera-sensor-model.png | Bin 0 -> 74270 bytes Documentation/camera-sensor-model.rst | 200 ++++++++++++++++++ Documentation/index.rst | 1 + Documentation/meson.build | 1 + Documentation/skipping.png | Bin 0 -> 67218 bytes include/libcamera/camera.h | 43 ++++ include/libcamera/internal/camera_sensor.h | 5 + src/libcamera/camera.cpp | 180 ++++++++++++++++ src/libcamera/camera_sensor.cpp | 86 ++++++++ .../pipeline/rpi/common/pipeline_base.cpp | 62 +++++- .../pipeline/rpi/common/pipeline_base.h | 4 +- src/libcamera/pipeline/rpi/vc4/vc4.cpp | 30 ++- 13 files changed, 598 insertions(+), 14 deletions(-) create mode 100644 Documentation/binning.png create mode 100644 Documentation/camera-sensor-model.png create mode 100644 Documentation/camera-sensor-model.rst create mode 100644 Documentation/skipping.png --- 2.40.1