ipa: rkisp1: cproc: Store per-frame information in frame context

Rework the algorithm's usage of the active state, to store the value of
controls for the last queued request in the queueRequest() function, and
store a copy of the values in the corresponding frame context. The
latter is used in the prepare() function to populate the ISP parameters
with values corresponding to the right frame.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Laurent Pinchart
2022-09-04 01:02:38 +03:00
parent 128f22bce5
commit cb08adffe2
3 changed files with 56 additions and 24 deletions
+18 -3
View File
@@ -160,9 +160,6 @@ namespace libcamera::ipa::rkisp1 {
*
* \var IPAActiveState::cproc.saturation
* \brief Saturation level
*
* \var IPAActiveState::cproc.updateParams
* \brief Indicates if ISP parameters need to be updated
*/
/**
@@ -236,6 +233,24 @@ namespace libcamera::ipa::rkisp1 {
* \brief Whether the Auto White Balance algorithm is enabled
*/
/**
* \var IPAFrameContext::cproc
* \brief Color Processing parameters for this frame
*
* \struct IPAFrameContext::cproc.brightness
* \brief Brightness level
*
* \var IPAFrameContext::cproc.contrast
* \brief Contrast level
*
* \var IPAFrameContext::cproc.saturation
* \brief Saturation level
*
* \var IPAFrameContext::cproc.update
* \brief Indicates if the color processing parameters have been updated
* compared to the previous frame
*/
/**
* \var IPAFrameContext::sensor
* \brief Sensor configuration that used been used for this frame