From patchwork Sat Aug 22 20:00:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 9367 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 05EF4BE174 for ; Sat, 22 Aug 2020 20:01:04 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 6EFD762742; Sat, 22 Aug 2020 22:01:02 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="TDSUHZEm"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id E474D62113 for ; Sat, 22 Aug 2020 22:01:00 +0200 (CEST) Received: from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 8D0F84FB for ; Sat, 22 Aug 2020 22:01:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1598126460; bh=MERAKp8X3GrzujoOIgoqg+tA7GrOHai8QeVZkmYtI68=; h=From:To:Subject:Date:In-Reply-To:References:From; b=TDSUHZEmQMyP7Wa3LPWmL5cL+RkfFwgGkDaf+U0H/Pb2GaBABVei4dbCbwJcLnsI5 e40DXWlKhZlKYsKjlymm1I/pUwREtKulFA5+DKnajbLHjtMyxCdy3V0nrxNiDLeibj gCIuPyVa9yrVbvzxBH2vB3I5KQLrIzJS5RS673YU= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Sat, 22 Aug 2020 23:00:33 +0300 Message-Id: <20200822200037.20892-2-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200822200037.20892-1-laurent.pinchart@ideasonboard.com> References: <20200822200037.20892-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 1/5] meson: Switch to C++17 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: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Due to popular request, move from C++14 to C++17. This will allow dropping some custom constructs (such as a custom utils::clamp), benefiting from new language features, and dropping gcc 5 and 6 from the compilation tests. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index ec54e68f3635..ce1d1c63ddc6 100644 --- a/meson.build +++ b/meson.build @@ -6,7 +6,7 @@ project('libcamera', 'c', 'cpp', default_options : [ 'werror=true', 'warning_level=2', - 'cpp_std=c++14', + 'cpp_std=c++17', ], license : 'LGPL 2.1+') From patchwork Sat Aug 22 20:00:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 9368 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 95609BD87C for ; Sat, 22 Aug 2020 20:01:04 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id BD11C62710; Sat, 22 Aug 2020 22:01:02 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="C4QDNlkt"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 4955E61EA0 for ; Sat, 22 Aug 2020 22:01:01 +0200 (CEST) Received: from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id D947929E for ; Sat, 22 Aug 2020 22:01:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1598126461; bh=/CKj5S48tCgLx9e/ISDOPZmfFLiqUjHaY7h7dtMEeSk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=C4QDNlktvKV3K7iiTR5/SKKQgYSemwb4bxDLsQEQTaZqxL3pgZ7XWQIwVBTYeyVmG up3wW/bP59DmKwL/PL1Qo1ek2mbl3zGOwHf0eSvIQsAOg/OOH2ZUOAj9R6YCaunube 372NAup0PyLmdncz+/NArMkMsFJErDk6cirLtjHg= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Sat, 22 Aug 2020 23:00:34 +0300 Message-Id: <20200822200037.20892-3-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200822200037.20892-1-laurent.pinchart@ideasonboard.com> References: <20200822200037.20892-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 2/5] libcamera: Replace utils::clamp() with std::clamp() 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: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Now that libcamera uses C++17, the C++ standard library provides std::clamp(). Drop our custom utils::clamp() function. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Niklas Söderlund --- include/libcamera/internal/utils.h | 7 ------- src/ipa/rkisp1/rkisp1.cpp | 11 +++++------ src/libcamera/pipeline/ipu3/imgu.cpp | 3 ++- src/libcamera/pipeline/ipu3/ipu3.cpp | 12 ++++++------ src/libcamera/pipeline/vimc/vimc.cpp | 2 +- src/libcamera/utils.cpp | 8 -------- 6 files changed, 14 insertions(+), 29 deletions(-) diff --git a/include/libcamera/internal/utils.h b/include/libcamera/internal/utils.h index 45cd6f120c51..a1b644b0345b 100644 --- a/include/libcamera/internal/utils.h +++ b/include/libcamera/internal/utils.h @@ -65,13 +65,6 @@ unsigned int set_overlap(InputIt1 first1, InputIt1 last1, return count; } -/* C++11 doesn't provide std::clamp */ -template -const T& clamp(const T& v, const T& lo, const T& hi) -{ - return std::max(lo, std::min(v, hi)); -} - using clock = std::chrono::steady_clock; using duration = std::chrono::steady_clock::duration; using time_point = std::chrono::steady_clock::time_point; diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp index 4bb1627342fd..3a1c50c4add0 100644 --- a/src/ipa/rkisp1/rkisp1.cpp +++ b/src/ipa/rkisp1/rkisp1.cpp @@ -24,7 +24,6 @@ #include #include "libcamera/internal/log.h" -#include "libcamera/internal/utils.h" namespace libcamera { @@ -234,13 +233,13 @@ void IPARkISP1::updateStatistics(unsigned int frame, double exposure; exposure = factor * exposure_ * gain_ / minGain_; - exposure_ = utils::clamp((uint64_t)exposure, - minExposure_, - maxExposure_); + exposure_ = std::clamp((uint64_t)exposure, + minExposure_, + maxExposure_); exposure = exposure / exposure_ * minGain_; - gain_ = utils::clamp((uint64_t)exposure, - minGain_, maxGain_); + gain_ = std::clamp((uint64_t)exposure, + minGain_, maxGain_); setControls(frame + 1); } diff --git a/src/libcamera/pipeline/ipu3/imgu.cpp b/src/libcamera/pipeline/ipu3/imgu.cpp index eb829e096561..a4d74a62f69a 100644 --- a/src/libcamera/pipeline/ipu3/imgu.cpp +++ b/src/libcamera/pipeline/ipu3/imgu.cpp @@ -7,6 +7,7 @@ #include "imgu.h" +#include #include #include @@ -129,7 +130,7 @@ void calculateBDSHeight(ImgUDevice::Pipe *pipe, const Size &iif, const Size &gdc if (!isSameRatio(pipe->input, gdc)) { float estIFHeight = (iif.width * gdc.height) / static_cast(gdc.width); - estIFHeight = utils::clamp(estIFHeight, minIFHeight, iif.height); + estIFHeight = std::clamp(estIFHeight, minIFHeight, iif.height); bool found = false; ifHeight = utils::alignUp(estIFHeight, IF_ALIGN_H); diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index 019e50b8f444..2d881fe28f98 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -240,15 +240,15 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate() unsigned int limit; limit = utils::alignDown(cio2Configuration_.size.width - 1, IMGU_OUTPUT_WIDTH_MARGIN); - cfg->size.width = utils::clamp(cfg->size.width, - IMGU_OUTPUT_MIN_SIZE.width, - limit); + cfg->size.width = std::clamp(cfg->size.width, + IMGU_OUTPUT_MIN_SIZE.width, + limit); limit = utils::alignDown(cio2Configuration_.size.height - 1, IMGU_OUTPUT_HEIGHT_MARGIN); - cfg->size.height = utils::clamp(cfg->size.height, - IMGU_OUTPUT_MIN_SIZE.height, - limit); + cfg->size.height = std::clamp(cfg->size.height, + IMGU_OUTPUT_MIN_SIZE.height, + limit); cfg->size.alignDownTo(IMGU_OUTPUT_WIDTH_ALIGN, IMGU_OUTPUT_HEIGHT_ALIGN); diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp index cf244f11f242..7e237650b448 100644 --- a/src/libcamera/pipeline/vimc/vimc.cpp +++ b/src/libcamera/pipeline/vimc/vimc.cpp @@ -360,7 +360,7 @@ int PipelineHandlerVimc::processControls(VimcCameraData *data, Request *request) } int32_t value = lroundf(it.second.get() * 128 + offset); - controls.set(cid, utils::clamp(value, 0, 255)); + controls.set(cid, std::clamp(value, 0, 255)); } for (const auto &ctrl : controls) diff --git a/src/libcamera/utils.cpp b/src/libcamera/utils.cpp index 615df46ac142..a5232902191e 100644 --- a/src/libcamera/utils.cpp +++ b/src/libcamera/utils.cpp @@ -146,14 +146,6 @@ std::string dirname(const std::string &path) * \return The number of elements in the intersection of the two ranges */ -/** - * \fn libcamera::utils::clamp(const T& v, const T& lo, const T& hi) - * \param[in] v The value to clamp - * \param[in] lo The lower boundary to clamp v to - * \param[in] hi The higher boundary to clamp v to - * \return lo if v is less than lo, hi if v is greater than hi, otherwise v - */ - /** * \typedef clock * \brief The libcamera clock (monotonic) From patchwork Sat Aug 22 20:00:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 9369 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 40287BE174 for ; Sat, 22 Aug 2020 20:01:05 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 0E4AC6278A; Sat, 22 Aug 2020 22:01:05 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="gOJR+jsm"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id C4B4561EA0 for ; Sat, 22 Aug 2020 22:01:01 +0200 (CEST) Received: from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 5DAE829E for ; Sat, 22 Aug 2020 22:01:01 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1598126461; bh=tMryMAYFiC3cHfO+JCVWQRWa7OPbnj4h2RR1UFosYrA=; h=From:To:Subject:Date:In-Reply-To:References:From; b=gOJR+jsmBcfILpAjBheeMQdN0R48OsGHseO/AM8/h6hot1ZDnUWJp4BCXQ2gXIoJ8 /vbliV0kp1trrKDk2WkUhSlbvQVF5i21ZjN3e2smWvBWLOdKd5HqinCZrBkZ2VorTg RKgn6VeX7LmEVYd9pD+upkvZU8Gc6HpSwx3/FEQ8= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Sat, 22 Aug 2020 23:00:35 +0300 Message-Id: <20200822200037.20892-4-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200822200037.20892-1-laurent.pinchart@ideasonboard.com> References: <20200822200037.20892-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 3/5] libcamera: Drop explicit construction of std::queue 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: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Now that libcamera is using C++17 and requires gcc 7 or newer, we can use the implicit std::queue constructor. Simplify the code accordingly. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Niklas Söderlund --- src/libcamera/pipeline/ipu3/cio2.cpp | 4 +--- src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 5 ++--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/libcamera/pipeline/ipu3/cio2.cpp b/src/libcamera/pipeline/ipu3/cio2.cpp index abe6d8a592d6..e43ec70fe3e4 100644 --- a/src/libcamera/pipeline/ipu3/cio2.cpp +++ b/src/libcamera/pipeline/ipu3/cio2.cpp @@ -300,9 +300,7 @@ void CIO2Device::tryReturnBuffer(FrameBuffer *buffer) void CIO2Device::freeBuffers() { - /* The default std::queue constructor is explicit with gcc 5 and 6. */ - availableBuffers_ = std::queue{}; - + availableBuffers_ = {}; buffers_.clear(); if (output_->releaseBuffers()) diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp index eeaf335cbcd2..b8f0549f0c60 100644 --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp @@ -848,9 +848,8 @@ void PipelineHandlerRPi::stop(Camera *camera) /* This also stops the streams. */ data->clearIncompleteRequests(); - /* The default std::queue constructor is explicit with gcc 5 and 6. */ - data->bayerQueue_ = std::queue{}; - data->embeddedQueue_ = std::queue{}; + data->bayerQueue_ = {}; + data->embeddedQueue_ = {}; /* Stop the IPA. */ data->ipa_->stop(); From patchwork Sat Aug 22 20:00:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 9370 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 9E495BE175 for ; Sat, 22 Aug 2020 20:01:05 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 6E30262724; Sat, 22 Aug 2020 22:01:05 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="ThdBVlom"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 1D3DA62724 for ; Sat, 22 Aug 2020 22:01:02 +0200 (CEST) Received: from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id AE2EC4FB for ; Sat, 22 Aug 2020 22:01:01 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1598126461; bh=ZNVp50yEDPM/6qYwMLCqey2f+8vNzBuBLw0TL0fQwMY=; h=From:To:Subject:Date:In-Reply-To:References:From; b=ThdBVlomImwtQ1vordRpXYYE59CPpy0kW5ih3DENHAVE9Ip65Z3Y+LIiTD47Lv2E3 ralrZiQbIigjN+tfE6IVhHVukajWrXk+0ZfnfO84xUrMcREZf+NCE1ms1j7NAp8X8u l1WnrI4TvghoujwYZ6YdURLON5+kc5fwdMLM3oQw= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Sat, 22 Aug 2020 23:00:36 +0300 Message-Id: <20200822200037.20892-5-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200822200037.20892-1-laurent.pinchart@ideasonboard.com> References: <20200822200037.20892-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 4/5] meson: Remove -Wno-unused-parameter 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: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" We build libcamera with -Wno-unused-parameter and this doesn't cause much issue internally. However, it prevents catching unused parameters in inline functions defined in public headers. This can lead to compilation warnings for applications compiled without -Wno-unused-parameter. To catch those issues, remove -Wno-unused-parameter and fix all the related warnings. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Niklas Söderlund --- include/libcamera/bound_method.h | 2 +- include/libcamera/signal.h | 2 +- include/libcamera/span.h | 4 ++-- meson.build | 1 - src/android/camera3_hal.cpp | 11 +++++---- src/android/camera_device.cpp | 5 ++-- src/android/camera_ops.cpp | 5 ++-- src/cam/main.cpp | 2 +- src/gstreamer/gstlibcamerapool.cpp | 2 +- src/gstreamer/gstlibcameraprovider.cpp | 2 +- src/gstreamer/gstlibcamerasrc.cpp | 7 ++++-- src/ipa/raspberrypi/controller/rpi/agc.cpp | 3 ++- src/ipa/raspberrypi/raspberrypi.cpp | 2 +- src/ipa/rkisp1/rkisp1.cpp | 13 +++++++---- src/ipa/vimc/vimc.cpp | 16 ++++++------- src/libcamera/device_enumerator_udev.cpp | 2 +- src/libcamera/ipc_unixsocket.cpp | 2 +- .../pipeline/raspberrypi/raspberrypi.cpp | 5 ++-- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 2 +- src/libcamera/pipeline/rkisp1/timeline.cpp | 2 +- src/libcamera/process.cpp | 2 +- src/libcamera/proxy/ipa_proxy_linux.cpp | 23 +++++++++++-------- src/libcamera/v4l2_pixelformat.cpp | 2 +- src/libcamera/v4l2_videodevice.cpp | 4 ++-- src/qcam/dng_writer.cpp | 5 ++-- src/qcam/main.cpp | 2 +- src/v4l2/v4l2_camera.cpp | 2 +- test/camera/buffer_import.cpp | 3 ++- test/camera/capture.cpp | 3 ++- test/hotplug-cameras.cpp | 4 ++-- test/ipa/ipa_wrappers_test.cpp | 4 ++-- test/libtest/test.h | 2 +- test/log/log_process.cpp | 3 ++- test/object-invoke.cpp | 2 +- test/process/process_test.cpp | 3 ++- test/timer-thread.cpp | 2 +- test/timer.cpp | 2 +- 37 files changed, 89 insertions(+), 69 deletions(-) diff --git a/include/libcamera/bound_method.h b/include/libcamera/bound_method.h index 983bb5cbbad0..d1e4448304a9 100644 --- a/include/libcamera/bound_method.h +++ b/include/libcamera/bound_method.h @@ -214,7 +214,7 @@ public: bool match(R (*func)(Args...)) const { return func == func_; } - R activate(Args... args, bool deleteMethod = false) override + R activate(Args... args, [[maybe_unused]] bool deleteMethod = false) override { return (*func_)(args...); } diff --git a/include/libcamera/signal.h b/include/libcamera/signal.h index ed30eb559127..accb797e911c 100644 --- a/include/libcamera/signal.h +++ b/include/libcamera/signal.h @@ -70,7 +70,7 @@ public: void disconnect() { - SignalBase::disconnect([](SlotList::iterator &iter) { + SignalBase::disconnect([]([[maybe_unused]] SlotList::iterator &iter) { return true; }); } diff --git a/include/libcamera/span.h b/include/libcamera/span.h index 513ddb432405..738af6aca871 100644 --- a/include/libcamera/span.h +++ b/include/libcamera/span.h @@ -113,12 +113,12 @@ public: { } - constexpr Span(pointer ptr, size_type count) + constexpr Span(pointer ptr, [[maybe_unused]] size_type count) : data_(ptr) { } - constexpr Span(pointer first, pointer last) + constexpr Span(pointer first, [[maybe_unused]] pointer last) : data_(first) { } diff --git a/meson.build b/meson.build index ce1d1c63ddc6..d7e8122ccaa3 100644 --- a/meson.build +++ b/meson.build @@ -37,7 +37,6 @@ if cc.has_header_symbol('stdlib.h', 'secure_getenv', prefix : '#define _GNU_SOUR endif common_arguments = [ - '-Wno-unused-parameter', '-include', 'config.h', ] diff --git a/src/android/camera3_hal.cpp b/src/android/camera3_hal.cpp index decaf59e6915..ddcfea591ce6 100644 --- a/src/android/camera3_hal.cpp +++ b/src/android/camera3_hal.cpp @@ -32,18 +32,21 @@ static int hal_get_camera_info(int id, struct camera_info *info) return cameraManager.getCameraInfo(id, info); } -static int hal_set_callbacks(const camera_module_callbacks_t *callbacks) +static int hal_set_callbacks([[maybe_unused]] const camera_module_callbacks_t *callbacks) { return 0; } -static int hal_open_legacy(const struct hw_module_t *module, const char *id, - uint32_t halVersion, struct hw_device_t **device) +static int hal_open_legacy([[maybe_unused]] const struct hw_module_t *module, + [[maybe_unused]] const char *id, + [[maybe_unused]] uint32_t halVersion, + [[maybe_unused]] struct hw_device_t **device) { return -ENOSYS; } -static int hal_set_torch_mode(const char *camera_id, bool enabled) +static int hal_set_torch_mode([[maybe_unused]] const char *camera_id, + [[maybe_unused]] bool enabled) { return -ENOSYS; } diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index 3419236a061c..8a39bee690a0 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -1541,8 +1541,9 @@ void CameraDevice::notifyError(uint32_t frameNumber, camera3_stream_t *stream) /* * Produce a set of fixed result metadata. */ -std::unique_ptr CameraDevice::getResultMetadata(int frame_number, - int64_t timestamp) +std::unique_ptr +CameraDevice::getResultMetadata([[maybe_unused]] int frame_number, + int64_t timestamp) { /* * \todo Keep this in sync with the actual number of entries. diff --git a/src/android/camera_ops.cpp b/src/android/camera_ops.cpp index 216ac285f964..696e80436821 100644 --- a/src/android/camera_ops.cpp +++ b/src/android/camera_ops.cpp @@ -61,11 +61,12 @@ static int hal_dev_process_capture_request(const struct camera3_device *dev, return camera->processCaptureRequest(request); } -static void hal_dev_dump(const struct camera3_device *dev, int fd) +static void hal_dev_dump([[maybe_unused]] const struct camera3_device *dev, + [[maybe_unused]] int fd) { } -static int hal_dev_flush(const struct camera3_device *dev) +static int hal_dev_flush([[maybe_unused]] const struct camera3_device *dev) { return 0; } diff --git a/src/cam/main.cpp b/src/cam/main.cpp index cc3facd5a5b2..244720b491f5 100644 --- a/src/cam/main.cpp +++ b/src/cam/main.cpp @@ -378,7 +378,7 @@ int CamApp::run() return 0; } -void signalHandler(int signal) +void signalHandler([[maybe_unused]] int signal) { std::cout << "Exiting" << std::endl; CamApp::instance()->quit(); diff --git a/src/gstreamer/gstlibcamerapool.cpp b/src/gstreamer/gstlibcamerapool.cpp index 8f536169455f..b756ee356d61 100644 --- a/src/gstreamer/gstlibcamerapool.cpp +++ b/src/gstreamer/gstlibcamerapool.cpp @@ -33,7 +33,7 @@ G_DEFINE_TYPE(GstLibcameraPool, gst_libcamera_pool, GST_TYPE_BUFFER_POOL); static GstFlowReturn gst_libcamera_pool_acquire_buffer(GstBufferPool *pool, GstBuffer **buffer, - GstBufferPoolAcquireParams *params) + [[maybe_unused]] GstBufferPoolAcquireParams *params) { GstLibcameraPool *self = GST_LIBCAMERA_POOL(pool); GstBuffer *buf = GST_BUFFER(gst_atomic_queue_pop(self->queue)); diff --git a/src/gstreamer/gstlibcameraprovider.cpp b/src/gstreamer/gstlibcameraprovider.cpp index 840e87a3d8da..cd850d813a6e 100644 --- a/src/gstreamer/gstlibcameraprovider.cpp +++ b/src/gstreamer/gstlibcameraprovider.cpp @@ -89,7 +89,7 @@ gst_libcamera_device_set_property(GObject *object, guint prop_id, } static void -gst_libcamera_device_init(GstLibcameraDevice *self) +gst_libcamera_device_init([[maybe_unused]] GstLibcameraDevice *self) { } diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp index 0c28ae3f2852..1bfc2e2f8cf3 100644 --- a/src/gstreamer/gstlibcamerasrc.cpp +++ b/src/gstreamer/gstlibcamerasrc.cpp @@ -338,7 +338,8 @@ gst_libcamera_src_task_run(gpointer user_data) } static void -gst_libcamera_src_task_enter(GstTask *task, GThread *thread, gpointer user_data) +gst_libcamera_src_task_enter(GstTask *task, [[maybe_unused]] GThread *thread, + gpointer user_data) { GstLibcameraSrc *self = GST_LIBCAMERA_SRC(user_data); GLibRecLocker lock(&self->stream_lock); @@ -467,7 +468,9 @@ done: } static void -gst_libcamera_src_task_leave(GstTask *task, GThread *thread, gpointer user_data) +gst_libcamera_src_task_leave([[maybe_unused]] GstTask *task, + [[maybe_unused]] GThread *thread, + gpointer user_data) { GstLibcameraSrc *self = GST_LIBCAMERA_SRC(user_data); GstLibcameraSrcState *state = self->state; diff --git a/src/ipa/raspberrypi/controller/rpi/agc.cpp b/src/ipa/raspberrypi/controller/rpi/agc.cpp index c02b5ece242f..3573f36be46a 100644 --- a/src/ipa/raspberrypi/controller/rpi/agc.cpp +++ b/src/ipa/raspberrypi/controller/rpi/agc.cpp @@ -221,7 +221,8 @@ void Agc::SetConstraintMode(std::string const &constraint_mode_name) constraint_mode_name_ = constraint_mode_name; } -void Agc::SwitchMode(CameraMode const &camera_mode, Metadata *metadata) +void Agc::SwitchMode([[maybe_unused]] CameraMode const &camera_mode, + Metadata *metadata) { // On a mode switch, it's possible the exposure profile could change, // so we run through the dividing up of exposure/gain again and diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp index 37472087f5a9..4557016c2dd4 100644 --- a/src/ipa/raspberrypi/raspberrypi.cpp +++ b/src/ipa/raspberrypi/raspberrypi.cpp @@ -191,7 +191,7 @@ void IPARPi::setMode(const CameraSensorInfo &sensorInfo) } void IPARPi::configure(const CameraSensorInfo &sensorInfo, - const std::map &streamConfig, + [[maybe_unused]] const std::map &streamConfig, const std::map &entityControls, const IPAOperationData &ipaConfig, IPAOperationData *result) diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp index 3a1c50c4add0..d95d902adff3 100644 --- a/src/ipa/rkisp1/rkisp1.cpp +++ b/src/ipa/rkisp1/rkisp1.cpp @@ -32,7 +32,10 @@ LOG_DEFINE_CATEGORY(IPARkISP1) class IPARkISP1 : public IPAInterface { public: - int init(const IPASettings &settings) override { return 0; } + int init([[maybe_unused]] const IPASettings &settings) override + { + return 0; + } int start() override { return 0; } void stop() override {} @@ -75,11 +78,11 @@ private: * assemble one. Make sure the reported sensor information are relevant * before accessing them. */ -void IPARkISP1::configure(const CameraSensorInfo &info, - const std::map &streamConfig, +void IPARkISP1::configure([[maybe_unused]] const CameraSensorInfo &info, + [[maybe_unused]] const std::map &streamConfig, const std::map &entityControls, - const IPAOperationData &ipaConfig, - IPAOperationData *result) + [[maybe_unused]] const IPAOperationData &ipaConfig, + [[maybe_unused]] IPAOperationData *result) { if (entityControls.empty()) return; diff --git a/src/ipa/vimc/vimc.cpp b/src/ipa/vimc/vimc.cpp index 1593c92d80f3..ef257762a1d4 100644 --- a/src/ipa/vimc/vimc.cpp +++ b/src/ipa/vimc/vimc.cpp @@ -37,14 +37,14 @@ public: int start() override; void stop() override; - void configure(const CameraSensorInfo &sensorInfo, - const std::map &streamConfig, - const std::map &entityControls, - const IPAOperationData &ipaConfig, - IPAOperationData *result) override {} - void mapBuffers(const std::vector &buffers) override {} - void unmapBuffers(const std::vector &ids) override {} - void processEvent(const IPAOperationData &event) override {} + void configure([[maybe_unused]] const CameraSensorInfo &sensorInfo, + [[maybe_unused]] const std::map &streamConfig, + [[maybe_unused]] const std::map &entityControls, + [[maybe_unused]] const IPAOperationData &ipaConfig, + [[maybe_unused]] IPAOperationData *result) override {} + void mapBuffers([[maybe_unused]] const std::vector &buffers) override {} + void unmapBuffers([[maybe_unused]] const std::vector &ids) override {} + void processEvent([[maybe_unused]] const IPAOperationData &event) override {} private: void initTrace(); diff --git a/src/libcamera/device_enumerator_udev.cpp b/src/libcamera/device_enumerator_udev.cpp index 96689daa5dd1..c6e23a1a7a18 100644 --- a/src/libcamera/device_enumerator_udev.cpp +++ b/src/libcamera/device_enumerator_udev.cpp @@ -327,7 +327,7 @@ int DeviceEnumeratorUdev::addV4L2Device(dev_t devnum) return 0; } -void DeviceEnumeratorUdev::udevNotify(EventNotifier *notifier) +void DeviceEnumeratorUdev::udevNotify([[maybe_unused]] EventNotifier *notifier) { struct udev_device *dev = udev_monitor_receive_device(monitor_); std::string action(udev_device_get_action(dev)); diff --git a/src/libcamera/ipc_unixsocket.cpp b/src/libcamera/ipc_unixsocket.cpp index 7df86e885f23..701b2c518217 100644 --- a/src/libcamera/ipc_unixsocket.cpp +++ b/src/libcamera/ipc_unixsocket.cpp @@ -308,7 +308,7 @@ int IPCUnixSocket::recvData(void *buffer, size_t length, return 0; } -void IPCUnixSocket::dataNotifier(EventNotifier *notifier) +void IPCUnixSocket::dataNotifier([[maybe_unused]] EventNotifier *notifier) { int ret; diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp index b8f0549f0c60..42c9caa03e2e 100644 --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp @@ -758,7 +758,7 @@ int PipelineHandlerRPi::configure(Camera *camera, CameraConfiguration *config) return ret; } -int PipelineHandlerRPi::exportFrameBuffers(Camera *camera, Stream *stream, +int PipelineHandlerRPi::exportFrameBuffers([[maybe_unused]] Camera *camera, Stream *stream, std::vector> *buffers) { RPiStream *s = static_cast(stream); @@ -1182,7 +1182,8 @@ int RPiCameraData::configureIPA() return 0; } -void RPiCameraData::queueFrameAction(unsigned int frame, const IPAOperationData &action) +void RPiCameraData::queueFrameAction([[maybe_unused]] unsigned int frame, + const IPAOperationData &action) { /* * The following actions can be handled when the pipeline handler is in diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp index 32fdaed7c661..4d89aab3845d 100644 --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp @@ -700,7 +700,7 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c) return 0; } -int PipelineHandlerRkISP1::exportFrameBuffers(Camera *camera, Stream *stream, +int PipelineHandlerRkISP1::exportFrameBuffers([[maybe_unused]] Camera *camera, Stream *stream, std::vector> *buffers) { unsigned int count = stream->configuration().bufferCount; diff --git a/src/libcamera/pipeline/rkisp1/timeline.cpp b/src/libcamera/pipeline/rkisp1/timeline.cpp index f5194608ced7..6b83bbe5b589 100644 --- a/src/libcamera/pipeline/rkisp1/timeline.cpp +++ b/src/libcamera/pipeline/rkisp1/timeline.cpp @@ -204,7 +204,7 @@ void Timeline::updateDeadline() timer_.start(deadline); } -void Timeline::timeout(Timer *timer) +void Timeline::timeout([[maybe_unused]] Timer *timer) { utils::time_point now = std::chrono::steady_clock::now(); diff --git a/src/libcamera/process.cpp b/src/libcamera/process.cpp index 8311d274a288..994190dc6f3d 100644 --- a/src/libcamera/process.cpp +++ b/src/libcamera/process.cpp @@ -89,7 +89,7 @@ void sigact(int signal, siginfo_t *info, void *ucontext) } /* namespace */ -void ProcessManager::sighandler(EventNotifier *notifier) +void ProcessManager::sighandler([[maybe_unused]] EventNotifier *notifier) { char data; ssize_t ret = read(pipe_[0], &data, sizeof(data)); diff --git a/src/libcamera/proxy/ipa_proxy_linux.cpp b/src/libcamera/proxy/ipa_proxy_linux.cpp index 68eafb307b2a..b78a0e4535f5 100644 --- a/src/libcamera/proxy/ipa_proxy_linux.cpp +++ b/src/libcamera/proxy/ipa_proxy_linux.cpp @@ -26,17 +26,20 @@ public: IPAProxyLinux(IPAModule *ipam); ~IPAProxyLinux(); - int init(const IPASettings &settings) override { return 0; } + int init([[maybe_unused]] const IPASettings &settings) override + { + return 0; + } int start() override { return 0; } void stop() override {} - void configure(const CameraSensorInfo &sensorInfo, - const std::map &streamConfig, - const std::map &entityControls, - const IPAOperationData &ipaConfig, - IPAOperationData *result) override {} - void mapBuffers(const std::vector &buffers) override {} - void unmapBuffers(const std::vector &ids) override {} - void processEvent(const IPAOperationData &event) override {} + void configure([[maybe_unused]] const CameraSensorInfo &sensorInfo, + [[maybe_unused]] const std::map &streamConfig, + [[maybe_unused]] const std::map &entityControls, + [[maybe_unused]] const IPAOperationData &ipaConfig, + [[maybe_unused]] IPAOperationData *result) override {} + void mapBuffers([[maybe_unused]] const std::vector &buffers) override {} + void unmapBuffers([[maybe_unused]] const std::vector &ids) override {} + void processEvent([[maybe_unused]] const IPAOperationData &event) override {} private: void readyRead(IPCUnixSocket *ipc); @@ -91,7 +94,7 @@ IPAProxyLinux::~IPAProxyLinux() delete socket_; } -void IPAProxyLinux::readyRead(IPCUnixSocket *ipc) +void IPAProxyLinux::readyRead([[maybe_unused]] IPCUnixSocket *ipc) { } diff --git a/src/libcamera/v4l2_pixelformat.cpp b/src/libcamera/v4l2_pixelformat.cpp index 8391ec48ac10..30c94bb98f44 100644 --- a/src/libcamera/v4l2_pixelformat.cpp +++ b/src/libcamera/v4l2_pixelformat.cpp @@ -196,7 +196,7 @@ PixelFormat V4L2PixelFormat::toPixelFormat() const * \return The V4L2PixelFormat corresponding to \a pixelFormat */ V4L2PixelFormat V4L2PixelFormat::fromPixelFormat(const PixelFormat &pixelFormat, - bool multiplanar) + [[maybe_unused]] bool multiplanar) { const PixelFormatInfo &info = PixelFormatInfo::info(pixelFormat); if (!info.isValid()) diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp index 652677ff1d4d..508522ef42bb 100644 --- a/src/libcamera/v4l2_videodevice.cpp +++ b/src/libcamera/v4l2_videodevice.cpp @@ -1462,7 +1462,7 @@ int V4L2VideoDevice::queueBuffer(FrameBuffer *buffer) * For Capture video devices the FrameBuffer will contain valid data. * For Output video devices the FrameBuffer can be considered empty. */ -void V4L2VideoDevice::bufferAvailable(EventNotifier *notifier) +void V4L2VideoDevice::bufferAvailable([[maybe_unused]] EventNotifier *notifier) { FrameBuffer *buffer = dequeueBuffer(); if (!buffer) @@ -1539,7 +1539,7 @@ FrameBuffer *V4L2VideoDevice::dequeueBuffer() * When this slot is called, a V4L2 event is available to be dequeued from the * device. */ -void V4L2VideoDevice::eventAvailable(EventNotifier *notifier) +void V4L2VideoDevice::eventAvailable([[maybe_unused]] EventNotifier *notifier) { struct v4l2_event event{}; int ret = ioctl(VIDIOC_DQEVENT, &event); diff --git a/src/qcam/dng_writer.cpp b/src/qcam/dng_writer.cpp index b5b81f0637b5..030d1387118d 100644 --- a/src/qcam/dng_writer.cpp +++ b/src/qcam/dng_writer.cpp @@ -215,7 +215,7 @@ void packScanlineIPU3(void *output, const void *input, unsigned int width) } } -void thumbScanlineIPU3(const FormatInfo &info, void *output, +void thumbScanlineIPU3([[maybe_unused]] const FormatInfo &info, void *output, const void *input, unsigned int width, unsigned int stride) { @@ -350,7 +350,8 @@ static const std::map formatInfo = { int DNGWriter::write(const char *filename, const Camera *camera, const StreamConfiguration &config, const ControlList &metadata, - const FrameBuffer *buffer, const void *data) + [[maybe_unused]] const FrameBuffer *buffer, + const void *data) { const auto it = formatInfo.find(config.pixelFormat); if (it == formatInfo.cend()) { diff --git a/src/qcam/main.cpp b/src/qcam/main.cpp index b3468cbf47e2..bae358df0877 100644 --- a/src/qcam/main.cpp +++ b/src/qcam/main.cpp @@ -17,7 +17,7 @@ #include "../cam/stream_options.h" #include "main_window.h" -void signalHandler(int signal) +void signalHandler([[maybe_unused]] int signal) { qInfo() << "Exiting"; qApp->quit(); diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp index 61bca0732447..7a22f983ec0e 100644 --- a/src/v4l2/v4l2_camera.cpp +++ b/src/v4l2/v4l2_camera.cpp @@ -158,7 +158,7 @@ int V4L2Camera::validateConfiguration(const PixelFormat &pixelFormat, return 0; } -int V4L2Camera::allocBuffers(unsigned int count) +int V4L2Camera::allocBuffers([[maybe_unused]] unsigned int count) { Stream *stream = config_->at(0).stream(); diff --git a/test/camera/buffer_import.cpp b/test/camera/buffer_import.cpp index 97a8582761a7..d57ffa75edeb 100644 --- a/test/camera/buffer_import.cpp +++ b/test/camera/buffer_import.cpp @@ -33,7 +33,8 @@ public: } protected: - void bufferComplete(Request *request, FrameBuffer *buffer) + void bufferComplete([[maybe_unused]] Request *request, + FrameBuffer *buffer) { if (buffer->metadata().status != FrameMetadata::FrameSuccess) return; diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp index 0fe3bf9be7f1..eb67bf2da71f 100644 --- a/test/camera/capture.cpp +++ b/test/camera/capture.cpp @@ -26,7 +26,8 @@ protected: unsigned int completeBuffersCount_; unsigned int completeRequestsCount_; - void bufferComplete(Request *request, FrameBuffer *buffer) + void bufferComplete([[maybe_unused]] Request *request, + FrameBuffer *buffer) { if (buffer->metadata().status != FrameMetadata::FrameSuccess) return; diff --git a/test/hotplug-cameras.cpp b/test/hotplug-cameras.cpp index 6a94535fa315..7d551eeb900d 100644 --- a/test/hotplug-cameras.cpp +++ b/test/hotplug-cameras.cpp @@ -26,12 +26,12 @@ using namespace libcamera; class HotplugTest : public Test { protected: - void cameraAddedHandler(std::shared_ptr cam) + void cameraAddedHandler([[maybe_unused]] std::shared_ptr cam) { cameraAdded_ = true; } - void cameraRemovedHandler(std::shared_ptr cam) + void cameraRemovedHandler([[maybe_unused]] std::shared_ptr cam) { cameraRemoved_ = true; } diff --git a/test/ipa/ipa_wrappers_test.cpp b/test/ipa/ipa_wrappers_test.cpp index 23c799da0663..59d991cbbf6a 100644 --- a/test/ipa/ipa_wrappers_test.cpp +++ b/test/ipa/ipa_wrappers_test.cpp @@ -70,8 +70,8 @@ public: void configure(const CameraSensorInfo &sensorInfo, const std::map &streamConfig, const std::map &entityControls, - const IPAOperationData &ipaConfig, - IPAOperationData *result) override + [[maybe_unused]] const IPAOperationData &ipaConfig, + [[maybe_unused]] IPAOperationData *result) override { /* Verify sensorInfo. */ if (sensorInfo.outputSize.width != 2560 || diff --git a/test/libtest/test.h b/test/libtest/test.h index 26d4b94bc12d..8ecf2bda950f 100644 --- a/test/libtest/test.h +++ b/test/libtest/test.h @@ -30,7 +30,7 @@ protected: }; #define TEST_REGISTER(klass) \ -int main(int argc, char *argv[]) \ +int main([[maybe_unused]] int argc, [[maybe_unused]] char *argv[]) \ { \ return klass().execute(); \ } diff --git a/test/log/log_process.cpp b/test/log/log_process.cpp index d46d5e354727..b024f002843c 100644 --- a/test/log/log_process.cpp +++ b/test/log/log_process.cpp @@ -125,7 +125,8 @@ protected: } private: - void procFinished(Process *proc, enum Process::ExitStatus exitStatus, int exitCode) + void procFinished([[maybe_unused]] Process *proc, + enum Process::ExitStatus exitStatus, int exitCode) { exitStatus_ = exitStatus; exitCode_ = exitCode; diff --git a/test/object-invoke.cpp b/test/object-invoke.cpp index 1ae11bb11e16..f3fd23283239 100644 --- a/test/object-invoke.cpp +++ b/test/object-invoke.cpp @@ -50,7 +50,7 @@ public: value_ = value; } - void methodWithReference(const int &value) + void methodWithReference([[maybe_unused]] const int &value) { } diff --git a/test/process/process_test.cpp b/test/process/process_test.cpp index 721a7c9d46ff..42a26749f5d9 100644 --- a/test/process/process_test.cpp +++ b/test/process/process_test.cpp @@ -80,7 +80,8 @@ protected: } private: - void procFinished(Process *proc, enum Process::ExitStatus exitStatus, int exitCode) + void procFinished([[maybe_unused]] Process *proc, + enum Process::ExitStatus exitStatus, int exitCode) { exitStatus_ = exitStatus; exitCode_ = exitCode; diff --git a/test/timer-thread.cpp b/test/timer-thread.cpp index 2f901787f5fb..f794d8e7dd4e 100644 --- a/test/timer-thread.cpp +++ b/test/timer-thread.cpp @@ -40,7 +40,7 @@ public: } private: - void timeoutHandler(Timer *timer) + void timeoutHandler([[maybe_unused]] Timer *timer) { timeout_ = true; } diff --git a/test/timer.cpp b/test/timer.cpp index 7d5b93c37799..537489d736ad 100644 --- a/test/timer.cpp +++ b/test/timer.cpp @@ -57,7 +57,7 @@ public: } private: - void timeoutHandler(Timer *timer) + void timeoutHandler([[maybe_unused]] Timer *timer) { expiration_ = std::chrono::steady_clock::now(); count_++; From patchwork Sat Aug 22 20:00:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 9371 X-Patchwork-Delegate: laurent.pinchart@ideasonboard.com 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 4160EBD87C for ; Sat, 22 Aug 2020 20:01:07 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 11A9062113; Sat, 22 Aug 2020 22:01:07 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="fbOyAt96"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 9425762758 for ; Sat, 22 Aug 2020 22:01:02 +0200 (CEST) Received: from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 13AB829E for ; Sat, 22 Aug 2020 22:01:02 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1598126462; bh=ATzgUPvlZS3LwLn5S05NCzfu0Y55E4Q5lYTWezzpEoI=; h=From:To:Subject:Date:In-Reply-To:References:From; b=fbOyAt96e3S6T6L/m/Q8tfkl+5fFMFhaEFG3eBhO4zWjhvRZ2R93bHrD+JyGcCr4S +sW9t+nI3f7cK81PzbuxDVjdbI9nfBFS9dmj3tEO523mcC956tKKb6mpLUEKC2gXpU jJ3KVWl1aXrzQz8OOoM4PnjD2ZKn/IdTGWpOC2cw= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Date: Sat, 22 Aug 2020 23:00:37 +0300 Message-Id: <20200822200037.20892-6-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200822200037.20892-1-laurent.pinchart@ideasonboard.com> References: <20200822200037.20892-1-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 5/5] ipa: raspberrypi: Replace void cast with [[maybe_unused]] 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: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The standard way in C++17 to specify that a function or function argument may be unused it to specify the [[maybe_unused]] attribute. Replace manual void casts to silence compiler warnings. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Niklas Söderlund --- src/ipa/raspberrypi/controller/algorithm.cpp | 16 ++++++---------- src/ipa/raspberrypi/controller/rpi/alsc.cpp | 8 +++----- src/ipa/raspberrypi/controller/rpi/contrast.cpp | 4 ++-- src/ipa/raspberrypi/controller/rpi/noise.cpp | 5 ++--- src/ipa/raspberrypi/controller/rpi/sharpen.cpp | 5 ++--- 5 files changed, 15 insertions(+), 23 deletions(-) diff --git a/src/ipa/raspberrypi/controller/algorithm.cpp b/src/ipa/raspberrypi/controller/algorithm.cpp index 55cb2012e63b..1b80e29602f4 100644 --- a/src/ipa/raspberrypi/controller/algorithm.cpp +++ b/src/ipa/raspberrypi/controller/algorithm.cpp @@ -9,28 +9,24 @@ using namespace RPi; -void Algorithm::Read(boost::property_tree::ptree const ¶ms) +void Algorithm::Read([[maybe_unused]] boost::property_tree::ptree const ¶ms) { - (void)params; } void Algorithm::Initialise() {} -void Algorithm::SwitchMode(CameraMode const &camera_mode, Metadata *metadata) +void Algorithm::SwitchMode([[maybe_unused]] CameraMode const &camera_mode, + [[maybe_unused]] Metadata *metadata) { - (void)camera_mode; - (void)metadata; } -void Algorithm::Prepare(Metadata *image_metadata) +void Algorithm::Prepare([[maybe_unused]] Metadata *image_metadata) { - (void)image_metadata; } -void Algorithm::Process(StatisticsPtr &stats, Metadata *image_metadata) +void Algorithm::Process([[maybe_unused]] StatisticsPtr &stats, + [[maybe_unused]] Metadata *image_metadata) { - (void)stats; - (void)image_metadata; } // For registering algorithms with the system: diff --git a/src/ipa/raspberrypi/controller/rpi/alsc.cpp b/src/ipa/raspberrypi/controller/rpi/alsc.cpp index 9df713a37a69..0d0e0b0c8fc4 100644 --- a/src/ipa/raspberrypi/controller/rpi/alsc.cpp +++ b/src/ipa/raspberrypi/controller/rpi/alsc.cpp @@ -200,10 +200,9 @@ static bool compare_modes(CameraMode const &cm0, CameraMode const &cm1) top_diff > threshold_y || bottom_diff > threshold_y; } -void Alsc::SwitchMode(CameraMode const &camera_mode, Metadata *metadata) +void Alsc::SwitchMode(CameraMode const &camera_mode, + [[maybe_unused]] Metadata *metadata) { - (void)metadata; - // We're going to start over with the tables if there's any "significant" // change. bool reset_tables = first_time_ || compare_modes(camera_mode_, camera_mode); @@ -490,7 +489,7 @@ void compensate_lambdas_for_cal(double const cal_table[XY], new_lambdas[i] /= min_new_lambda; } -static void print_cal_table(double const C[XY]) +[[maybe_unused]] static void print_cal_table(double const C[XY]) { printf("table: [\n"); for (int j = 0; j < Y; j++) { @@ -710,7 +709,6 @@ void Alsc::doAlsc() resample_cal_table(cal_table_tmp, camera_mode_, cal_table_b); // You could print out the cal tables for this image here, if you're // tuning the algorithm... - (void)print_cal_table; // Apply any calibration to the statistics, so the adaptive algorithm // makes only the extra adjustments. apply_cal_table(cal_table_r, Cr); diff --git a/src/ipa/raspberrypi/controller/rpi/contrast.cpp b/src/ipa/raspberrypi/controller/rpi/contrast.cpp index e4967990c577..c8d9ab6184f5 100644 --- a/src/ipa/raspberrypi/controller/rpi/contrast.cpp +++ b/src/ipa/raspberrypi/controller/rpi/contrast.cpp @@ -137,9 +137,9 @@ Pwl apply_manual_contrast(Pwl const &gamma_curve, double brightness, return new_gamma_curve; } -void Contrast::Process(StatisticsPtr &stats, Metadata *image_metadata) +void Contrast::Process(StatisticsPtr &stats, + [[maybe_unused]] Metadata *image_metadata) { - (void)image_metadata; double brightness = brightness_, contrast = contrast_; Histogram histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS); // We look at the histogram and adjust the gamma curve in the following diff --git a/src/ipa/raspberrypi/controller/rpi/noise.cpp b/src/ipa/raspberrypi/controller/rpi/noise.cpp index 2cafde3ab951..1b84ecb0b22c 100644 --- a/src/ipa/raspberrypi/controller/rpi/noise.cpp +++ b/src/ipa/raspberrypi/controller/rpi/noise.cpp @@ -27,10 +27,9 @@ char const *Noise::Name() const return NAME; } -void Noise::SwitchMode(CameraMode const &camera_mode, Metadata *metadata) +void Noise::SwitchMode(CameraMode const &camera_mode, + [[maybe_unused]] Metadata *metadata) { - (void)metadata; - // For example, we would expect a 2x2 binned mode to have a "noise // factor" of sqrt(2x2) = 2. (can't be less than one, right?) mode_factor_ = std::max(1.0, camera_mode.noise_factor); diff --git a/src/ipa/raspberrypi/controller/rpi/sharpen.cpp b/src/ipa/raspberrypi/controller/rpi/sharpen.cpp index 2b701db5367c..356c10588d01 100644 --- a/src/ipa/raspberrypi/controller/rpi/sharpen.cpp +++ b/src/ipa/raspberrypi/controller/rpi/sharpen.cpp @@ -26,10 +26,9 @@ char const *Sharpen::Name() const return NAME; } -void Sharpen::SwitchMode(CameraMode const &camera_mode, Metadata *metadata) +void Sharpen::SwitchMode(CameraMode const &camera_mode, + [[maybe_unused]] Metadata *metadata) { - (void)metadata; - // can't be less than one, right? mode_factor_ = std::max(1.0, camera_mode.noise_factor); }