diff --git a/include/libcamera/ipa/rkisp1.mojom b/include/libcamera/ipa/rkisp1.mojom
index 4c29b53cd7f9..04230d0f852e 100644
--- a/include/libcamera/ipa/rkisp1.mojom
+++ b/include/libcamera/ipa/rkisp1.mojom
@@ -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);
 };
diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index 08b7dde6b2de..abfd3c5ff58f 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -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, &params);
 
-		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)
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index edd9f352524c..d84044f218b5 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -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)
