Cover Letter Detail
Show a cover letter.
GET /api/covers/22192/?format=api
{ "id": 22192, "url": "https://patchwork.libcamera.org/api/covers/22192/?format=api", "web_url": "https://patchwork.libcamera.org/cover/22192/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/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": "<20241206101344.767170-1-stefan.klug@ideasonboard.com>", "date": "2024-12-06T10:13:22", "name": "[v3,00/17] rkisp1: Fix aspect ratio and ScalerCrop", "submitter": { "id": 184, "url": "https://patchwork.libcamera.org/api/people/184/?format=api", "name": "Stefan Klug", "email": "stefan.klug@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/22192/mbox/", "series": [ { "id": 4854, "url": "https://patchwork.libcamera.org/api/series/4854/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4854", "date": "2024-12-06T10:13:22", "name": "rkisp1: Fix aspect ratio and ScalerCrop", "version": 3, "mbox": "https://patchwork.libcamera.org/series/4854/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/22192/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 CF7CFBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 6 Dec 2024 10:13:51 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9C49E66127;\n\tFri, 6 Dec 2024 11:13:50 +0100 (CET)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2266D618B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 6 Dec 2024 11:13:49 +0100 (CET)", "from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:3543:aebe:e043:ef86])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8D2BA74C;\n\tFri, 6 Dec 2024 11:13:19 +0100 (CET)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"MXtMoEIl\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1733479999;\n\tbh=eaFLC0KhTlzndRfLm1UyB2GHt6kkR/7neELI7By3TaM=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=MXtMoEIlTY1fgWsucb5PUV86E/72qQSRMh7cYQaJ2xzmm9paR0pLNr0yiYu8rfiSo\n\tF/VlFcPrtHp+rtp9Ogu/Fru2Sbi2C8VzN9PK9h42AA2ojbuRn7reqRVSl6Xsb5a5iu\n\tEJ17kFzzN5i5pMFcMvDCG6tZpBLkcyZ6QH9w6tqQ=", "From": "Stefan Klug <stefan.klug@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Stefan Klug <stefan.klug@ideasonboard.com>", "Subject": "[PATCH v3 00/17] rkisp1: Fix aspect ratio and ScalerCrop", "Date": "Fri, 6 Dec 2024 11:13:22 +0100", "Message-ID": "<20241206101344.767170-1-stefan.klug@ideasonboard.com>", "X-Mailer": "git-send-email 2.43.0", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "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": "Hi all,\n\nThis series contains fixes for a few issues on the imx8mp that I'd like\nto get in before the next release.\n\nVersion 3 is a major extension which is described in the last paragraph.\n\nPatch 1 is a drive by fix\n\nPatch 2 Fixes the aspect ratio on the imx8mp. There is code to keep the\naspect ratio in the rkisp1 pipeline that adjust the input crop on the\nresizer stage. On the imx8mp however the resizer hardware is missing\nthat functionality and cropping needs to be done on the ISP output.\nPatch 2 implements that.\n\nPatches 3-8 fix the ScalerCrop control. The existing implementation\nimplements ScalerCrop in dewarper coordinates (After scaling down).\nThis is incorrect as ScalerCrop is specified to be in sensor\ncoordinates. To fix that, patches 3-6 do preparatory changes and patch 6\nimplements the correct ScalerCrop control. Patch 8 adds\nScalerMaximumCrop for completeness sake.\n\nNote that this solution while being correct on the numbers is still not\nideal, because the aspect ratio preserving crop on the ISP output is\nstill applied unconditionally. That will get fixed in an upcoming\nseries, where the full sensor size get's passed to the dewarper and all\ncropping/scaling gets handled there.\n\nPatches 9-17 were added after version 2 because it got clear that the\ncurrent master is completely missing the dewarper size validation and\nthat requires fixing. So patches 9-15 do the necessary plumbing and\nimplementation of the validation. Thanks Jacopo for helping with that.\nPatches 16-17 fixe another bug found during that work where the sensor\nmight get configured to a size not supported by the isp.\n\nBest regards,\nStefan\n\nChanges in v3:\n- Fixes from review (see individual changelogs)\n- Added pipeline validation for the dewarper\n- Fixed bug where sensor might be configured to a format incompatible\n with the isp\n\nChanges in v2:\n- Some smaller fixes from review (see individual changelogs)\n- Added [PATCH v2 6/8] libcamera: converter_v4l2_m2m: Improve crop\n bounds support to be able to provide sane default values for\nScalerCrop before configure()\n\nJacopo Mondi (2):\n libcamera: converter: Add functions to adjust config\n libcamera: stream: Add operator<<(StreamConfiguration)\n\nStefan Klug (15):\n libcamera: rkisp1: Fix scope of dewarper stop() exit action\n libcamera: rkisp1: Keep aspect ratio on imx8mp\n libcamera: geometry: Add Rectangle::transformedBetween()\n pipeline: rkisp1: Split inputCrop and outputCrop\n pipeline: rkisp1: Reorder sensorInfo collection code\n libcamera: converter_v4l2_m2m: Improve crop bounds support\n pipeline: rkisp1: Fix ScalerCrop to be in sensor coordinates\n pipeline: rkisp1: Add ScalerMaximumCrop property\n libcamera: rkisp1: Refactor path validation\n libcamera: rkisp1: Enable the dewarper unconditionally\n camera: Add a const version of the pipe() function\n libcamera: rkisp1: make RkISP1CameraConfiguration a friend of the\n pipeline handler\n pipeline: rkisp1: Fix config validation when dewarper is used\n libcamera: camera_sensor: Add parameter to limit returned sensor size\n libcamera: pipeline: rkisp1: Limit sensor size to max resolution\n\n include/libcamera/geometry.h | 3 +\n include/libcamera/internal/camera.h | 1 +\n include/libcamera/internal/camera_sensor.h | 2 +-\n include/libcamera/internal/converter.h | 17 ++\n .../internal/converter/converter_v4l2_m2m.h | 12 +\n include/libcamera/stream.h | 2 +\n src/libcamera/camera.cpp | 5 +\n src/libcamera/converter.cpp | 46 +++\n .../converter/converter_v4l2_m2m.cpp | 282 ++++++++++++++----\n src/libcamera/geometry.cpp | 49 +++\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 182 ++++++++---\n src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 13 +-\n src/libcamera/pipeline/rkisp1/rkisp1_path.h | 1 +\n src/libcamera/sensor/camera_sensor.cpp | 3 +\n src/libcamera/sensor/camera_sensor_legacy.cpp | 9 +-\n src/libcamera/stream.cpp | 13 +\n test/geometry.cpp | 11 +\n 17 files changed, 543 insertions(+), 108 deletions(-)" }