[libcamera-devel] [PATCH 2/2] libcamera: pipeline: raspberrypi: Move StaggeredCtrl to libcamera namespace

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu May 14 16:40:32 CEST 2020


Hi Naush,

And on this too :-)

On Tue, May 12, 2020 at 03:39:03AM +0300, Laurent Pinchart wrote:
> The StaggeredCtrl class, part of the Raspberry Pi pipeline handler, is
> part of libcamera. Move it to the libcamera namespace to simplify usage
> of libcamera APIs.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
>  .../pipeline/raspberrypi/raspberrypi.cpp      |  2 +-
>  .../pipeline/raspberrypi/staggered_ctrl.cpp   | 25 ++++++++++---------
>  .../pipeline/raspberrypi/staggered_ctrl.h     | 13 ++++++----
>  3 files changed, 22 insertions(+), 18 deletions(-)
> 
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index 21a1d7f7cca3..41d1a522fa71 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -330,7 +330,7 @@ public:
>  	std::vector<IPABuffer> ipaBuffers_;
>  
>  	/* VCSM allocation helper. */
> -	RPi::Vcsm vcsm_;
> +	::RPi::Vcsm vcsm_;
>  	void *lsTable_;
>  
>  	RPi::StaggeredCtrl staggeredCtrl_;
> diff --git a/src/libcamera/pipeline/raspberrypi/staggered_ctrl.cpp b/src/libcamera/pipeline/raspberrypi/staggered_ctrl.cpp
> index fbd87d3e791e..d431887ea137 100644
> --- a/src/libcamera/pipeline/raspberrypi/staggered_ctrl.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/staggered_ctrl.cpp
> @@ -9,20 +9,19 @@
>  
>  #include <algorithm>
>  
> +#include <libcamera/controls.h>
> +
>  #include "log.h"
>  #include "utils.h"
> +#include "v4l2_videodevice.h"
>  
> -/* For logging... */
> -using libcamera::LogCategory;
> -using libcamera::LogDebug;
> -using libcamera::LogInfo;
> -using libcamera::utils::hex;
> +namespace libcamera {
>  
>  LOG_DEFINE_CATEGORY(RPI_S_W);
>  
>  namespace RPi {
>  
> -void StaggeredCtrl::init(libcamera::V4L2VideoDevice *dev,
> +void StaggeredCtrl::init(V4L2VideoDevice *dev,
>  	  std::initializer_list<std::pair<const uint32_t, uint8_t>> delayList)
>  {
>  	std::lock_guard<std::mutex> lock(lock_);
> @@ -35,7 +34,7 @@ void StaggeredCtrl::init(libcamera::V4L2VideoDevice *dev,
>  	maxDelay_ = 0;
>  	for (auto const &p : delay_) {
>  		LOG(RPI_S_W, Info) << "Init ctrl "
> -				   << hex(p.first) << " with delay "
> +				   << utils::hex(p.first) << " with delay "
>  				   << static_cast<int>(p.second);
>  		maxDelay_ = std::max(maxDelay_, p.second);
>  	}
> @@ -92,7 +91,7 @@ bool StaggeredCtrl::set(std::initializer_list<std::pair<const uint32_t, int32_t>
>  	return true;
>  }
>  
> -bool StaggeredCtrl::set(libcamera::ControlList &controls)
> +bool StaggeredCtrl::set(ControlList &controls)
>  {
>  	std::lock_guard<std::mutex> lock(lock_);
>  
> @@ -103,7 +102,7 @@ bool StaggeredCtrl::set(libcamera::ControlList &controls)
>  
>  		ctrl_[p.first][setCount_] = CtrlInfo(p.second.get<int32_t>());
>  		LOG(RPI_S_W, Debug) << "Setting ctrl "
> -				    << hex(p.first) << " to "
> +				    << utils::hex(p.first) << " to "
>  				    << ctrl_[p.first][setCount_].value
>  				    << " at index "
>  				    << setCount_;
> @@ -115,7 +114,7 @@ bool StaggeredCtrl::set(libcamera::ControlList &controls)
>  int StaggeredCtrl::write()
>  {
>  	std::lock_guard<std::mutex> lock(lock_);
> -	libcamera::ControlList controls(dev_->controls());
> +	ControlList controls(dev_->controls());
>  
>  	for (auto &p : ctrl_) {
>  		int delayDiff = maxDelay_ - delay_[p.first];
> @@ -126,7 +125,7 @@ int StaggeredCtrl::write()
>  			controls.set(p.first, p.second[index].value);
>  			p.second[index].updated = false;
>  			LOG(RPI_S_W, Debug) << "Writing ctrl "
> -					    << hex(p.first) << " to "
> +					    << utils::hex(p.first) << " to "
>  					    << p.second[index].value
>  					    << " at index "
>  					    << index;
> @@ -149,7 +148,7 @@ void StaggeredCtrl::get(std::unordered_map<uint32_t, int32_t> &ctrl, uint8_t off
>  		int index = std::max<int>(0, getCount_ - maxDelay_);
>  		ctrl[p.first] = p.second[index].value;
>  		LOG(RPI_S_W, Debug) << "Getting ctrl "
> -				    << hex(p.first) << " to "
> +				    << utils::hex(p.first) << " to "
>  				    << p.second[index].value
>  				    << " at index "
>  				    << index;
> @@ -171,3 +170,5 @@ void StaggeredCtrl::nextFrame()
>  }
>  
>  } /* namespace RPi */
> +
> +} /* namespace libcamera */
> diff --git a/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h b/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
> index c8f000a0b43c..eef16eaac235 100644
> --- a/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
> +++ b/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
> @@ -12,9 +12,10 @@
>  #include <unordered_map>
>  #include <utility>
>  
> -#include <libcamera/controls.h>
> +namespace libcamera {
>  
> -#include "v4l2_videodevice.h"
> +class ControlList;
> +class V4L2VideoDevice;
>  
>  namespace RPi {
>  
> @@ -31,7 +32,7 @@ public:
>  		return init_;
>  	}
>  
> -	void init(libcamera::V4L2VideoDevice *dev,
> +	void init(V4L2VideoDevice *dev,
>  		  std::initializer_list<std::pair<const uint32_t, uint8_t>> delayList);
>  	void reset();
>  
> @@ -39,7 +40,7 @@ public:
>  
>  	bool set(uint32_t ctrl, int32_t value);
>  	bool set(std::initializer_list<std::pair<const uint32_t, int32_t>> ctrlList);
> -	bool set(libcamera::ControlList &controls);
> +	bool set(ControlList &controls);
>  
>  	int write();
>  
> @@ -81,10 +82,12 @@ private:
>  	uint32_t setCount_;
>  	uint32_t getCount_;
>  	uint8_t maxDelay_;
> -	libcamera::V4L2VideoDevice *dev_;
> +	V4L2VideoDevice *dev_;
>  	std::unordered_map<uint32_t, uint8_t> delay_;
>  	std::unordered_map<uint32_t, CircularArray> ctrl_;
>  	std::mutex lock_;
>  };
>  
>  } /* namespace RPi */
> +
> +} /* namespace libcamera */

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list