From patchwork Wed Dec 4 13:20:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 2384 Return-Path: Received: from relay10.mail.gandi.net (relay10.mail.gandi.net [217.70.178.230]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id C946F60BFF for ; Wed, 4 Dec 2019 14:21:16 +0100 (CET) Received: from uno.lan (93-34-114-233.ip49.fastwebnet.it [93.34.114.233]) (Authenticated sender: jacopo@jmondi.org) by relay10.mail.gandi.net (Postfix) with ESMTPSA id 5FFF124000C; Wed, 4 Dec 2019 13:21:16 +0000 (UTC) From: Jacopo Mondi To: libcamera-devel@lists.libcamera.org Date: Wed, 4 Dec 2019 14:20:56 +0100 Message-Id: <20191204132106.21582-1-jacopo@jmondi.org> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 00/10] Introduce camera properties 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: Wed, 04 Dec 2019 13:21:17 -0000 Hello, this series introduces libcamera properties, generated re-using the libcamera control generation infrastructure and defined in a dedicated properties_ids.yaml file. The series parses the camera properties reported by the Linux kernel through two example read-only controls that report the camera location and mounting orientation, collects them as libcamera properties in the CameraSensor class and expose them from the Camera instance. It finally replaces the hardcoded values for the ANDROID_SENSOR_ORIENTATION and ANDROID_LENS_FACING android static metadata with values reported by the Camera. Thanks j Jacopo Mondi (10): [TEMP] include: linux: Update v4l2-controls.h libcamera: controls: Parse 'values' in gen-controls.py libcamera: properties: Generate libcamera properties libcamera: controls: Add default to ControlRange libcamera: v4l2_controls: Store default value libcamera: camera_sensor: Parse camera properties libcamera: pipeline_handler: Add Camera properties libcamera: camera: Add Camera properties android: camera_device: Use Camera properties for static Metadata DO NOT MERGE: Reports camera properties in cam include/libcamera/camera.h | 1 + include/libcamera/controls.h | 7 +++- include/libcamera/meson.build | 9 +++++ include/libcamera/property_ids.h.in | 33 +++++++++++++++++ include/linux/v4l2-controls.h | 7 ++++ src/android/camera_device.cpp | 29 +++++++++++++-- src/cam/main.cpp | 11 ++++++ src/libcamera/camera.cpp | 16 ++++++++- src/libcamera/camera_sensor.cpp | 46 +++++++++++++++++++++++- src/libcamera/controls.cpp | 17 +++++++-- src/libcamera/gen-controls.py | 35 ++++++++++++++++++ src/libcamera/include/camera_sensor.h | 6 +++- src/libcamera/include/pipeline_handler.h | 2 ++ src/libcamera/meson.build | 6 ++++ src/libcamera/pipeline/ipu3/ipu3.cpp | 3 ++ src/libcamera/pipeline/rkisp1/rkisp1.cpp | 3 ++ src/libcamera/pipeline/vimc.cpp | 4 +++ src/libcamera/pipeline_handler.cpp | 19 ++++++++++ src/libcamera/property_ids.cpp.in | 43 ++++++++++++++++++++++ src/libcamera/property_ids.yaml | 34 ++++++++++++++++++ src/libcamera/v4l2_controls.cpp | 9 +++-- 21 files changed, 329 insertions(+), 11 deletions(-) create mode 100644 include/libcamera/property_ids.h.in create mode 100644 src/libcamera/property_ids.cpp.in create mode 100644 src/libcamera/property_ids.yaml --- 2.23.0