Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/14136/?format=api
{ "id": 14136, "url": "https://patchwork.libcamera.org/api/1.1/covers/14136/?format=api", "web_url": "https://patchwork.libcamera.org/cover/14136/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20211014174208.50509-1-jacopo@jmondi.org>", "date": "2021-10-14T17:41:52", "name": "[libcamera-devel,v4,00/16] IPU3 control info update and HAL frame durations", "submitter": { "id": 3, "url": "https://patchwork.libcamera.org/api/1.1/people/3/?format=api", "name": "Jacopo Mondi", "email": "jacopo@jmondi.org" }, "mbox": "https://patchwork.libcamera.org/cover/14136/mbox/", "series": [ { "id": 2628, "url": "https://patchwork.libcamera.org/api/1.1/series/2628/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2628", "date": "2021-10-14T17:41:52", "name": "IPU3 control info update and HAL frame durations", "version": 4, "mbox": "https://patchwork.libcamera.org/series/2628/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/14136/comments/", "headers": { "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": "parsemail@patchwork.libcamera.org", "Received": [ "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id EBE40C323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 14 Oct 2021 17:41:24 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6066B68F4F;\n\tThu, 14 Oct 2021 19:41:24 +0200 (CEST)", "from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net\n\t[217.70.183.199])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B6CE668541\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 14 Oct 2021 19:41:23 +0200 (CEST)", "(Authenticated sender: jacopo@jmondi.org)\n\tby relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 3F15AFF808;\n\tThu, 14 Oct 2021 17:41:23 +0000 (UTC)" ], "From": "Jacopo Mondi <jacopo@jmondi.org>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Thu, 14 Oct 2021 19:41:52 +0200", "Message-Id": "<20211014174208.50509-1-jacopo@jmondi.org>", "X-Mailer": "git-send-email 2.33.0", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v4 00/16] IPU3 control info update and HAL\n\tframe durations", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "As the patch subject suggests, this series is composed of two main parts, which\nconcur in correctly handling the frame durations reported to the Android HAL.\n\nThe series starts by allowing the IPU3 pipeline handler to select the optimal\nsensor size to feed the ImgU with. Umang's series is a requirement for this\npatch, otherwise the ImgU configuration fails.\n\nPatches 2 and 3 update the Camera's ControlInfoMap in response to a\nCamera::configure() call, by updating the controls limits in the ph and the IPA.\n\nFrom patch 4 on the Android HAL parts begins by collecting per-stream frame\ndurations. As the frame durations are updated as part of the Camera's\nControlInfoMap limits update it is necessary to configure the camera during the\nHAL startup. A few cleanup patches follows, including the correct handling of\nSTALL durations\n\nPatch 10 introduces a filtering criteria for YUV streams: only streams that can\nproduce 30 FPS can be registered for preview. I was not able to find this\nclearly specified in documentation but the requirement has been confirmed by the\ncros camera team and in the Intel HAL implementation.\n\nAfter two more cleanup patches the way\nANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES gets populated is changed to\ncomply with the documentation. Note that this does not align with the Intel HAL\nimplementation which registers 8 values instead of 4.\n\nv4 rebased on top of Laurent's\n[PATCH 0/2] libcamera: Add new helpers to the Size class\nto use the newly introduced geometry helpers.\n\nCTS:\n\n=============== Summary ===============\nTotal Run time: 19m 32s\n1/1 modules completed\nTotal Tests : 231\nPASSED : 228\nFAILED : 3\n============== End of Results ==============\n\nandroid.hardware.camera2.cts.CameraDeviceTest#testPrepare\nfail: junit.framework.AssertionFailedError: Wait for a capture result timed out in 3000ms\n\nandroid.hardware.camera2.cts.PerformanceTest#testMultipleCapture\nfail: junit.framework.AssertionFailedError: Wait for a capture result timed out in 3000ms\n\nandroid.hardware.cts.CameraGLTest#testSetPreviewTextureTextureCallback\nfail: junit.framework.AssertionFailedError\nFailed becaus of:\n\tERROR Camera camera.cpp:1031 Request contains no buffers\nFailure is expected\n\nThe first two failing tests are due to errors on the video device\nwhich I haven't seen before:\nERROR V4L2 v4l2_videodevice.cpp:1591 /dev/video0[37:cap]: Failed to queue buffer 0: Input/output error\n\nI'll make sure they are flukes before merging the series.\n\nThanks\n j\n\nv3->v4:\n- Rebased on Laurent's geometry helpers used in 1/16\n- Change IF crop max name as suggested by Laurent\n- Collect tags\n\nv2->v3:\n- Limit the reported FPS range in the HAL only\n- Record the reson for filtering < 30 FPS preview resolutions\n- Address review comments and collect tags\n\nv1->v2:\n- add a patch to centralize the ImgU sizes definition\n- small grammar/spelling fixes here and there\n- Collect the actual minFPS when populating AE_AVAILABLE_FPS_RANGE instead of\n limiting it to 15, as suggested by Paul.\n\nThanks\n j\n\nJacopo Mondi (16):\n libcamera: ipu3: Use the optimal sensor size\n libcamera: ipu3: Centralize ImgU sizes definition\n libcamera: ipu3: Rationalize constant expressions names\n libcamera: ipu3: Split controls init/update\n ipa: ipu3: Update camera controls in configure()\n android: capabilities: Collect per-stream frame durations\n android: capabilities: Initialize camera state when building\n properties\n android: capabilties: Assume controls::FrameDurationLimits is\n supported\n android: capabilities: Use per-configuration durations\n android: capabilties: Correctly populate STALL durations\n android: capabilities: Collect absolute max frame durations\n android: Filter preview streams on FPS\n android: capabilities: Print output stream list\n android: Populate streams and duration in the same loop\n android: capabilties: Fix\n ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES\n android: capabilities: Cap frame rate to 30 FPS\n\n include/libcamera/ipa/ipu3.mojom | 3 +-\n src/android/camera_capabilities.cpp | 238 ++++++++++++++++++---------\n src/android/camera_capabilities.h | 3 +\n src/ipa/ipu3/ipu3.cpp | 82 ++++++---\n src/libcamera/pipeline/ipu3/cio2.cpp | 6 +-\n src/libcamera/pipeline/ipu3/cio2.h | 2 +-\n src/libcamera/pipeline/ipu3/imgu.cpp | 86 ++++------\n src/libcamera/pipeline/ipu3/imgu.h | 23 +++\n src/libcamera/pipeline/ipu3/ipu3.cpp | 142 +++++++++-------\n 9 files changed, 370 insertions(+), 215 deletions(-)\n\n--\n2.33.0" }