Patch Detail
Show a patch.
GET /api/1.1/patches/17184/?format=api
{ "id": 17184, "url": "https://patchwork.libcamera.org/api/1.1/patches/17184/?format=api", "web_url": "https://patchwork.libcamera.org/patch/17184/", "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": "<20220821124343.487963-2-Rauch.Christian@gmx.de>", "date": "2022-08-21T12:43:43", "name": "[libcamera-devel,2/2] libcamera: control: explicitly define default control values", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "8e0ba942fec13f241340bcf897523d7c0f0960af", "submitter": { "id": 111, "url": "https://patchwork.libcamera.org/api/1.1/people/111/?format=api", "name": "Christian Rauch", "email": "Rauch.Christian@gmx.de" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/17184/mbox/", "series": [ { "id": 3430, "url": "https://patchwork.libcamera.org/api/1.1/series/3430/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=3430", "date": "2022-08-21T12:43:42", "name": "[libcamera-devel,1/2] libcamera: control: define an explicit default ControlInfo constructor", "version": 1, "mbox": "https://patchwork.libcamera.org/series/3430/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/17184/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/17184/checks/", "tags": {}, "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 7F747BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 21 Aug 2022 12:43:50 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1427861FC4;\n\tSun, 21 Aug 2022 14:43:49 +0200 (CEST)", "from mout.gmx.net (mout.gmx.net [212.227.17.22])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5D60A61FA6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 21 Aug 2022 14:43:46 +0200 (CEST)", "from voyager ([88.152.184.103]) by mail.gmx.net (mrgmx104\n\t[212.227.17.168]) with ESMTPSA (Nemesis) id 1MiJVG-1p43PD3M9e-00fPFw;\n\tSun, 21 Aug 2022 14:43:45 +0200" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1661085829;\n\tbh=Vsd6wIo1QPrXgKL+ivKYCtVASuSr8DT/6GqRY8GQ3Hw=;\n\th=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=amBAiGwLxeIpc11CsuSYuLkJPRGu5uvxDmcyA8PgzYB7zSIaiNKQNklYSaaxOHJj3\n\tB7RKJOzFMc6iQRD8JasyNIY61c+TbRRTXuQbHIkA/yU+59URcE8pwj2MJrolR5ZxmS\n\tUlyi1kSmnTiys7Ak7ED5aq2Y7uCHsr/JgTnfl5NHWvps3CtMoc6d0zUar7D2BIDgZ1\n\tRFrDLjt3IRn0xbUzvam2g8j+vFieg4GGh7dSeYQI9T/qCV2m3KL6OcZwlizZrFudoA\n\t1NxKXRdt1n77oa3fGNeqN7kUwiCpTGU5/+NzJPSBwW/lPBpPvh8/gSAadlJSGwSpEw\n\t1ljaNLPzCsMkA==", "v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1661085826;\n\tbh=Vsd6wIo1QPrXgKL+ivKYCtVASuSr8DT/6GqRY8GQ3Hw=;\n\th=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References;\n\tb=flGzU8rUJ9Yk2AYcLOvK2hmdAEu9S6Rf4Ts4U1fh48TLs1f8LWOq0i5qFN78Bs/Nc\n\tJYJ4xzjvhmNXV/Vc062nZ2q2cNZbAJ56N+3LKcf4OmSkwF70tNKfcLB9B9mgIqopb8\n\tFuJb/uBHcIRwieYReSMRdmm6ZJYZXZH7Pd4q5yUU=" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"flGzU8rU\"; dkim-atps=neutral", "X-UI-Sender-Class": "01bb95c1-4bf8-414a-932a-4f6e2808ef9c", "To": "libcamera-devel@lists.libcamera.org", "Date": "Sun, 21 Aug 2022 14:43:43 +0200", "Message-Id": "<20220821124343.487963-2-Rauch.Christian@gmx.de>", "X-Mailer": "git-send-email 2.34.1", "In-Reply-To": "<20220821124343.487963-1-Rauch.Christian@gmx.de>", "References": "<20220821124343.487963-1-Rauch.Christian@gmx.de>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "quoted-printable", "X-Provags-ID": "V03:K1:YD7B+uMeFcyWKpd7Us454RGGgqxbtaZg1MGRLfu5Ct7iEu2OgRz\n\tt3ZNlQ2aHBrX+2XgGuCIjYQKSRZAEpZrmGlIDPr86ROHn/DGZOqFcK5MBFoiH48IDdLjVMq\n\tjsvQvcESQISBAMQ2x/4GCUwGNUboUeOICR9+5ilZ1xnpZeQM1MhcqyaThjRM7N4lBIWarAG\n\tc2v4fERixCO42JWUXCp3w==", "X-Spam-Flag": "NO", "X-UI-Out-Filterresults": "notjunk:1; V03:K0:xHlcTheobb8=:s/gXICFkRSOPoUJW+wY6SK\n\tnyv0QdhbqArNRv+fkFks2RKTs2IcAvWB16BKSjQdeCxn0SzKzRxNqh01DuCsd1s9bWfA8pLcw\n\t/FlOZV3uNNupNVRw9ZjeQb0A+YJxPPYZzKWcyjFzbIVj0xz3x205vd/yYAhpHIGCEOEAMCLgF\n\tJvHVrRPP8YiW518aV5IihmAenZRfMyy/0xMvZ9CA1M6AnrVocsLsheINGT1W5VEcl9O1eKYQM\n\taDBaBrG4/zkl80qxpIX/vvLdM9jD4GlVgF2E/jwIf0D1F0QjHF7CYJPzO7JKm9aGYMbc0fKcz\n\tdOJ882XJ6kWXojbX1z8+ovtpFgUWcVXd4+l0XVWnmL5xdJGvRMM+tRMYC/KO5edSzEItFBnBS\n\t+MA/wYB06rRvV9MKGL5CR05pdrm4YyID+6F1oIhwresBdsm5K1Dq2/Fobzd4zO6irPYZaqYia\n\tj0Xuv3PKg0e/vEMjY4CEs6VhpSSnZZpU8govh9lFgwuhor6XaqXU18tDuc5dh1NKO67jygrEx\n\ttsJnJgH9cov8EDqilHcVtMoSa89IETAxF50WhmkXeddbLRpV0HJfv8/3LB0J82SUntwBOJgeW\n\tiTo+g3DUASucUtViv3hPtHtn33vF8biKYRAdvhhHOxlnUPCdeO8Dw2DeOjPpNyesTQdJ0BGa6\n\t10QeEocGFTEYSBGYTtDPQF/PzvuhskHlh/ljO8po0frZybXKGZfhtNUnIHiW+WFnFWoqyBCM6\n\tKd+sb7RQPFClfEF9RpBKFS6GIboY2IdOWjUX/AWxYFLUsbkzRLpSPbUHVPYD+m6jw9DTn8y/L\n\tRh0dlwwRXEABd/Mgq+zaN71+bB3zy97kMBgf4aVzhM1/n6f1+YI/tfap765Np+TzDviqZkQ41\n\tkVzdG3jYISncvJRn6p2fMzyjgAoj93liyLi2XvxS+q3uaG/wJ6b0WQrxHZ2CdvNAMAsQttIhC\n\t6Vmc+8RN0eQd2Hf2GLR7fsW8w9mH1NVkWbly1blI0mKdsRgCyDzS+kh+L5Et6JQoVJVYgTjTv\n\tV1e/I+gtSLWSW57qn7jMNTRBUQ85fScxKj70XXTCuaI6ct1cdQoQJlbl0QWM0DLW8HoiNaWNc\n\t1a39VvrbNoJtfRIPicEOMZ04Y165LE7sGKQWsXGt5IFYnnYvUigY/ApHQ==", "Subject": "[libcamera-devel] [PATCH 2/2] libcamera: control: explicitly define\n\tdefault control values", "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>", "From": "Christian Rauch via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>", "Reply-To": "Christian Rauch <Rauch.Christian@gmx.de>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Explicitly set the default value for all ControlInfo to 0, false or minimum.\n\nSigned-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n---\n src/ipa/raspberrypi/raspberrypi.cpp | 22 ++++++++++---------\n src/ipa/rkisp1/rkisp1.cpp | 10 ++++-----\n src/libcamera/pipeline/ipu3/ipu3.cpp | 2 +-\n .../pipeline/raspberrypi/raspberrypi.cpp | 2 +-\n 4 files changed, 19 insertions(+), 17 deletions(-)\n\n--\n2.34.1", "diff": "diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp\nindex 69c73f8c..c6360a51 100644\n--- a/src/ipa/raspberrypi/raspberrypi.cpp\n+++ b/src/ipa/raspberrypi/raspberrypi.cpp\n@@ -74,23 +74,23 @@ constexpr Duration controllerMinFrameDuration = 1.0s / 30.0;\n\n /* List of controls handled by the Raspberry Pi IPA */\n static const ControlInfoMap::Map ipaControls{\n-\t{ &controls::AeEnable, ControlInfo(false, true) },\n-\t{ &controls::ExposureTime, ControlInfo(0, 66666) },\n-\t{ &controls::AnalogueGain, ControlInfo(1.0f, 16.0f) },\n+\t{ &controls::AeEnable, ControlInfo(false, true, false) },\n+\t{ &controls::ExposureTime, ControlInfo(0, 66666, 0) },\n+\t{ &controls::AnalogueGain, ControlInfo(1.0f, 16.0f, 0.0f) },\n \t{ &controls::AeMeteringMode, ControlInfo(controls::AeMeteringModeValues) },\n \t{ &controls::AeConstraintMode, ControlInfo(controls::AeConstraintModeValues) },\n \t{ &controls::AeExposureMode, ControlInfo(controls::AeExposureModeValues) },\n \t{ &controls::ExposureValue, ControlInfo(-8.0f, 8.0f, 0.0f) },\n-\t{ &controls::AwbEnable, ControlInfo(false, true) },\n-\t{ &controls::ColourGains, ControlInfo(0.0f, 32.0f) },\n+\t{ &controls::AwbEnable, ControlInfo(false, true, false) },\n+\t{ &controls::ColourGains, ControlInfo(0.0f, 32.0f, 0.0f) },\n \t{ &controls::AwbMode, ControlInfo(controls::AwbModeValues) },\n \t{ &controls::Brightness, ControlInfo(-1.0f, 1.0f, 0.0f) },\n \t{ &controls::Contrast, ControlInfo(0.0f, 32.0f, 1.0f) },\n \t{ &controls::Saturation, ControlInfo(0.0f, 32.0f, 1.0f) },\n \t{ &controls::Sharpness, ControlInfo(0.0f, 16.0f, 1.0f) },\n-\t{ &controls::ColourCorrectionMatrix, ControlInfo(-16.0f, 16.0f) },\n+\t{ &controls::ColourCorrectionMatrix, ControlInfo(-16.0f, 16.0f, 0.0f) },\n \t{ &controls::ScalerCrop, ControlInfo(Rectangle{}, Rectangle(65535, 65535, 65535, 65535), Rectangle{}) },\n-\t{ &controls::FrameDurationLimits, ControlInfo(INT64_C(33333), INT64_C(120000)) },\n+\t{ &controls::FrameDurationLimits, ControlInfo(INT64_C(33333), INT64_C(120000), INT64_C(0)) },\n \t{ &controls::draft::NoiseReductionMode, ControlInfo(controls::draft::NoiseReductionModeValues) }\n };\n\n@@ -463,10 +463,11 @@ int IPARPi::configure(const IPACameraSensorInfo &sensorInfo,\n \tconst Duration maxSensorFrameDuration = mode_.maxFrameLength * mode_.lineLength;\n \tctrlMap[&controls::FrameDurationLimits] =\n \t\tControlInfo(static_cast<int64_t>(minSensorFrameDuration.get<std::micro>()),\n-\t\t\t static_cast<int64_t>(maxSensorFrameDuration.get<std::micro>()));\n+\t\t\t static_cast<int64_t>(maxSensorFrameDuration.get<std::micro>()),\n+\t\t\t int64_t(0));\n\n \tctrlMap[&controls::AnalogueGain] =\n-\t\tControlInfo(1.0f, static_cast<float>(helper_->gain(maxSensorGainCode_)));\n+\t\tControlInfo(1.0f, static_cast<float>(helper_->gain(maxSensorGainCode_)), 0.0f);\n\n \t/*\n \t * Calculate the max exposure limit from the frame duration limit as V4L2\n@@ -478,7 +479,8 @@ int IPARPi::configure(const IPACameraSensorInfo &sensorInfo,\n\n \tctrlMap[&controls::ExposureTime] =\n \t\tControlInfo(static_cast<int32_t>(helper_->exposure(exposureMin).get<std::micro>()),\n-\t\t\t static_cast<int32_t>(maxShutter.get<std::micro>()));\n+\t\t\t static_cast<int32_t>(maxShutter.get<std::micro>()),\n+\t\t\t int32_t(0));\n\n \tresult->controlInfo = ControlInfoMap(std::move(ctrlMap), controls::controls);\n \treturn 0;\ndiff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp\nindex 27b4212b..2121bfd2 100644\n--- a/src/ipa/rkisp1/rkisp1.cpp\n+++ b/src/ipa/rkisp1/rkisp1.cpp\n@@ -91,12 +91,12 @@ namespace {\n\n /* List of controls handled by the RkISP1 IPA */\n const ControlInfoMap::Map rkisp1Controls{\n-\t{ &controls::AeEnable, ControlInfo(false, true) },\n-\t{ &controls::AwbEnable, ControlInfo(false, true) },\n+\t{ &controls::AeEnable, ControlInfo(false, true, false) },\n+\t{ &controls::AwbEnable, ControlInfo(false, true, false) },\n \t{ &controls::ColourGains, ControlInfo(0.0f, 3.996f, 1.0f) },\n-\t{ &controls::Brightness, ControlInfo(-1.0f, 0.993f) },\n-\t{ &controls::Contrast, ControlInfo(0.0f, 1.993f) },\n-\t{ &controls::Saturation, ControlInfo(0.0f, 1.993f) },\n+\t{ &controls::Brightness, ControlInfo(-1.0f, 0.993f, 0.0f) },\n+\t{ &controls::Contrast, ControlInfo(0.0f, 1.993f, 0.0f) },\n+\t{ &controls::Saturation, ControlInfo(0.0f, 1.993f, 0.0f) },\n \t{ &controls::Sharpness, ControlInfo(0.0f, 10.0f, 1.0f) },\n \t{ &controls::draft::NoiseReductionMode, ControlInfo(controls::draft::NoiseReductionModeValues) },\n };\ndiff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\nindex 9df24603..a1bcfe49 100644\n--- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n@@ -42,7 +42,7 @@ namespace libcamera {\n LOG_DEFINE_CATEGORY(IPU3)\n\n static const ControlInfoMap::Map IPU3Controls = {\n-\t{ &controls::draft::PipelineDepth, ControlInfo(2, 3) },\n+\t{ &controls::draft::PipelineDepth, ControlInfo(2, 3, 0) },\n };\n\n class IPU3CameraData : public Camera::Private\ndiff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\nindex e895584d..8fd7634d 100644\n--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n@@ -954,7 +954,7 @@ int PipelineHandlerRPi::configure(Camera *camera, CameraConfiguration *config)\n \t/* Add the ScalerCrop control limits based on the current mode. */\n \tRectangle ispMinCrop(data->ispMinCropSize_);\n \tispMinCrop.scaleBy(data->sensorInfo_.analogCrop.size(), data->sensorInfo_.outputSize);\n-\tctrlMap[&controls::ScalerCrop] = ControlInfo(ispMinCrop, Rectangle(data->sensorInfo_.analogCrop.size()));\n+\tctrlMap[&controls::ScalerCrop] = ControlInfo(ispMinCrop, Rectangle(data->sensorInfo_.analogCrop.size()), ispMinCrop);\n\n \tdata->controlInfo_ = ControlInfoMap(std::move(ctrlMap), result.controlInfo.idmap());\n\n", "prefixes": [ "libcamera-devel", "2/2" ] }