[libcamera-devel,v2,3/7] ipa: ipc: Rename CameraSensorInfo to IPACameraSensorInfo
diff mbox series

Message ID 20210519101954.77711-4-umang.jain@ideasonboard.com
State Superseded
Headers show
Series
  • External IPU3 IPA support
Related show

Commit Message

Umang Jain May 19, 2021, 10:19 a.m. UTC
This matches the naming convention for IPA IPC.

Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
---
 Documentation/guides/ipa.rst                  |  8 ++--
 include/libcamera/internal/camera_sensor.h    |  2 +-
 include/libcamera/ipa/core.mojom              |  2 +-
 include/libcamera/ipa/raspberrypi.mojom       |  2 +-
 include/libcamera/ipa/rkisp1.mojom            |  2 +-
 src/ipa/ipu3/ipu3_agc.cpp                     |  2 +-
 src/ipa/raspberrypi/raspberrypi.cpp           |  8 ++--
 src/ipa/rkisp1/rkisp1.cpp                     |  6 +--
 src/libcamera/camera_sensor.cpp               |  6 +--
 src/libcamera/ipa/core_ipa_interface.cpp      | 38 +++++++++----------
 src/libcamera/pipeline/ipu3/ipu3.cpp          |  4 +-
 .../pipeline/raspberrypi/raspberrypi.cpp      |  4 +-
 src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  2 +-
 13 files changed, 43 insertions(+), 43 deletions(-)

Comments

Paul Elder May 20, 2021, 2:51 a.m. UTC | #1
On Wed, May 19, 2021 at 03:49:50PM +0530, Umang Jain wrote:
> This matches the naming convention for IPA IPC.
> 
> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>

Acked-by: Paul Elder <paul.elder@ideasonboard.com>

> ---
>  Documentation/guides/ipa.rst                  |  8 ++--
>  include/libcamera/internal/camera_sensor.h    |  2 +-
>  include/libcamera/ipa/core.mojom              |  2 +-
>  include/libcamera/ipa/raspberrypi.mojom       |  2 +-
>  include/libcamera/ipa/rkisp1.mojom            |  2 +-
>  src/ipa/ipu3/ipu3_agc.cpp                     |  2 +-
>  src/ipa/raspberrypi/raspberrypi.cpp           |  8 ++--
>  src/ipa/rkisp1/rkisp1.cpp                     |  6 +--
>  src/libcamera/camera_sensor.cpp               |  6 +--
>  src/libcamera/ipa/core_ipa_interface.cpp      | 38 +++++++++----------
>  src/libcamera/pipeline/ipu3/ipu3.cpp          |  4 +-
>  .../pipeline/raspberrypi/raspberrypi.cpp      |  4 +-
>  src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  2 +-
>  13 files changed, 43 insertions(+), 43 deletions(-)
> 
> diff --git a/Documentation/guides/ipa.rst b/Documentation/guides/ipa.rst
> index cbffbd9a..6d460e13 100644
> --- a/Documentation/guides/ipa.rst
> +++ b/Documentation/guides/ipa.rst
> @@ -74,7 +74,7 @@ serialization, any custom data containers must be defined with the mojo IDL.
>  The following list of libcamera objects are supported in the interface
>  definition, and may be used as function parameter types or struct field types:
>  
> -- libcamera.CameraSensorInfo
> +- libcamera.IPACameraSensorInfo
>  - libcamera.ControlInfoMap
>  - libcamera.ControlList
>  - libcamera.FileDescriptor
> @@ -208,7 +208,7 @@ The following is an example of a main interface definition:
>                  start() => (int32 ret);
>                  stop();
>  
> -                configure(libcamera.CameraSensorInfo sensorInfo,
> +                configure(libcamera.IPACameraSensorInfo sensorInfo,
>                            map<uint32, libcamera.IPAStream> streamConfig,
>                            map<uint32, libcamera.ControlInfoMap> entityControls,
>                            ConfigInput ipaConfig)
> @@ -470,7 +470,7 @@ definition:
>  
>  .. code-block:: none
>  
> -   configure(libcamera.CameraSensorInfo sensorInfo,
> +   configure(libcamera.IPACameraSensorInfo sensorInfo,
>               uint32 exampleNumber,
>               map<uint32, libcamera.IPAStream> streamConfig,
>               map<uint32, libcamera.ControlInfoMap> entityControls,
> @@ -481,7 +481,7 @@ We will need to implement a function with the following function signature:
>  
>  .. code-block:: C++
>  
> -        int configure(const CameraSensorInfo &sensorInfo,
> +        int configure(const IPACameraSensorInfo &sensorInfo,
>                        uint32_t exampleNumber,
>                        const std::map<unsigned int, IPAStream> &streamConfig,
>                        const std::map<unsigned int, ControlInfoMap> &entityControls,
> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h
> index 0905ebfa..cf6c1c1e 100644
> --- a/include/libcamera/internal/camera_sensor.h
> +++ b/include/libcamera/internal/camera_sensor.h
> @@ -51,7 +51,7 @@ public:
>  	V4L2Subdevice *device() { return subdev_.get(); }
>  
>  	const ControlList &properties() const { return properties_; }
> -	int sensorInfo(CameraSensorInfo *info) const;
> +	int sensorInfo(IPACameraSensorInfo *info) const;
>  
>  	void updateControlInfo();
>  
> diff --git a/include/libcamera/ipa/core.mojom b/include/libcamera/ipa/core.mojom
> index b95b3dc4..34a799c2 100644
> --- a/include/libcamera/ipa/core.mojom
> +++ b/include/libcamera/ipa/core.mojom
> @@ -78,7 +78,7 @@ module libcamera;
>  	uint32 height;
>  };
>  
> -struct CameraSensorInfo {
> +struct IPACameraSensorInfo {
>  	string model;
>  
>  	uint32 bitsPerPixel;
> diff --git a/include/libcamera/ipa/raspberrypi.mojom b/include/libcamera/ipa/raspberrypi.mojom
> index 42321bee..0a21f453 100644
> --- a/include/libcamera/ipa/raspberrypi.mojom
> +++ b/include/libcamera/ipa/raspberrypi.mojom
> @@ -63,7 +63,7 @@ interface IPARPiInterface {
>  	 * The \a ipaConfig and \a controls parameters carry data passed by the
>  	 * pipeline handler to the IPA and back.
>  	 */
> -	configure(libcamera.CameraSensorInfo sensorInfo,
> +	configure(libcamera.IPACameraSensorInfo sensorInfo,
>  		  map<uint32, libcamera.IPAStream> streamConfig,
>  		  map<uint32, libcamera.ControlInfoMap> entityControls,
>  		  IPAConfig ipaConfig)
> diff --git a/include/libcamera/ipa/rkisp1.mojom b/include/libcamera/ipa/rkisp1.mojom
> index cca871a0..66a4607c 100644
> --- a/include/libcamera/ipa/rkisp1.mojom
> +++ b/include/libcamera/ipa/rkisp1.mojom
> @@ -29,7 +29,7 @@ interface IPARkISP1Interface {
>  	start() => (int32 ret);
>  	stop();
>  
> -	configure(libcamera.CameraSensorInfo sensorInfo,
> +	configure(libcamera.IPACameraSensorInfo sensorInfo,
>  		  map<uint32, libcamera.IPAStream> streamConfig,
>  		  map<uint32, libcamera.ControlInfoMap> entityControls)
>  		=> (int32 ret);
> diff --git a/src/ipa/ipu3/ipu3_agc.cpp b/src/ipa/ipu3/ipu3_agc.cpp
> index ca54d89a..8bae423f 100644
> --- a/src/ipa/ipu3/ipu3_agc.cpp
> +++ b/src/ipa/ipu3/ipu3_agc.cpp
> @@ -39,7 +39,7 @@ static constexpr uint32_t kMaxGain = kMaxISO / 100;
>  static constexpr uint32_t kMinExposure = 1;
>  static constexpr uint32_t kMaxExposure = 1976;
>  
> -/* \todo those should be get from CameraSensorInfo ! */
> +/* \todo those should be got from IPACameraSensorInfo ! */
>  /* line duration in microseconds */
>  static constexpr double kLineDuration = 16.8;
>  static constexpr double kMaxExposureTime = kMaxExposure * kLineDuration;
> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
> index 87774500..e5bb8159 100644
> --- a/src/ipa/raspberrypi/raspberrypi.cpp
> +++ b/src/ipa/raspberrypi/raspberrypi.cpp
> @@ -89,7 +89,7 @@ public:
>  	void start(const ControlList &controls, ipa::RPi::StartConfig *startConfig) override;
>  	void stop() override {}
>  
> -	int configure(const CameraSensorInfo &sensorInfo,
> +	int configure(const IPACameraSensorInfo &sensorInfo,
>  		      const std::map<unsigned int, IPAStream> &streamConfig,
>  		      const std::map<unsigned int, ControlInfoMap> &entityControls,
>  		      const ipa::RPi::IPAConfig &data,
> @@ -101,7 +101,7 @@ public:
>  	void signalIspPrepare(const ipa::RPi::ISPConfig &data) override;
>  
>  private:
> -	void setMode(const CameraSensorInfo &sensorInfo);
> +	void setMode(const IPACameraSensorInfo &sensorInfo);
>  	bool validateSensorControls();
>  	bool validateIspControls();
>  	void queueRequest(const ControlList &controls);
> @@ -278,7 +278,7 @@ void IPARPi::start(const ControlList &controls, ipa::RPi::StartConfig *startConf
>  	lastRunTimestamp_ = 0;
>  }
>  
> -void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
> +void IPARPi::setMode(const IPACameraSensorInfo &sensorInfo)
>  {
>  	mode_.bitdepth = sensorInfo.bitsPerPixel;
>  	mode_.width = sensorInfo.outputSize.width;
> @@ -323,7 +323,7 @@ void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
>  	mode_.max_frame_length = sensorInfo.maxFrameLength;
>  }
>  
> -int IPARPi::configure(const CameraSensorInfo &sensorInfo,
> +int IPARPi::configure(const IPACameraSensorInfo &sensorInfo,
>  		      [[maybe_unused]] const std::map<unsigned int, IPAStream> &streamConfig,
>  		      const std::map<unsigned int, ControlInfoMap> &entityControls,
>  		      const ipa::RPi::IPAConfig &ipaConfig,
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index 6d45673c..b47ea324 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -37,7 +37,7 @@ public:
>  	int start() override;
>  	void stop() override {}
>  
> -	int configure(const CameraSensorInfo &info,
> +	int configure(const IPACameraSensorInfo &info,
>  		      const std::map<uint32_t, IPAStream> &streamConfig,
>  		      const std::map<uint32_t, ControlInfoMap> &entityControls) override;
>  	void mapBuffers(const std::vector<IPABuffer> &buffers) override;
> @@ -90,12 +90,12 @@ int IPARkISP1::start()
>  }
>  
>  /**
> - * \todo The RkISP1 pipeline currently provides an empty CameraSensorInfo
> + * \todo The RkISP1 pipeline currently provides an empty IPACameraSensorInfo
>   * if the connected sensor does not provide enough information to properly
>   * assemble one. Make sure the reported sensor information are relevant
>   * before accessing them.
>   */
> -int IPARkISP1::configure([[maybe_unused]] const CameraSensorInfo &info,
> +int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,
>  			 [[maybe_unused]] const std::map<uint32_t, IPAStream> &streamConfig,
>  			 const std::map<uint32_t, ControlInfoMap> &entityControls)
>  {
> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
> index 170de827..0fb8a258 100644
> --- a/src/libcamera/camera_sensor.cpp
> +++ b/src/libcamera/camera_sensor.cpp
> @@ -205,7 +205,7 @@ int CameraSensor::validateSensorDriver()
>  	 *
>  	 * Failures in reading any of the targets are not deemed to be fatal,
>  	 * but some properties and features, like constructing a
> -	 * CameraSensorInfo for the IPA module, won't be supported.
> +	 * IPACameraSensorInfo for the IPA module, won't be supported.
>  	 *
>  	 * \todo Make support for selection targets mandatory as soon as all
>  	 * test platforms have been updated.
> @@ -674,7 +674,7 @@ int CameraSensor::setControls(ControlList *ctrls)
>   *
>   * \return 0 on success, a negative error code otherwise
>   */
> -int CameraSensor::sensorInfo(CameraSensorInfo *info) const
> +int CameraSensor::sensorInfo(IPACameraSensorInfo *info) const
>  {
>  	if (!bayerFormat_)
>  		return -EINVAL;
> @@ -701,7 +701,7 @@ int CameraSensor::sensorInfo(CameraSensorInfo *info) const
>  	}
>  
>  	/*
> -	 * CameraSensorInfo::analogCrop::x and CameraSensorInfo::analogCrop::y
> +	 * IPACameraSensorInfo::analogCrop::x and IPACameraSensorInfo::analogCrop::y
>  	 * are defined relatively to the active pixel area, while V4L2's
>  	 * TGT_CROP target is defined in respect to the full pixel array.
>  	 *
> diff --git a/src/libcamera/ipa/core_ipa_interface.cpp b/src/libcamera/ipa/core_ipa_interface.cpp
> index def8d184..15d61d91 100644
> --- a/src/libcamera/ipa/core_ipa_interface.cpp
> +++ b/src/libcamera/ipa/core_ipa_interface.cpp
> @@ -103,7 +103,7 @@ namespace libcamera {
>   */
>  
>  /**
> - * \struct CameraSensorInfo
> + * \struct IPACameraSensorInfo
>   * \brief Report the image sensor characteristics
>   *
>   * The structure reports image sensor characteristics used by IPA modules to
> @@ -121,15 +121,15 @@ namespace libcamera {
>   */
>  
>  /**
> - * \fn CameraSensorInfo::CameraSensorInfo(const std::string &model,
> -					  uint32_t bitsPerPixel,
> -					  const Size &activeAreaSize,
> -					  const Rectangle &analogCrop,
> -					  const Size &outputSize,
> -					  uint64_t pixelRate,
> -					  uint32_t lineLength,
> -					  uint32_t minFrameLength,
> -					  uint32_t maxFrameLength)
> + * \fn IPACameraSensorInfo::IPACameraSensorInfo(const std::string &model,
> +						uint32_t bitsPerPixel,
> +						const Size &activeAreaSize,
> +						const Rectangle &analogCrop,
> +						const Size &outputSize,
> +						uint64_t pixelRate,
> +						uint32_t lineLength,
> +						uint32_t minFrameLength,
> +						uint32_t maxFrameLength)
>   * \param[in] model
>   * \param[in] bitsPerPixel
>   * \param[in] activeAreaSize
> @@ -142,7 +142,7 @@ namespace libcamera {
>   */
>  
>  /**
> - * \var CameraSensorInfo::model
> + * \var IPACameraSensorInfo::model
>   * \brief The image sensor model name
>   *
>   * The sensor model name is a free-formed string that uniquely identifies the
> @@ -150,18 +150,18 @@ namespace libcamera {
>   */
>  
>  /**
> - * \var CameraSensorInfo::bitsPerPixel
> + * \var IPACameraSensorInfo::bitsPerPixel
>   * \brief The number of bits per pixel of the image format produced by the
>   * image sensor
>   */
>  
>  /**
> - * \var CameraSensorInfo::activeAreaSize
> + * \var IPACameraSensorInfo::activeAreaSize
>   * \brief The size of the pixel array active area of the sensor
>   */
>  
>  /**
> - * \var CameraSensorInfo::analogCrop
> + * \var IPACameraSensorInfo::analogCrop
>   * \brief The portion of the pixel array active area which is read-out and
>   * processed
>   *
> @@ -174,7 +174,7 @@ namespace libcamera {
>   */
>  
>  /**
> - * \var CameraSensorInfo::outputSize
> + * \var IPACameraSensorInfo::outputSize
>   * \brief The size of the images produced by the camera sensor
>   *
>   * The output image size defines the horizontal and vertical sizes of the images
> @@ -187,7 +187,7 @@ namespace libcamera {
>   */
>  
>  /**
> - * \var CameraSensorInfo::pixelRate
> + * \var IPACameraSensorInfo::pixelRate
>   * \brief The number of pixels produced in a second
>   *
>   * To obtain the read-out time in seconds of a full line:
> @@ -198,14 +198,14 @@ namespace libcamera {
>   */
>  
>  /**
> - * \var CameraSensorInfo::lineLength
> + * \var IPACameraSensorInfo::lineLength
>   * \brief Total line length in pixels
>   *
>   * The total line length in pixel clock periods, including blanking.
>   */
>  
>  /**
> - * \var CameraSensorInfo::minFrameLength
> + * \var IPACameraSensorInfo::minFrameLength
>   * \brief The minimum allowable frame length in units of lines
>   *
>   * The sensor frame length comprises of active output lines and blanking lines
> @@ -220,7 +220,7 @@ namespace libcamera {
>   */
>  
>  /**
> - * \var CameraSensorInfo::maxFrameLength
> + * \var IPACameraSensorInfo::maxFrameLength
>   * \brief The maximum allowable frame length in units of lines
>   *
>   * The sensor frame length comprises of active output lines and blanking lines
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index ade8ffbd..98c6160f 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -544,7 +544,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
>  	if (ret)
>  		return ret;
>  
> -	CameraSensorInfo sensorInfo;
> +	IPACameraSensorInfo sensorInfo;
>  	cio2->sensor()->sensorInfo(&sensorInfo);
>  	data->cropRegion_ = sensorInfo.analogCrop;
>  
> @@ -883,7 +883,7 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data)
>  	if (ret)
>  		return ret;
>  
> -	CameraSensorInfo sensorInfo{};
> +	IPACameraSensorInfo sensorInfo{};
>  	ret = sensor->sensorInfo(&sensorInfo);
>  	if (ret)
>  		return ret;
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index 6fbdba04..f2a94dc0 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -211,7 +211,7 @@ public:
>  	BayerFormat::Order nativeBayerOrder_;
>  
>  	/* For handling digital zoom. */
> -	CameraSensorInfo sensorInfo_;
> +	IPACameraSensorInfo sensorInfo_;
>  	Rectangle ispCrop_; /* crop in ISP (camera mode) pixels */
>  	Rectangle scalerCrop_; /* crop in sensor native pixels */
>  	bool updateScalerCrop_;
> @@ -1275,7 +1275,7 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
>  		ipaConfig.lsTableHandle = lsTable_;
>  	}
>  
> -	/* We store the CameraSensorInfo for digital zoom calculations. */
> +	/* We store the IPACameraSensorInfo for digital zoom calculations. */
>  	int ret = sensor_->sensorInfo(&sensorInfo_);
>  	if (ret) {
>  		LOG(RPI, Error) << "Failed to retrieve camera sensor info";
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> index adebe8b5..6699839c 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> @@ -648,7 +648,7 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
>  		return ret;
>  
>  	/* Inform IPA of stream configuration and sensor controls. */
> -	CameraSensorInfo sensorInfo = {};
> +	IPACameraSensorInfo sensorInfo = {};
>  	ret = data->sensor_->sensorInfo(&sensorInfo);
>  	if (ret) {
>  		/* \todo Turn this into a hard failure. */
> -- 
> 2.26.2
>
Jean-Michel Hautbois May 21, 2021, 9:01 a.m. UTC | #2
Hi Umang

On 20/05/2021 04:51, paul.elder@ideasonboard.com wrote:
> On Wed, May 19, 2021 at 03:49:50PM +0530, Umang Jain wrote:
>> This matches the naming convention for IPA IPC.
>>
>> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
> 
> Acked-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
> 
>> ---
>>  Documentation/guides/ipa.rst                  |  8 ++--
>>  include/libcamera/internal/camera_sensor.h    |  2 +-
>>  include/libcamera/ipa/core.mojom              |  2 +-
>>  include/libcamera/ipa/raspberrypi.mojom       |  2 +-
>>  include/libcamera/ipa/rkisp1.mojom            |  2 +-
>>  src/ipa/ipu3/ipu3_agc.cpp                     |  2 +-
>>  src/ipa/raspberrypi/raspberrypi.cpp           |  8 ++--
>>  src/ipa/rkisp1/rkisp1.cpp                     |  6 +--
>>  src/libcamera/camera_sensor.cpp               |  6 +--
>>  src/libcamera/ipa/core_ipa_interface.cpp      | 38 +++++++++----------
>>  src/libcamera/pipeline/ipu3/ipu3.cpp          |  4 +-
>>  .../pipeline/raspberrypi/raspberrypi.cpp      |  4 +-
>>  src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  2 +-
>>  13 files changed, 43 insertions(+), 43 deletions(-)
>>
>> diff --git a/Documentation/guides/ipa.rst b/Documentation/guides/ipa.rst
>> index cbffbd9a..6d460e13 100644
>> --- a/Documentation/guides/ipa.rst
>> +++ b/Documentation/guides/ipa.rst
>> @@ -74,7 +74,7 @@ serialization, any custom data containers must be defined with the mojo IDL.
>>  The following list of libcamera objects are supported in the interface
>>  definition, and may be used as function parameter types or struct field types:
>>  
>> -- libcamera.CameraSensorInfo
>> +- libcamera.IPACameraSensorInfo
>>  - libcamera.ControlInfoMap
>>  - libcamera.ControlList
>>  - libcamera.FileDescriptor
>> @@ -208,7 +208,7 @@ The following is an example of a main interface definition:
>>                  start() => (int32 ret);
>>                  stop();
>>  
>> -                configure(libcamera.CameraSensorInfo sensorInfo,
>> +                configure(libcamera.IPACameraSensorInfo sensorInfo,
>>                            map<uint32, libcamera.IPAStream> streamConfig,
>>                            map<uint32, libcamera.ControlInfoMap> entityControls,
>>                            ConfigInput ipaConfig)
>> @@ -470,7 +470,7 @@ definition:
>>  
>>  .. code-block:: none
>>  
>> -   configure(libcamera.CameraSensorInfo sensorInfo,
>> +   configure(libcamera.IPACameraSensorInfo sensorInfo,
>>               uint32 exampleNumber,
>>               map<uint32, libcamera.IPAStream> streamConfig,
>>               map<uint32, libcamera.ControlInfoMap> entityControls,
>> @@ -481,7 +481,7 @@ We will need to implement a function with the following function signature:
>>  
>>  .. code-block:: C++
>>  
>> -        int configure(const CameraSensorInfo &sensorInfo,
>> +        int configure(const IPACameraSensorInfo &sensorInfo,
>>                        uint32_t exampleNumber,
>>                        const std::map<unsigned int, IPAStream> &streamConfig,
>>                        const std::map<unsigned int, ControlInfoMap> &entityControls,
>> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h
>> index 0905ebfa..cf6c1c1e 100644
>> --- a/include/libcamera/internal/camera_sensor.h
>> +++ b/include/libcamera/internal/camera_sensor.h
>> @@ -51,7 +51,7 @@ public:
>>  	V4L2Subdevice *device() { return subdev_.get(); }
>>  
>>  	const ControlList &properties() const { return properties_; }
>> -	int sensorInfo(CameraSensorInfo *info) const;
>> +	int sensorInfo(IPACameraSensorInfo *info) const;
>>  
>>  	void updateControlInfo();
>>  
>> diff --git a/include/libcamera/ipa/core.mojom b/include/libcamera/ipa/core.mojom
>> index b95b3dc4..34a799c2 100644
>> --- a/include/libcamera/ipa/core.mojom
>> +++ b/include/libcamera/ipa/core.mojom
>> @@ -78,7 +78,7 @@ module libcamera;
>>  	uint32 height;
>>  };
>>  
>> -struct CameraSensorInfo {
>> +struct IPACameraSensorInfo {
>>  	string model;
>>  
>>  	uint32 bitsPerPixel;
>> diff --git a/include/libcamera/ipa/raspberrypi.mojom b/include/libcamera/ipa/raspberrypi.mojom
>> index 42321bee..0a21f453 100644
>> --- a/include/libcamera/ipa/raspberrypi.mojom
>> +++ b/include/libcamera/ipa/raspberrypi.mojom
>> @@ -63,7 +63,7 @@ interface IPARPiInterface {
>>  	 * The \a ipaConfig and \a controls parameters carry data passed by the
>>  	 * pipeline handler to the IPA and back.
>>  	 */
>> -	configure(libcamera.CameraSensorInfo sensorInfo,
>> +	configure(libcamera.IPACameraSensorInfo sensorInfo,
>>  		  map<uint32, libcamera.IPAStream> streamConfig,
>>  		  map<uint32, libcamera.ControlInfoMap> entityControls,
>>  		  IPAConfig ipaConfig)
>> diff --git a/include/libcamera/ipa/rkisp1.mojom b/include/libcamera/ipa/rkisp1.mojom
>> index cca871a0..66a4607c 100644
>> --- a/include/libcamera/ipa/rkisp1.mojom
>> +++ b/include/libcamera/ipa/rkisp1.mojom
>> @@ -29,7 +29,7 @@ interface IPARkISP1Interface {
>>  	start() => (int32 ret);
>>  	stop();
>>  
>> -	configure(libcamera.CameraSensorInfo sensorInfo,
>> +	configure(libcamera.IPACameraSensorInfo sensorInfo,
>>  		  map<uint32, libcamera.IPAStream> streamConfig,
>>  		  map<uint32, libcamera.ControlInfoMap> entityControls)
>>  		=> (int32 ret);
>> diff --git a/src/ipa/ipu3/ipu3_agc.cpp b/src/ipa/ipu3/ipu3_agc.cpp
>> index ca54d89a..8bae423f 100644
>> --- a/src/ipa/ipu3/ipu3_agc.cpp
>> +++ b/src/ipa/ipu3/ipu3_agc.cpp
>> @@ -39,7 +39,7 @@ static constexpr uint32_t kMaxGain = kMaxISO / 100;
>>  static constexpr uint32_t kMinExposure = 1;
>>  static constexpr uint32_t kMaxExposure = 1976;
>>  
>> -/* \todo those should be get from CameraSensorInfo ! */
>> +/* \todo those should be got from IPACameraSensorInfo ! */
>>  /* line duration in microseconds */
>>  static constexpr double kLineDuration = 16.8;
>>  static constexpr double kMaxExposureTime = kMaxExposure * kLineDuration;
>> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
>> index 87774500..e5bb8159 100644
>> --- a/src/ipa/raspberrypi/raspberrypi.cpp
>> +++ b/src/ipa/raspberrypi/raspberrypi.cpp
>> @@ -89,7 +89,7 @@ public:
>>  	void start(const ControlList &controls, ipa::RPi::StartConfig *startConfig) override;
>>  	void stop() override {}
>>  
>> -	int configure(const CameraSensorInfo &sensorInfo,
>> +	int configure(const IPACameraSensorInfo &sensorInfo,
>>  		      const std::map<unsigned int, IPAStream> &streamConfig,
>>  		      const std::map<unsigned int, ControlInfoMap> &entityControls,
>>  		      const ipa::RPi::IPAConfig &data,
>> @@ -101,7 +101,7 @@ public:
>>  	void signalIspPrepare(const ipa::RPi::ISPConfig &data) override;
>>  
>>  private:
>> -	void setMode(const CameraSensorInfo &sensorInfo);
>> +	void setMode(const IPACameraSensorInfo &sensorInfo);
>>  	bool validateSensorControls();
>>  	bool validateIspControls();
>>  	void queueRequest(const ControlList &controls);
>> @@ -278,7 +278,7 @@ void IPARPi::start(const ControlList &controls, ipa::RPi::StartConfig *startConf
>>  	lastRunTimestamp_ = 0;
>>  }
>>  
>> -void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
>> +void IPARPi::setMode(const IPACameraSensorInfo &sensorInfo)
>>  {
>>  	mode_.bitdepth = sensorInfo.bitsPerPixel;
>>  	mode_.width = sensorInfo.outputSize.width;
>> @@ -323,7 +323,7 @@ void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
>>  	mode_.max_frame_length = sensorInfo.maxFrameLength;
>>  }
>>  
>> -int IPARPi::configure(const CameraSensorInfo &sensorInfo,
>> +int IPARPi::configure(const IPACameraSensorInfo &sensorInfo,
>>  		      [[maybe_unused]] const std::map<unsigned int, IPAStream> &streamConfig,
>>  		      const std::map<unsigned int, ControlInfoMap> &entityControls,
>>  		      const ipa::RPi::IPAConfig &ipaConfig,
>> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
>> index 6d45673c..b47ea324 100644
>> --- a/src/ipa/rkisp1/rkisp1.cpp
>> +++ b/src/ipa/rkisp1/rkisp1.cpp
>> @@ -37,7 +37,7 @@ public:
>>  	int start() override;
>>  	void stop() override {}
>>  
>> -	int configure(const CameraSensorInfo &info,
>> +	int configure(const IPACameraSensorInfo &info,
>>  		      const std::map<uint32_t, IPAStream> &streamConfig,
>>  		      const std::map<uint32_t, ControlInfoMap> &entityControls) override;
>>  	void mapBuffers(const std::vector<IPABuffer> &buffers) override;
>> @@ -90,12 +90,12 @@ int IPARkISP1::start()
>>  }
>>  
>>  /**
>> - * \todo The RkISP1 pipeline currently provides an empty CameraSensorInfo
>> + * \todo The RkISP1 pipeline currently provides an empty IPACameraSensorInfo
>>   * if the connected sensor does not provide enough information to properly
>>   * assemble one. Make sure the reported sensor information are relevant
>>   * before accessing them.
>>   */
>> -int IPARkISP1::configure([[maybe_unused]] const CameraSensorInfo &info,
>> +int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,
>>  			 [[maybe_unused]] const std::map<uint32_t, IPAStream> &streamConfig,
>>  			 const std::map<uint32_t, ControlInfoMap> &entityControls)
>>  {
>> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
>> index 170de827..0fb8a258 100644
>> --- a/src/libcamera/camera_sensor.cpp
>> +++ b/src/libcamera/camera_sensor.cpp
>> @@ -205,7 +205,7 @@ int CameraSensor::validateSensorDriver()
>>  	 *
>>  	 * Failures in reading any of the targets are not deemed to be fatal,
>>  	 * but some properties and features, like constructing a
>> -	 * CameraSensorInfo for the IPA module, won't be supported.
>> +	 * IPACameraSensorInfo for the IPA module, won't be supported.
>>  	 *
>>  	 * \todo Make support for selection targets mandatory as soon as all
>>  	 * test platforms have been updated.
>> @@ -674,7 +674,7 @@ int CameraSensor::setControls(ControlList *ctrls)
>>   *
>>   * \return 0 on success, a negative error code otherwise
>>   */
>> -int CameraSensor::sensorInfo(CameraSensorInfo *info) const
>> +int CameraSensor::sensorInfo(IPACameraSensorInfo *info) const
>>  {
>>  	if (!bayerFormat_)
>>  		return -EINVAL;
>> @@ -701,7 +701,7 @@ int CameraSensor::sensorInfo(CameraSensorInfo *info) const
>>  	}
>>  
>>  	/*
>> -	 * CameraSensorInfo::analogCrop::x and CameraSensorInfo::analogCrop::y
>> +	 * IPACameraSensorInfo::analogCrop::x and IPACameraSensorInfo::analogCrop::y
>>  	 * are defined relatively to the active pixel area, while V4L2's
>>  	 * TGT_CROP target is defined in respect to the full pixel array.
>>  	 *
>> diff --git a/src/libcamera/ipa/core_ipa_interface.cpp b/src/libcamera/ipa/core_ipa_interface.cpp
>> index def8d184..15d61d91 100644
>> --- a/src/libcamera/ipa/core_ipa_interface.cpp
>> +++ b/src/libcamera/ipa/core_ipa_interface.cpp
>> @@ -103,7 +103,7 @@ namespace libcamera {
>>   */
>>  
>>  /**
>> - * \struct CameraSensorInfo
>> + * \struct IPACameraSensorInfo
>>   * \brief Report the image sensor characteristics
>>   *
>>   * The structure reports image sensor characteristics used by IPA modules to
>> @@ -121,15 +121,15 @@ namespace libcamera {
>>   */
>>  
>>  /**
>> - * \fn CameraSensorInfo::CameraSensorInfo(const std::string &model,
>> -					  uint32_t bitsPerPixel,
>> -					  const Size &activeAreaSize,
>> -					  const Rectangle &analogCrop,
>> -					  const Size &outputSize,
>> -					  uint64_t pixelRate,
>> -					  uint32_t lineLength,
>> -					  uint32_t minFrameLength,
>> -					  uint32_t maxFrameLength)
>> + * \fn IPACameraSensorInfo::IPACameraSensorInfo(const std::string &model,
>> +						uint32_t bitsPerPixel,
>> +						const Size &activeAreaSize,
>> +						const Rectangle &analogCrop,
>> +						const Size &outputSize,
>> +						uint64_t pixelRate,
>> +						uint32_t lineLength,
>> +						uint32_t minFrameLength,
>> +						uint32_t maxFrameLength)
>>   * \param[in] model
>>   * \param[in] bitsPerPixel
>>   * \param[in] activeAreaSize
>> @@ -142,7 +142,7 @@ namespace libcamera {
>>   */
>>  
>>  /**
>> - * \var CameraSensorInfo::model
>> + * \var IPACameraSensorInfo::model
>>   * \brief The image sensor model name
>>   *
>>   * The sensor model name is a free-formed string that uniquely identifies the
>> @@ -150,18 +150,18 @@ namespace libcamera {
>>   */
>>  
>>  /**
>> - * \var CameraSensorInfo::bitsPerPixel
>> + * \var IPACameraSensorInfo::bitsPerPixel
>>   * \brief The number of bits per pixel of the image format produced by the
>>   * image sensor
>>   */
>>  
>>  /**
>> - * \var CameraSensorInfo::activeAreaSize
>> + * \var IPACameraSensorInfo::activeAreaSize
>>   * \brief The size of the pixel array active area of the sensor
>>   */
>>  
>>  /**
>> - * \var CameraSensorInfo::analogCrop
>> + * \var IPACameraSensorInfo::analogCrop
>>   * \brief The portion of the pixel array active area which is read-out and
>>   * processed
>>   *
>> @@ -174,7 +174,7 @@ namespace libcamera {
>>   */
>>  
>>  /**
>> - * \var CameraSensorInfo::outputSize
>> + * \var IPACameraSensorInfo::outputSize
>>   * \brief The size of the images produced by the camera sensor
>>   *
>>   * The output image size defines the horizontal and vertical sizes of the images
>> @@ -187,7 +187,7 @@ namespace libcamera {
>>   */
>>  
>>  /**
>> - * \var CameraSensorInfo::pixelRate
>> + * \var IPACameraSensorInfo::pixelRate
>>   * \brief The number of pixels produced in a second
>>   *
>>   * To obtain the read-out time in seconds of a full line:
>> @@ -198,14 +198,14 @@ namespace libcamera {
>>   */
>>  
>>  /**
>> - * \var CameraSensorInfo::lineLength
>> + * \var IPACameraSensorInfo::lineLength
>>   * \brief Total line length in pixels
>>   *
>>   * The total line length in pixel clock periods, including blanking.
>>   */
>>  
>>  /**
>> - * \var CameraSensorInfo::minFrameLength
>> + * \var IPACameraSensorInfo::minFrameLength
>>   * \brief The minimum allowable frame length in units of lines
>>   *
>>   * The sensor frame length comprises of active output lines and blanking lines
>> @@ -220,7 +220,7 @@ namespace libcamera {
>>   */
>>  
>>  /**
>> - * \var CameraSensorInfo::maxFrameLength
>> + * \var IPACameraSensorInfo::maxFrameLength
>>   * \brief The maximum allowable frame length in units of lines
>>   *
>>   * The sensor frame length comprises of active output lines and blanking lines
>> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
>> index ade8ffbd..98c6160f 100644
>> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
>> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
>> @@ -544,7 +544,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
>>  	if (ret)
>>  		return ret;
>>  
>> -	CameraSensorInfo sensorInfo;
>> +	IPACameraSensorInfo sensorInfo;
>>  	cio2->sensor()->sensorInfo(&sensorInfo);
>>  	data->cropRegion_ = sensorInfo.analogCrop;
>>  
>> @@ -883,7 +883,7 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data)
>>  	if (ret)
>>  		return ret;
>>  
>> -	CameraSensorInfo sensorInfo{};
>> +	IPACameraSensorInfo sensorInfo{};
>>  	ret = sensor->sensorInfo(&sensorInfo);
>>  	if (ret)
>>  		return ret;
>> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
>> index 6fbdba04..f2a94dc0 100644
>> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
>> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
>> @@ -211,7 +211,7 @@ public:
>>  	BayerFormat::Order nativeBayerOrder_;
>>  
>>  	/* For handling digital zoom. */
>> -	CameraSensorInfo sensorInfo_;
>> +	IPACameraSensorInfo sensorInfo_;
>>  	Rectangle ispCrop_; /* crop in ISP (camera mode) pixels */
>>  	Rectangle scalerCrop_; /* crop in sensor native pixels */
>>  	bool updateScalerCrop_;
>> @@ -1275,7 +1275,7 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
>>  		ipaConfig.lsTableHandle = lsTable_;
>>  	}
>>  
>> -	/* We store the CameraSensorInfo for digital zoom calculations. */
>> +	/* We store the IPACameraSensorInfo for digital zoom calculations. */
>>  	int ret = sensor_->sensorInfo(&sensorInfo_);
>>  	if (ret) {
>>  		LOG(RPI, Error) << "Failed to retrieve camera sensor info";
>> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
>> index adebe8b5..6699839c 100644
>> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
>> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
>> @@ -648,7 +648,7 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
>>  		return ret;
>>  
>>  	/* Inform IPA of stream configuration and sensor controls. */
>> -	CameraSensorInfo sensorInfo = {};
>> +	IPACameraSensorInfo sensorInfo = {};
>>  	ret = data->sensor_->sensorInfo(&sensorInfo);
>>  	if (ret) {
>>  		/* \todo Turn this into a hard failure. */
>> -- 
>> 2.26.2
>>
Kieran Bingham May 21, 2021, 9:03 a.m. UTC | #3
Hi Umang,

On 19/05/2021 11:19, Umang Jain wrote:
> This matches the naming convention for IPA IPC.

Sounds good to me.

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

> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
> ---
>  Documentation/guides/ipa.rst                  |  8 ++--
>  include/libcamera/internal/camera_sensor.h    |  2 +-
>  include/libcamera/ipa/core.mojom              |  2 +-
>  include/libcamera/ipa/raspberrypi.mojom       |  2 +-
>  include/libcamera/ipa/rkisp1.mojom            |  2 +-
>  src/ipa/ipu3/ipu3_agc.cpp                     |  2 +-
>  src/ipa/raspberrypi/raspberrypi.cpp           |  8 ++--
>  src/ipa/rkisp1/rkisp1.cpp                     |  6 +--
>  src/libcamera/camera_sensor.cpp               |  6 +--
>  src/libcamera/ipa/core_ipa_interface.cpp      | 38 +++++++++----------
>  src/libcamera/pipeline/ipu3/ipu3.cpp          |  4 +-
>  .../pipeline/raspberrypi/raspberrypi.cpp      |  4 +-
>  src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  2 +-
>  13 files changed, 43 insertions(+), 43 deletions(-)
> 
> diff --git a/Documentation/guides/ipa.rst b/Documentation/guides/ipa.rst
> index cbffbd9a..6d460e13 100644
> --- a/Documentation/guides/ipa.rst
> +++ b/Documentation/guides/ipa.rst
> @@ -74,7 +74,7 @@ serialization, any custom data containers must be defined with the mojo IDL.
>  The following list of libcamera objects are supported in the interface
>  definition, and may be used as function parameter types or struct field types:
>  
> -- libcamera.CameraSensorInfo
> +- libcamera.IPACameraSensorInfo
>  - libcamera.ControlInfoMap
>  - libcamera.ControlList
>  - libcamera.FileDescriptor
> @@ -208,7 +208,7 @@ The following is an example of a main interface definition:
>                  start() => (int32 ret);
>                  stop();
>  
> -                configure(libcamera.CameraSensorInfo sensorInfo,
> +                configure(libcamera.IPACameraSensorInfo sensorInfo,
>                            map<uint32, libcamera.IPAStream> streamConfig,
>                            map<uint32, libcamera.ControlInfoMap> entityControls,
>                            ConfigInput ipaConfig)
> @@ -470,7 +470,7 @@ definition:
>  
>  .. code-block:: none
>  
> -   configure(libcamera.CameraSensorInfo sensorInfo,
> +   configure(libcamera.IPACameraSensorInfo sensorInfo,
>               uint32 exampleNumber,
>               map<uint32, libcamera.IPAStream> streamConfig,
>               map<uint32, libcamera.ControlInfoMap> entityControls,
> @@ -481,7 +481,7 @@ We will need to implement a function with the following function signature:
>  
>  .. code-block:: C++
>  
> -        int configure(const CameraSensorInfo &sensorInfo,
> +        int configure(const IPACameraSensorInfo &sensorInfo,
>                        uint32_t exampleNumber,
>                        const std::map<unsigned int, IPAStream> &streamConfig,
>                        const std::map<unsigned int, ControlInfoMap> &entityControls,
> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h
> index 0905ebfa..cf6c1c1e 100644
> --- a/include/libcamera/internal/camera_sensor.h
> +++ b/include/libcamera/internal/camera_sensor.h
> @@ -51,7 +51,7 @@ public:
>  	V4L2Subdevice *device() { return subdev_.get(); }
>  
>  	const ControlList &properties() const { return properties_; }
> -	int sensorInfo(CameraSensorInfo *info) const;
> +	int sensorInfo(IPACameraSensorInfo *info) const;
>  
>  	void updateControlInfo();
>  
> diff --git a/include/libcamera/ipa/core.mojom b/include/libcamera/ipa/core.mojom
> index b95b3dc4..34a799c2 100644
> --- a/include/libcamera/ipa/core.mojom
> +++ b/include/libcamera/ipa/core.mojom
> @@ -78,7 +78,7 @@ module libcamera;
>  	uint32 height;
>  };
>  
> -struct CameraSensorInfo {
> +struct IPACameraSensorInfo {
>  	string model;
>  
>  	uint32 bitsPerPixel;
> diff --git a/include/libcamera/ipa/raspberrypi.mojom b/include/libcamera/ipa/raspberrypi.mojom
> index 42321bee..0a21f453 100644
> --- a/include/libcamera/ipa/raspberrypi.mojom
> +++ b/include/libcamera/ipa/raspberrypi.mojom
> @@ -63,7 +63,7 @@ interface IPARPiInterface {
>  	 * The \a ipaConfig and \a controls parameters carry data passed by the
>  	 * pipeline handler to the IPA and back.
>  	 */
> -	configure(libcamera.CameraSensorInfo sensorInfo,
> +	configure(libcamera.IPACameraSensorInfo sensorInfo,
>  		  map<uint32, libcamera.IPAStream> streamConfig,
>  		  map<uint32, libcamera.ControlInfoMap> entityControls,
>  		  IPAConfig ipaConfig)
> diff --git a/include/libcamera/ipa/rkisp1.mojom b/include/libcamera/ipa/rkisp1.mojom
> index cca871a0..66a4607c 100644
> --- a/include/libcamera/ipa/rkisp1.mojom
> +++ b/include/libcamera/ipa/rkisp1.mojom
> @@ -29,7 +29,7 @@ interface IPARkISP1Interface {
>  	start() => (int32 ret);
>  	stop();
>  
> -	configure(libcamera.CameraSensorInfo sensorInfo,
> +	configure(libcamera.IPACameraSensorInfo sensorInfo,
>  		  map<uint32, libcamera.IPAStream> streamConfig,
>  		  map<uint32, libcamera.ControlInfoMap> entityControls)
>  		=> (int32 ret);
> diff --git a/src/ipa/ipu3/ipu3_agc.cpp b/src/ipa/ipu3/ipu3_agc.cpp
> index ca54d89a..8bae423f 100644
> --- a/src/ipa/ipu3/ipu3_agc.cpp
> +++ b/src/ipa/ipu3/ipu3_agc.cpp
> @@ -39,7 +39,7 @@ static constexpr uint32_t kMaxGain = kMaxISO / 100;
>  static constexpr uint32_t kMinExposure = 1;
>  static constexpr uint32_t kMaxExposure = 1976;
>  
> -/* \todo those should be get from CameraSensorInfo ! */
> +/* \todo those should be got from IPACameraSensorInfo ! */
>  /* line duration in microseconds */
>  static constexpr double kLineDuration = 16.8;
>  static constexpr double kMaxExposureTime = kMaxExposure * kLineDuration;
> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
> index 87774500..e5bb8159 100644
> --- a/src/ipa/raspberrypi/raspberrypi.cpp
> +++ b/src/ipa/raspberrypi/raspberrypi.cpp
> @@ -89,7 +89,7 @@ public:
>  	void start(const ControlList &controls, ipa::RPi::StartConfig *startConfig) override;
>  	void stop() override {}
>  
> -	int configure(const CameraSensorInfo &sensorInfo,
> +	int configure(const IPACameraSensorInfo &sensorInfo,
>  		      const std::map<unsigned int, IPAStream> &streamConfig,
>  		      const std::map<unsigned int, ControlInfoMap> &entityControls,
>  		      const ipa::RPi::IPAConfig &data,
> @@ -101,7 +101,7 @@ public:
>  	void signalIspPrepare(const ipa::RPi::ISPConfig &data) override;
>  
>  private:
> -	void setMode(const CameraSensorInfo &sensorInfo);
> +	void setMode(const IPACameraSensorInfo &sensorInfo);
>  	bool validateSensorControls();
>  	bool validateIspControls();
>  	void queueRequest(const ControlList &controls);
> @@ -278,7 +278,7 @@ void IPARPi::start(const ControlList &controls, ipa::RPi::StartConfig *startConf
>  	lastRunTimestamp_ = 0;
>  }
>  
> -void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
> +void IPARPi::setMode(const IPACameraSensorInfo &sensorInfo)
>  {
>  	mode_.bitdepth = sensorInfo.bitsPerPixel;
>  	mode_.width = sensorInfo.outputSize.width;
> @@ -323,7 +323,7 @@ void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
>  	mode_.max_frame_length = sensorInfo.maxFrameLength;
>  }
>  
> -int IPARPi::configure(const CameraSensorInfo &sensorInfo,
> +int IPARPi::configure(const IPACameraSensorInfo &sensorInfo,
>  		      [[maybe_unused]] const std::map<unsigned int, IPAStream> &streamConfig,
>  		      const std::map<unsigned int, ControlInfoMap> &entityControls,
>  		      const ipa::RPi::IPAConfig &ipaConfig,
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index 6d45673c..b47ea324 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -37,7 +37,7 @@ public:
>  	int start() override;
>  	void stop() override {}
>  
> -	int configure(const CameraSensorInfo &info,
> +	int configure(const IPACameraSensorInfo &info,
>  		      const std::map<uint32_t, IPAStream> &streamConfig,
>  		      const std::map<uint32_t, ControlInfoMap> &entityControls) override;
>  	void mapBuffers(const std::vector<IPABuffer> &buffers) override;
> @@ -90,12 +90,12 @@ int IPARkISP1::start()
>  }
>  
>  /**
> - * \todo The RkISP1 pipeline currently provides an empty CameraSensorInfo
> + * \todo The RkISP1 pipeline currently provides an empty IPACameraSensorInfo
>   * if the connected sensor does not provide enough information to properly
>   * assemble one. Make sure the reported sensor information are relevant
>   * before accessing them.
>   */
> -int IPARkISP1::configure([[maybe_unused]] const CameraSensorInfo &info,
> +int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,
>  			 [[maybe_unused]] const std::map<uint32_t, IPAStream> &streamConfig,
>  			 const std::map<uint32_t, ControlInfoMap> &entityControls)
>  {
> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
> index 170de827..0fb8a258 100644
> --- a/src/libcamera/camera_sensor.cpp
> +++ b/src/libcamera/camera_sensor.cpp
> @@ -205,7 +205,7 @@ int CameraSensor::validateSensorDriver()
>  	 *
>  	 * Failures in reading any of the targets are not deemed to be fatal,
>  	 * but some properties and features, like constructing a
> -	 * CameraSensorInfo for the IPA module, won't be supported.
> +	 * IPACameraSensorInfo for the IPA module, won't be supported.
>  	 *
>  	 * \todo Make support for selection targets mandatory as soon as all
>  	 * test platforms have been updated.
> @@ -674,7 +674,7 @@ int CameraSensor::setControls(ControlList *ctrls)
>   *
>   * \return 0 on success, a negative error code otherwise
>   */
> -int CameraSensor::sensorInfo(CameraSensorInfo *info) const
> +int CameraSensor::sensorInfo(IPACameraSensorInfo *info) const
>  {
>  	if (!bayerFormat_)
>  		return -EINVAL;
> @@ -701,7 +701,7 @@ int CameraSensor::sensorInfo(CameraSensorInfo *info) const
>  	}
>  
>  	/*
> -	 * CameraSensorInfo::analogCrop::x and CameraSensorInfo::analogCrop::y
> +	 * IPACameraSensorInfo::analogCrop::x and IPACameraSensorInfo::analogCrop::y
>  	 * are defined relatively to the active pixel area, while V4L2's
>  	 * TGT_CROP target is defined in respect to the full pixel array.
>  	 *
> diff --git a/src/libcamera/ipa/core_ipa_interface.cpp b/src/libcamera/ipa/core_ipa_interface.cpp
> index def8d184..15d61d91 100644
> --- a/src/libcamera/ipa/core_ipa_interface.cpp
> +++ b/src/libcamera/ipa/core_ipa_interface.cpp
> @@ -103,7 +103,7 @@ namespace libcamera {
>   */
>  
>  /**
> - * \struct CameraSensorInfo
> + * \struct IPACameraSensorInfo
>   * \brief Report the image sensor characteristics
>   *
>   * The structure reports image sensor characteristics used by IPA modules to
> @@ -121,15 +121,15 @@ namespace libcamera {
>   */
>  
>  /**
> - * \fn CameraSensorInfo::CameraSensorInfo(const std::string &model,
> -					  uint32_t bitsPerPixel,
> -					  const Size &activeAreaSize,
> -					  const Rectangle &analogCrop,
> -					  const Size &outputSize,
> -					  uint64_t pixelRate,
> -					  uint32_t lineLength,
> -					  uint32_t minFrameLength,
> -					  uint32_t maxFrameLength)
> + * \fn IPACameraSensorInfo::IPACameraSensorInfo(const std::string &model,
> +						uint32_t bitsPerPixel,
> +						const Size &activeAreaSize,
> +						const Rectangle &analogCrop,
> +						const Size &outputSize,
> +						uint64_t pixelRate,
> +						uint32_t lineLength,
> +						uint32_t minFrameLength,
> +						uint32_t maxFrameLength)
>   * \param[in] model
>   * \param[in] bitsPerPixel
>   * \param[in] activeAreaSize
> @@ -142,7 +142,7 @@ namespace libcamera {
>   */
>  
>  /**
> - * \var CameraSensorInfo::model
> + * \var IPACameraSensorInfo::model
>   * \brief The image sensor model name
>   *
>   * The sensor model name is a free-formed string that uniquely identifies the
> @@ -150,18 +150,18 @@ namespace libcamera {
>   */
>  
>  /**
> - * \var CameraSensorInfo::bitsPerPixel
> + * \var IPACameraSensorInfo::bitsPerPixel
>   * \brief The number of bits per pixel of the image format produced by the
>   * image sensor
>   */
>  
>  /**
> - * \var CameraSensorInfo::activeAreaSize
> + * \var IPACameraSensorInfo::activeAreaSize
>   * \brief The size of the pixel array active area of the sensor
>   */
>  
>  /**
> - * \var CameraSensorInfo::analogCrop
> + * \var IPACameraSensorInfo::analogCrop
>   * \brief The portion of the pixel array active area which is read-out and
>   * processed
>   *
> @@ -174,7 +174,7 @@ namespace libcamera {
>   */
>  
>  /**
> - * \var CameraSensorInfo::outputSize
> + * \var IPACameraSensorInfo::outputSize
>   * \brief The size of the images produced by the camera sensor
>   *
>   * The output image size defines the horizontal and vertical sizes of the images
> @@ -187,7 +187,7 @@ namespace libcamera {
>   */
>  
>  /**
> - * \var CameraSensorInfo::pixelRate
> + * \var IPACameraSensorInfo::pixelRate
>   * \brief The number of pixels produced in a second
>   *
>   * To obtain the read-out time in seconds of a full line:
> @@ -198,14 +198,14 @@ namespace libcamera {
>   */
>  
>  /**
> - * \var CameraSensorInfo::lineLength
> + * \var IPACameraSensorInfo::lineLength
>   * \brief Total line length in pixels
>   *
>   * The total line length in pixel clock periods, including blanking.
>   */
>  
>  /**
> - * \var CameraSensorInfo::minFrameLength
> + * \var IPACameraSensorInfo::minFrameLength
>   * \brief The minimum allowable frame length in units of lines
>   *
>   * The sensor frame length comprises of active output lines and blanking lines
> @@ -220,7 +220,7 @@ namespace libcamera {
>   */
>  
>  /**
> - * \var CameraSensorInfo::maxFrameLength
> + * \var IPACameraSensorInfo::maxFrameLength
>   * \brief The maximum allowable frame length in units of lines
>   *
>   * The sensor frame length comprises of active output lines and blanking lines
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index ade8ffbd..98c6160f 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -544,7 +544,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
>  	if (ret)
>  		return ret;
>  
> -	CameraSensorInfo sensorInfo;
> +	IPACameraSensorInfo sensorInfo;
>  	cio2->sensor()->sensorInfo(&sensorInfo);
>  	data->cropRegion_ = sensorInfo.analogCrop;
>  
> @@ -883,7 +883,7 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data)
>  	if (ret)
>  		return ret;
>  
> -	CameraSensorInfo sensorInfo{};
> +	IPACameraSensorInfo sensorInfo{};
>  	ret = sensor->sensorInfo(&sensorInfo);
>  	if (ret)
>  		return ret;
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index 6fbdba04..f2a94dc0 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -211,7 +211,7 @@ public:
>  	BayerFormat::Order nativeBayerOrder_;
>  
>  	/* For handling digital zoom. */
> -	CameraSensorInfo sensorInfo_;
> +	IPACameraSensorInfo sensorInfo_;
>  	Rectangle ispCrop_; /* crop in ISP (camera mode) pixels */
>  	Rectangle scalerCrop_; /* crop in sensor native pixels */
>  	bool updateScalerCrop_;
> @@ -1275,7 +1275,7 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
>  		ipaConfig.lsTableHandle = lsTable_;
>  	}
>  
> -	/* We store the CameraSensorInfo for digital zoom calculations. */
> +	/* We store the IPACameraSensorInfo for digital zoom calculations. */
>  	int ret = sensor_->sensorInfo(&sensorInfo_);
>  	if (ret) {
>  		LOG(RPI, Error) << "Failed to retrieve camera sensor info";
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> index adebe8b5..6699839c 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> @@ -648,7 +648,7 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
>  		return ret;
>  
>  	/* Inform IPA of stream configuration and sensor controls. */
> -	CameraSensorInfo sensorInfo = {};
> +	IPACameraSensorInfo sensorInfo = {};
>  	ret = data->sensor_->sensorInfo(&sensorInfo);
>  	if (ret) {
>  		/* \todo Turn this into a hard failure. */
>
Jacopo Mondi May 21, 2021, 9:33 a.m. UTC | #4
On Wed, May 19, 2021 at 03:49:50PM +0530, Umang Jain wrote:
> This matches the naming convention for IPA IPC.

I wonder, now that we moved the stuct out of CameraSensor, would
IPASensorInfo be a better fit ?

>
> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
> ---
>  Documentation/guides/ipa.rst                  |  8 ++--
>  include/libcamera/internal/camera_sensor.h    |  2 +-
>  include/libcamera/ipa/core.mojom              |  2 +-
>  include/libcamera/ipa/raspberrypi.mojom       |  2 +-
>  include/libcamera/ipa/rkisp1.mojom            |  2 +-
>  src/ipa/ipu3/ipu3_agc.cpp                     |  2 +-
>  src/ipa/raspberrypi/raspberrypi.cpp           |  8 ++--
>  src/ipa/rkisp1/rkisp1.cpp                     |  6 +--
>  src/libcamera/camera_sensor.cpp               |  6 +--
>  src/libcamera/ipa/core_ipa_interface.cpp      | 38 +++++++++----------
>  src/libcamera/pipeline/ipu3/ipu3.cpp          |  4 +-
>  .../pipeline/raspberrypi/raspberrypi.cpp      |  4 +-
>  src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  2 +-
>  13 files changed, 43 insertions(+), 43 deletions(-)
>
> diff --git a/Documentation/guides/ipa.rst b/Documentation/guides/ipa.rst
> index cbffbd9a..6d460e13 100644
> --- a/Documentation/guides/ipa.rst
> +++ b/Documentation/guides/ipa.rst
> @@ -74,7 +74,7 @@ serialization, any custom data containers must be defined with the mojo IDL.
>  The following list of libcamera objects are supported in the interface
>  definition, and may be used as function parameter types or struct field types:
>
> -- libcamera.CameraSensorInfo
> +- libcamera.IPACameraSensorInfo
>  - libcamera.ControlInfoMap
>  - libcamera.ControlList
>  - libcamera.FileDescriptor
> @@ -208,7 +208,7 @@ The following is an example of a main interface definition:
>                  start() => (int32 ret);
>                  stop();
>
> -                configure(libcamera.CameraSensorInfo sensorInfo,
> +                configure(libcamera.IPACameraSensorInfo sensorInfo,
>                            map<uint32, libcamera.IPAStream> streamConfig,
>                            map<uint32, libcamera.ControlInfoMap> entityControls,
>                            ConfigInput ipaConfig)
> @@ -470,7 +470,7 @@ definition:
>
>  .. code-block:: none
>
> -   configure(libcamera.CameraSensorInfo sensorInfo,
> +   configure(libcamera.IPACameraSensorInfo sensorInfo,
>               uint32 exampleNumber,
>               map<uint32, libcamera.IPAStream> streamConfig,
>               map<uint32, libcamera.ControlInfoMap> entityControls,
> @@ -481,7 +481,7 @@ We will need to implement a function with the following function signature:
>
>  .. code-block:: C++
>
> -        int configure(const CameraSensorInfo &sensorInfo,
> +        int configure(const IPACameraSensorInfo &sensorInfo,
>                        uint32_t exampleNumber,
>                        const std::map<unsigned int, IPAStream> &streamConfig,
>                        const std::map<unsigned int, ControlInfoMap> &entityControls,
> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h
> index 0905ebfa..cf6c1c1e 100644
> --- a/include/libcamera/internal/camera_sensor.h
> +++ b/include/libcamera/internal/camera_sensor.h
> @@ -51,7 +51,7 @@ public:
>  	V4L2Subdevice *device() { return subdev_.get(); }
>
>  	const ControlList &properties() const { return properties_; }
> -	int sensorInfo(CameraSensorInfo *info) const;
> +	int sensorInfo(IPACameraSensorInfo *info) const;
>
>  	void updateControlInfo();
>
> diff --git a/include/libcamera/ipa/core.mojom b/include/libcamera/ipa/core.mojom
> index b95b3dc4..34a799c2 100644
> --- a/include/libcamera/ipa/core.mojom
> +++ b/include/libcamera/ipa/core.mojom
> @@ -78,7 +78,7 @@ module libcamera;
>  	uint32 height;
>  };
>
> -struct CameraSensorInfo {
> +struct IPACameraSensorInfo {
>  	string model;
>
>  	uint32 bitsPerPixel;
> diff --git a/include/libcamera/ipa/raspberrypi.mojom b/include/libcamera/ipa/raspberrypi.mojom
> index 42321bee..0a21f453 100644
> --- a/include/libcamera/ipa/raspberrypi.mojom
> +++ b/include/libcamera/ipa/raspberrypi.mojom
> @@ -63,7 +63,7 @@ interface IPARPiInterface {
>  	 * The \a ipaConfig and \a controls parameters carry data passed by the
>  	 * pipeline handler to the IPA and back.
>  	 */
> -	configure(libcamera.CameraSensorInfo sensorInfo,
> +	configure(libcamera.IPACameraSensorInfo sensorInfo,
>  		  map<uint32, libcamera.IPAStream> streamConfig,
>  		  map<uint32, libcamera.ControlInfoMap> entityControls,
>  		  IPAConfig ipaConfig)
> diff --git a/include/libcamera/ipa/rkisp1.mojom b/include/libcamera/ipa/rkisp1.mojom
> index cca871a0..66a4607c 100644
> --- a/include/libcamera/ipa/rkisp1.mojom
> +++ b/include/libcamera/ipa/rkisp1.mojom
> @@ -29,7 +29,7 @@ interface IPARkISP1Interface {
>  	start() => (int32 ret);
>  	stop();
>
> -	configure(libcamera.CameraSensorInfo sensorInfo,
> +	configure(libcamera.IPACameraSensorInfo sensorInfo,
>  		  map<uint32, libcamera.IPAStream> streamConfig,
>  		  map<uint32, libcamera.ControlInfoMap> entityControls)
>  		=> (int32 ret);
> diff --git a/src/ipa/ipu3/ipu3_agc.cpp b/src/ipa/ipu3/ipu3_agc.cpp
> index ca54d89a..8bae423f 100644
> --- a/src/ipa/ipu3/ipu3_agc.cpp
> +++ b/src/ipa/ipu3/ipu3_agc.cpp
> @@ -39,7 +39,7 @@ static constexpr uint32_t kMaxGain = kMaxISO / 100;
>  static constexpr uint32_t kMinExposure = 1;
>  static constexpr uint32_t kMaxExposure = 1976;
>
> -/* \todo those should be get from CameraSensorInfo ! */
> +/* \todo those should be got from IPACameraSensorInfo ! */
>  /* line duration in microseconds */
>  static constexpr double kLineDuration = 16.8;
>  static constexpr double kMaxExposureTime = kMaxExposure * kLineDuration;
> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
> index 87774500..e5bb8159 100644
> --- a/src/ipa/raspberrypi/raspberrypi.cpp
> +++ b/src/ipa/raspberrypi/raspberrypi.cpp
> @@ -89,7 +89,7 @@ public:
>  	void start(const ControlList &controls, ipa::RPi::StartConfig *startConfig) override;
>  	void stop() override {}
>
> -	int configure(const CameraSensorInfo &sensorInfo,
> +	int configure(const IPACameraSensorInfo &sensorInfo,
>  		      const std::map<unsigned int, IPAStream> &streamConfig,
>  		      const std::map<unsigned int, ControlInfoMap> &entityControls,
>  		      const ipa::RPi::IPAConfig &data,
> @@ -101,7 +101,7 @@ public:
>  	void signalIspPrepare(const ipa::RPi::ISPConfig &data) override;
>
>  private:
> -	void setMode(const CameraSensorInfo &sensorInfo);
> +	void setMode(const IPACameraSensorInfo &sensorInfo);
>  	bool validateSensorControls();
>  	bool validateIspControls();
>  	void queueRequest(const ControlList &controls);
> @@ -278,7 +278,7 @@ void IPARPi::start(const ControlList &controls, ipa::RPi::StartConfig *startConf
>  	lastRunTimestamp_ = 0;
>  }
>
> -void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
> +void IPARPi::setMode(const IPACameraSensorInfo &sensorInfo)
>  {
>  	mode_.bitdepth = sensorInfo.bitsPerPixel;
>  	mode_.width = sensorInfo.outputSize.width;
> @@ -323,7 +323,7 @@ void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
>  	mode_.max_frame_length = sensorInfo.maxFrameLength;
>  }
>
> -int IPARPi::configure(const CameraSensorInfo &sensorInfo,
> +int IPARPi::configure(const IPACameraSensorInfo &sensorInfo,
>  		      [[maybe_unused]] const std::map<unsigned int, IPAStream> &streamConfig,
>  		      const std::map<unsigned int, ControlInfoMap> &entityControls,
>  		      const ipa::RPi::IPAConfig &ipaConfig,
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index 6d45673c..b47ea324 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -37,7 +37,7 @@ public:
>  	int start() override;
>  	void stop() override {}
>
> -	int configure(const CameraSensorInfo &info,
> +	int configure(const IPACameraSensorInfo &info,
>  		      const std::map<uint32_t, IPAStream> &streamConfig,
>  		      const std::map<uint32_t, ControlInfoMap> &entityControls) override;
>  	void mapBuffers(const std::vector<IPABuffer> &buffers) override;
> @@ -90,12 +90,12 @@ int IPARkISP1::start()
>  }
>
>  /**
> - * \todo The RkISP1 pipeline currently provides an empty CameraSensorInfo
> + * \todo The RkISP1 pipeline currently provides an empty IPACameraSensorInfo
>   * if the connected sensor does not provide enough information to properly
>   * assemble one. Make sure the reported sensor information are relevant
>   * before accessing them.
>   */
> -int IPARkISP1::configure([[maybe_unused]] const CameraSensorInfo &info,
> +int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,
>  			 [[maybe_unused]] const std::map<uint32_t, IPAStream> &streamConfig,
>  			 const std::map<uint32_t, ControlInfoMap> &entityControls)
>  {
> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
> index 170de827..0fb8a258 100644
> --- a/src/libcamera/camera_sensor.cpp
> +++ b/src/libcamera/camera_sensor.cpp
> @@ -205,7 +205,7 @@ int CameraSensor::validateSensorDriver()
>  	 *
>  	 * Failures in reading any of the targets are not deemed to be fatal,
>  	 * but some properties and features, like constructing a
> -	 * CameraSensorInfo for the IPA module, won't be supported.
> +	 * IPACameraSensorInfo for the IPA module, won't be supported.
>  	 *
>  	 * \todo Make support for selection targets mandatory as soon as all
>  	 * test platforms have been updated.
> @@ -674,7 +674,7 @@ int CameraSensor::setControls(ControlList *ctrls)
>   *
>   * \return 0 on success, a negative error code otherwise
>   */
> -int CameraSensor::sensorInfo(CameraSensorInfo *info) const
> +int CameraSensor::sensorInfo(IPACameraSensorInfo *info) const
>  {
>  	if (!bayerFormat_)
>  		return -EINVAL;
> @@ -701,7 +701,7 @@ int CameraSensor::sensorInfo(CameraSensorInfo *info) const
>  	}
>
>  	/*
> -	 * CameraSensorInfo::analogCrop::x and CameraSensorInfo::analogCrop::y
> +	 * IPACameraSensorInfo::analogCrop::x and IPACameraSensorInfo::analogCrop::y
>  	 * are defined relatively to the active pixel area, while V4L2's
>  	 * TGT_CROP target is defined in respect to the full pixel array.
>  	 *
> diff --git a/src/libcamera/ipa/core_ipa_interface.cpp b/src/libcamera/ipa/core_ipa_interface.cpp
> index def8d184..15d61d91 100644
> --- a/src/libcamera/ipa/core_ipa_interface.cpp
> +++ b/src/libcamera/ipa/core_ipa_interface.cpp
> @@ -103,7 +103,7 @@ namespace libcamera {
>   */
>
>  /**
> - * \struct CameraSensorInfo
> + * \struct IPACameraSensorInfo
>   * \brief Report the image sensor characteristics
>   *
>   * The structure reports image sensor characteristics used by IPA modules to
> @@ -121,15 +121,15 @@ namespace libcamera {
>   */
>
>  /**
> - * \fn CameraSensorInfo::CameraSensorInfo(const std::string &model,
> -					  uint32_t bitsPerPixel,
> -					  const Size &activeAreaSize,
> -					  const Rectangle &analogCrop,
> -					  const Size &outputSize,
> -					  uint64_t pixelRate,
> -					  uint32_t lineLength,
> -					  uint32_t minFrameLength,
> -					  uint32_t maxFrameLength)
> + * \fn IPACameraSensorInfo::IPACameraSensorInfo(const std::string &model,
> +						uint32_t bitsPerPixel,
> +						const Size &activeAreaSize,
> +						const Rectangle &analogCrop,
> +						const Size &outputSize,
> +						uint64_t pixelRate,
> +						uint32_t lineLength,
> +						uint32_t minFrameLength,
> +						uint32_t maxFrameLength)
>   * \param[in] model
>   * \param[in] bitsPerPixel
>   * \param[in] activeAreaSize
> @@ -142,7 +142,7 @@ namespace libcamera {
>   */
>
>  /**
> - * \var CameraSensorInfo::model
> + * \var IPACameraSensorInfo::model
>   * \brief The image sensor model name
>   *
>   * The sensor model name is a free-formed string that uniquely identifies the
> @@ -150,18 +150,18 @@ namespace libcamera {
>   */
>
>  /**
> - * \var CameraSensorInfo::bitsPerPixel
> + * \var IPACameraSensorInfo::bitsPerPixel
>   * \brief The number of bits per pixel of the image format produced by the
>   * image sensor
>   */
>
>  /**
> - * \var CameraSensorInfo::activeAreaSize
> + * \var IPACameraSensorInfo::activeAreaSize
>   * \brief The size of the pixel array active area of the sensor
>   */
>
>  /**
> - * \var CameraSensorInfo::analogCrop
> + * \var IPACameraSensorInfo::analogCrop
>   * \brief The portion of the pixel array active area which is read-out and
>   * processed
>   *
> @@ -174,7 +174,7 @@ namespace libcamera {
>   */
>
>  /**
> - * \var CameraSensorInfo::outputSize
> + * \var IPACameraSensorInfo::outputSize
>   * \brief The size of the images produced by the camera sensor
>   *
>   * The output image size defines the horizontal and vertical sizes of the images
> @@ -187,7 +187,7 @@ namespace libcamera {
>   */
>
>  /**
> - * \var CameraSensorInfo::pixelRate
> + * \var IPACameraSensorInfo::pixelRate
>   * \brief The number of pixels produced in a second
>   *
>   * To obtain the read-out time in seconds of a full line:
> @@ -198,14 +198,14 @@ namespace libcamera {
>   */
>
>  /**
> - * \var CameraSensorInfo::lineLength
> + * \var IPACameraSensorInfo::lineLength
>   * \brief Total line length in pixels
>   *
>   * The total line length in pixel clock periods, including blanking.
>   */
>
>  /**
> - * \var CameraSensorInfo::minFrameLength
> + * \var IPACameraSensorInfo::minFrameLength
>   * \brief The minimum allowable frame length in units of lines
>   *
>   * The sensor frame length comprises of active output lines and blanking lines
> @@ -220,7 +220,7 @@ namespace libcamera {
>   */
>
>  /**
> - * \var CameraSensorInfo::maxFrameLength
> + * \var IPACameraSensorInfo::maxFrameLength
>   * \brief The maximum allowable frame length in units of lines
>   *
>   * The sensor frame length comprises of active output lines and blanking lines
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index ade8ffbd..98c6160f 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -544,7 +544,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
>  	if (ret)
>  		return ret;
>
> -	CameraSensorInfo sensorInfo;
> +	IPACameraSensorInfo sensorInfo;
>  	cio2->sensor()->sensorInfo(&sensorInfo);
>  	data->cropRegion_ = sensorInfo.analogCrop;
>
> @@ -883,7 +883,7 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data)
>  	if (ret)
>  		return ret;
>
> -	CameraSensorInfo sensorInfo{};
> +	IPACameraSensorInfo sensorInfo{};
>  	ret = sensor->sensorInfo(&sensorInfo);
>  	if (ret)
>  		return ret;
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index 6fbdba04..f2a94dc0 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -211,7 +211,7 @@ public:
>  	BayerFormat::Order nativeBayerOrder_;
>
>  	/* For handling digital zoom. */
> -	CameraSensorInfo sensorInfo_;
> +	IPACameraSensorInfo sensorInfo_;
>  	Rectangle ispCrop_; /* crop in ISP (camera mode) pixels */
>  	Rectangle scalerCrop_; /* crop in sensor native pixels */
>  	bool updateScalerCrop_;
> @@ -1275,7 +1275,7 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
>  		ipaConfig.lsTableHandle = lsTable_;
>  	}
>
> -	/* We store the CameraSensorInfo for digital zoom calculations. */
> +	/* We store the IPACameraSensorInfo for digital zoom calculations. */
>  	int ret = sensor_->sensorInfo(&sensorInfo_);
>  	if (ret) {
>  		LOG(RPI, Error) << "Failed to retrieve camera sensor info";
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> index adebe8b5..6699839c 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> @@ -648,7 +648,7 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
>  		return ret;
>
>  	/* Inform IPA of stream configuration and sensor controls. */
> -	CameraSensorInfo sensorInfo = {};
> +	IPACameraSensorInfo sensorInfo = {};
>  	ret = data->sensor_->sensorInfo(&sensorInfo);
>  	if (ret) {
>  		/* \todo Turn this into a hard failure. */
> --
> 2.26.2
>
Laurent Pinchart May 21, 2021, 9:35 a.m. UTC | #5
On Fri, May 21, 2021 at 11:33:05AM +0200, Jacopo Mondi wrote:
> On Wed, May 19, 2021 at 03:49:50PM +0530, Umang Jain wrote:
> > This matches the naming convention for IPA IPC.
> 
> I wonder, now that we moved the stuct out of CameraSensor, would
> IPASensorInfo be a better fit ?

I'd ba careful about using "sensor" only, as we may end up interfacing
with other types of sensors in the future. It's possibly a bit unlikely
(gyroscopes and accelerometers would most likely be handled outside of
libcamera), but I'd prefer not ruling it out completely.

> > Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
> > ---
> >  Documentation/guides/ipa.rst                  |  8 ++--
> >  include/libcamera/internal/camera_sensor.h    |  2 +-
> >  include/libcamera/ipa/core.mojom              |  2 +-
> >  include/libcamera/ipa/raspberrypi.mojom       |  2 +-
> >  include/libcamera/ipa/rkisp1.mojom            |  2 +-
> >  src/ipa/ipu3/ipu3_agc.cpp                     |  2 +-
> >  src/ipa/raspberrypi/raspberrypi.cpp           |  8 ++--
> >  src/ipa/rkisp1/rkisp1.cpp                     |  6 +--
> >  src/libcamera/camera_sensor.cpp               |  6 +--
> >  src/libcamera/ipa/core_ipa_interface.cpp      | 38 +++++++++----------
> >  src/libcamera/pipeline/ipu3/ipu3.cpp          |  4 +-
> >  .../pipeline/raspberrypi/raspberrypi.cpp      |  4 +-
> >  src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  2 +-
> >  13 files changed, 43 insertions(+), 43 deletions(-)
> >
> > diff --git a/Documentation/guides/ipa.rst b/Documentation/guides/ipa.rst
> > index cbffbd9a..6d460e13 100644
> > --- a/Documentation/guides/ipa.rst
> > +++ b/Documentation/guides/ipa.rst
> > @@ -74,7 +74,7 @@ serialization, any custom data containers must be defined with the mojo IDL.
> >  The following list of libcamera objects are supported in the interface
> >  definition, and may be used as function parameter types or struct field types:
> >
> > -- libcamera.CameraSensorInfo
> > +- libcamera.IPACameraSensorInfo
> >  - libcamera.ControlInfoMap
> >  - libcamera.ControlList
> >  - libcamera.FileDescriptor
> > @@ -208,7 +208,7 @@ The following is an example of a main interface definition:
> >                  start() => (int32 ret);
> >                  stop();
> >
> > -                configure(libcamera.CameraSensorInfo sensorInfo,
> > +                configure(libcamera.IPACameraSensorInfo sensorInfo,
> >                            map<uint32, libcamera.IPAStream> streamConfig,
> >                            map<uint32, libcamera.ControlInfoMap> entityControls,
> >                            ConfigInput ipaConfig)
> > @@ -470,7 +470,7 @@ definition:
> >
> >  .. code-block:: none
> >
> > -   configure(libcamera.CameraSensorInfo sensorInfo,
> > +   configure(libcamera.IPACameraSensorInfo sensorInfo,
> >               uint32 exampleNumber,
> >               map<uint32, libcamera.IPAStream> streamConfig,
> >               map<uint32, libcamera.ControlInfoMap> entityControls,
> > @@ -481,7 +481,7 @@ We will need to implement a function with the following function signature:
> >
> >  .. code-block:: C++
> >
> > -        int configure(const CameraSensorInfo &sensorInfo,
> > +        int configure(const IPACameraSensorInfo &sensorInfo,
> >                        uint32_t exampleNumber,
> >                        const std::map<unsigned int, IPAStream> &streamConfig,
> >                        const std::map<unsigned int, ControlInfoMap> &entityControls,
> > diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h
> > index 0905ebfa..cf6c1c1e 100644
> > --- a/include/libcamera/internal/camera_sensor.h
> > +++ b/include/libcamera/internal/camera_sensor.h
> > @@ -51,7 +51,7 @@ public:
> >  	V4L2Subdevice *device() { return subdev_.get(); }
> >
> >  	const ControlList &properties() const { return properties_; }
> > -	int sensorInfo(CameraSensorInfo *info) const;
> > +	int sensorInfo(IPACameraSensorInfo *info) const;
> >
> >  	void updateControlInfo();
> >
> > diff --git a/include/libcamera/ipa/core.mojom b/include/libcamera/ipa/core.mojom
> > index b95b3dc4..34a799c2 100644
> > --- a/include/libcamera/ipa/core.mojom
> > +++ b/include/libcamera/ipa/core.mojom
> > @@ -78,7 +78,7 @@ module libcamera;
> >  	uint32 height;
> >  };
> >
> > -struct CameraSensorInfo {
> > +struct IPACameraSensorInfo {
> >  	string model;
> >
> >  	uint32 bitsPerPixel;
> > diff --git a/include/libcamera/ipa/raspberrypi.mojom b/include/libcamera/ipa/raspberrypi.mojom
> > index 42321bee..0a21f453 100644
> > --- a/include/libcamera/ipa/raspberrypi.mojom
> > +++ b/include/libcamera/ipa/raspberrypi.mojom
> > @@ -63,7 +63,7 @@ interface IPARPiInterface {
> >  	 * The \a ipaConfig and \a controls parameters carry data passed by the
> >  	 * pipeline handler to the IPA and back.
> >  	 */
> > -	configure(libcamera.CameraSensorInfo sensorInfo,
> > +	configure(libcamera.IPACameraSensorInfo sensorInfo,
> >  		  map<uint32, libcamera.IPAStream> streamConfig,
> >  		  map<uint32, libcamera.ControlInfoMap> entityControls,
> >  		  IPAConfig ipaConfig)
> > diff --git a/include/libcamera/ipa/rkisp1.mojom b/include/libcamera/ipa/rkisp1.mojom
> > index cca871a0..66a4607c 100644
> > --- a/include/libcamera/ipa/rkisp1.mojom
> > +++ b/include/libcamera/ipa/rkisp1.mojom
> > @@ -29,7 +29,7 @@ interface IPARkISP1Interface {
> >  	start() => (int32 ret);
> >  	stop();
> >
> > -	configure(libcamera.CameraSensorInfo sensorInfo,
> > +	configure(libcamera.IPACameraSensorInfo sensorInfo,
> >  		  map<uint32, libcamera.IPAStream> streamConfig,
> >  		  map<uint32, libcamera.ControlInfoMap> entityControls)
> >  		=> (int32 ret);
> > diff --git a/src/ipa/ipu3/ipu3_agc.cpp b/src/ipa/ipu3/ipu3_agc.cpp
> > index ca54d89a..8bae423f 100644
> > --- a/src/ipa/ipu3/ipu3_agc.cpp
> > +++ b/src/ipa/ipu3/ipu3_agc.cpp
> > @@ -39,7 +39,7 @@ static constexpr uint32_t kMaxGain = kMaxISO / 100;
> >  static constexpr uint32_t kMinExposure = 1;
> >  static constexpr uint32_t kMaxExposure = 1976;
> >
> > -/* \todo those should be get from CameraSensorInfo ! */
> > +/* \todo those should be got from IPACameraSensorInfo ! */
> >  /* line duration in microseconds */
> >  static constexpr double kLineDuration = 16.8;
> >  static constexpr double kMaxExposureTime = kMaxExposure * kLineDuration;
> > diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
> > index 87774500..e5bb8159 100644
> > --- a/src/ipa/raspberrypi/raspberrypi.cpp
> > +++ b/src/ipa/raspberrypi/raspberrypi.cpp
> > @@ -89,7 +89,7 @@ public:
> >  	void start(const ControlList &controls, ipa::RPi::StartConfig *startConfig) override;
> >  	void stop() override {}
> >
> > -	int configure(const CameraSensorInfo &sensorInfo,
> > +	int configure(const IPACameraSensorInfo &sensorInfo,
> >  		      const std::map<unsigned int, IPAStream> &streamConfig,
> >  		      const std::map<unsigned int, ControlInfoMap> &entityControls,
> >  		      const ipa::RPi::IPAConfig &data,
> > @@ -101,7 +101,7 @@ public:
> >  	void signalIspPrepare(const ipa::RPi::ISPConfig &data) override;
> >
> >  private:
> > -	void setMode(const CameraSensorInfo &sensorInfo);
> > +	void setMode(const IPACameraSensorInfo &sensorInfo);
> >  	bool validateSensorControls();
> >  	bool validateIspControls();
> >  	void queueRequest(const ControlList &controls);
> > @@ -278,7 +278,7 @@ void IPARPi::start(const ControlList &controls, ipa::RPi::StartConfig *startConf
> >  	lastRunTimestamp_ = 0;
> >  }
> >
> > -void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
> > +void IPARPi::setMode(const IPACameraSensorInfo &sensorInfo)
> >  {
> >  	mode_.bitdepth = sensorInfo.bitsPerPixel;
> >  	mode_.width = sensorInfo.outputSize.width;
> > @@ -323,7 +323,7 @@ void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
> >  	mode_.max_frame_length = sensorInfo.maxFrameLength;
> >  }
> >
> > -int IPARPi::configure(const CameraSensorInfo &sensorInfo,
> > +int IPARPi::configure(const IPACameraSensorInfo &sensorInfo,
> >  		      [[maybe_unused]] const std::map<unsigned int, IPAStream> &streamConfig,
> >  		      const std::map<unsigned int, ControlInfoMap> &entityControls,
> >  		      const ipa::RPi::IPAConfig &ipaConfig,
> > diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> > index 6d45673c..b47ea324 100644
> > --- a/src/ipa/rkisp1/rkisp1.cpp
> > +++ b/src/ipa/rkisp1/rkisp1.cpp
> > @@ -37,7 +37,7 @@ public:
> >  	int start() override;
> >  	void stop() override {}
> >
> > -	int configure(const CameraSensorInfo &info,
> > +	int configure(const IPACameraSensorInfo &info,
> >  		      const std::map<uint32_t, IPAStream> &streamConfig,
> >  		      const std::map<uint32_t, ControlInfoMap> &entityControls) override;
> >  	void mapBuffers(const std::vector<IPABuffer> &buffers) override;
> > @@ -90,12 +90,12 @@ int IPARkISP1::start()
> >  }
> >
> >  /**
> > - * \todo The RkISP1 pipeline currently provides an empty CameraSensorInfo
> > + * \todo The RkISP1 pipeline currently provides an empty IPACameraSensorInfo
> >   * if the connected sensor does not provide enough information to properly
> >   * assemble one. Make sure the reported sensor information are relevant
> >   * before accessing them.
> >   */
> > -int IPARkISP1::configure([[maybe_unused]] const CameraSensorInfo &info,
> > +int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,
> >  			 [[maybe_unused]] const std::map<uint32_t, IPAStream> &streamConfig,
> >  			 const std::map<uint32_t, ControlInfoMap> &entityControls)
> >  {
> > diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
> > index 170de827..0fb8a258 100644
> > --- a/src/libcamera/camera_sensor.cpp
> > +++ b/src/libcamera/camera_sensor.cpp
> > @@ -205,7 +205,7 @@ int CameraSensor::validateSensorDriver()
> >  	 *
> >  	 * Failures in reading any of the targets are not deemed to be fatal,
> >  	 * but some properties and features, like constructing a
> > -	 * CameraSensorInfo for the IPA module, won't be supported.
> > +	 * IPACameraSensorInfo for the IPA module, won't be supported.
> >  	 *
> >  	 * \todo Make support for selection targets mandatory as soon as all
> >  	 * test platforms have been updated.
> > @@ -674,7 +674,7 @@ int CameraSensor::setControls(ControlList *ctrls)
> >   *
> >   * \return 0 on success, a negative error code otherwise
> >   */
> > -int CameraSensor::sensorInfo(CameraSensorInfo *info) const
> > +int CameraSensor::sensorInfo(IPACameraSensorInfo *info) const
> >  {
> >  	if (!bayerFormat_)
> >  		return -EINVAL;
> > @@ -701,7 +701,7 @@ int CameraSensor::sensorInfo(CameraSensorInfo *info) const
> >  	}
> >
> >  	/*
> > -	 * CameraSensorInfo::analogCrop::x and CameraSensorInfo::analogCrop::y
> > +	 * IPACameraSensorInfo::analogCrop::x and IPACameraSensorInfo::analogCrop::y
> >  	 * are defined relatively to the active pixel area, while V4L2's
> >  	 * TGT_CROP target is defined in respect to the full pixel array.
> >  	 *
> > diff --git a/src/libcamera/ipa/core_ipa_interface.cpp b/src/libcamera/ipa/core_ipa_interface.cpp
> > index def8d184..15d61d91 100644
> > --- a/src/libcamera/ipa/core_ipa_interface.cpp
> > +++ b/src/libcamera/ipa/core_ipa_interface.cpp
> > @@ -103,7 +103,7 @@ namespace libcamera {
> >   */
> >
> >  /**
> > - * \struct CameraSensorInfo
> > + * \struct IPACameraSensorInfo
> >   * \brief Report the image sensor characteristics
> >   *
> >   * The structure reports image sensor characteristics used by IPA modules to
> > @@ -121,15 +121,15 @@ namespace libcamera {
> >   */
> >
> >  /**
> > - * \fn CameraSensorInfo::CameraSensorInfo(const std::string &model,
> > -					  uint32_t bitsPerPixel,
> > -					  const Size &activeAreaSize,
> > -					  const Rectangle &analogCrop,
> > -					  const Size &outputSize,
> > -					  uint64_t pixelRate,
> > -					  uint32_t lineLength,
> > -					  uint32_t minFrameLength,
> > -					  uint32_t maxFrameLength)
> > + * \fn IPACameraSensorInfo::IPACameraSensorInfo(const std::string &model,
> > +						uint32_t bitsPerPixel,
> > +						const Size &activeAreaSize,
> > +						const Rectangle &analogCrop,
> > +						const Size &outputSize,
> > +						uint64_t pixelRate,
> > +						uint32_t lineLength,
> > +						uint32_t minFrameLength,
> > +						uint32_t maxFrameLength)
> >   * \param[in] model
> >   * \param[in] bitsPerPixel
> >   * \param[in] activeAreaSize
> > @@ -142,7 +142,7 @@ namespace libcamera {
> >   */
> >
> >  /**
> > - * \var CameraSensorInfo::model
> > + * \var IPACameraSensorInfo::model
> >   * \brief The image sensor model name
> >   *
> >   * The sensor model name is a free-formed string that uniquely identifies the
> > @@ -150,18 +150,18 @@ namespace libcamera {
> >   */
> >
> >  /**
> > - * \var CameraSensorInfo::bitsPerPixel
> > + * \var IPACameraSensorInfo::bitsPerPixel
> >   * \brief The number of bits per pixel of the image format produced by the
> >   * image sensor
> >   */
> >
> >  /**
> > - * \var CameraSensorInfo::activeAreaSize
> > + * \var IPACameraSensorInfo::activeAreaSize
> >   * \brief The size of the pixel array active area of the sensor
> >   */
> >
> >  /**
> > - * \var CameraSensorInfo::analogCrop
> > + * \var IPACameraSensorInfo::analogCrop
> >   * \brief The portion of the pixel array active area which is read-out and
> >   * processed
> >   *
> > @@ -174,7 +174,7 @@ namespace libcamera {
> >   */
> >
> >  /**
> > - * \var CameraSensorInfo::outputSize
> > + * \var IPACameraSensorInfo::outputSize
> >   * \brief The size of the images produced by the camera sensor
> >   *
> >   * The output image size defines the horizontal and vertical sizes of the images
> > @@ -187,7 +187,7 @@ namespace libcamera {
> >   */
> >
> >  /**
> > - * \var CameraSensorInfo::pixelRate
> > + * \var IPACameraSensorInfo::pixelRate
> >   * \brief The number of pixels produced in a second
> >   *
> >   * To obtain the read-out time in seconds of a full line:
> > @@ -198,14 +198,14 @@ namespace libcamera {
> >   */
> >
> >  /**
> > - * \var CameraSensorInfo::lineLength
> > + * \var IPACameraSensorInfo::lineLength
> >   * \brief Total line length in pixels
> >   *
> >   * The total line length in pixel clock periods, including blanking.
> >   */
> >
> >  /**
> > - * \var CameraSensorInfo::minFrameLength
> > + * \var IPACameraSensorInfo::minFrameLength
> >   * \brief The minimum allowable frame length in units of lines
> >   *
> >   * The sensor frame length comprises of active output lines and blanking lines
> > @@ -220,7 +220,7 @@ namespace libcamera {
> >   */
> >
> >  /**
> > - * \var CameraSensorInfo::maxFrameLength
> > + * \var IPACameraSensorInfo::maxFrameLength
> >   * \brief The maximum allowable frame length in units of lines
> >   *
> >   * The sensor frame length comprises of active output lines and blanking lines
> > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> > index ade8ffbd..98c6160f 100644
> > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> > @@ -544,7 +544,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
> >  	if (ret)
> >  		return ret;
> >
> > -	CameraSensorInfo sensorInfo;
> > +	IPACameraSensorInfo sensorInfo;
> >  	cio2->sensor()->sensorInfo(&sensorInfo);
> >  	data->cropRegion_ = sensorInfo.analogCrop;
> >
> > @@ -883,7 +883,7 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data)
> >  	if (ret)
> >  		return ret;
> >
> > -	CameraSensorInfo sensorInfo{};
> > +	IPACameraSensorInfo sensorInfo{};
> >  	ret = sensor->sensorInfo(&sensorInfo);
> >  	if (ret)
> >  		return ret;
> > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> > index 6fbdba04..f2a94dc0 100644
> > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> > @@ -211,7 +211,7 @@ public:
> >  	BayerFormat::Order nativeBayerOrder_;
> >
> >  	/* For handling digital zoom. */
> > -	CameraSensorInfo sensorInfo_;
> > +	IPACameraSensorInfo sensorInfo_;
> >  	Rectangle ispCrop_; /* crop in ISP (camera mode) pixels */
> >  	Rectangle scalerCrop_; /* crop in sensor native pixels */
> >  	bool updateScalerCrop_;
> > @@ -1275,7 +1275,7 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
> >  		ipaConfig.lsTableHandle = lsTable_;
> >  	}
> >
> > -	/* We store the CameraSensorInfo for digital zoom calculations. */
> > +	/* We store the IPACameraSensorInfo for digital zoom calculations. */
> >  	int ret = sensor_->sensorInfo(&sensorInfo_);
> >  	if (ret) {
> >  		LOG(RPI, Error) << "Failed to retrieve camera sensor info";
> > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> > index adebe8b5..6699839c 100644
> > --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> > +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> > @@ -648,7 +648,7 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
> >  		return ret;
> >
> >  	/* Inform IPA of stream configuration and sensor controls. */
> > -	CameraSensorInfo sensorInfo = {};
> > +	IPACameraSensorInfo sensorInfo = {};
> >  	ret = data->sensor_->sensorInfo(&sensorInfo);
> >  	if (ret) {
> >  		/* \todo Turn this into a hard failure. */

Patch
diff mbox series

diff --git a/Documentation/guides/ipa.rst b/Documentation/guides/ipa.rst
index cbffbd9a..6d460e13 100644
--- a/Documentation/guides/ipa.rst
+++ b/Documentation/guides/ipa.rst
@@ -74,7 +74,7 @@  serialization, any custom data containers must be defined with the mojo IDL.
 The following list of libcamera objects are supported in the interface
 definition, and may be used as function parameter types or struct field types:
 
-- libcamera.CameraSensorInfo
+- libcamera.IPACameraSensorInfo
 - libcamera.ControlInfoMap
 - libcamera.ControlList
 - libcamera.FileDescriptor
@@ -208,7 +208,7 @@  The following is an example of a main interface definition:
                 start() => (int32 ret);
                 stop();
 
-                configure(libcamera.CameraSensorInfo sensorInfo,
+                configure(libcamera.IPACameraSensorInfo sensorInfo,
                           map<uint32, libcamera.IPAStream> streamConfig,
                           map<uint32, libcamera.ControlInfoMap> entityControls,
                           ConfigInput ipaConfig)
@@ -470,7 +470,7 @@  definition:
 
 .. code-block:: none
 
-   configure(libcamera.CameraSensorInfo sensorInfo,
+   configure(libcamera.IPACameraSensorInfo sensorInfo,
              uint32 exampleNumber,
              map<uint32, libcamera.IPAStream> streamConfig,
              map<uint32, libcamera.ControlInfoMap> entityControls,
@@ -481,7 +481,7 @@  We will need to implement a function with the following function signature:
 
 .. code-block:: C++
 
-        int configure(const CameraSensorInfo &sensorInfo,
+        int configure(const IPACameraSensorInfo &sensorInfo,
                       uint32_t exampleNumber,
                       const std::map<unsigned int, IPAStream> &streamConfig,
                       const std::map<unsigned int, ControlInfoMap> &entityControls,
diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h
index 0905ebfa..cf6c1c1e 100644
--- a/include/libcamera/internal/camera_sensor.h
+++ b/include/libcamera/internal/camera_sensor.h
@@ -51,7 +51,7 @@  public:
 	V4L2Subdevice *device() { return subdev_.get(); }
 
 	const ControlList &properties() const { return properties_; }
-	int sensorInfo(CameraSensorInfo *info) const;
+	int sensorInfo(IPACameraSensorInfo *info) const;
 
 	void updateControlInfo();
 
diff --git a/include/libcamera/ipa/core.mojom b/include/libcamera/ipa/core.mojom
index b95b3dc4..34a799c2 100644
--- a/include/libcamera/ipa/core.mojom
+++ b/include/libcamera/ipa/core.mojom
@@ -78,7 +78,7 @@  module libcamera;
 	uint32 height;
 };
 
-struct CameraSensorInfo {
+struct IPACameraSensorInfo {
 	string model;
 
 	uint32 bitsPerPixel;
diff --git a/include/libcamera/ipa/raspberrypi.mojom b/include/libcamera/ipa/raspberrypi.mojom
index 42321bee..0a21f453 100644
--- a/include/libcamera/ipa/raspberrypi.mojom
+++ b/include/libcamera/ipa/raspberrypi.mojom
@@ -63,7 +63,7 @@  interface IPARPiInterface {
 	 * The \a ipaConfig and \a controls parameters carry data passed by the
 	 * pipeline handler to the IPA and back.
 	 */
-	configure(libcamera.CameraSensorInfo sensorInfo,
+	configure(libcamera.IPACameraSensorInfo sensorInfo,
 		  map<uint32, libcamera.IPAStream> streamConfig,
 		  map<uint32, libcamera.ControlInfoMap> entityControls,
 		  IPAConfig ipaConfig)
diff --git a/include/libcamera/ipa/rkisp1.mojom b/include/libcamera/ipa/rkisp1.mojom
index cca871a0..66a4607c 100644
--- a/include/libcamera/ipa/rkisp1.mojom
+++ b/include/libcamera/ipa/rkisp1.mojom
@@ -29,7 +29,7 @@  interface IPARkISP1Interface {
 	start() => (int32 ret);
 	stop();
 
-	configure(libcamera.CameraSensorInfo sensorInfo,
+	configure(libcamera.IPACameraSensorInfo sensorInfo,
 		  map<uint32, libcamera.IPAStream> streamConfig,
 		  map<uint32, libcamera.ControlInfoMap> entityControls)
 		=> (int32 ret);
diff --git a/src/ipa/ipu3/ipu3_agc.cpp b/src/ipa/ipu3/ipu3_agc.cpp
index ca54d89a..8bae423f 100644
--- a/src/ipa/ipu3/ipu3_agc.cpp
+++ b/src/ipa/ipu3/ipu3_agc.cpp
@@ -39,7 +39,7 @@  static constexpr uint32_t kMaxGain = kMaxISO / 100;
 static constexpr uint32_t kMinExposure = 1;
 static constexpr uint32_t kMaxExposure = 1976;
 
-/* \todo those should be get from CameraSensorInfo ! */
+/* \todo those should be got from IPACameraSensorInfo ! */
 /* line duration in microseconds */
 static constexpr double kLineDuration = 16.8;
 static constexpr double kMaxExposureTime = kMaxExposure * kLineDuration;
diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
index 87774500..e5bb8159 100644
--- a/src/ipa/raspberrypi/raspberrypi.cpp
+++ b/src/ipa/raspberrypi/raspberrypi.cpp
@@ -89,7 +89,7 @@  public:
 	void start(const ControlList &controls, ipa::RPi::StartConfig *startConfig) override;
 	void stop() override {}
 
-	int configure(const CameraSensorInfo &sensorInfo,
+	int configure(const IPACameraSensorInfo &sensorInfo,
 		      const std::map<unsigned int, IPAStream> &streamConfig,
 		      const std::map<unsigned int, ControlInfoMap> &entityControls,
 		      const ipa::RPi::IPAConfig &data,
@@ -101,7 +101,7 @@  public:
 	void signalIspPrepare(const ipa::RPi::ISPConfig &data) override;
 
 private:
-	void setMode(const CameraSensorInfo &sensorInfo);
+	void setMode(const IPACameraSensorInfo &sensorInfo);
 	bool validateSensorControls();
 	bool validateIspControls();
 	void queueRequest(const ControlList &controls);
@@ -278,7 +278,7 @@  void IPARPi::start(const ControlList &controls, ipa::RPi::StartConfig *startConf
 	lastRunTimestamp_ = 0;
 }
 
-void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
+void IPARPi::setMode(const IPACameraSensorInfo &sensorInfo)
 {
 	mode_.bitdepth = sensorInfo.bitsPerPixel;
 	mode_.width = sensorInfo.outputSize.width;
@@ -323,7 +323,7 @@  void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
 	mode_.max_frame_length = sensorInfo.maxFrameLength;
 }
 
-int IPARPi::configure(const CameraSensorInfo &sensorInfo,
+int IPARPi::configure(const IPACameraSensorInfo &sensorInfo,
 		      [[maybe_unused]] const std::map<unsigned int, IPAStream> &streamConfig,
 		      const std::map<unsigned int, ControlInfoMap> &entityControls,
 		      const ipa::RPi::IPAConfig &ipaConfig,
diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index 6d45673c..b47ea324 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -37,7 +37,7 @@  public:
 	int start() override;
 	void stop() override {}
 
-	int configure(const CameraSensorInfo &info,
+	int configure(const IPACameraSensorInfo &info,
 		      const std::map<uint32_t, IPAStream> &streamConfig,
 		      const std::map<uint32_t, ControlInfoMap> &entityControls) override;
 	void mapBuffers(const std::vector<IPABuffer> &buffers) override;
@@ -90,12 +90,12 @@  int IPARkISP1::start()
 }
 
 /**
- * \todo The RkISP1 pipeline currently provides an empty CameraSensorInfo
+ * \todo The RkISP1 pipeline currently provides an empty IPACameraSensorInfo
  * if the connected sensor does not provide enough information to properly
  * assemble one. Make sure the reported sensor information are relevant
  * before accessing them.
  */
-int IPARkISP1::configure([[maybe_unused]] const CameraSensorInfo &info,
+int IPARkISP1::configure([[maybe_unused]] const IPACameraSensorInfo &info,
 			 [[maybe_unused]] const std::map<uint32_t, IPAStream> &streamConfig,
 			 const std::map<uint32_t, ControlInfoMap> &entityControls)
 {
diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
index 170de827..0fb8a258 100644
--- a/src/libcamera/camera_sensor.cpp
+++ b/src/libcamera/camera_sensor.cpp
@@ -205,7 +205,7 @@  int CameraSensor::validateSensorDriver()
 	 *
 	 * Failures in reading any of the targets are not deemed to be fatal,
 	 * but some properties and features, like constructing a
-	 * CameraSensorInfo for the IPA module, won't be supported.
+	 * IPACameraSensorInfo for the IPA module, won't be supported.
 	 *
 	 * \todo Make support for selection targets mandatory as soon as all
 	 * test platforms have been updated.
@@ -674,7 +674,7 @@  int CameraSensor::setControls(ControlList *ctrls)
  *
  * \return 0 on success, a negative error code otherwise
  */
-int CameraSensor::sensorInfo(CameraSensorInfo *info) const
+int CameraSensor::sensorInfo(IPACameraSensorInfo *info) const
 {
 	if (!bayerFormat_)
 		return -EINVAL;
@@ -701,7 +701,7 @@  int CameraSensor::sensorInfo(CameraSensorInfo *info) const
 	}
 
 	/*
-	 * CameraSensorInfo::analogCrop::x and CameraSensorInfo::analogCrop::y
+	 * IPACameraSensorInfo::analogCrop::x and IPACameraSensorInfo::analogCrop::y
 	 * are defined relatively to the active pixel area, while V4L2's
 	 * TGT_CROP target is defined in respect to the full pixel array.
 	 *
diff --git a/src/libcamera/ipa/core_ipa_interface.cpp b/src/libcamera/ipa/core_ipa_interface.cpp
index def8d184..15d61d91 100644
--- a/src/libcamera/ipa/core_ipa_interface.cpp
+++ b/src/libcamera/ipa/core_ipa_interface.cpp
@@ -103,7 +103,7 @@  namespace libcamera {
  */
 
 /**
- * \struct CameraSensorInfo
+ * \struct IPACameraSensorInfo
  * \brief Report the image sensor characteristics
  *
  * The structure reports image sensor characteristics used by IPA modules to
@@ -121,15 +121,15 @@  namespace libcamera {
  */
 
 /**
- * \fn CameraSensorInfo::CameraSensorInfo(const std::string &model,
-					  uint32_t bitsPerPixel,
-					  const Size &activeAreaSize,
-					  const Rectangle &analogCrop,
-					  const Size &outputSize,
-					  uint64_t pixelRate,
-					  uint32_t lineLength,
-					  uint32_t minFrameLength,
-					  uint32_t maxFrameLength)
+ * \fn IPACameraSensorInfo::IPACameraSensorInfo(const std::string &model,
+						uint32_t bitsPerPixel,
+						const Size &activeAreaSize,
+						const Rectangle &analogCrop,
+						const Size &outputSize,
+						uint64_t pixelRate,
+						uint32_t lineLength,
+						uint32_t minFrameLength,
+						uint32_t maxFrameLength)
  * \param[in] model
  * \param[in] bitsPerPixel
  * \param[in] activeAreaSize
@@ -142,7 +142,7 @@  namespace libcamera {
  */
 
 /**
- * \var CameraSensorInfo::model
+ * \var IPACameraSensorInfo::model
  * \brief The image sensor model name
  *
  * The sensor model name is a free-formed string that uniquely identifies the
@@ -150,18 +150,18 @@  namespace libcamera {
  */
 
 /**
- * \var CameraSensorInfo::bitsPerPixel
+ * \var IPACameraSensorInfo::bitsPerPixel
  * \brief The number of bits per pixel of the image format produced by the
  * image sensor
  */
 
 /**
- * \var CameraSensorInfo::activeAreaSize
+ * \var IPACameraSensorInfo::activeAreaSize
  * \brief The size of the pixel array active area of the sensor
  */
 
 /**
- * \var CameraSensorInfo::analogCrop
+ * \var IPACameraSensorInfo::analogCrop
  * \brief The portion of the pixel array active area which is read-out and
  * processed
  *
@@ -174,7 +174,7 @@  namespace libcamera {
  */
 
 /**
- * \var CameraSensorInfo::outputSize
+ * \var IPACameraSensorInfo::outputSize
  * \brief The size of the images produced by the camera sensor
  *
  * The output image size defines the horizontal and vertical sizes of the images
@@ -187,7 +187,7 @@  namespace libcamera {
  */
 
 /**
- * \var CameraSensorInfo::pixelRate
+ * \var IPACameraSensorInfo::pixelRate
  * \brief The number of pixels produced in a second
  *
  * To obtain the read-out time in seconds of a full line:
@@ -198,14 +198,14 @@  namespace libcamera {
  */
 
 /**
- * \var CameraSensorInfo::lineLength
+ * \var IPACameraSensorInfo::lineLength
  * \brief Total line length in pixels
  *
  * The total line length in pixel clock periods, including blanking.
  */
 
 /**
- * \var CameraSensorInfo::minFrameLength
+ * \var IPACameraSensorInfo::minFrameLength
  * \brief The minimum allowable frame length in units of lines
  *
  * The sensor frame length comprises of active output lines and blanking lines
@@ -220,7 +220,7 @@  namespace libcamera {
  */
 
 /**
- * \var CameraSensorInfo::maxFrameLength
+ * \var IPACameraSensorInfo::maxFrameLength
  * \brief The maximum allowable frame length in units of lines
  *
  * The sensor frame length comprises of active output lines and blanking lines
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index ade8ffbd..98c6160f 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -544,7 +544,7 @@  int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
 	if (ret)
 		return ret;
 
-	CameraSensorInfo sensorInfo;
+	IPACameraSensorInfo sensorInfo;
 	cio2->sensor()->sensorInfo(&sensorInfo);
 	data->cropRegion_ = sensorInfo.analogCrop;
 
@@ -883,7 +883,7 @@  int PipelineHandlerIPU3::initControls(IPU3CameraData *data)
 	if (ret)
 		return ret;
 
-	CameraSensorInfo sensorInfo{};
+	IPACameraSensorInfo sensorInfo{};
 	ret = sensor->sensorInfo(&sensorInfo);
 	if (ret)
 		return ret;
diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index 6fbdba04..f2a94dc0 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -211,7 +211,7 @@  public:
 	BayerFormat::Order nativeBayerOrder_;
 
 	/* For handling digital zoom. */
-	CameraSensorInfo sensorInfo_;
+	IPACameraSensorInfo sensorInfo_;
 	Rectangle ispCrop_; /* crop in ISP (camera mode) pixels */
 	Rectangle scalerCrop_; /* crop in sensor native pixels */
 	bool updateScalerCrop_;
@@ -1275,7 +1275,7 @@  int RPiCameraData::configureIPA(const CameraConfiguration *config)
 		ipaConfig.lsTableHandle = lsTable_;
 	}
 
-	/* We store the CameraSensorInfo for digital zoom calculations. */
+	/* We store the IPACameraSensorInfo for digital zoom calculations. */
 	int ret = sensor_->sensorInfo(&sensorInfo_);
 	if (ret) {
 		LOG(RPI, Error) << "Failed to retrieve camera sensor info";
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index adebe8b5..6699839c 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -648,7 +648,7 @@  int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
 		return ret;
 
 	/* Inform IPA of stream configuration and sensor controls. */
-	CameraSensorInfo sensorInfo = {};
+	IPACameraSensorInfo sensorInfo = {};
 	ret = data->sensor_->sensorInfo(&sensorInfo);
 	if (ret) {
 		/* \todo Turn this into a hard failure. */