[libcamera-devel] [PATCH 16/22] ipa: ipu3: Introduce sensor controls

Jean-Michel Hautbois jeanmichel.hautbois at ideasonboard.com
Mon Nov 8 14:13:44 CET 2021


Pass the sensor controls as well as the libcamera controls to
processControl() on an EventProcessControls event received. This will be
used to populate the frame context.

Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>
---
 src/ipa/ipu3/ipu3.cpp | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
index dcf4da65..177c5c2f 100644
--- a/src/ipa/ipu3/ipu3.cpp
+++ b/src/ipa/ipu3/ipu3.cpp
@@ -151,7 +151,9 @@ private:
 			    ControlInfoMap *ipaControls);
 	void updateSessionConfiguration(const IPACameraSensorInfo &sensorInfo,
 					const ControlInfoMap &sensorControls);
-	void processControls(unsigned int frame, const ControlList &controls);
+	void processControls(unsigned int frame,
+			     const ControlList &controls,
+			     const ControlList &sensorCtrls);
 	void fillParams(unsigned int frame, ipu3_uapi_params *params);
 	void parseStatistics(unsigned int frame,
 			     int64_t frameTimestamp,
@@ -549,7 +551,7 @@ void IPAIPU3::processEvent(const IPU3Event &event)
 		 * a new frame.
 		 */
 		frameStarted(event.frame);
-		processControls(event.frame, event.controls);
+		processControls(event.frame, event.controls, event.sensorControls);
 		break;
 	}
 	case EventFillParams: {
@@ -601,12 +603,14 @@ void IPAIPU3::processEvent(const IPU3Event &event)
  * \brief Process a control list for a request 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
+ * \param[in] controls The sensor 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::processControls([[maybe_unused]] unsigned int frame,
-			      [[maybe_unused]] const ControlList &controls)
+			      [[maybe_unused]] const ControlList &controls,
+			      [[maybe_unused]] const ControlList &sensorCtrls)
 {
 	/* \todo Start processing for 'frame' based on 'controls'. */
 }
-- 
2.32.0



More information about the libcamera-devel mailing list