ipa: ipu3: Inline parseStatistics() into processStatsBuffer()
Since we have moved away from switch/case on the operation ID, there's little reason to split the operation in two functions. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
This commit is contained in:
@@ -156,9 +156,6 @@ private:
|
||||
ControlInfoMap *ipaControls);
|
||||
void updateSessionConfiguration(const ControlInfoMap &sensorControls);
|
||||
|
||||
void parseStatistics(unsigned int frame,
|
||||
int64_t frameTimestamp,
|
||||
const ipu3_uapi_stats_3a *stats);
|
||||
bool validateSensorControls();
|
||||
|
||||
void setControls(unsigned int frame);
|
||||
@@ -546,11 +543,15 @@ void IPAIPU3::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Process statistics after ISP completion
|
||||
* \brief Process the statistics generated by the ImgU
|
||||
* \param[in] frame The frame number
|
||||
* \param[in] frameTimestamp Timestamp of the frame
|
||||
* \param[in] bufferId ID of the statistics buffer
|
||||
* \param[in] sensorControls Sensor controls
|
||||
*
|
||||
* Parse the most recently processed image statistics from the ImgU. The
|
||||
* statistics are passed to each algorithm module to run their calculations and
|
||||
* update their state accordingly.
|
||||
*/
|
||||
void IPAIPU3::processStatsBuffer(const uint32_t frame,
|
||||
[[maybe_unused]] const int64_t frameTimestamp,
|
||||
@@ -569,37 +570,6 @@ void IPAIPU3::processStatsBuffer(const uint32_t frame,
|
||||
context_.frameContext.sensor.exposure = sensorControls.get(V4L2_CID_EXPOSURE).get<int32_t>();
|
||||
context_.frameContext.sensor.gain = camHelper_->gain(sensorControls.get(V4L2_CID_ANALOGUE_GAIN).get<int32_t>());
|
||||
|
||||
parseStatistics(frame, frameTimestamp, stats);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Queue a request and process the control list from the application
|
||||
* \param[in] frame The number of the frame which will be processed next
|
||||
* \param[in] controls The controls for the \a frame
|
||||
*
|
||||
* Parse the request to handle any IPA-managed controls that were set from the
|
||||
* application such as manual sensor settings.
|
||||
*/
|
||||
void IPAIPU3::queueRequest([[maybe_unused]] const uint32_t frame,
|
||||
[[maybe_unused]] const ControlList &controls)
|
||||
{
|
||||
/* \todo Start processing for 'frame' based on 'controls'. */
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Process the statistics generated by the ImgU
|
||||
* \param[in] frame The number of the latest frame processed
|
||||
* \param[in] frameTimestamp The current frame timestamp
|
||||
* \param[in] stats The IPU3 statistics and ISP results
|
||||
*
|
||||
* Parse the most recently processed image statistics from the ImgU. The
|
||||
* statistics are passed to each algorithm module to run their calculations and
|
||||
* update their state accordingly.
|
||||
*/
|
||||
void IPAIPU3::parseStatistics(unsigned int frame,
|
||||
[[maybe_unused]] int64_t frameTimestamp,
|
||||
const ipu3_uapi_stats_3a *stats)
|
||||
{
|
||||
double lineDuration = context_.configuration.sensor.lineDuration.get<std::micro>();
|
||||
int32_t vBlank = context_.configuration.sensor.defVBlank;
|
||||
ControlList ctrls(controls::controls);
|
||||
@@ -630,6 +600,20 @@ void IPAIPU3::parseStatistics(unsigned int frame,
|
||||
metadataReady.emit(frame, ctrls);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Queue a request and process the control list from the application
|
||||
* \param[in] frame The number of the frame which will be processed next
|
||||
* \param[in] controls The controls for the \a frame
|
||||
*
|
||||
* Parse the request to handle any IPA-managed controls that were set from the
|
||||
* application such as manual sensor settings.
|
||||
*/
|
||||
void IPAIPU3::queueRequest([[maybe_unused]] const uint32_t frame,
|
||||
[[maybe_unused]] const ControlList &controls)
|
||||
{
|
||||
/* \todo Start processing for 'frame' based on 'controls'. */
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Handle sensor controls for a given \a frame number
|
||||
* \param[in] frame The frame on which the sensor controls should be set
|
||||
|
||||
Reference in New Issue
Block a user