@@ -43,6 +43,7 @@ public:
PipelineHandler *pipe_;
std::list<Request *> queuedRequests_;
ControlInfoMap controlInfo_;
+ ControlList properties_;
std::unique_ptr<IPAInterface> ipa_;
private:
@@ -64,6 +65,7 @@ public:
void unlock();
const ControlInfoMap &controls(Camera *camera);
+ const ControlList &properties(Camera *camera);
virtual CameraConfiguration *generateConfiguration(Camera *camera,
const StreamRoles &roles) = 0;
@@ -867,6 +867,9 @@ int PipelineHandlerIPU3::registerCameras()
if (ret)
continue;
+ /* Initialize the camera properties. */
+ data->properties_ = cio2->sensor_->properties();
+
/**
* \todo Dynamically assign ImgU and output devices to each
* stream and camera; as of now, limit support to two cameras
@@ -888,6 +888,9 @@ int PipelineHandlerRkISP1::createCamera(MediaEntity *sensor)
if (ret)
return ret;
+ /* Initialize the camera properties. */
+ data->properties_ = data->sensor_->properties();
+
ret = data->loadIPA();
if (ret)
return ret;
@@ -454,6 +454,10 @@ int VimcCameraData::init(MediaDevice *media)
}
controlInfo_ = std::move(ctrls);
+
+ /* Initialize the camera properties. */
+ properties_ = sensor_->properties();
+
return 0;
}
@@ -96,6 +96,14 @@ LOG_DEFINE_CATEGORY(Pipeline)
* creating the camera, and shall not be modified afterwards.
*/
+/**
+ * \var CameraData::properties_
+ * \brief The list of properties supported by the camera
+ *
+ * The list of camera properties shall be initialised by the pipeline handler
+ * when creating the camera, and shall not be modified afterwards.
+ */
+
/**
* \var CameraData::ipa_
* \brief The IPA module used by the camera
@@ -244,6 +252,17 @@ const ControlInfoMap &PipelineHandler::controls(Camera *camera)
return data->controlInfo_;
}
+/**
+ * \brief Retrieve the list of properties for a camera
+ * \param[in] camera The camera
+ * \return A ControlList of properties supported by \a camera
+ */
+const ControlList &PipelineHandler::properties(Camera *camera)
+{
+ CameraData *data = cameraData(camera);
+ return data->properties_;
+}
+
/**
* \fn PipelineHandler::generateConfiguration()
* \brief Generate a camera configuration for a specified camera