summaryrefslogtreecommitdiff
path: root/src/libcamera/pipeline/ipu3/ipu3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/pipeline/ipu3/ipu3.cpp')
-rw-r--r--src/libcamera/pipeline/ipu3/ipu3.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 52844da7..7823bbb5 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -28,6 +28,12 @@ public:
PipelineHandlerIPU3(CameraManager *manager);
~PipelineHandlerIPU3();
+ std::map<Stream *, StreamConfiguration>
+ streamConfiguration(Camera *camera,
+ std::vector<Stream *> &streams) override;
+ int configureStreams(Camera *camera,
+ std::map<Stream *, StreamConfiguration> &config) override;
+
bool match(DeviceEnumerator *enumerator);
private:
@@ -68,6 +74,36 @@ PipelineHandlerIPU3::~PipelineHandlerIPU3()
imgu_->release();
}
+std::map<Stream *, StreamConfiguration>
+PipelineHandlerIPU3::streamConfiguration(Camera *camera,
+ std::vector<Stream *> &streams)
+{
+ IPU3CameraData *data = cameraData(camera);
+
+ std::map<Stream *, StreamConfiguration> configs;
+
+ StreamConfiguration config{};
+
+ LOG(IPU3, Info) << "TODO: Return a good default format";
+
+ configs[&data->stream_] = config;
+
+ return configs;
+}
+
+int PipelineHandlerIPU3::configureStreams(Camera *camera,
+ std::map<Stream *, StreamConfiguration> &config)
+{
+ IPU3CameraData *data = cameraData(camera);
+
+ StreamConfiguration *cfg = &config[&data->stream_];
+
+ LOG(IPU3, Info) << "TODO: Configure the camera for resolution "
+ << cfg->width << "x" << cfg->height;
+
+ return 0;
+}
+
bool PipelineHandlerIPU3::match(DeviceEnumerator *enumerator)
{
DeviceMatch cio2_dm("ipu3-cio2");