Cover Letter Detail
Show a cover letter.
GET /api/covers/10094/?format=api
{ "id": 10094, "url": "https://patchwork.libcamera.org/api/covers/10094/?format=api", "web_url": "https://patchwork.libcamera.org/cover/10094/", "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": "<20201019125156.26751-1-david.plowman@raspberrypi.com>", "date": "2020-10-19T12:51:51", "name": "[libcamera-devel,v4,0/5] Digital zoom", "submitter": { "id": 42, "url": "https://patchwork.libcamera.org/api/people/42/?format=api", "name": "David Plowman", "email": "david.plowman@raspberrypi.com" }, "mbox": "https://patchwork.libcamera.org/cover/10094/mbox/", "series": [ { "id": 1384, "url": "https://patchwork.libcamera.org/api/series/1384/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1384", "date": "2020-10-19T12:51:51", "name": "Digital zoom", "version": 4, "mbox": "https://patchwork.libcamera.org/series/1384/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/10094/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 CE501BDB1F\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 19 Oct 2020 12:52:07 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9B93E61373;\n\tMon, 19 Oct 2020 14:52:07 +0200 (CEST)", "from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com\n\t[IPv6:2a00:1450:4864:20::32e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9538D607B8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 19 Oct 2020 14:52:05 +0200 (CEST)", "by mail-wm1-x32e.google.com with SMTP id f21so10170631wml.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 19 Oct 2020 05:52:05 -0700 (PDT)", "from pi4-davidp.pitowers.org\n\t([2a00:1098:3142:14:1ce1:9965:4328:89c4])\n\tby smtp.gmail.com with ESMTPSA id\n\tq6sm16634335wma.0.2020.10.19.05.52.04\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 19 Oct 2020 05:52:04 -0700 (PDT)" ], "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"PW00Q4Ue\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=/WLhuioAaAxZG5md68I0FvxCpeK1giav9XNpGnp9Z04=;\n\tb=PW00Q4UePKBjfPNxT8OM3gMVvJWdOXbwz2WWZmSEXJ0kb6MrCCyqyB/Z2eA+gCD3QH\n\t9vEKAWGb0+qXbn6pR2zL1azO0bskfA5Te55V/xWjUFlD5dggi8O8eEsfGbwJtJcWgVb5\n\taWc1kq58UA535IWPZ5CB4cChiapYqO6S9PIymyblFqVKcOzevDgHe67UM5RJ3nORBHew\n\tmennCUSceU+Ud4OB6YrHVZAoq5d+Sbtf+9eukrVfshoK53E0iFYBr5KB3Q0WJkvyF3s7\n\tyF6sHxJwe3RXxkybARFTuAC59z+AIS/MZBKJlNGDWB/iKvqYF+OgFSV90xOJMnxQ/4bI\n\tsyoA==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=/WLhuioAaAxZG5md68I0FvxCpeK1giav9XNpGnp9Z04=;\n\tb=eaZMd1iGbjaH2dEZNqomUOo9K7GQ0yj/H6NGBQ5KhWqAvSjroG//rFl5hz51nGDYTc\n\tQlXgcgJtRiJgbFpUlr3TwVgRi2xFzM8mJTd8lDSaPoEB9/GpJCswtewllXpCPxojY1HI\n\tG0vO8eLQ+YfCBhTIPDuUtnqTvf5IvjMmRIbvh91iJTDvgZEy8maGESC6zk6MtfnFsewn\n\tDKjyGXmUpAezqt5iwuQOxxAKFZDIdaQrdbdV5wqDndZ6T6vbTsmONmSZXsgxpW+p0no1\n\tP9VWGlCdWTr2Ay48DjOht8HFKMIz/yQ7psuCkM6lguslRYvw2kjjdBJRFH6Z/QZyvKJ7\n\tEjQQ==", "X-Gm-Message-State": "AOAM530xjg8rbVvYBFKxsl5nQPRoIub7hjbiDJKitjGNQ4ky/7ZTF88b\n\twiAT13D2sSgczaIxNLRIfrqx/9y9fZVFlg==", "X-Google-Smtp-Source": "ABdhPJz12lQTf6XaYUW2qpPXc0fhat8Yw6ZVWpFnxDlJjnAqBQCMnkYjDEsVlMmN6uST8jynf+YX0A==", "X-Received": "by 2002:a7b:c255:: with SMTP id\n\tb21mr18362369wmj.25.1603111924875; \n\tMon, 19 Oct 2020 05:52:04 -0700 (PDT)", "From": "David Plowman <david.plowman@raspberrypi.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Mon, 19 Oct 2020 13:51:51 +0100", "Message-Id": "<20201019125156.26751-1-david.plowman@raspberrypi.com>", "X-Mailer": "git-send-email 2.20.1", "MIME-Version": "1.0", "Subject": "[libcamera-devel] [PATCH v4 0/5] Digital zoom", "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>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Hi everyone\n\nHere's a new version of the digital zoom patches, following on from\nthe previous implementations and the discussions that have been\nongoing since then. Firstly I should point out that I've dropped the\npatch that added digital zoom parameters to the cam application as\nsomeone had suggested they might do something there (so thanks for\nthat!). Also, I'm happy to add some geometry tests once there's a bit\nless churn in this patch set as a whole. In view of the current churn,\nI've dropped other \"Reviewed by\" tags - I hope that's reasonable.\n\nThat leaves 5 patches, as follows:\n\n1. Adds the ScalerCropMaximum property.\n\nThis is the property that expresses the part of the sensor array\nwithin which an application can crop to implement digital zoom. The\nproperty name has been changed, obviously, and the documentation\nupdated to be in line with recent discussion, otherwise nothing here\nis very different.\n\n2. Initialisation of the ScalerCropMaximum property.\n\nThis is unchanged. Given that the property isn't really very\nmeaningful until you know what camera mode you mean, I do wonder\nwhether we might be better to initialise this to all zeroes?\nApplications could always call isNull to be sure that they have\nsomething sensible.\n\n3. Adds the ScalerCrop property.\n\nNo great changes, apart from the property name and description.\n\n4. Geometry helpers.\n\nMostly as before, with the addition of a Point class and translation\nfunctions. There's also a Rectangle::rescaledTo function to make it\neasier to scale crop regions between sensor native and binned/scaled\ncoordinates. Maybe someone would prefer a different name?\n\nI've split Rectangle::boundedTo into a separate true intersection\nfunction (taking the name Rectangle::boundedTo) and a function I've\nnamed Rectangle::clampedTo. I'm open to suggestions on the name, I\nwanted to choose something that didn't sound like it might be the\nintersection...\n\n5. Implementation in the Raspberry Pi pipeline.\n\nMostly as before, with the modifications required by earlier changes\n(notably scaling to and from native sensor coordinates). Some of the\ncode here might look a little nicer if we added a\n\"Point Rectangle::offset() const { return { x, y }; }\" function, and\nchanged the translate methods to take a Point instead of a pair of\nints.\n\nThough I realise that the word \"offset\" is not popular, and I find the\nidea of translating by a Point mildly offensive, so I'm not sure about\nall that. Thoughts?\n\nWell, I think that's everything!\n\nThanks and best regards\nDavid\n\nDavid Plowman (5):\n libcamera: Add SensorCropMaximum property\n libcamera: Initialise the ScalerCropMaximum property\n libcamera: Add ScalerCrop control\n libcamera: Add geometry helper functions\n libcamera: pipeline: raspberrypi: Implementation of digital zoom\n\n include/libcamera/geometry.h | 53 ++++\n include/libcamera/ipa/raspberrypi.h | 1 +\n src/ipa/raspberrypi/raspberrypi.cpp | 7 +\n src/libcamera/camera_sensor.cpp | 6 +\n src/libcamera/control_ids.yaml | 12 +\n src/libcamera/geometry.cpp | 296 ++++++++++++++++++\n .../pipeline/raspberrypi/raspberrypi.cpp | 70 ++++-\n src/libcamera/property_ids.yaml | 23 ++\n 8 files changed, 453 insertions(+), 15 deletions(-)" }