[libcamera-devel] [PATCH] pipeline: ipa: raspberrypi: Rename IPA Interface namespace to ipa::RPi

Kieran Bingham kieran.bingham at ideasonboard.com
Thu Feb 18 12:14:28 CET 2021


Hi Naush,

On 17/02/2021 10:34, Naushir Patuck wrote:
> Rename the IPA interface namespace to ipa::RPi for consistency with
> the libcamera::RPi namespace label.
> 
> There is no functional change in this commit.

Is this a v2 of [1/3]?

It looks like it so I think we can add:

Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>


> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> ---
>  include/libcamera/ipa/raspberrypi.mojom       |  2 +-
>  src/ipa/raspberrypi/raspberrypi.cpp           | 38 +++++++++----------
>  .../pipeline/raspberrypi/raspberrypi.cpp      | 30 +++++++--------
>  .../pipeline/raspberrypi/rpi_stream.cpp       |  4 +-
>  .../pipeline/raspberrypi/rpi_stream.h         |  4 +-
>  5 files changed, 39 insertions(+), 39 deletions(-)
> 
> diff --git a/include/libcamera/ipa/raspberrypi.mojom b/include/libcamera/ipa/raspberrypi.mojom
> index 9c05cc68cceb..5a27b1e4fc2d 100644
> --- a/include/libcamera/ipa/raspberrypi.mojom
> +++ b/include/libcamera/ipa/raspberrypi.mojom
> @@ -1,6 +1,6 @@
>  /* SPDX-License-Identifier: LGPL-2.1-or-later */
>  
> -module ipa.rpi;
> +module ipa.RPi;
>  
>  import "include/libcamera/ipa/core.mojom";
>  
> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
> index 974f4ec63058..1226ea514521 100644
> --- a/src/ipa/raspberrypi/raspberrypi.cpp
> +++ b/src/ipa/raspberrypi/raspberrypi.cpp
> @@ -63,7 +63,7 @@ constexpr double defaultMaxFrameDuration = 1e6 / 0.01;
>  
>  LOG_DEFINE_CATEGORY(IPARPI)
>  
> -class IPARPi : public ipa::rpi::IPARPiInterface
> +class IPARPi : public ipa::RPi::IPARPiInterface
>  {
>  public:
>  	IPARPi()
> @@ -76,24 +76,24 @@ public:
>  	~IPARPi()
>  	{
>  		if (lsTable_)
> -			munmap(lsTable_, ipa::rpi::MaxLsGridSize);
> +			munmap(lsTable_, ipa::RPi::MaxLsGridSize);
>  	}
>  
>  	int init(const IPASettings &settings) override;
> -	void start(const ipa::rpi::StartControls &data,
> -		   ipa::rpi::StartControls *result) override;
> +	void start(const ipa::RPi::StartControls &data,
> +		   ipa::RPi::StartControls *result) override;
>  	void stop() override {}
>  
>  	void configure(const CameraSensorInfo &sensorInfo,
>  		       const std::map<unsigned int, IPAStream> &streamConfig,
>  		       const std::map<unsigned int, ControlInfoMap> &entityControls,
> -		       const ipa::rpi::ConfigInput &data,
> -		       ipa::rpi::ConfigOutput *response, int32_t *ret) override;
> +		       const ipa::RPi::ConfigInput &data,
> +		       ipa::RPi::ConfigOutput *response, int32_t *ret) override;
>  	void mapBuffers(const std::vector<IPABuffer> &buffers) override;
>  	void unmapBuffers(const std::vector<unsigned int> &ids) override;
>  	void signalStatReady(const uint32_t bufferId) override;
>  	void signalQueueRequest(const ControlList &controls) override;
> -	void signalIspPrepare(const ipa::rpi::ISPConfig &data) override;
> +	void signalIspPrepare(const ipa::RPi::ISPConfig &data) override;
>  
>  private:
>  	void setMode(const CameraSensorInfo &sensorInfo);
> @@ -168,8 +168,8 @@ int IPARPi::init(const IPASettings &settings)
>  	return 0;
>  }
>  
> -void IPARPi::start(const ipa::rpi::StartControls &data,
> -		   ipa::rpi::StartControls *result)
> +void IPARPi::start(const ipa::RPi::StartControls &data,
> +		   ipa::RPi::StartControls *result)
>  {
>  	RPiController::Metadata metadata;
>  
> @@ -291,8 +291,8 @@ void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
>  void IPARPi::configure(const CameraSensorInfo &sensorInfo,
>  		       [[maybe_unused]] const std::map<unsigned int, IPAStream> &streamConfig,
>  		       const std::map<unsigned int, ControlInfoMap> &entityControls,
> -		       const ipa::rpi::ConfigInput &ipaConfig,
> -		       ipa::rpi::ConfigOutput *result, int32_t *ret)
> +		       const ipa::RPi::ConfigInput &ipaConfig,
> +		       ipa::RPi::ConfigOutput *result, int32_t *ret)
>  {
>  	if (entityControls.size() != 2) {
>  		LOG(IPARPI, Error) << "No ISP or sensor controls found.";
> @@ -344,7 +344,7 @@ void IPARPi::configure(const CameraSensorInfo &sensorInfo,
>  		helper_->GetDelays(exposureDelay, gainDelay);
>  		sensorMetadata = helper_->SensorEmbeddedDataPresent();
>  
> -		result->params |= ipa::rpi::ConfigSensorParams;
> +		result->params |= ipa::RPi::ConfigSensorParams;
>  		result->sensorConfig.gainDelay = gainDelay;
>  		result->sensorConfig.exposureDelay = exposureDelay;
>  		result->sensorConfig.vblank = exposureDelay;
> @@ -360,14 +360,14 @@ void IPARPi::configure(const CameraSensorInfo &sensorInfo,
>  	if (ipaConfig.lsTableHandle.isValid()) {
>  		/* Remove any previous table, if there was one. */
>  		if (lsTable_) {
> -			munmap(lsTable_, ipa::rpi::MaxLsGridSize);
> +			munmap(lsTable_, ipa::RPi::MaxLsGridSize);
>  			lsTable_ = nullptr;
>  		}
>  
>  		/* Map the LS table buffer into user space. */
>  		lsTableHandle_ = std::move(ipaConfig.lsTableHandle);
>  		if (lsTableHandle_.isValid()) {
> -			lsTable_ = mmap(nullptr, ipa::rpi::MaxLsGridSize, PROT_READ | PROT_WRITE,
> +			lsTable_ = mmap(nullptr, ipa::RPi::MaxLsGridSize, PROT_READ | PROT_WRITE,
>  					MAP_SHARED, lsTableHandle_.fd(), 0);
>  
>  			if (lsTable_ == MAP_FAILED) {
> @@ -432,7 +432,7 @@ void IPARPi::signalStatReady(uint32_t bufferId)
>  
>  	reportMetadata();
>  
> -	statsMetadataComplete.emit(bufferId & ipa::rpi::MaskID, libcameraMetadata_);
> +	statsMetadataComplete.emit(bufferId & ipa::RPi::MaskID, libcameraMetadata_);
>  }
>  
>  void IPARPi::signalQueueRequest(const ControlList &controls)
> @@ -440,7 +440,7 @@ void IPARPi::signalQueueRequest(const ControlList &controls)
>  	queueRequest(controls);
>  }
>  
> -void IPARPi::signalIspPrepare(const ipa::rpi::ISPConfig &data)
> +void IPARPi::signalIspPrepare(const ipa::RPi::ISPConfig &data)
>  {
>  	/*
>  	 * At start-up, or after a mode-switch, we may want to
> @@ -451,7 +451,7 @@ void IPARPi::signalIspPrepare(const ipa::rpi::ISPConfig &data)
>  	frameCount_++;
>  
>  	/* Ready to push the input buffer into the ISP. */
> -	runIsp.emit(data.bayerBufferId & ipa::rpi::MaskID);
> +	runIsp.emit(data.bayerBufferId & ipa::RPi::MaskID);
>  }
>  
>  void IPARPi::reportMetadata()
> @@ -906,7 +906,7 @@ void IPARPi::queueRequest(const ControlList &controls)
>  
>  void IPARPi::returnEmbeddedBuffer(unsigned int bufferId)
>  {
> -	embeddedComplete.emit(bufferId & ipa::rpi::MaskID);
> +	embeddedComplete.emit(bufferId & ipa::RPi::MaskID);
>  }
>  
>  void IPARPi::prepareISP(unsigned int bufferId)
> @@ -1271,7 +1271,7 @@ void IPARPi::applyLS(const struct AlscStatus *lsStatus, ControlList &ctrls)
>  		.gain_format = GAIN_FORMAT_U4P10
>  	};
>  
> -	if (!lsTable_ || w * h * 4 * sizeof(uint16_t) > ipa::rpi::MaxLsGridSize) {
> +	if (!lsTable_ || w * h * 4 * sizeof(uint16_t) > ipa::RPi::MaxLsGridSize) {
>  		LOG(IPARPI, Error) << "Do not have a correctly allocate lens shading table!";
>  		return;
>  	}
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index 8770ae66a21a..1a0bd6275578 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -166,7 +166,7 @@ public:
>  	void handleState();
>  	void applyScalerCrop(const ControlList &controls);
>  
> -	std::unique_ptr<ipa::rpi::IPAProxyRPi> ipa_;
> +	std::unique_ptr<ipa::RPi::IPAProxyRPi> ipa_;
>  
>  	std::unique_ptr<CameraSensor> sensor_;
>  	/* Array of Unicam and ISP device streams and associated buffers/streams. */
> @@ -778,8 +778,8 @@ int PipelineHandlerRPi::start(Camera *camera, ControlList *controls)
>  		data->applyScalerCrop(*controls);
>  
>  	/* Start the IPA. */
> -	ipa::rpi::StartControls ipaData;
> -	ipa::rpi::StartControls result;
> +	ipa::RPi::StartControls ipaData;
> +	ipa::RPi::StartControls result;
>  	if (controls)
>  		ipaData.controls = *controls;
>  	data->ipa_->start(ipaData, &result);
> @@ -1114,8 +1114,8 @@ int PipelineHandlerRPi::prepareBuffers(Camera *camera)
>  	 * Pass the stats and embedded data buffers to the IPA. No other
>  	 * buffers need to be passed.
>  	 */
> -	mapBuffers(camera, data->isp_[Isp::Stats].getBuffers(), ipa::rpi::MaskStats);
> -	mapBuffers(camera, data->unicam_[Unicam::Embedded].getBuffers(), ipa::rpi::MaskEmbeddedData);
> +	mapBuffers(camera, data->isp_[Isp::Stats].getBuffers(), ipa::RPi::MaskStats);
> +	mapBuffers(camera, data->unicam_[Unicam::Embedded].getBuffers(), ipa::RPi::MaskEmbeddedData);
>  
>  	return 0;
>  }
> @@ -1164,7 +1164,7 @@ void RPiCameraData::frameStarted(uint32_t sequence)
>  
>  int RPiCameraData::loadIPA()
>  {
> -	ipa_ = IPAManager::createIPA<ipa::rpi::IPAProxyRPi>(pipe_, 1, 1);
> +	ipa_ = IPAManager::createIPA<ipa::RPi::IPAProxyRPi>(pipe_, 1, 1);
>  
>  	if (!ipa_)
>  		return -ENOENT;
> @@ -1188,7 +1188,7 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
>  
>  	std::map<unsigned int, IPAStream> streamConfig;
>  	std::map<unsigned int, ControlInfoMap> entityControls;
> -	ipa::rpi::ConfigInput ipaConfig;
> +	ipa::RPi::ConfigInput ipaConfig;
>  
>  	/* Get the device format to pass to the IPA. */
>  	V4L2DeviceFormat sensorFormat;
> @@ -1211,7 +1211,7 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
>  
>  	/* Allocate the lens shading table via dmaHeap and pass to the IPA. */
>  	if (!lsTable_.isValid()) {
> -		lsTable_ = dmaHeap_.alloc("ls_grid", ipa::rpi::MaxLsGridSize);
> +		lsTable_ = dmaHeap_.alloc("ls_grid", ipa::RPi::MaxLsGridSize);
>  		if (!lsTable_.isValid())
>  			return -ENOMEM;
>  
> @@ -1231,7 +1231,7 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
>  	}
>  
>  	/* Ready the IPA - it must know about the sensor resolution. */
> -	ipa::rpi::ConfigOutput result;
> +	ipa::RPi::ConfigOutput result;
>  
>  	ipa_->configure(sensorInfo_, streamConfig, entityControls, ipaConfig,
>  			&result, &ret);
> @@ -1241,7 +1241,7 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
>  		return -EPIPE;
>  	}
>  
> -	if (result.params & ipa::rpi::ConfigSensorParams) {
> +	if (result.params & ipa::RPi::ConfigSensorParams) {
>  		/*
>  		 * Setup our delayed control writer with the sensor default
>  		 * gain and exposure delays.
> @@ -1457,7 +1457,7 @@ void RPiCameraData::ispOutputDequeue(FrameBuffer *buffer)
>  	 * application until after the IPA signals so.
>  	 */
>  	if (stream == &isp_[Isp::Stats]) {
> -		ipa_->signalStatReady(ipa::rpi::MaskStats | static_cast<unsigned int>(index));
> +		ipa_->signalStatReady(ipa::RPi::MaskStats | static_cast<unsigned int>(index));
>  	} else {
>  		/* Any other ISP output can be handed back to the application now. */
>  		handleStreamBuffer(buffer, stream);
> @@ -1561,7 +1561,7 @@ void RPiCameraData::handleExternalBuffer(FrameBuffer *buffer, RPi::Stream *strea
>  {
>  	unsigned int id = stream->getBufferId(buffer);
>  
> -	if (!(id & ipa::rpi::MaskExternalBuffer))
> +	if (!(id & ipa::RPi::MaskExternalBuffer))
>  		return;
>  
>  	/* Stop the Stream object from tracking the buffer. */
> @@ -1693,9 +1693,9 @@ void RPiCameraData::tryRunPipeline()
>  			<< " Bayer buffer id: " << bayerId
>  			<< " Embedded buffer id: " << embeddedId;
>  
> -	ipa::rpi::ISPConfig ispPrepare;
> -	ispPrepare.embeddedBufferId = ipa::rpi::MaskEmbeddedData | embeddedId;
> -	ispPrepare.bayerBufferId = ipa::rpi::MaskBayerData | bayerId;
> +	ipa::RPi::ISPConfig ispPrepare;
> +	ispPrepare.embeddedBufferId = ipa::RPi::MaskEmbeddedData | embeddedId;
> +	ispPrepare.bayerBufferId = ipa::RPi::MaskBayerData | bayerId;
>  	ipa_->signalIspPrepare(ispPrepare);
>  }
>  
> diff --git a/src/libcamera/pipeline/raspberrypi/rpi_stream.cpp b/src/libcamera/pipeline/raspberrypi/rpi_stream.cpp
> index 496dd36fabbc..f2430415d32d 100644
> --- a/src/libcamera/pipeline/raspberrypi/rpi_stream.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/rpi_stream.cpp
> @@ -72,7 +72,7 @@ int Stream::getBufferId(FrameBuffer *buffer) const
>  
>  void Stream::setExternalBuffer(FrameBuffer *buffer)
>  {
> -	bufferMap_.emplace(ipa::rpi::MaskExternalBuffer | id_.get(), buffer);
> +	bufferMap_.emplace(ipa::RPi::MaskExternalBuffer | id_.get(), buffer);
>  }
>  
>  void Stream::removeExternalBuffer(FrameBuffer *buffer)
> @@ -80,7 +80,7 @@ void Stream::removeExternalBuffer(FrameBuffer *buffer)
>  	int id = getBufferId(buffer);
>  
>  	/* Ensure we have this buffer in the stream, and it is marked external. */
> -	ASSERT(id != -1 && (id & ipa::rpi::MaskExternalBuffer));
> +	ASSERT(id != -1 && (id & ipa::RPi::MaskExternalBuffer));
>  	bufferMap_.erase(id);
>  }
>  
> diff --git a/src/libcamera/pipeline/raspberrypi/rpi_stream.h b/src/libcamera/pipeline/raspberrypi/rpi_stream.h
> index 701110d04bdb..f1ac715f4221 100644
> --- a/src/libcamera/pipeline/raspberrypi/rpi_stream.h
> +++ b/src/libcamera/pipeline/raspberrypi/rpi_stream.h
> @@ -32,13 +32,13 @@ class Stream : public libcamera::Stream
>  {
>  public:
>  	Stream()
> -		: id_(ipa::rpi::MaskID)
> +		: id_(ipa::RPi::MaskID)
>  	{
>  	}
>  
>  	Stream(const char *name, MediaEntity *dev, bool importOnly = false)
>  		: external_(false), importOnly_(importOnly), name_(name),
> -		  dev_(std::make_unique<V4L2VideoDevice>(dev)), id_(ipa::rpi::MaskID)
> +		  dev_(std::make_unique<V4L2VideoDevice>(dev)), id_(ipa::RPi::MaskID)
>  	{
>  	}
>  
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list