From patchwork Thu Apr 22 09:40:50 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 12067 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 504CEBDB17 for ; Thu, 22 Apr 2021 09:41:15 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 71A3C68854; Thu, 22 Apr 2021 11:41:14 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="U2Q+/dTw"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 47FB06883E for ; Thu, 22 Apr 2021 11:41:13 +0200 (CEST) Received: from pyrite.rasen.tech (unknown [IPv6:2400:4051:61:600:2c71:1b79:d06d:5032]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id CA7363EE; Thu, 22 Apr 2021 11:41:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1619084472; bh=ypTNJqKYKl9MuNrD3vaaCZHaVCRAymwwvTmeX14cUFE=; h=From:To:Cc:Subject:Date:From; b=U2Q+/dTw4+46zI40ukA5egvbPYt6WuBTusSTxnFttwjIxvuKaeseb31DUwX/AnM9f 0Libg2oFFW2WNMTPkt/QTSpmArBCyKXMx46UWNK3iEfNhwBqubAAlx+ueDJqxVWdfp q6wC16F0nLIe9tnbcpFyNvlNbum+KYcSjIijWUXs= From: Paul Elder To: libcamera-devel@lists.libcamera.org Date: Thu, 22 Apr 2021 18:40:50 +0900 Message-Id: <20210422094102.371772-1-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Subject: [libcamera-devel] [RFC PATCH v2 00/12] FULL hardware level fixes 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" This patchset switches to hardware level FULL, fixes many failures, and sets up the infrastructure for pipeline handlers to get and set the metadata. The tests that this patchset fixes are (in alphabetical order): - android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceCreateCaptureBuilder - android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceManualTemplate - android.hardware.camera2.cts.CameraDeviceTest#testCameraDevicePreviewTemplate - android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceRecordingTemplate - android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceStillTemplate - android.hardware.camera2.cts.CameraDeviceTest#testCameraDeviceVideoSnapShotTemplate - android.hardware.camera2.cts.CaptureRequestTest#testAeModeAndLock - android.hardware.camera2.cts.CaptureRequestTest#testAntiBandingModes - android.hardware.camera2.cts.CaptureRequestTest#testAwbModeAndLock - android.hardware.camera2.cts.CaptureRequestTest#testBlackLevelLock - android.hardware.camera2.cts.CaptureRequestTest#testEdgeModeControlFastFps - android.hardware.camera2.cts.CaptureRequestTest#testNoiseReductionModeControlFastFps - android.hardware.camera2.cts.CaptureRequestTest#testToneMapControl - android.hardware.camera2.cts.CaptureResultTest#testCameraCaptureResultAllKeys - android.hardware.camera2.cts.ImageReaderTest#testDiscardFreeBuffers - android.hardware.camera2.cts.ImageReaderTest#testFlexibleYuv - android.hardware.camera2.cts.ImageReaderTest#testJpeg - android.hardware.camera2.cts.ImageReaderTest#testLongProcessingRepeatingFlexibleYuv - android.hardware.camera2.cts.ImageReaderTest#testRepeatingJpeg - android.hardware.camera2.cts.StaticMetadataTest#testCapabilities - android.hardware.camera2.cts.StaticMetadataTest#testHwSupportedLevel The following tests are mostly fixed, but fail one and only one frame (frame duration is too short): - android.hardware.camera2.cts.CaptureRequestTest#testEdgeModeControl - android.hardware.camera2.cts.CaptureRequestTest#testNoiseReductionModeControl - android.hardware.camera2.cts.SurfaceViewPreviewTest#testPreviewFpsRange Patch 1 fixes a typo. Patches 2 to 7 set up FULL hardware level, and hardcode values to pass the CTS tests. Patches 8 to 12 then lay down infrastructure for the pipeline handlers to set the metadata values, and make the ipu3 pipeline handler do so to pass the aforementioned CTS tests. Paul Elder (12): android: camera_device: Fix typo in result metadata allocation error android: Switch to FULL android: CameraDevice: Report proper min and max frame durations android: jpeg: get ISO from SENSOR_SENSITIVITY android: camera_device: Set static metadata for FULL requirements android: camera_device: Set templates for FULL requirements android: camera_device: Set result metadata for FULL requirements controls: Add controls necessary for FULL compliance pipeline: ipu3: Add controls for FULL compliance android: camera_device: Translate android controls to libcamera controls pipeline: ipu3: Set request metadata for FULL compliance android camera_device: Set result metadata from libcamera metadata src/android/camera_device.cpp | 421 +++++++++++++++++++++-- src/android/camera_device.h | 2 + src/android/jpeg/post_processor_jpeg.cpp | 5 +- src/libcamera/control_ids.yaml | 78 ++++- src/libcamera/pipeline/ipu3/ipu3.cpp | 86 ++++- 5 files changed, 551 insertions(+), 41 deletions(-)