meson: Remove -Wno-unused-parameter

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 with [[maybe_unused]].

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
Laurent Pinchart 2019-10-27 00:36:13 +03:00
parent 3ef378731a
commit dbafe16da7
40 changed files with 95 additions and 73 deletions

View file

@ -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...);
}

View file

@ -70,7 +70,7 @@ public:
void disconnect()
{
SignalBase::disconnect([](SlotList::iterator &iter) {
SignalBase::disconnect([]([[maybe_unused]] SlotList::iterator &iter) {
return true;
});
}

View file

@ -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)
{
}

View file

@ -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',
]

View file

@ -32,20 +32,23 @@ 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)
{
cameraManager.setCallbacks(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;
}

View file

@ -1548,8 +1548,9 @@ void CameraDevice::notifyError(uint32_t frameNumber, camera3_stream_t *stream)
/*
* Produce a set of fixed result metadata.
*/
std::unique_ptr<CameraMetadata> CameraDevice::getResultMetadata(int frame_number,
int64_t timestamp)
std::unique_ptr<CameraMetadata>
CameraDevice::getResultMetadata([[maybe_unused]] int frame_number,
int64_t timestamp)
{
/*
* \todo Keep this in sync with the actual number of entries.

View file

@ -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;
}

View file

@ -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();

View file

@ -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));

View file

@ -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)
{
}

View file

@ -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;

View file

@ -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

View file

@ -191,7 +191,7 @@ void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
}
void IPARPi::configure(const CameraSensorInfo &sensorInfo,
const std::map<unsigned int, IPAStream> &streamConfig,
[[maybe_unused]] const std::map<unsigned int, IPAStream> &streamConfig,
const std::map<unsigned int, const ControlInfoMap &> &entityControls,
const IPAOperationData &ipaConfig,
IPAOperationData *result)

View file

@ -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<unsigned int, IPAStream> &streamConfig,
void IPARkISP1::configure([[maybe_unused]] const CameraSensorInfo &info,
[[maybe_unused]] const std::map<unsigned int, IPAStream> &streamConfig,
const std::map<unsigned int, const ControlInfoMap &> &entityControls,
const IPAOperationData &ipaConfig,
IPAOperationData *result)
[[maybe_unused]] const IPAOperationData &ipaConfig,
[[maybe_unused]] IPAOperationData *result)
{
if (entityControls.empty())
return;

View file

@ -37,14 +37,14 @@ public:
int start() override;
void stop() override;
void configure(const CameraSensorInfo &sensorInfo,
const std::map<unsigned int, IPAStream> &streamConfig,
const std::map<unsigned int, const ControlInfoMap &> &entityControls,
const IPAOperationData &ipaConfig,
IPAOperationData *result) override {}
void mapBuffers(const std::vector<IPABuffer> &buffers) override {}
void unmapBuffers(const std::vector<unsigned int> &ids) override {}
void processEvent(const IPAOperationData &event) override {}
void configure([[maybe_unused]] const CameraSensorInfo &sensorInfo,
[[maybe_unused]] const std::map<unsigned int, IPAStream> &streamConfig,
[[maybe_unused]] const std::map<unsigned int, const ControlInfoMap &> &entityControls,
[[maybe_unused]] const IPAOperationData &ipaConfig,
[[maybe_unused]] IPAOperationData *result) override {}
void mapBuffers([[maybe_unused]] const std::vector<IPABuffer> &buffers) override {}
void unmapBuffers([[maybe_unused]] const std::vector<unsigned int> &ids) override {}
void processEvent([[maybe_unused]] const IPAOperationData &event) override {}
private:
void initTrace();

View file

@ -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));

View file

@ -300,7 +300,7 @@ std::unique_ptr<IPAProxy> IPAManager::createIPA(PipelineHandler *pipe,
return proxy;
}
bool IPAManager::isSignatureValid(IPAModule *ipa) const
bool IPAManager::isSignatureValid([[maybe_unused]] IPAModule *ipa) const
{
#if HAVE_IPA_PUBKEY
File file{ ipa->path() };

View file

@ -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;

View file

@ -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<std::unique_ptr<FrameBuffer>> *buffers)
{
RPiStream *s = static_cast<RPiStream *>(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

View file

@ -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<std::unique_ptr<FrameBuffer>> *buffers)
{
unsigned int count = stream->configuration().bufferCount;

View file

@ -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();

View file

@ -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));

View file

@ -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<unsigned int, IPAStream> &streamConfig,
const std::map<unsigned int, const ControlInfoMap &> &entityControls,
const IPAOperationData &ipaConfig,
IPAOperationData *result) override {}
void mapBuffers(const std::vector<IPABuffer> &buffers) override {}
void unmapBuffers(const std::vector<unsigned int> &ids) override {}
void processEvent(const IPAOperationData &event) override {}
void configure([[maybe_unused]] const CameraSensorInfo &sensorInfo,
[[maybe_unused]] const std::map<unsigned int, IPAStream> &streamConfig,
[[maybe_unused]] const std::map<unsigned int, const ControlInfoMap &> &entityControls,
[[maybe_unused]] const IPAOperationData &ipaConfig,
[[maybe_unused]] IPAOperationData *result) override {}
void mapBuffers([[maybe_unused]] const std::vector<IPABuffer> &buffers) override {}
void unmapBuffers([[maybe_unused]] const std::vector<unsigned int> &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)
{
}

View file

@ -30,7 +30,7 @@ namespace libcamera {
* \brief Construct a PubKey from key data
* \param[in] key Key data encoded in DER format
*/
PubKey::PubKey(Span<const uint8_t> key)
PubKey::PubKey([[maybe_unused]] Span<const uint8_t> key)
: valid_(false)
{
#if HAVE_GNUTLS
@ -73,7 +73,8 @@ PubKey::~PubKey()
*
* \return True if the signature is valid, false otherwise
*/
bool PubKey::verify(Span<const uint8_t> data, Span<const uint8_t> sig) const
bool PubKey::verify([[maybe_unused]] Span<const uint8_t> data,
[[maybe_unused]] Span<const uint8_t> sig) const
{
#if HAVE_GNUTLS
const gnutls_datum_t gnuTlsData{

View file

@ -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())

View file

@ -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);

View file

@ -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<PixelFormat, FormatInfo> 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()) {

View file

@ -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();

View file

@ -637,7 +637,8 @@ void MainWindow::captureRaw()
captureRaw_ = true;
}
void MainWindow::processRaw(FrameBuffer *buffer, const ControlList &metadata)
void MainWindow::processRaw(FrameBuffer *buffer,
[[maybe_unused]] const ControlList &metadata)
{
#ifdef HAVE_DNG
QString defaultPath = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);

View file

@ -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();

View file

@ -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;

View file

@ -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;

View file

@ -26,12 +26,12 @@ using namespace libcamera;
class HotplugTest : public Test
{
protected:
void cameraAddedHandler(std::shared_ptr<Camera> cam)
void cameraAddedHandler([[maybe_unused]] std::shared_ptr<Camera> cam)
{
cameraAdded_ = true;
}
void cameraRemovedHandler(std::shared_ptr<Camera> cam)
void cameraRemovedHandler([[maybe_unused]] std::shared_ptr<Camera> cam)
{
cameraRemoved_ = true;
}

View file

@ -70,8 +70,8 @@ public:
void configure(const CameraSensorInfo &sensorInfo,
const std::map<unsigned int, IPAStream> &streamConfig,
const std::map<unsigned int, const ControlInfoMap &> &entityControls,
const IPAOperationData &ipaConfig,
IPAOperationData *result) override
[[maybe_unused]] const IPAOperationData &ipaConfig,
[[maybe_unused]] IPAOperationData *result) override
{
/* Verify sensorInfo. */
if (sensorInfo.outputSize.width != 2560 ||

View file

@ -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(); \
}

View file

@ -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;

View file

@ -50,7 +50,7 @@ public:
value_ = value;
}
void methodWithReference(const int &value)
void methodWithReference([[maybe_unused]] const int &value)
{
}

View file

@ -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;

View file

@ -40,7 +40,7 @@ public:
}
private:
void timeoutHandler(Timer *timer)
void timeoutHandler([[maybe_unused]] Timer *timer)
{
timeout_ = true;
}

View file

@ -57,7 +57,7 @@ public:
}
private:
void timeoutHandler(Timer *timer)
void timeoutHandler([[maybe_unused]] Timer *timer)
{
expiration_ = std::chrono::steady_clock::now();
count_++;