@@ -42,7 +42,7 @@ interface IPARkISP1Interface {
};
interface IPARkISP1EventInterface {
- paramsComputed(uint32 frame, uint32 bytesused);
+ paramsComputed(uint32 frame, uint32 bufferId, uint32 bytesused);
setSensorControls(uint32 frame, libcamera.ControlList sensorControls);
- metadataReady(uint32 frame, libcamera.ControlList metadata);
+ metadataReady(uint32 frame, uint32 bufferId, libcamera.ControlList metadata);
};
@@ -324,7 +324,7 @@ void IPARkISP1::computeParams(const uint32_t frame, const uint32_t bufferId)
for (const auto &algo : algorithms())
algo->prepare(context_, frame, frameContext, ¶ms);
- paramsComputed.emit(frame, params.bytesused());
+ paramsComputed.emit(frame, bufferId, params.bytesused());
}
ControlList ctrls = getSensorControls(frameContext);
@@ -358,7 +358,7 @@ void IPARkISP1::processStats(const uint32_t frame, const uint32_t bufferId,
}
context_.debugMetadata.moveEntries(metadata);
- metadataReady.emit(frame, metadata);
+ metadataReady.emit(frame, bufferId, metadata);
}
void IPARkISP1::updateControls(ControlInfoMap *ipaControls)
@@ -130,11 +130,11 @@ public:
bool usesDewarper_;
private:
- void paramsComputed(unsigned int frame, unsigned int bytesused);
+ void paramsComputed(unsigned int frame, unsigned int bufferId, unsigned int bytesused);
void setSensorControls(unsigned int frame,
const ControlList &sensorControls);
- void metadataReady(unsigned int frame, const ControlList &metadata);
+ void metadataReady(unsigned int frame, unsigned int bufferId, const ControlList &metadata);
int loadTuningFile(const std::string &file);
};
@@ -475,7 +475,9 @@ int RkISP1CameraData::loadTuningFile(const std::string &path)
return 0;
}
-void RkISP1CameraData::paramsComputed(unsigned int frame, unsigned int bytesused)
+void RkISP1CameraData::paramsComputed(unsigned int frame,
+ [[maybe_unused]] unsigned int bufferId,
+ unsigned int bytesused)
{
PipelineHandlerRkISP1 *pipe = RkISP1CameraData::pipe();
RkISP1FrameInfo *info = frameInfo_.find(frame);
@@ -506,7 +508,9 @@ void RkISP1CameraData::setSensorControls(unsigned int frame,
delayedCtrls_->push(frame, sensorControls);
}
-void RkISP1CameraData::metadataReady(unsigned int frame, const ControlList &metadata)
+void RkISP1CameraData::metadataReady(unsigned int frame,
+ [[maybe_unused]] unsigned int bufferId,
+ const ControlList &metadata)
{
RkISP1FrameInfo *info = frameInfo_.find(frame);
if (!info)
The frame number is not necessarily unique. This should not be the case, but even misbehaving kernel drivers should not be able to negatively influence libcamera. Pass the bufferId, to have a guaranteed unique handle. This patch only introduces the parameter without using it. It is preparatory for the upcoming synchronization rework. Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> --- include/libcamera/ipa/rkisp1.mojom | 4 ++-- src/ipa/rkisp1/rkisp1.cpp | 4 ++-- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 12 ++++++++---- 3 files changed, 12 insertions(+), 8 deletions(-)