From patchwork Fri May 27 09:34:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 16065 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 B1D68BD161 for ; Fri, 27 May 2022 09:34:54 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 17199633A3; Fri, 27 May 2022 11:34:53 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1653644093; bh=BhgNjTJghLop5v8xmd2N6+wJ+pGuHvJpeykv30RMs2M=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=BQpnxzngQRMlkyuYNOe0oKiC8EDsnHncQL9ZCNRMUOK6Z6/daSt7WiLUqjs9YX4Gi Qju9zm7FxsKDWVP5jKZc197sSSycL6wnzcJfItfbFmoMv+v9e1ktVAnuaPLnjDobPw HLj+xzvqo7HnJxKQK35Z7C9aFiasADJECYPenr5EHe5Gp8QlXZMk7dgM0Kqf+okerG 4dQ5HXKZXelhaeqWjOPSlDbrMTIf/cbRai5dEVA5T4JL1m2eD+EdQmmqP3PE2lgOhU tE5cM8nAGuCWtcCl5Ply6/3bHsANbrlg8NJnBKc6LXytByuzcTbiHvuEAHeLEi24FS D0PzOpibcEBBQ== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 1E13860415 for ; Fri, 27 May 2022 11:34:51 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="WlltKptm"; dkim-atps=neutral Received: from pyrite.rasen.tech (softbank036240126034.bbtec.net [36.240.126.34]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 8ED5132A; Fri, 27 May 2022 11:34:49 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1653644090; bh=BhgNjTJghLop5v8xmd2N6+wJ+pGuHvJpeykv30RMs2M=; h=From:To:Cc:Subject:Date:From; b=WlltKptm53zsHtE6a+wq7ULo2jCPb0dqLiQwZl/kLYUtTnqhGVUwxbXbpU7WlVIe8 cPmxlWzhp3LL4g7+tI5kqyG2A0ccmd62qzbShBOqV8Jc/TBFUjm+ZSPUv3l7l5FyWI Ht136trpx0Yw85kF+/Ab7bel5cvmw4dtesGO0hoE= To: libcamera-devel@lists.libcamera.org Date: Fri, 27 May 2022 18:34:35 +0900 Message-Id: <20220527093440.953377-1-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 0/5] Plumb the YUV processor in 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: Paul Elder via libcamera-devel From: Paul Elder Reply-To: Paul Elder Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Just reviving this patch series. Original cover letter (2022/01/10): Hello I've started this series by reviewing Hiro's "[PATCH 1/1] android: camera_device: Configure one stream for identical stream requests" https://patchwork.libcamera.org/project/libcamera/list/?series=2880 In order to validate my review comments I had to find tests which exercized the YUV post-processor, and that's the result of the testing process. I broke Hiro's series in 4 patches and addded one small fix on top. Tested by running 12 of the tests currently excluded from the libcamera subplan. These tests require 3 YUV streams to be supported and where so far excluded for this reason: [1/12] android.hardware.camera2.cts.RobustnessTest#testMandatoryOutputCombinations pass [2/12] android.hardware.cts.CameraTest#testFocusDistances pass [3/12] android.hardware.cts.CameraTest#testPreviewCallback pass [4/12] android.hardware.cts.CameraTest#testPreviewCallbackWithBuffer pass [5/12] android.hardware.cts.CameraTest#testPreviewCallbackWithPicture pass [6/12] android.hardware.cts.CameraTest#testPreviewFormats pass [7/12] android.hardware.cts.CameraTest#testPreviewFpsRange pass [8/12] android.hardware.cts.CameraTest#testSetOneShotPreviewCallback pass [9/12] android.hardware.cts.CameraTest#testSetPreviewDisplay pass [10/12] android.hardware.cts.CameraGLTest#testSetPreviewTextureBothCallbacks pass [11/12] android.hardware.cts.CameraGLTest#testSetPreviewTexturePreviewCallback pass [12/12] android.hardware.camera2.cts.SurfaceViewPreviewTest#testDeferredSurfaces pass As an example output from a test run: ------------------------------------------------------------------------------- INFO HAL camera_device.cpp:569 '\_SB_.PCI0.I2C4.CAM1': Stream #0, direction: Output, width: 1920, height: 1080, format: 0x00000022, rotation: 0, crop_rotate_scale_degrees: 0 (NV12) INFO HAL camera_device.cpp:569 '\_SB_.PCI0.I2C4.CAM1': Stream #1, direction: Output, width: 1920, height: 1080, format: 0x00000022, rotation: 0, crop_rotate_scale_degrees: 0 (NV12) INFO HAL camera_device.cpp:569 '\_SB_.PCI0.I2C4.CAM1': Stream #2, direction: Output, width: 2560, height: 1920, format: 0x00000021, rotation: 0, crop_rotate_scale_degrees: 0 (MJPEG) INFO HAL camera_device.cpp:694 '\_SB_.PCI0.I2C4.CAM1': Adding 2560x1920-NV12 for MJPEG support DEBUG HAL camera_device.cpp:121 Insert 2560x1920-NV12 DEBUG HAL camera_device.cpp:127 Insert 1920x1080-NV12 INFO Camera camera.cpp:1028 configuring streams: (0) 2560x1920-NV12 (1) 1920x1080-NV12 ... DEBUG HAL camera_device.cpp:951 '\_SB_.PCI0.I2C4.CAM1': Queueing request 138253722276496 with 3 streams DEBUG HAL camera_device.cpp:1017 '\_SB_.PCI0.I2C4.CAM1': 1 - (1920x1080)[0x00000022] -> (1920x1080)[NV12] (direct) DEBUG HAL camera_device.cpp:1030 '\_SB_.PCI0.I2C4.CAM1': 2 - (2560x1920)[0x00000021] -> (2560x1920)[NV12] (internal) DEBUG HAL camera_device.cpp:1063 '\_SB_.PCI0.I2C4.CAM1': 0 - (1920x1080)[0x00000022] -> (1920x1080)[NV12] (mapped) DEBUG HAL camera_device.cpp:1198 '\_SB_.PCI0.I2C4.CAM1': Request 138253722217920 completed with 2 streams ------------------------------------------------------------------------------- No regression with the ordinary CTS libcamera plan =============== Summary =============== Total Run time: 19m 51s 1/1 modules completed Total Tests : 231 PASSED : 231 FAILED : 0 ============== End of Results ============== Thanks j Hirokazu Honda (2): android: camera_stream: Add sourceStream android: camera_device: Use YUV post-processor Jacopo Mondi (3): android: camera_stream: Create allocator unconditionally android: camera_device: Postpone mapped streams handling android: camera_device: Print the correct number of completed streams src/android/camera_device.cpp | 122 ++++++++++++++++++++++++++++++---- src/android/camera_stream.cpp | 12 ++-- src/android/camera_stream.h | 6 +- 3 files changed, 120 insertions(+), 20 deletions(-)