ipa: ipc: Rename CameraSensorInfo to IPACameraSensorInfo
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> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
6449590b63
commit
378f572e7f
13 changed files with 34 additions and 34 deletions
|
@ -74,11 +74,11 @@ serialization, any custom data containers must be defined with the mojo IDL.
|
||||||
The following list of libcamera objects are supported in the interface
|
The following list of libcamera objects are supported in the interface
|
||||||
definition, and may be used as function parameter types or struct field types:
|
definition, and may be used as function parameter types or struct field types:
|
||||||
|
|
||||||
- libcamera.CameraSensorInfo
|
|
||||||
- libcamera.ControlInfoMap
|
- libcamera.ControlInfoMap
|
||||||
- libcamera.ControlList
|
- libcamera.ControlList
|
||||||
- libcamera.FileDescriptor
|
- libcamera.FileDescriptor
|
||||||
- libcamera.IPABuffer
|
- libcamera.IPABuffer
|
||||||
|
- libcamera.IPACameraSensorInfo
|
||||||
- libcamera.IPASettings
|
- libcamera.IPASettings
|
||||||
- libcamera.IPAStream
|
- libcamera.IPAStream
|
||||||
- libcamera.Point
|
- libcamera.Point
|
||||||
|
@ -208,7 +208,7 @@ The following is an example of a main interface definition:
|
||||||
start() => (int32 ret);
|
start() => (int32 ret);
|
||||||
stop();
|
stop();
|
||||||
|
|
||||||
configure(libcamera.CameraSensorInfo sensorInfo,
|
configure(libcamera.IPACameraSensorInfo sensorInfo,
|
||||||
map<uint32, libcamera.IPAStream> streamConfig,
|
map<uint32, libcamera.IPAStream> streamConfig,
|
||||||
map<uint32, libcamera.ControlInfoMap> entityControls,
|
map<uint32, libcamera.ControlInfoMap> entityControls,
|
||||||
ConfigInput ipaConfig)
|
ConfigInput ipaConfig)
|
||||||
|
@ -470,7 +470,7 @@ definition:
|
||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
configure(libcamera.CameraSensorInfo sensorInfo,
|
configure(libcamera.IPACameraSensorInfo sensorInfo,
|
||||||
uint32 exampleNumber,
|
uint32 exampleNumber,
|
||||||
map<uint32, libcamera.IPAStream> streamConfig,
|
map<uint32, libcamera.IPAStream> streamConfig,
|
||||||
map<uint32, libcamera.ControlInfoMap> entityControls,
|
map<uint32, libcamera.ControlInfoMap> entityControls,
|
||||||
|
@ -481,7 +481,7 @@ We will need to implement a function with the following function signature:
|
||||||
|
|
||||||
.. code-block:: C++
|
.. code-block:: C++
|
||||||
|
|
||||||
int configure(const CameraSensorInfo &sensorInfo,
|
int configure(const IPACameraSensorInfo &sensorInfo,
|
||||||
uint32_t exampleNumber,
|
uint32_t exampleNumber,
|
||||||
const std::map<unsigned int, IPAStream> &streamConfig,
|
const std::map<unsigned int, IPAStream> &streamConfig,
|
||||||
const std::map<unsigned int, ControlInfoMap> &entityControls,
|
const std::map<unsigned int, ControlInfoMap> &entityControls,
|
||||||
|
|
|
@ -51,7 +51,7 @@ public:
|
||||||
V4L2Subdevice *device() { return subdev_.get(); }
|
V4L2Subdevice *device() { return subdev_.get(); }
|
||||||
|
|
||||||
const ControlList &properties() const { return properties_; }
|
const ControlList &properties() const { return properties_; }
|
||||||
int sensorInfo(CameraSensorInfo *info) const;
|
int sensorInfo(IPACameraSensorInfo *info) const;
|
||||||
|
|
||||||
void updateControlInfo();
|
void updateControlInfo();
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ module libcamera;
|
||||||
uint32 height;
|
uint32 height;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CameraSensorInfo {
|
struct IPACameraSensorInfo {
|
||||||
string model;
|
string model;
|
||||||
|
|
||||||
uint32 bitsPerPixel;
|
uint32 bitsPerPixel;
|
||||||
|
|
|
@ -68,7 +68,7 @@ interface IPARPiInterface {
|
||||||
* The \a ipaConfig and \a controls parameters carry data passed by the
|
* The \a ipaConfig and \a controls parameters carry data passed by the
|
||||||
* pipeline handler to the IPA and back.
|
* pipeline handler to the IPA and back.
|
||||||
*/
|
*/
|
||||||
configure(libcamera.CameraSensorInfo sensorInfo,
|
configure(libcamera.IPACameraSensorInfo sensorInfo,
|
||||||
map<uint32, libcamera.IPAStream> streamConfig,
|
map<uint32, libcamera.IPAStream> streamConfig,
|
||||||
map<uint32, libcamera.ControlInfoMap> entityControls,
|
map<uint32, libcamera.ControlInfoMap> entityControls,
|
||||||
IPAConfig ipaConfig)
|
IPAConfig ipaConfig)
|
||||||
|
|
|
@ -34,7 +34,7 @@ interface IPARkISP1Interface {
|
||||||
start() => (int32 ret);
|
start() => (int32 ret);
|
||||||
stop();
|
stop();
|
||||||
|
|
||||||
configure(libcamera.CameraSensorInfo sensorInfo,
|
configure(libcamera.IPACameraSensorInfo sensorInfo,
|
||||||
map<uint32, libcamera.IPAStream> streamConfig,
|
map<uint32, libcamera.IPAStream> streamConfig,
|
||||||
map<uint32, libcamera.ControlInfoMap> entityControls)
|
map<uint32, libcamera.ControlInfoMap> entityControls)
|
||||||
=> (int32 ret);
|
=> (int32 ret);
|
||||||
|
|
|
@ -39,7 +39,7 @@ static constexpr uint32_t kMaxGain = kMaxISO / 100;
|
||||||
static constexpr uint32_t kMinExposure = 1;
|
static constexpr uint32_t kMinExposure = 1;
|
||||||
static constexpr uint32_t kMaxExposure = 1976;
|
static constexpr uint32_t kMaxExposure = 1976;
|
||||||
|
|
||||||
/* \todo those should be get from CameraSensorInfo ! */
|
/* \todo those should be got from IPACameraSensorInfo ! */
|
||||||
/* line duration in microseconds */
|
/* line duration in microseconds */
|
||||||
static constexpr double kLineDuration = 16.8;
|
static constexpr double kLineDuration = 16.8;
|
||||||
static constexpr double kMaxExposureTime = kMaxExposure * kLineDuration;
|
static constexpr double kMaxExposureTime = kMaxExposure * kLineDuration;
|
||||||
|
|
|
@ -89,7 +89,7 @@ public:
|
||||||
void start(const ControlList &controls, ipa::RPi::StartConfig *startConfig) override;
|
void start(const ControlList &controls, ipa::RPi::StartConfig *startConfig) override;
|
||||||
void stop() 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, IPAStream> &streamConfig,
|
||||||
const std::map<unsigned int, ControlInfoMap> &entityControls,
|
const std::map<unsigned int, ControlInfoMap> &entityControls,
|
||||||
const ipa::RPi::IPAConfig &data,
|
const ipa::RPi::IPAConfig &data,
|
||||||
|
@ -101,7 +101,7 @@ public:
|
||||||
void signalIspPrepare(const ipa::RPi::ISPConfig &data) override;
|
void signalIspPrepare(const ipa::RPi::ISPConfig &data) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void setMode(const CameraSensorInfo &sensorInfo);
|
void setMode(const IPACameraSensorInfo &sensorInfo);
|
||||||
bool validateSensorControls();
|
bool validateSensorControls();
|
||||||
bool validateIspControls();
|
bool validateIspControls();
|
||||||
void queueRequest(const ControlList &controls);
|
void queueRequest(const ControlList &controls);
|
||||||
|
@ -278,7 +278,7 @@ void IPARPi::start(const ControlList &controls, ipa::RPi::StartConfig *startConf
|
||||||
lastRunTimestamp_ = 0;
|
lastRunTimestamp_ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
|
void IPARPi::setMode(const IPACameraSensorInfo &sensorInfo)
|
||||||
{
|
{
|
||||||
mode_.bitdepth = sensorInfo.bitsPerPixel;
|
mode_.bitdepth = sensorInfo.bitsPerPixel;
|
||||||
mode_.width = sensorInfo.outputSize.width;
|
mode_.width = sensorInfo.outputSize.width;
|
||||||
|
@ -323,7 +323,7 @@ void IPARPi::setMode(const CameraSensorInfo &sensorInfo)
|
||||||
mode_.max_frame_length = sensorInfo.maxFrameLength;
|
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,
|
[[maybe_unused]] const std::map<unsigned int, IPAStream> &streamConfig,
|
||||||
const std::map<unsigned int, ControlInfoMap> &entityControls,
|
const std::map<unsigned int, ControlInfoMap> &entityControls,
|
||||||
const ipa::RPi::IPAConfig &ipaConfig,
|
const ipa::RPi::IPAConfig &ipaConfig,
|
||||||
|
|
|
@ -37,7 +37,7 @@ public:
|
||||||
int start() override;
|
int start() override;
|
||||||
void stop() 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, IPAStream> &streamConfig,
|
||||||
const std::map<uint32_t, ControlInfoMap> &entityControls) override;
|
const std::map<uint32_t, ControlInfoMap> &entityControls) override;
|
||||||
void mapBuffers(const std::vector<IPABuffer> &buffers) 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
|
* if the connected sensor does not provide enough information to properly
|
||||||
* assemble one. Make sure the reported sensor information are relevant
|
* assemble one. Make sure the reported sensor information are relevant
|
||||||
* before accessing them.
|
* 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,
|
[[maybe_unused]] const std::map<uint32_t, IPAStream> &streamConfig,
|
||||||
const std::map<uint32_t, ControlInfoMap> &entityControls)
|
const std::map<uint32_t, ControlInfoMap> &entityControls)
|
||||||
{
|
{
|
||||||
|
|
|
@ -205,7 +205,7 @@ int CameraSensor::validateSensorDriver()
|
||||||
*
|
*
|
||||||
* Failures in reading any of the targets are not deemed to be fatal,
|
* Failures in reading any of the targets are not deemed to be fatal,
|
||||||
* but some properties and features, like constructing a
|
* 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
|
* \todo Make support for selection targets mandatory as soon as all
|
||||||
* test platforms have been updated.
|
* test platforms have been updated.
|
||||||
|
@ -674,7 +674,7 @@ int CameraSensor::setControls(ControlList *ctrls)
|
||||||
*
|
*
|
||||||
* \return 0 on success, a negative error code otherwise
|
* \return 0 on success, a negative error code otherwise
|
||||||
*/
|
*/
|
||||||
int CameraSensor::sensorInfo(CameraSensorInfo *info) const
|
int CameraSensor::sensorInfo(IPACameraSensorInfo *info) const
|
||||||
{
|
{
|
||||||
if (!bayerFormat_)
|
if (!bayerFormat_)
|
||||||
return -EINVAL;
|
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
|
* are defined relatively to the active pixel area, while V4L2's
|
||||||
* TGT_CROP target is defined in respect to the full pixel array.
|
* TGT_CROP target is defined in respect to the full pixel array.
|
||||||
*
|
*
|
||||||
|
|
|
@ -87,7 +87,7 @@ namespace libcamera {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \struct CameraSensorInfo
|
* \struct IPACameraSensorInfo
|
||||||
* \brief Report the image sensor characteristics
|
* \brief Report the image sensor characteristics
|
||||||
*
|
*
|
||||||
* The structure reports image sensor characteristics used by IPA modules to
|
* The structure reports image sensor characteristics used by IPA modules to
|
||||||
|
@ -105,7 +105,7 @@ namespace libcamera {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \var CameraSensorInfo::model
|
* \var IPACameraSensorInfo::model
|
||||||
* \brief The image sensor model name
|
* \brief The image sensor model name
|
||||||
*
|
*
|
||||||
* The sensor model name is a free-formed string that uniquely identifies the
|
* The sensor model name is a free-formed string that uniquely identifies the
|
||||||
|
@ -113,18 +113,18 @@ namespace libcamera {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \var CameraSensorInfo::bitsPerPixel
|
* \var IPACameraSensorInfo::bitsPerPixel
|
||||||
* \brief The number of bits per pixel of the image format produced by the
|
* \brief The number of bits per pixel of the image format produced by the
|
||||||
* image sensor
|
* image sensor
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \var CameraSensorInfo::activeAreaSize
|
* \var IPACameraSensorInfo::activeAreaSize
|
||||||
* \brief The size of the pixel array active area of the sensor
|
* \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
|
* \brief The portion of the pixel array active area which is read-out and
|
||||||
* processed
|
* processed
|
||||||
*
|
*
|
||||||
|
@ -137,7 +137,7 @@ namespace libcamera {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \var CameraSensorInfo::outputSize
|
* \var IPACameraSensorInfo::outputSize
|
||||||
* \brief The size of the images produced by the camera sensor
|
* \brief The size of the images produced by the camera sensor
|
||||||
*
|
*
|
||||||
* The output image size defines the horizontal and vertical sizes of the images
|
* The output image size defines the horizontal and vertical sizes of the images
|
||||||
|
@ -150,7 +150,7 @@ namespace libcamera {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \var CameraSensorInfo::pixelRate
|
* \var IPACameraSensorInfo::pixelRate
|
||||||
* \brief The number of pixels produced in a second
|
* \brief The number of pixels produced in a second
|
||||||
*
|
*
|
||||||
* To obtain the read-out time in seconds of a full line:
|
* To obtain the read-out time in seconds of a full line:
|
||||||
|
@ -161,14 +161,14 @@ namespace libcamera {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \var CameraSensorInfo::lineLength
|
* \var IPACameraSensorInfo::lineLength
|
||||||
* \brief Total line length in pixels
|
* \brief Total line length in pixels
|
||||||
*
|
*
|
||||||
* The total line length in pixel clock periods, including blanking.
|
* 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
|
* \brief The minimum allowable frame length in units of lines
|
||||||
*
|
*
|
||||||
* The sensor frame length comprises of active output lines and blanking lines
|
* The sensor frame length comprises of active output lines and blanking lines
|
||||||
|
@ -183,7 +183,7 @@ namespace libcamera {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \var CameraSensorInfo::maxFrameLength
|
* \var IPACameraSensorInfo::maxFrameLength
|
||||||
* \brief The maximum allowable frame length in units of lines
|
* \brief The maximum allowable frame length in units of lines
|
||||||
*
|
*
|
||||||
* The sensor frame length comprises of active output lines and blanking lines
|
* The sensor frame length comprises of active output lines and blanking lines
|
||||||
|
|
|
@ -547,7 +547,7 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
CameraSensorInfo sensorInfo;
|
IPACameraSensorInfo sensorInfo;
|
||||||
cio2->sensor()->sensorInfo(&sensorInfo);
|
cio2->sensor()->sensorInfo(&sensorInfo);
|
||||||
data->cropRegion_ = sensorInfo.analogCrop;
|
data->cropRegion_ = sensorInfo.analogCrop;
|
||||||
|
|
||||||
|
@ -924,7 +924,7 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data)
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
CameraSensorInfo sensorInfo{};
|
IPACameraSensorInfo sensorInfo{};
|
||||||
ret = sensor->sensorInfo(&sensorInfo);
|
ret = sensor->sensorInfo(&sensorInfo);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -210,7 +210,7 @@ public:
|
||||||
BayerFormat::Order nativeBayerOrder_;
|
BayerFormat::Order nativeBayerOrder_;
|
||||||
|
|
||||||
/* For handling digital zoom. */
|
/* For handling digital zoom. */
|
||||||
CameraSensorInfo sensorInfo_;
|
IPACameraSensorInfo sensorInfo_;
|
||||||
Rectangle ispCrop_; /* crop in ISP (camera mode) pixels */
|
Rectangle ispCrop_; /* crop in ISP (camera mode) pixels */
|
||||||
Rectangle scalerCrop_; /* crop in sensor native pixels */
|
Rectangle scalerCrop_; /* crop in sensor native pixels */
|
||||||
Size ispMinCropSize_;
|
Size ispMinCropSize_;
|
||||||
|
@ -1275,7 +1275,7 @@ int RPiCameraData::configureIPA(const CameraConfiguration *config)
|
||||||
ipaConfig.lsTableHandle = lsTable_;
|
ipaConfig.lsTableHandle = lsTable_;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We store the CameraSensorInfo for digital zoom calculations. */
|
/* We store the IPACameraSensorInfo for digital zoom calculations. */
|
||||||
int ret = sensor_->sensorInfo(&sensorInfo_);
|
int ret = sensor_->sensorInfo(&sensorInfo_);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
LOG(RPI, Error) << "Failed to retrieve camera sensor info";
|
LOG(RPI, Error) << "Failed to retrieve camera sensor info";
|
||||||
|
|
|
@ -648,7 +648,7 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
/* Inform IPA of stream configuration and sensor controls. */
|
/* Inform IPA of stream configuration and sensor controls. */
|
||||||
CameraSensorInfo sensorInfo = {};
|
IPACameraSensorInfo sensorInfo = {};
|
||||||
ret = data->sensor_->sensorInfo(&sensorInfo);
|
ret = data->sensor_->sensorInfo(&sensorInfo);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
/* \todo Turn this into a hard failure. */
|
/* \todo Turn this into a hard failure. */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue