From 45ebe9a209fc5bcce649b8b3f27f80131fc4e2c7 Mon Sep 17 00:00:00 2001 From: Paul Elder Date: Mon, 8 Mar 2021 16:48:28 +0900 Subject: ipa: raspberrypi: Use direct return value for configure() Now that we support returning int directly in addition to other output parameters, improve the configure() function in the raspberrypi IPA interface. Signed-off-by: Paul Elder Reviewed-by: Laurent Pinchart --- src/ipa/raspberrypi/raspberrypi.cpp | 34 ++++++++++------------ src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 5 ++-- 2 files changed, 17 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp index 85a2b846..7904225a 100644 --- a/src/ipa/raspberrypi/raspberrypi.cpp +++ b/src/ipa/raspberrypi/raspberrypi.cpp @@ -84,11 +84,11 @@ public: ipa::RPi::StartControls *result) override; void stop() override {} - void configure(const CameraSensorInfo &sensorInfo, - const std::map &streamConfig, - const std::map &entityControls, - const ipa::RPi::ConfigInput &data, - ipa::RPi::ConfigOutput *response, int32_t *ret) override; + int configure(const CameraSensorInfo &sensorInfo, + const std::map &streamConfig, + const std::map &entityControls, + const ipa::RPi::ConfigInput &data, + ipa::RPi::ConfigOutput *response) override; void mapBuffers(const std::vector &buffers) override; void unmapBuffers(const std::vector &ids) override; void signalStatReady(const uint32_t bufferId) override; @@ -290,16 +290,15 @@ void IPARPi::setMode(const CameraSensorInfo &sensorInfo) mode_.max_frame_length = sensorInfo.maxFrameLength; } -void IPARPi::configure(const CameraSensorInfo &sensorInfo, - [[maybe_unused]] const std::map &streamConfig, - const std::map &entityControls, - const ipa::RPi::ConfigInput &ipaConfig, - ipa::RPi::ConfigOutput *result, int32_t *ret) +int IPARPi::configure(const CameraSensorInfo &sensorInfo, + [[maybe_unused]] const std::map &streamConfig, + const std::map &entityControls, + const ipa::RPi::ConfigInput &ipaConfig, + ipa::RPi::ConfigOutput *result) { if (entityControls.size() != 2) { LOG(IPARPI, Error) << "No ISP or sensor controls found."; - *ret = -1; - return; + return -1; } result->params = 0; @@ -309,14 +308,12 @@ void IPARPi::configure(const CameraSensorInfo &sensorInfo, if (!validateSensorControls()) { LOG(IPARPI, Error) << "Sensor control validation failed."; - *ret = -1; - return; + return -1; } if (!validateIspControls()) { LOG(IPARPI, Error) << "ISP control validation failed."; - *ret = -1; - return; + return -1; } /* Setup a metadata ControlList to output metadata. */ @@ -334,8 +331,7 @@ void IPARPi::configure(const CameraSensorInfo &sensorInfo, if (!helper_) { LOG(IPARPI, Error) << "Could not create camera helper for " << cameraName; - *ret = -1; - return; + return -1; } /* @@ -403,7 +399,7 @@ void IPARPi::configure(const CameraSensorInfo &sensorInfo, lastMode_ = mode_; - *ret = 0; + return 0; } void IPARPi::mapBuffers(const std::vector &buffers) diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp index 6387fae5..0f01ce8f 100644 --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp @@ -1250,9 +1250,8 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config) /* Ready the IPA - it must know about the sensor resolution. */ ipa::RPi::ConfigOutput result; - ipa_->configure(sensorInfo_, streamConfig, entityControls, ipaConfig, - &result, &ret); - + ret = ipa_->configure(sensorInfo_, streamConfig, entityControls, ipaConfig, + &result); if (ret < 0) { LOG(RPI, Error) << "IPA configuration failed!"; return -EPIPE; -- cgit v1.2.1