@@ -83,6 +83,23 @@ namespace ipa {
* includes setting fields and flags that enable those processing blocks.
*/
+/**
+ * \fn Algorithm::queueRequest()
+ * \brief Provide control values to the algorithm
+ * \param[in] context The shared IPA context
+ * \param[in] frame The frame context sequence number
+ * \param[in] frameContext The current frame's context
+ * \param[in] controls The list of user controls
+ *
+ * This function is called for each request queued to the camera. It provides
+ * the controls stored in the request to the algorithm. The \a frame number
+ * is the Request sequence number and identifies the desired corresponding
+ * frame to target for the controls to take effect.
+ *
+ * Algorithms shall read the applicable controls and store their value for later
+ * use during frame processing.
+ */
+
/**
* \fn Algorithm::process()
* \brief Process ISP statistics, and run algorithm operations
@@ -11,6 +11,7 @@
namespace libcamera {
+class ControlList;
class YamlObject;
namespace ipa {
@@ -35,6 +36,14 @@ public:
return 0;
}
+
+ virtual void queueRequest([[maybe_unused]] typename Module::Context &context,
+ [[maybe_unused]] const uint32_t frame,
+ [[maybe_unused]] typename Module::FrameContext &frameContext,
+ [[maybe_unused]] const ControlList &controls)
+ {
+ }
+
virtual void prepare([[maybe_unused]] typename Module::Context &context,
[[maybe_unused]] unsigned int frame,
[[maybe_unused]] typename Module::FrameContext &frameContext,