[libcamera-devel] [PATCH 4/7] ipa: rasberrypi: contrast: Remove unnecessary atomic variables

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sun Feb 7 15:07:05 CET 2021


Hi David,

Thank you for the patch.

On Thu, Feb 04, 2021 at 09:34:54AM +0000, David Plowman wrote:
> SetBrightness() and SetContrast() are only called synchronously so
> there is no need for brightness_ and contrast_ to be atomic.
> 
> Signed-off-by: David Plowman <david.plowman at raspberrypi.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> ---
>  src/ipa/raspberrypi/controller/rpi/contrast.cpp | 9 ++++-----
>  src/ipa/raspberrypi/controller/rpi/contrast.hpp | 5 ++---
>  2 files changed, 6 insertions(+), 8 deletions(-)
> 
> diff --git a/src/ipa/raspberrypi/controller/rpi/contrast.cpp b/src/ipa/raspberrypi/controller/rpi/contrast.cpp
> index 05ed139f..2bc43027 100644
> --- a/src/ipa/raspberrypi/controller/rpi/contrast.cpp
> +++ b/src/ipa/raspberrypi/controller/rpi/contrast.cpp
> @@ -150,7 +150,6 @@ Pwl apply_manual_contrast(Pwl const &gamma_curve, double brightness,
>  void Contrast::Process(StatisticsPtr &stats,
>  		       [[maybe_unused]] Metadata *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
>  	// ways: 1. Adjust the gamma curve so as to pull the start of the
> @@ -165,13 +164,13 @@ void Contrast::Process(StatisticsPtr &stats,
>  	}
>  	// 2. Finally apply any manually selected brightness/contrast
>  	// adjustment.
> -	if (brightness != 0 || contrast != 1.0)
> -		gamma_curve = apply_manual_contrast(gamma_curve, brightness,
> -						    contrast);
> +	if (brightness_ != 0 || contrast_ != 1.0)
> +		gamma_curve = apply_manual_contrast(gamma_curve, brightness_,
> +						    contrast_);
>  	// And fill in the status for output. Use more points towards the bottom
>  	// of the curve.
>  	ContrastStatus status;
> -	fill_in_status(status, brightness, contrast, gamma_curve);
> +	fill_in_status(status, brightness_, contrast_, gamma_curve);
>  	{
>  		std::unique_lock<std::mutex> lock(mutex_);
>  		status_ = status;
> diff --git a/src/ipa/raspberrypi/controller/rpi/contrast.hpp b/src/ipa/raspberrypi/controller/rpi/contrast.hpp
> index 6836f181..85624539 100644
> --- a/src/ipa/raspberrypi/controller/rpi/contrast.hpp
> +++ b/src/ipa/raspberrypi/controller/rpi/contrast.hpp
> @@ -6,7 +6,6 @@
>   */
>  #pragma once
>  
> -#include <atomic>
>  #include <mutex>
>  
>  #include "../contrast_algorithm.hpp"
> @@ -42,8 +41,8 @@ public:
>  
>  private:
>  	ContrastConfig config_;
> -	std::atomic<double> brightness_;
> -	std::atomic<double> contrast_;
> +	double brightness_;
> +	double contrast_;
>  	ContrastStatus status_;
>  	std::mutex mutex_;
>  };

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list